From 729db9dd93f8884a8f1f0b32a4462708f858ea9b Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 13 六月 2023 20:05:53 +0800 Subject: [PATCH] 代码整合 --- Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeFallback.java | 104 ++ Source/UBCS-WEB/src/components/refer/vciWebRefer.vue | 29 Source/UBCS-WEB/src/components/Tree/classifyTrees.vue | 21 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeFallback.java | 11 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java | 53 + Source/UBCS-WEB/vue.config.js | 11 Source/UBCS-WEB/src/api/template/templateAttr.js | 26 Source/UBCS-WEB/src/components/template/FlowPath.vue | 77 Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/feign/IDictBizClient.java | 2 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/LinkTypeClient.java | 183 +++ Source/UBCS-WEB/src/option/user/info.js | 2 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeClient.java | 10 Source/UBCS-WEB/src/api/refer/table.js | 32 Source/UBCS-WEB/src/views/flow/flowPath.vue | 67 + Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java | 69 Source/UBCS-WEB/src/api/template/flowpath.js | 80 + Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java | 27 Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue | 289 +++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java | 11 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/AttributeClient.java | 16 Source/更改过的jar包(有更新).zip | 0 Source/UBCS-WEB/src/components/template/TableTransfer.vue | 322 ++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java | 6 Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue | 369 ++++++ Source/UBCS-WEB/src/components/template/Stage.vue | 259 +++++ Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue | 2 Source/UBCS-WEB/src/views/modeling/status.vue | 65 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeClient.java | 136 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 158 +- Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java | 6 Source/UBCS-WEB/src/api/omd/status.js | 12 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml | 4 Source/UBCS-WEB/src/main.js | 5 Source/UBCS-WEB/public/src/option/user/info.js | 2 Source/UBCS-WEB/src/components/Tree/TemplatePro.vue | 13 Source/UBCS-WEB/src/components/Tree/attrCrud.vue | 489 ++++++--- Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue | 74 + 37 files changed, 2,574 insertions(+), 468 deletions(-) diff --git a/Source/UBCS-WEB/public/src/option/user/info.js b/Source/UBCS-WEB/public/src/option/user/info.js index de76103..a664bd1 100644 --- a/Source/UBCS-WEB/public/src/option/user/info.js +++ b/Source/UBCS-WEB/public/src/option/user/info.js @@ -45,7 +45,7 @@ }] }, { - label: '淇敼瀵嗙爜', + label: '', prop: 'password', column: [{ label: '鍘熷瘑鐮�', diff --git a/Source/UBCS-WEB/src/api/omd/status.js b/Source/UBCS-WEB/src/api/omd/status.js index e80f0f8..4a287a3 100644 --- a/Source/UBCS-WEB/src/api/omd/status.js +++ b/Source/UBCS-WEB/src/api/omd/status.js @@ -72,4 +72,14 @@ pageSize } }) -} \ No newline at end of file +} + +export const getApplyRange = (id) => { + return request({ + url: '/api/ubcs-omd/status/get-apply-range', + method: 'get', + params: { + id + } + }) +} diff --git a/Source/UBCS-WEB/src/api/refer/table.js b/Source/UBCS-WEB/src/api/refer/table.js new file mode 100644 index 0000000..e05299b --- /dev/null +++ b/Source/UBCS-WEB/src/api/refer/table.js @@ -0,0 +1,32 @@ +import request from "@/router/axios"; + +export const getList = (params,page, limit, url) => { + return request({ + url: url, + method: 'get', + params: { + ...params, + page, + limit, + } + }) +} + +export const getLazyList = (params,url) => { + return request({ + url: url, + method: 'get', + params: { + ...params + } + }) +} +export const getTableDefinedUrl = (params,url) => { + return request({ + url: url, + method: 'get', + params: { + ...params + } + }) +} diff --git a/Source/UBCS-WEB/src/api/template/flowpath.js b/Source/UBCS-WEB/src/api/template/flowpath.js index dc276c5..d1fef57 100644 --- a/Source/UBCS-WEB/src/api/template/flowpath.js +++ b/Source/UBCS-WEB/src/api/template/flowpath.js @@ -2,25 +2,65 @@ // 妯℃澘娴佺▼鍒楄〃 export const getFlowpathList = (params) => { - return request({ - url: '/api/ubcs-flow/processTS/tlist', - method: 'get', - params: params - }) - } - // 妯℃澘娴佺▼鑾峰彇閫夐」 + return request({ + url: '/api/ubcs-flow/processTS/tlist', + method: 'get', + params: params + }) +} +// 妯℃澘娴佺▼鑾峰彇閫夐」 export const getStartList = () => { - return request({ - url: '/api/ubcs-flow/work/start-list', - method: 'get', - params: {mode:'1',current:1,size:100} - }) - } - // 妯℃澘娴佺▼鏂板 + return request({ + url: '/api/ubcs-flow/work/start-list', + method: 'get', + params: { mode: '1', current: 1, size: 100 } + }) +} +// 妯℃澘娴佺▼鏂板 export const flowpathSave = (params) => { - return request({ - url: '/api/ubcs-flow/processTS/tsou', - method: 'post', - data: params - }) - } + return request({ + url: '/api/ubcs-flow/processTS/tsou', + method: 'post', + data: params + }) +} +// 妯℃澘娴佺▼鍒犻櫎 +export const flowpathDelete = (params) => { + return request({ + url: '/api/ubcs-flow/processTS/dt', + method: 'delete', + params: params + }) +} +// 妯℃澘闃舵鍒楄〃 +export const stagelist = (params) => { + return request({ + url: '/api/ubcs-flow/processTS/sslist', + method: 'get', + params: params + }) +} +// 灞炴�у垪琛� +export const attributeList = (params) => { + return request({ + url: '/api/ubcs-code/codeTempPhaseController/gridUnUsedAttribute', + method: 'get', + params: params + }) +} +// 灞炴�у垪琛ㄥ乏渚� +export const attributeListRight = (params) => { + return request({ + url: '/api/ubcs-flow/processTS/ssslist', + method: 'get', + params: params + }) +} +// 妯℃澘闃舵鍒楄〃 +export const attributeSave = (params) => { + return request({ + url: '/api/ubcs-flow/processTS/sasou', + method: 'post', + data: params + }) +} diff --git a/Source/UBCS-WEB/src/api/template/templateAttr.js b/Source/UBCS-WEB/src/api/template/templateAttr.js index d58256e..b0d6a1d 100644 --- a/Source/UBCS-WEB/src/api/template/templateAttr.js +++ b/Source/UBCS-WEB/src/api/template/templateAttr.js @@ -148,3 +148,29 @@ } }) } +// 淇濆瓨鎺ュ彛 +export const batchAddSave = (data) =>{ + return request({ + url:'/api/ubcs-code/codeClassifyTempAttrController/batchAddSave', + method: 'post', + data:data + }) +} +//鍚屾鍒板叾浠栨ā鏉� +export const copyto = (data) =>{ + return request({ + url:'/api/ubcs-code/codeClassifyTempAttrController/copyto', + method: 'post', + data:data + }) +} +//缂栫爜鐢宠棰勮 +export const getFormDefineByTemplate = (params) =>{ + return request({ + url:'/api/ubcs-code/mdmEngineController/getFormDefineByTemplateOid', + method: 'get', + params:{ + ...params + } + }) +} diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue index c8e5b43..37c5899 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue @@ -558,7 +558,7 @@ maxlength: formItem.maxlength, filterable: true, referConfig:formItem.type=='refer'?{ - title:formItem.text, + title:formItem.text , showField:formItem.showField || formItem.field, field: formItem.field, placeholder: formItem.inputTip, diff --git a/Source/UBCS-WEB/src/components/Tree/TemplatePro.vue b/Source/UBCS-WEB/src/components/Tree/TemplatePro.vue index 0649477..116aa50 100644 --- a/Source/UBCS-WEB/src/components/Tree/TemplatePro.vue +++ b/Source/UBCS-WEB/src/components/Tree/TemplatePro.vue @@ -2,10 +2,15 @@ <basic-container> <avue-tabs :option="Taboption" @change="handleChange"></avue-tabs> <span v-if="type.prop==='tab1'"> - <attrCrud :ProData="ProData" :crudOid="crudOid" :crudArray="crudArray" :Formlist="Formlist"></attrCrud> + <attrCrud :ProData="ProData" :crudOid="crudOid" :crudArray="crudArray" :Formlist="Formlist" :codeClassifyOid="codeClassifyOid"></attrCrud> </span> - <span v-else-if="type.prop==='tab2'">妯℃澘娴佺▼</span> - <span v-else-if="type.prop==='tab3'">妯℃澘闃舵</span> + <span v-else-if="type.prop==='tab2'"> + <FlowPath code="8b5e2017-990f-454a-9c39-4c4eeeb57553"></FlowPath> + + </span> + <span v-else-if="type.prop==='tab3'"> +<!-- <stage :visible.sync="visibleStage" code="8b5e2017-990f-454a-9c39-4c4eeeb57553"></stage>--> + </span> </basic-container> </template> @@ -13,7 +18,7 @@ <script> export default { name: "TemplatePro.vue", - props: ['ProData','crudOid','crudArray','Formlist'], + props: ['ProData','crudOid','crudArray','Formlist','codeClassifyOid'], data: function () { return { type: {}, diff --git a/Source/UBCS-WEB/src/components/Tree/attrCrud.vue b/Source/UBCS-WEB/src/components/Tree/attrCrud.vue index 5ea2bc4..6f7f758 100644 --- a/Source/UBCS-WEB/src/components/Tree/attrCrud.vue +++ b/Source/UBCS-WEB/src/components/Tree/attrCrud.vue @@ -1,10 +1,10 @@ <template> <avue-crud :data="ProData" :option="option" @sort-change="sortChange" @row-update="addUpdate" - @cell-click="handleRowClick" @select="selectHandle"> + @cell-click="handleRowClick" @select="selectHandle" @row-del="CrudRowDel"> <template slot="menuLeft"> - <el-button v-if="attrEditVisible == false" size="small" type="primary" @click="busineHandle">锛� 娣诲姞 {{msg}}</el-button> - <el-dialog :visible.sync="addVisible" append-to-body title="浠庝笟鍔$被鍨嬩腑閫夋嫨灞炴��"> - <avue-crud :data="businessData" :option="businessOption"> + <el-button v-if="attrEditVisible == false && attrFlagChiledren==false" size="small" type="primary" @click="busineHandle">锛� 娣诲姞 {{msg}}</el-button> + <el-dialog :visible.sync="addVisible" append-to-body title="浠庝笟鍔$被鍨嬩腑閫夋嫨灞炴��" > + <avue-crud :data="businessData" :option="businessOption" @select="businessSelect"> <template slot="menuLeft"> <div style="display: flex;"> <el-select> @@ -18,24 +18,24 @@ </template> </avue-crud> <div style="display: flex;justify-content: flex-end;margin-top: 15px"> - <el-button size="small" type="primary">淇濆瓨</el-button> + <el-button size="small" type="primary" @click="busineAddHandle">淇濆瓨</el-button> <el-button size="small" type="primary">鍙栨秷</el-button> </div> </el-dialog> </template> <!-- 鍏ㄥ睆缂栬緫--> <template slot="menuLeft"> - <el-button v-if="attrEditVisible == false" size="small" @click="attrEditVisible=true">鍏ㄥ睆缂栬緫</el-button> - <!-- <el-button @click.native="attrEditVisible=false" size="small">閫�鍑哄叏灞忕紪杈�</el-button>--> + <el-button v-if=" attrEditVisible == false && attrFlagChiledren==false" size="small" @click="fullscreenHandle">鍏ㄥ睆缂栬緫</el-button> +<!-- <el-button v-if="attrFlagChiledren !=false" size="small" plain type="success" @click="escEdit">閫�鍑哄叏灞忕紪杈�</el-button>--> <el-dialog :visible.sync="attrEditVisible" append-to-body fullscreen="true"> - <attrCrud></attrCrud> + <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag"></attrCrud> </el-dialog> </template> <!-- 缁勫悎瑙勫垯--> <template slot="menuLeft"> - <el-button size="small" @click="isShowformulaEdit = true">缁勫悎瑙勫垯</el-button> - <formula-editor :visible.sync="isShowformulaEdit" :systemVariableTableData="systemVariableTableData" :thisSceneTableData="thisSceneTableData">\ - </formula-editor> + <el-button size="small" @click="isShowformulaEdit=true">缁勫悎瑙勫垯</el-button> + <formula-editor :visible.sync="isShowformulaEdit" :systemVariableTableData="systemVariableTableData" :thisSceneTableData="thisSceneTableData"></formula-editor> + </template> <!-- 楠岃瘉瑙勫垯--> <template slot="menuLeft"> @@ -83,16 +83,24 @@ </template> <!-- 灞炴�у垎缁�--> <template slot="menuLeft"> - <el-button icon="el-icon-menu" size="small" @click="attrVisible=true">灞炴�у垎缁�</el-button> + <el-button icon="el-icon-menu" size="small" @click="attrVisibleHandle">灞炴�у垎缁�</el-button> <el-dialog :visible.sync="attrVisible" append-to-body style="width: 800px; left:30vw;top: 10vh ;" title="杈撳叆鍒嗙粍鐨勫悕绉�"> - <avue-form :option="attrOption"></avue-form> + <el-form ref="form" label-width="70px"> + <el-form-item label="灞炴�у垎缁�"> + <el-input v-model="attrModel"></el-input> + </el-form-item> + <div style="display: flex;justify-content: flex-end"> + <el-button type="primary" @click="attrHandle" size="small">鎻愪氦</el-button> + <el-button size="small" @click="attrRemove">娓呯┖</el-button> + </div> + </el-form> </el-dialog> </template> <!-- 鍒嗙被娉ㄥ叆--> <template slot="menuLeft"> - <el-button icon="el-icon-magic-stick" size="small" @click="injectVisible=true">鍒嗙被娉ㄥ叆</el-button> + <el-button icon="el-icon-magic-stick" size="small" @click="injectBtn">鍒嗙被娉ㄥ叆</el-button> <el-dialog :visible.sync="injectVisible" append-to-body class="mydialog" style="width: 1400px; left:14vw ;top: 10vh;" title="鍒嗙被娉ㄥ叆"> <div class="injectBox"> @@ -102,38 +110,63 @@ <br/>4锛氬眰绾у繀椤绘槸澶т簬0鐨勬暣鏁板�� </div> <div style="padding-top: 15px;padding-left: 35px"> - <avue-form :option="injectOption" @reset-change="injectHandleReset"> - <template slot="menuForm"> - <el-button icon="el-icon-user" @click="injectRemove">鍙栨秷</el-button> - </template> - </avue-form> + <el-form ref="injectForm" label-width="80px"> + <el-form-item label="娉ㄥ叆绫诲瀷"> + <el-radio-group v-model="injectOption.type"> + <el-radio label="鍒嗙被鍚嶇О"></el-radio> + <el-radio label="鍒嗙被浠e彿"></el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="灞傜骇璁剧疆"> + <el-radio-group v-model="injectOption.set"> + <el-radio label="鏈�灏忓眰"></el-radio> + <el-radio label="鎸囧畾灞�"></el-radio> + <el-input-number v-model="injectOption.injectNum" controls-position="right" :min="0" :max="10" v-if="this.injectOption.set == '鎸囧畾灞�'"></el-input-number> + </el-radio-group> + </el-form-item> + <el-form-item label="鍙慨鏀�"> + <el-radio-group v-model="injectOption.change"> + <el-radio label="鏄�"></el-radio> + <el-radio label="鍚�"></el-radio> + </el-radio-group> + </el-form-item> + </el-form> </div> + </div> + <div style="display: flex;justify-content: flex-end"> + <el-button size="small" type="primary" @click="injectAddHandle">纭畾</el-button> + <el-button size="small" @click="injectHandleReset">娓呴櫎鍐呭</el-button> + <el-button size="small" @click="injectRemove">鍙栨秷</el-button> </div> </el-dialog> </template> <!-- 鏋氫妇娉ㄥ叆--> <template slot="menuLeft"> - <el-button size="small" @click="enumVisible=true">鏋氫妇娉ㄥ叆</el-button> + <el-button size="small" @click="enmuVisHandle">鏋氫妇娉ㄥ叆</el-button> <el-dialog :visible.sync="enumVisible" append-to-body title="鏋氫妇娉ㄥ叆"> <!-- 娓叉煋琛ㄦ牸鍙婃寜閽� --> <!-- 娓叉煋琛ㄦ牸鍙婃寜閽� --> <div> <el-button icon="el-icon-plus" type="primary" @click="addRow">鏂板</el-button> - <el-table :data="tableData" style="width: 100%" @cell-click="handleCellClick" @cell-dblclick="dbclick"> + <el-table :data="tableData" style="width: 100%" @cell-click="handleCellClick" @selection-change="handleSelectionChange"> <!-- 娓叉煋琛ㄦ牸鍒楀強浼犲弬 --> <el-table-column label="搴忓彿" type="index"></el-table-column> - <el-table-column label="閫夐」鍊�" prop="name"> + <el-table-column + type="selection" + width="55"> + </el-table-column> + <el-table-column label="閫夐」鍊�" prop="key"> <template slot-scope="{ row }"> <!-- 缂栬緫鍜屽睍绀洪�昏緫 --> - <el-input v-if="editingRow === row && editShow == 'name'" v-model="row.name" @blur="saveRow"></el-input> - <span v-else>{{ row.name }}</span> + <el-input v-if="editingRow === row && editShow == 'key'" v-model="row.key" @blur="saveRow"></el-input> + <span v-else>{{ row.key }}</span> </template> </el-table-column> - <el-table-column label="閫夐」涓枃鏍囩" prop="age"> + <el-table-column label="閫夐」涓枃鏍囩" prop="value"> <template slot-scope="{ row }"> <!-- 缂栬緫鍜屽睍绀洪�昏緫 --> - <el-input v-if="editingRow === row && editShow == 'age'" v-model="row.age" @blur="saveRow"></el-input> - <span v-else>{{ row.age }}</span> + <el-input v-if="editingRow === row && editShow == 'value'" v-model="row.value" @blur="saveRow"></el-input> + <span v-else>{{ row.value }}</span> </template> </el-table-column> <el-table-column fixed="right" label="鎿嶄綔" width="120"> @@ -146,7 +179,7 @@ </el-table> <template> <div style="display: flex;justify-content: right;margin-top: 15px"> - <el-button type="primary" size="small">淇濆瓨</el-button> + <el-button type="primary" size="small" @click="enumAddHandle">淇濆瓨</el-button> <el-button size="small" @click="enumVisible=false">鍙栨秷</el-button> </div> </template> @@ -166,7 +199,7 @@ </template> </avue-crud> <div style="display: flex ;padding-top: 18px;justify-content: right"> - <el-button size="small" type="primary">纭畾</el-button> + <el-button size="small" type="primary" @click="CascadeAddHandle">纭畾</el-button> <el-button size="small" style="margin-left: 10px" @click="casRemove">娓呴櫎鍐呭</el-button> <el-button size="small" style="margin-left: 10px" @click="CascadeVisible=false">鍙栨秷</el-button> </div> @@ -182,26 +215,71 @@ </template> <!-- 鍒犻櫎--> <template slot="menuLeft"> - <el-button size="small">鍒犻櫎</el-button> + <el-button size="small" @click="CrudRemove">鍒犻櫎</el-button> </template> <!-- 閲嶇疆--> <template slot="menuLeft"> - <el-button size="small">閲嶇疆</el-button> + <el-button size="small" @click="reset">閲嶇疆</el-button> </template> <!-- 鍚屾鍒板叾浠栨ā鏉�--> <template slot="menuLeft"> - <el-button size="small" style="margin-top: 10px">鍚屾鍒板叾浠栨ā鏉�</el-button> + <el-button size="small" style="margin-top: 10px" @click="syncHandle">鍚屾鍒板叾浠栨ā鏉�</el-button> + </template> +<!-- 缂栫爜鐢宠棰勮--> + <template slot="menuLeft"> + <el-button size="small" style="margin-top: 10px" @click="applicationHandle">缂栫爜鐢宠棰勮</el-button> + <FormTemplateDialog + :visible.sync="addvisible" + :type="add" + :templateOid="this.crudOid" + :codeClassifyOid="this.codeClassifyOid" + > + </FormTemplateDialog> </template> </avue-crud> </template> <script> -import {AttrByBtm,gridCodeClassifyTemplateAttr} from '@/api/template/templateAttr' +import {AttrByBtm,gridCodeClassifyTemplateAttr,batchAddSave,copyto} from '@/api/template/templateAttr' export default { name: "attrCrud .vue", - props: ['ProData','crudOid','crudArray','Formlist'], + // props: ['ProData','crudOid','crudArray','Formlist','codeClassifyOid'], + props:{ + ProData:{ + type:Array, + }, + crudOid:{ + type:String, + default:'' + }, + crudArray:{ + type:Array, + }, + Formlist:{ + type:Array, + }, + codeClassifyOid:{ + type:String, + default:'' + }, + attrFlagChiledren:{ + type:Boolean, + default:false + }, + }, data() { return { + attrFlag:false, + //缂栫爜鐢宠棰勮option + applicationoption:{ + column:[] + }, + // 缂栫爜鐢宠棰勮data + applicationData:[], + //涓氬姟绫诲瀷鍗曢�夋暟缁� + busineSelectList:[], + //涓氬姟绫诲瀷娣诲姞鏁版嵁 + busineAddList:{}, //琛ㄦ牸鍗曢�夋暟缁� CrudSelect:[], //琛ㄦ牸oid @@ -573,6 +651,8 @@ editShow: "", //鏋氫妇娉ㄥ叆 enumVisible: false, + //鏋氫妇娉ㄥ叆澶氶�変繚瀛樻暟缁� + enumRow:[], // 鍒嗙被娉ㄥ叆寮瑰嚭妗� injectVisible: false, // 娣诲姞寮瑰嚭妗� @@ -581,67 +661,19 @@ rulesVisible: false, //灞炴�у垎缁勫脊鍑烘 attrVisible: false, - //灞炴�у垎缁刼ption - attrOption: { - column: [ - { - label: "灞炴�у垎缁�", - span: 24, - prop: "attrIN" - } - ] - }, + //灞炴�у垎缁勮緭鍏ユ + attrModel:"", + //褰撳墠鍗曢�夋ā鏉垮睘鎬� + attrRow:{}, + //缂栫爜鐢宠棰勮寮瑰嚭妗� + addvisible:false, //鍒嗙被娉ㄥ叆option injectOption: { - column: [ - { - label: "娉ㄥ叆绫诲瀷", - type: 'radio', - prop: "injection", - span: 24, - value: 0, - dicData: [ - { - label: '鍒嗙被鍚嶇О', - value: 0 - }, { - label: '鍒嗙被浠e彿', - value: 1 - }, - ] - }, - { - label: "灞傜骇璁剧疆", - type: 'radio', - prop: "Level", - span: 24, - value: 0, - dicData: [ - { - label: '鏈�灏忓眰', - value: 0 - }, { - label: '鎸囧畾灞�', - value: 1 - }, - ] - }, - { - label: "鍙慨鏀�", - type: 'radio', - prop: "revise", - value: 0, - dicData: [ - { - label: '鏄�', - value: 0 - }, { - label: '鍚�', - value: 1 - }, - ] - } - ] + type:"鍒嗙被鍚嶇О", + set:"鏈�灏忓眰", + change:"鏄�", + //鍒嗙被娉ㄥ叆璁℃暟鍣� + injectNum:0, }, // 灞炴�ч獙璇佽緭鍏ユ RulesForm: { @@ -682,6 +714,8 @@ border: true, addBtn: false, menu:false, + selection:true, + height:500, column: [ { label: "灞炴�ц嫳鏂囧悕绉�", @@ -731,26 +765,6 @@ }, //妯℃澘灞炴�� data: [ - { - id: "娴嬭瘯涓�", - name: "娴嬭瘯name1", - attributegroup: "娴嬭瘯涓�", - attributeDataTypeText: "娴嬭瘯涓�", - - }, - { - id: "娴嬭瘯浜�", - name: "娴嬭瘯name2", - attributegroup: "娴嬭瘯浜�", - attributeDataTypeText: "娴嬭瘯浜�" - }, - { - id: "娴嬭瘯涓�", - name: "娴嬭瘯name3", - attributegroup: "娴嬭瘯涓�", - attributeDataTypeText: "娴嬭瘯涓�", - keyattrflag: false - } ], // 褰撳墠琛� rowList: [], @@ -791,7 +805,7 @@ }, { label: "灞炴�у垎缁�", - prop: "attributegroup", + prop: "attributeGroup", cell: false, sortable: true, width: 125, @@ -811,101 +825,101 @@ }, { label: "鍏抽敭灞炴��", - prop: "keyattrflag", + prop: "keyAttrFlag", cell: false, type: "switch", }, { label: "鏌ヨ灞炴��", - prop: "queryattrflag", + prop: "queryAttrFlag", cell: false, }, { label: "楂樼骇鏌ヨ灞炴��", - prop: "seniorqueryattrflag", + prop: "seniorQueryAttrFlag", width: 95, cell: false, }, { label: "鐩镐技鏌ヨ灞炴��", - prop: "samerepeatattrflag", + prop: "sameRepeatAttrFlag", width: 95, cell: false, }, { label: "蹇呰緭", - prop: "requireflag", + prop: "requireFlag", cell: false, }, { label: "琛ㄥ崟鏄剧ず", - prop: "formdisplayflag", + prop: "formDisplayFlag", cell: false, }, { label: "鍒楄〃鏄剧ず", - prop: "tabledisplayflag", + prop: "tableDisplayFlag", cell: false, }, { label: "鍙", - prop: "readonlyflag", + prop: "readonlyFlag", cell: false, }, { label: "鍒楄〃鎺掑簭", - prop: "sortattrflag", + prop: "sortAttrFlag", cell: false, }, { label: "澶氳鏂囨湰", - prop: "textareaflag", + prop: "textareaFlag", cell: false, }, { label: "榛樿鍊�", - prop: "defaultvalue", + prop: "defaultValue", sortable: true, cell: false, width: 95, }, { label: "鍓嶇紑", - prop: "prefixvalue", + prop: "prefixValue", sortable: true, cell: false, }, { label: "鍚庣紑", - prop: "suffixvalue", + prop: "suffixValue", sortable: true, cell: false, }, { label: "缁勫悎瑙勫垯", - prop: "componentrule", + prop: "componentRule", sortable: true, cell: false, width: 105, }, { label: "楠岃瘉瑙勫垯", - prop: "verifyrule", + prop: "verifyRule", sortable: true, cell: false, width: 105, }, { label: "鏃堕棿鏍煎紡", - prop: "codedateformat", + prop: "codeDateFormat", sortable: true, width: 105, cell: false, }, { label: "鍒嗙被娉ㄥ叆", - prop: "classifyinvokelevel", + prop: "classifyInvokeLevel", cell: false, }, { @@ -942,61 +956,110 @@ }, { label: "琛ㄥ崟鏄剧ず鏍峰紡", - prop: "formdisplaystyle", + prop: "formDisplayStyle", width: 105, cell: false, }, { label: "琛ㄦ牸鏄剧ず鏍峰紡", - prop: "tabledisplaystyle", + prop: "tableDisplayStyle", width: 105, cell: false, }, { label: "琛ㄥ崟瓒呴摼鎺�", - prop: "formhref", + prop: "formHref", width: 95, cell: false, }, { label: "琛ㄦ牸瓒呴摼鎺�", - prop: "tablehref", + prop: "tableHref", width: 95, cell: false, }, { label: "琛ㄦ牸鏄剧ずjs", - prop: "tabledisplayjs", + prop: "tableDisplayJs", width: 95, cell: false, }, { label: "闀垮害", - prop: "controllength", + prop: "controlLength", cell: false, }, { label: "灏忔暟绮惧害", - prop: "precisionlength", + prop: "precisionLength", cell: false, }, { label: "鍙栧�艰寖鍥�", - prop: "valuearea", + prop: "valueArea", sortable: true, cell: false, width: 105, }, ], + List:[] } } }, mounted() { - console.log(this.attrEditVisible) - console.log(this.ProData) + }, + created() { + }, methods: { - + //灞炴�у垎缁勬寜閽� + attrVisibleHandle(){ + if(this.CrudSelect.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬�') + }else if(this.CrudSelect<1){ + this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉垮睘鎬�') + }else if(this.CrudSelect.length === 1){ + this.attrVisible=true; + } + }, + //灞炴�у垎缁勬彁浜� + attrHandle(){ + this.$set(this.attrRow,'attributeGroup',this.attrModel) + this.attrModel="" + this.attrVisible=false + }, + //灞炴�у垎缁勬竻绌� + attrRemove(){ + this.attrModel="" + }, + //琛ㄦ牸鏁版嵁 + CrudRend(){ + if(this.crudOid != ''){ + gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.crudOid}).then(res => { + this.ProData = res.data.data; + }).catch(res => { + this.$message.error(res) + }) + } + }, + //涓氬姟绫诲瀷淇濆瓨 + busineAddHandle(){ + if(this.busineSelectList.length>1){ + this.$message.warning('璇烽�夋嫨涓�鏉′笟鍔$被鍨嬫暟鎹�') + }else { + this.$set(this.busineAddList,'classifytemplateoid',this.crudOid) + this.$set(this.busineAddList,'oid','') + this.ProData.push(JSON.parse(JSON.stringify(this.busineAddList))) + console.log(this.busineAddList) + this.addVisible=false; + console.log('prodata',this.ProData) + } + }, + //涓氬姟绫诲瀷鍗曢�� + businessSelect(selection,row){ + this.busineSelectList=selection + this.busineAddList=row + }, // 浠庝笟鍔$被鍨嬩腑閫夋嫨鏁版嵁 busineHandle(){ if(this.crudArray.length<1){ @@ -1009,36 +1072,42 @@ }) } }, - // 绾ц仈灞炴�� + // 绾ц仈灞炴�ф寜閽� CascadeHandle(){ - if(this.CrudSelect.length >0){ + if(this.CrudSelect.length >1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬�') + }else if(this.CrudSelect.length<1){ + this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉垮睘鎬�') + }else if(this.CrudSelect.length === 1){ this.CascadeVisible=true; gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[0].oid, 'conditionMap[oid_notequal]':this.CrudOid }).then(res=>{ - this.CascadeData=res.data.data + this.CascadeData=res.data.data; }) - }else { - this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉垮睘鎬�') } }, //琛ㄦ牸鍗曢�� selectHandle(selection,row){ this.CrudOid=row.oid; - this.CrudSelect=selection + this.CrudSelect=selection; + this.attrRow=row; + console.log(selection.length) }, + //淇濆瓨 addsHandler(){ - + batchAddSave(this.ProData).then(res=>{ + console.log(res) + this.$message.success('淇濆瓨鎴愬姛') + }) }, - // screenEdit(){ - // debugger - - // this.attrEditVisible=true; - // }, - // outEdit(){ - // debugger - // this.attrEditVisible=false; - // }, + //绾ц仈淇濆瓨 + CascadeAddHandle(){ + let CascadeString=""; + CascadeString=this.attrRow.id+(this.attrRow.name); + this.$set(this.attrRow,'parentCode',CascadeString) + this.CascadeVisible=false; + }, //绾ц仈灞炴�ф竻闄� casRemove() { this.selectRow = "" @@ -1047,14 +1116,13 @@ CascaderowClick(row) { this.selectRow = row.$index console.log(row) - this.$message.success('閫夋嫨搴忓彿' + row.$index) }, // 鏋氫妇娉ㄥ叆娣诲姞涓�琛岀┖鏁版嵁 addRow() { - this.tableData.push({ - name: "", - age: "" - }); + this.tableData.push(JSON.parse(JSON.stringify({ + key: "", + value: "" + }))); }, // 鏋氫妇娉ㄥ叆鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮 handleCellClick(row, column) { @@ -1065,6 +1133,31 @@ enumDeleteRow(row) { console.log(row) this.tableData.splice(row, 1) + }, + //鏋氫妇娉ㄥ叆鎸夐挳 + enmuVisHandle(){ + if(this.CrudSelect.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬�') + }else if(this.CrudSelect<1){ + this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉垮睘鎬�') + }else if(this.CrudSelect.length === 1){ + this.enumVisible=true; + } + }, + //鏋氫妇娉ㄥ叆澶氶�夋 + handleSelectionChange(row){ + console.log(row) + this.enumRow=JSON.parse(JSON.stringify(row)); + }, + //鏋氫妇娉ㄥ叆淇濆瓨 + enumAddHandle(){ + console.log(this.enumRow) + if(this.enumRow.length<1){ + this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�') + }else { + this.$set(this.attrRow,'enumString',this.enumRow); + this.enumVisible=false; + } }, // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬� saveRow() { @@ -1087,9 +1180,27 @@ rulesExamine() { }, + //鐐瑰嚮鍒嗙被娉ㄥ叆鎸夐挳 + injectBtn(){ + if(this.CrudSelect.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉挎暟鎹�') + }else if(this.CrudSelect.length<1){ + this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉挎暟鎹�') + }else if(this.CrudSelect.length === 1){ + this.injectVisible=true + } + }, + //鍒嗙被娉ㄥ叆淇濆瓨 + injectAddHandle(){ + this.$set(this.attrRow,'classifyInvokeLevel',this.injectOption); + this.injectVisible=false + }, //鍒嗙被娉ㄥ叆娓呯┖ injectHandleReset() { - console.log("娓呯┖") + this.injectOption.type=""; + this.injectOption.set=""; + this.injectOption.change=""; + this.injectOption.injectNum=""; }, // 鍒嗙被娉ㄥ叆鍙栨秷 injectRemove() { @@ -1129,6 +1240,56 @@ //鍔犱笂done鍏抽棴淇濆瓨鍚庝笉鍙紪杈戠殑鐘舵�� done() }, + //琛ㄦ牸鎿嶄綔鏍忓垹闄� + CrudRowDel(row){ + this.ProData.splice(row.$index,1) + }, + //琛ㄦ牸鍒犻櫎 + CrudRemove(){ + this.ProData.splice(this.attrRow.$index,1) + }, + //琛ㄦ牸閲嶇疆 + reset(){ + this.CrudRend() + }, + //鍚屾鍒板叾浠栨ā鏉� + syncHandle(){ + if(this.CrudSelect.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬ф暟鎹�') + }else if(this.CrudSelect.length<1){ + this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉垮睘鎬ф暟鎹�') + }else if(this.CrudSelect.length === 1){ + copyto({oid:this.attrRow.oid}).then(res=>{ + this.$message.success('鍚屾鎴愬姛') + }) + } + }, + //缂栫爜鐢宠棰勮 + applicationHandle(){ + this.addvisible=true; + console.log('temp',this.crudOid) + console.log('code',this.codeClassifyOid) + // getFormDefineByTemplate({templateOid:this.crudOid,codeClassifyOid:this.codeClassifyOid}).then(res=>{ + // console.log(res) + // }) + }, + //鍏ㄥ睆缂栬緫 + fullscreenHandle(){ + if(this.crudArray.length<1){ + this.$message.warning('璇烽�夋嫨涓�涓ā鏉�') + }else { + this.attrEditVisible=true; + this.attrFlag=true; + console.log(this.attrEditVisible) + } + + }, + //閫�鍑哄叏灞忕紪杈� + escEdit(){ + this.attrFlagChiledren=false; + this.attrEditVisible=false; + console.log(this.attrEditVisible) + }, // 鎺掑簭 sortChange(val) { console.log(val) diff --git a/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue b/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue index 13cd051..9048526 100644 --- a/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue +++ b/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue @@ -169,7 +169,7 @@ </avue-crud> </basic-container> - <templatePro :ProData="this.ProData" :crudOid="this.crudOid" :crudArray="this.crudArray" :Formlist="this.Formlist"></templatePro> + <templatePro :ProData="this.ProData" :crudOid="this.crudOid" :crudArray="this.crudArray" :Formlist="this.Formlist" :codeClassifyOid="this.codeClassifyOid"></templatePro> </span> </basic-container> </el-main> @@ -437,8 +437,14 @@ methods: { //琛屽崟閫変簨浠� selectHandle(selection,row){ - this.crudOid=row.oid - this.crudArray=selection + this.crudOid=row.oid; + this.crudArray=selection; + gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[0].oid}).then(res => { + this.ProData = res.data.data; + console.log(this.ProData) + }).catch(res => { + this.$message.error(res) + }) }, //鍒嗙被鏍戞暟鎹鐞� getAttr() { @@ -634,6 +640,7 @@ //瀹氫箟涓�涓ā鏉垮睘鎬d锛屾暟鎹槸妯℃澘绠$悊琛ㄦ牸閲岄潰鐨刼id this.nodeClickList = data console.log(data.oid) + this.ProData=[] try { await TreeObjcet(data.oid).then(res => { this.FlagObj = res.data.data @@ -648,14 +655,6 @@ return item.codeclassifyoid == this.nodeClickList.oid } }) - if(this.Formlist.length >0){ - gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[0].oid}).then(res => { - this.ProData = res.data.data; - console.log(this.ProData) - }).catch(res => { - this.$message.error(res) - }) - } }).catch(res => { console.log(res) }) diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue index 27f49f0..5596490 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue @@ -1,14 +1,13 @@ <template> - <vciWebReferTree v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :referConfig="referConfig"></vciWebReferTree> - <vciWebReferTable v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :referConfig="referConfig"></vciWebReferTable> - <vciWebReferDefalut v-else @setValue="setValue" :value="value" :text="text" :referConfig="referConfig"></vciWebReferDefalut> + <vciWebReferTree v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :title="title" :referConfig="referConfig"></vciWebReferTree> + <vciWebReferTable v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :title="title" :referConfig="referConfig"></vciWebReferTable> + <vciWebReferDefalut v-else @setValue="setValue" :value="value" :text="text" :title="title" :referConfig="referConfig"></vciWebReferDefalut> </template> <script> import vciWebReferTree from "./vciWebReferTree.vue"; import vciWebReferTable from "./vciWebReferTable.vue"; -import vciWebReferDefalut from "./vciWebReferTable.vue"; -import {validatenull} from "@/util/validate"; +import vciWebReferDefalut from "./vciWebReferDefalut.vue"; export default { name: "vciWebRefer", props: ["referConfig","value","text"], @@ -16,20 +15,17 @@ data() { return { refertype: this.referConfig.options.type, - isMuti: ("true" == this.referConfig.options.isMuti || this.referConfig.options.isMuti == true || this.referConfig.options.muti == true) ? true : false, - emitData:{} + emitData:{}, + title:'' }; }, - created() { + created() {}, + mounted() { var title = this.referConfig.title || ''; title = title.replace(":", ""); - if (title) { - title = validatenull(this.referConfig.title) ? ('涓恒��' + title + '銆戦�夊彇鍊�') : this.referConfig.title; - } else { - title = validatenull(this.referConfig.title) ? ('涓恒��' + this.referConfig.showField + '銆戦�夊彇鍊�') : this.referConfig.title; - } - this.referConfig.title = title; - this.referConfig.isMuti = this.isMuti; + title = title ? ('涓恒��' + title + '銆戦�夊彇鍊�') : ('涓恒��' + this.referConfig.showField + '銆戦�夊彇鍊�'); + + this.title=title; }, methods: { setValue(value) { @@ -45,9 +41,6 @@ this.$emit("setReferValue", newV); }, } - }, - mounted() { - } } </script> diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue new file mode 100644 index 0000000..8b3ec00 --- /dev/null +++ b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue @@ -0,0 +1,289 @@ +<template> + <div> + <el-dialog :title="title" + v-dialogDrag append-to-body="true" + :visible.sync="visible" + top="0" + class="avue-dialog avue-dialog--top" + :width="referConfig.options.width|| '80%'"> + <avue-crud :option="option" + :table-loading="loading" + :data="data" + :page.sync="page" + v-model="value" + ref="referDefalutCrud" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @refresh-change="refreshChange" + @on-load="onLoad"> + </avue-crud> + <div class="avue-dialog__footer"> + <div class="avue-dialog__footer--left valueInfo">{{ valueInfo }}</div> + <el-button @click="visible=false">鍙� 娑�</el-button> + <el-button @click="setValue" type="primary">纭� 瀹�</el-button> + </div> + </el-dialog> + + <avue-input v-model="text" :placeholder="title" @click="visible=true"></avue-input> + <!--<avue-input-table ref="referTable" :props="props" :column="column" :on-load="onLoad" v-model="value" :placeholder="title" ></avue-input-table> + --> + </div> +</template> + +<script> +import { validatenull } from "@/util/validate"; +import {getList,getLazyList,getTableDefinedUrl} from "@/api/refer/table"; +export default { + name: "vciWebReferDefalut", + props:["referConfig","value","text","title"], + data() { + return { + visible: false, + options: this.referConfig.options, + isMuti: ("true" == this.referConfig.options.isMuti || this.referConfig.options.isMuti == true || this.referConfig.options.muti == true) ? true : false, + props: { + value: this.referConfig.valueField || this.referConfig.options.valueField || 'oid', + label: this.referConfig.textField || this.referConfig.options.textField || "name" + }, + url: this.referConfig.options.url || '/api/ubcs-code/mdmEngineController/defaultReferDataGrid', + tableDefinedUrl:'',//骞冲彴琛ㄦ牸鍦板潃 + copyParam: ['referBo', 'textField', 'valueField', 'displayTable', 'whereSql', 'queryScheme'], + query: {}, + loading: false, + page: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + data:this.referConfig.options.data || [], + selectionList: [], + option: { + addBtn: false, + height: this.referConfig.options.height ? this.referConfig.options.height : 475, + calcHeight: 30, + tip: false, + menu:false, + searchShow: true, + searchMenuSpan: 6, + searchLabelWidth: 90, + border: true, + index: true, + selection: true, + dialogClickModal: false, + highlightCurrentRow: true, + column: [] + } + }; + }, + created() { + this.getParams(); + console.log('referConfig:') + console.log(this.referConfig) + }, + mounted() { + }, + computed:{ + valueInfo:function (){ + return this.text ? ("宸茶缃殑鍊间负[" + this.text + "]"): '鏈缃��' + } + }, + methods: { + getParams:function () { + var queryParams = {}; + if (this.options.extraParams) { + queryParams = this.options.extraParams; + } + if (this.options.useFormKey && this.options.formValues) { + //浣跨敤琛ㄥ崟涓婄殑瀛楁鏉ヨ繃婊� + queryParams['conditionMap["' + (this.options.paramForFormKey ? this.options.paramForFormKey : this.options.useFormKey) + '"]'] = this.options.formValues[this.options.useFormKey]; + } + if (this.options.where) { + for (var key in this.options.where) { + queryParams['conditionMap["' + key + '"]'] = this.options.where[key];//鏂� + } + } + for (var i = 0; i < this.copyParam.length; i++) { + queryParams[this.copyParam[i]] = this.options[this.copyParam[i]]; + } + queryParams["isMuti"] = this.isMuti; + queryParams.muti = this.isMuti; + if (!queryParams['referBo']) { + queryParams['referBo'] = this.options['referBo'] || this.options['referType']; + } + queryParams['referType'] = queryParams['referBo'] + if (this.options.remoteSort && this.options.initSort) { + queryParams['order'] = this.options.initSort.type;//鏂规硶 + queryParams['sort'] = this.options.initSort.field;//瀛楁 + } + if (this.options.conditionParams) { + //璇存槑鏄墿灞曞睘鎬� + for (var key in this.options.conditionParams) { + queryParams['conditionMap["' + key + '"]'] = this.options.conditionParams[key];//鏂扮殑鏂瑰紡 + } + } + if (this.options.sourceDataParams) { + //璇存槑鏄墿灞曞睘鎬� + for (var key in this.options.sourceDataParams) { + if (key && key.constructor === Object) return; + queryParams['sourceData["' + key + '"]'] = this.options.sourceDataParams[key];//鏂扮殑鏂瑰紡 + } + } + if (this.options.replaceParams) { + //璇存槑鏄墿灞曞睘鎬� + for (var key in this.options.replaceParams) { + if (key && key.constructor === Object) return; + queryParams['replaceMap["' + key + '"]'] = this.options.replaceParams[key];//鏂扮殑鏂瑰紡 + } + } + var paramsData = {}; + //涓轰簡澶勭悊鍗曞紩鍙峰拰鍙屽紩鍙风殑 + if (queryParams) { + for (var key in queryParams) { + paramsData[key.replace(/"/g, "'")] = queryParams[key]; + } + } + + if (!this.options.tableConfig || !this.options.tableConfig.cols || this.options.tableConfig.cols.length == 0) { + this.option.column = [{ + prop: 'id', + label: '鑻辨枃鍚嶇О', + sort: true, + width: 150, + search: true + }, { + prop: 'name', + label: '涓枃鍚嶇О', + sort: true, + width: 150, + search: true + }, { + prop: 'description', + label: '鎻忚堪', + width: 250 + }, { + prop: 'secretGradeText', + label: '瀵嗙骇', + width: 60, + hidden: (!this.controllerSecret) + }]; + } else { + this.option.column = this.options.tableConfig.cols.map(item => { + if (item.field != 'LAY_TABLE_INDEX' && item.field != 'LAY_CHECKED') { + return { + ...item, + label: item.title, + prop: item.field, + search: true + } + } + }) + } + if (!paramsData) { + paramsData = { + currentUserReferModelKey: this.options.currentUserReferModelKey, + currentUserReferMethodKey: this.options.currentUserReferMethodKey + }; + } else { + paramsData['currentUserReferModelKey'] = this.options.currentUserReferModelKey; + paramsData['currentUserReferMethodKey'] = this.options.currentUserReferMethodKey; + } + this.params = paramsData; + }, + setValue(){ + if(this.selectionList.length==0){ + this.$message.error( '娌℃湁閫夋嫨鏁版嵁'); + return false; + }else if(this.selectionList.length>1 && !this.isMuti){ + this.$message.error( '姣忔鍙兘閫夋嫨涓�鏉℃暟鎹�'); + return false; + } + + var value = []; + var text = []; + var isMutiValue = (this.props.value.indexOf(",")>-1); + var isMutiRaw = (this.props.label.indexOf(",")>-1); + var _that=this + this.selectionList.forEach((item,_index) =>{ + if(isMutiValue){ + var valueFieldArray = _that.props.value.split(","); + valueFieldArray.forEach((_indexField,_itemField)=>{ + value.push( item[_itemField] + (_that.referConfig.valueSep?_that.referConfig.valueSep:' ')); + }) + }else { + value.push(item[_that.props.value]); + } + if(isMutiRaw) { + var rawFieldArray = _that.props.label.split(","); + rawFieldArray.forEach((_indexField,_itemField)=>{ + text.push(item[_itemField] + (_that.referConfig.textSep?_that.referConfig.textSep:' ')) ; + }) + }else{ + text.push(item[_that.props.label]); + } + }) + + this.value=value.join(','); + this.text=text.join(',') + this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList}); + this.visible=false; + }, + searchReset() { + this.query = {}; + this.onLoad(this.page); + }, + searchChange(params, done) { + this.query = params; + this.page.currentPage = 1; + this.onLoad(this.page, params); + done(); + }, + currentChange(currentPage){ + this.page.currentPage = currentPage; + }, + sizeChange(pageSize){ + this.page.pageSize = pageSize; + }, + selectionChange(list) { + if (!this.isMuti && list.length > 1) { + const nowVal = list.shift(); + this.$refs.referCrud.toggleRowSelection(nowVal, false); + } + this.selectionList = list + }, + selectionClear() { + this.selectionList = []; + this.$refs.referCrud.toggleSelection(); + }, + refreshChange() { + this.onLoad(this.page, this.query); + }, + onLoad(page, params = this.params) { + if(this.url){ + this.loading = true; + getList(Object.assign(params, this.query),page.currentPage, page.pageSize, this.url).then(res => { + const data = res.data.data; + this.page.total = data.total; + this.data = data.records; + this.loading = false; + this.selectionClear(); + }); + } + + } + } +} +</script> + +<style scoped> +.valueInfo{ + float: left; + border: 1px solid #E9E7E7; + display: inline-block; + vertical-align: middle; + padding: 9px 15px; + line-height: 1; +} +</style> diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue index fbcb212..20bcad7 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue @@ -1,71 +1,350 @@ <template> - <avue-input-table :props="props" :column="column" :on-load="onLoad" v-model="value" :placeholder="placeholder" ></avue-input-table> + <div> + <el-dialog :title="title" + v-dialogDrag append-to-body="true" + :visible.sync="visible" + top="0" + class="avue-dialog avue-dialog--top" + :width="referConfig.options.width|| '80%'"> + <avue-crud :option="option" + :table-loading="loading" + :data="data" + :page.sync="page" + v-model="value" + ref="referCrud" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @refresh-change="refreshChange" + @on-load="onLoad"> + </avue-crud> + <div class="avue-dialog__footer"> + <div class="avue-dialog__footer--left valueInfo">{{ valueInfo }}</div> + <el-button @click="visible=false">鍙� 娑�</el-button> + <el-button @click="setValue" type="primary">纭� 瀹�</el-button> + </div> + </el-dialog> + + <avue-input v-model="text" :placeholder="title" @click="visible=true"></avue-input> + <!--<avue-input-table ref="referTable" :props="props" :column="column" :on-load="onLoad" v-model="value" :placeholder="title" ></avue-input-table> + --> + </div> </template> <script> +import { validatenull } from "@/util/validate"; +import {getList,getLazyList,getTableDefinedUrl} from "@/api/refer/table"; export default { name: "vciWebReferTable", - props:["referConfig","value"], + props:["referConfig","value","text","title"], data() { return { - placeholder:this.referConfig.placeholder || '璇烽�夋嫨鏁版嵁', - column:{ - children:{ - border: true, - column: [{ - label: '濮撳悕', - width: 120, - search:true, - prop: 'name' - }, { - label: '鎬у埆', - search:true, - prop: 'sex' - }], - }, - }, + visible: false, + options: this.referConfig.options, + isMuti: ("true" == this.referConfig.options.isMuti || this.referConfig.options.isMuti == true || this.referConfig.options.muti == true) ? true : false, props: { value: this.referConfig.valueField || this.referConfig.options.valueField || 'oid', label: this.referConfig.textField || this.referConfig.options.textField || "name" + }, + url: this.referConfig.options.url || '/api/ubcs-code/mdmEngineController/defaultReferDataGrid', + tableDefinedUrl:'',//骞冲彴琛ㄦ牸鍦板潃 + copyParam: ['referBo', 'textField', 'valueField', 'displayTable', 'whereSql', 'queryScheme'], + query: {}, + loading: false, + page: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + data:this.referConfig.options.data || [], + selectionList: [], + objTree: {//鐢ㄤ簬琛ㄦ牸鏍戯紝鐩墠杩樻病鍔犱笂浣跨敤 + keyId: 'oid',//鏍戝舰id瀛楁鍚嶇О + keyPid: 'parentSaleProduct',//鏍戝舰鐖秈d瀛楁鍚嶇О + title: 'id',//浠ユ爲褰㈠紡鏄剧ず鐨勫瓧娈� + defaultShow: false//榛樿鎶樺彔 + }, + option: { + addBtn: false, + height: this.referConfig.options.height ? this.referConfig.options.height : 475, + calcHeight: 30, + tip: false, + menu:false, + searchShow: true, + searchMenuSpan: 6, + searchLabelWidth: 90, + border: true, + index: true, + selection: true, + dialogClickModal: false, + highlightCurrentRow: true, + column: [] } }; }, + created() { + this.getParams(); + console.log('referConfig:') + console.log(this.referConfig) + }, + mounted() { + }, + computed:{ + valueInfo:function (){ + return this.text ? ("宸茶缃殑鍊间负[" + this.text + "]"): '鏈缃��' + } + }, methods: { - onLoad({page, value, data}, callback) { - //棣栨鍔犺浇鍘绘煡璇㈠搴旂殑鍊� - if (value) { - this.$message.success('棣栨鏌ヨ' + value) - callback({ - id: '0', - name: '寮犱笁', - sex: '鐢�' - }) - return + getParams:function (){ + var queryParams = {}; + if(this.options.extraParams){ + queryParams = this.options.extraParams; } - if (data) { - this.$message.success('鎼滅储鏌ヨ鍙傛暟' + JSON.stringify(data)) + if(this.options.useFormKey && this.options.formValues){ + //浣跨敤琛ㄥ崟涓婄殑瀛楁鏉ヨ繃婊� + queryParams['conditionMap["' + (this.options.paramForFormKey?this.options.paramForFormKey:this.options.useFormKey) + '"]'] = this.options.formValues[this.options.useFormKey]; } - if (page) { - this.$message.success('鍒嗛〉鍙傛暟' + JSON.stringify(page)) + if(this.options.where ) { + for (var key in this.options.where) { + queryParams['conditionMap["' + key + '"]'] = this.options.where[key];//鏂� + } } - //鍒嗛〉鏌ヨ淇℃伅 - callback({ - total: 2, - data: [{ - id: '0', - name: '寮犱笁', - sex: '鐢�' - }, { - id: '1', - name: '鏉庡洓', - sex: '濂�' - }] + for(var i= 0 ; i < this.copyParam.length ; i ++){ + queryParams[this.copyParam[i]] = this.options[this.copyParam[i]]; + } + queryParams["isMuti"]=this.isMuti; + queryParams.muti =this.isMuti; + if(!queryParams['referBo']){ + queryParams['referBo'] = this.options['referBo'] || this.options['referType']; + } + queryParams['referType']= queryParams['referBo'] + if (this.options.remoteSort && this.options.initSort) { + queryParams['order'] = this.options.initSort.type;//鏂规硶 + queryParams['sort'] = this.options.initSort.field;//瀛楁 + } + if (this.options.conditionParams) { + //璇存槑鏄墿灞曞睘鎬� + for (var key in this.options.conditionParams) { + queryParams['conditionMap["' + key + '"]'] = this.options.conditionParams[key];//鏂扮殑鏂瑰紡 + } + } + if (this.options.sourceDataParams) { + //璇存槑鏄墿灞曞睘鎬� + for (var key in this.options.sourceDataParams) { + if (key && key.constructor === Object) return; + queryParams['sourceData["' + key + '"]'] = this.options.sourceDataParams[key];//鏂扮殑鏂瑰紡 + } + } + if (this.options.replaceParams) { + //璇存槑鏄墿灞曞睘鎬� + for (var key in this.options.replaceParams) { + if (key && key.constructor === Object) return; + queryParams['replaceMap["' + key + '"]'] = this.options.replaceParams[key];//鏂扮殑鏂瑰紡 + } + } + var paramsData = {}; + //涓轰簡澶勭悊鍗曞紩鍙峰拰鍙屽紩鍙风殑 + if(queryParams){ + for (var key in queryParams){ + paramsData[key.replace(/"/g, "'")] = queryParams[key]; + } + } + + if(this.options.displayTable){ + //璇存槑鏄娇鐢ㄥ钩鍙扮殑琛ㄦ牸 + getTableDefinedUrl({btmType:(this.options.referBo||this.options.referType),code:this.options.displayTable,isMuti:this.isMuti},this.tableDefinedUrl).then(result => { + if(result.success){ + var queryScheme = result.querySchema; + if(!validatenull(queryScheme) && validatenull(this.options.queryScheme)){ + this.options.queryScheme = queryScheme; + } + paramsData['queryScheme'] = this.options.queryScheme; + if(result.showIndex){ + this.option.index = true; + } + if(result.showCheckbox){ + this.option.selection = true + } + var referColumn = ""; + if(result.columns){ + this.option.column= result.columns.map(item => { + if(item.field.indexOf(".")>-1){ + referColumn += item.field + ","; + item.field = item.field.replace(".","_"); + } + if(!validatenull(item.enumCode)) { + //鏄灇涓剧殑鍐呭 + item.type = 'select'; + item.dicUrl = "/api/ubcs-omd/enum/dictionary?code=" + item.enumCode; + item.dicData = item.enumMap; + item.dataType = "String"; + item.search = true; + item.props = { + label: "itemName", + value: "itemValue" + }; + item.rules = [{ + required: true, + message: "璇疯緭鍏�" + item.field, + trigger: "blur" + }]; + /*item.formatter=function(d,thisItem){ + var vciWebComboxStore = layui.vciWebComboxStore; + return vciWebComboxStore.getComboxText(thisItem.enumCode,d[thisItem.field]); + };*/ + } + return { + ...item, + label: item.title, + prop: item.field, + search: true + } + }) + } + paramsData['referColumn'] = referColumn; + if(result.limit>0){ + this.page.pageSize = result.limit; + this.page.currentPage=1 + } + if(this.options.isTreeGrid){ + //琛ㄦ牸鏍戝姞涓婇厤缃� + } + this.params=paramsData; + }else{ + this.$message.error(result.msg); + } + + }); + }else{ + //璇存槑鏄嚜瀹氫箟鐨勮〃鏍� + var tableConfig = this.options.tableConfig; + if(!tableConfig){ + this.$message.error( '娌℃湁瀹氫箟鍙傜収鐨勮〃鏍奸厤缃�'); + } + this.page.pageSize=tableConfig.page.limit || 10; + if(!paramsData){ + paramsData = { + currentUserReferModelKey:this.options.currentUserReferModelKey, + currentUserReferMethodKey:this.options.currentUserReferMethodKey + }; + }else{ + paramsData['currentUserReferModelKey'] = this.options.currentUserReferModelKey; + paramsData['currentUserReferMethodKey'] = this.options.currentUserReferMethodKey; + } + if(this.options.tableConfig && this.options.tableConfig.cols && this.options.tableConfig.cols.length>0) { + //璇存槑浼犻�掍簡鐨� + this.option.column= this.options.tableConfig.cols.map(item => { + if (item.field != 'LAY_TABLE_INDEX' && item.field != 'LAY_CHECKED') { + return { + ...item, + label: item.title, + prop: item.field, + formatter:item.template, + search: true + } + } + }) + } + if(this.options.isTreeGrid){ + //琛ㄦ牸鏍戝姞涓婇厤缃� + } + } + this.params=paramsData; + }, + setValue(){ + if(this.selectionList.length==0){ + this.$message.error( '娌℃湁閫夋嫨鏁版嵁'); + return false; + }else if(this.selectionList.length>1 && !this.isMuti){ + this.$message.error( '姣忔鍙兘閫夋嫨涓�鏉℃暟鎹�'); + return false; + } + + var value = []; + var text = []; + var isMutiValue = (this.props.value.indexOf(",")>-1); + var isMutiRaw = (this.props.label.indexOf(",")>-1); + var _that=this + this.selectionList.forEach((item,_index) =>{ + if(isMutiValue){ + var valueFieldArray = _that.props.value.split(","); + valueFieldArray.forEach((_indexField,_itemField)=>{ + value.push( item[_itemField] + (_that.referConfig.valueSep?_that.referConfig.valueSep:' ')); + }) + }else { + value.push(item[_that.props.value]); + } + if(isMutiRaw) { + var rawFieldArray = _that.props.label.split(","); + rawFieldArray.forEach((_indexField,_itemField)=>{ + text.push(item[_itemField] + (_that.referConfig.textSep?_that.referConfig.textSep:' ')) ; + }) + }else{ + text.push(item[_that.props.label]); + } }) + + this.value=value.join(','); + this.text=text.join(',') + this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList}); + this.visible=false; + }, + searchReset() { + this.query = {}; + this.onLoad(this.page); + }, + searchChange(params, done) { + this.query = params; + this.page.currentPage = 1; + this.onLoad(this.page, params); + done(); + }, + currentChange(currentPage){ + this.page.currentPage = currentPage; + }, + sizeChange(pageSize){ + this.page.pageSize = pageSize; + }, + selectionChange(list) { + if (!this.isMuti && list.length > 1) { + const nowVal = list.shift(); + this.$refs.referCrud.toggleRowSelection(nowVal, false); + } + this.selectionList = list + }, + selectionClear() { + this.selectionList = []; + this.$refs.referCrud.toggleSelection(); + }, + refreshChange() { + this.onLoad(this.page, this.query); + }, + onLoad(page, params = this.params) { + if(this.url){ + this.loading = true; + getList(Object.assign(params, this.query),page.currentPage, page.pageSize, this.url).then(res => { + const data = res.data.data; + this.page.total = data.total; + this.data = data.records; + this.loading = false; + this.selectionClear(); + }); + } + } } } </script> <style scoped> - +.valueInfo{ + float: left; + border: 1px solid #E9E7E7; + display: inline-block; + vertical-align: middle; + padding: 9px 15px; + line-height: 1; +} </style> diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue index 4180372..118ea81 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue @@ -1,27 +1,31 @@ <template> - <avue-input-tree ref="referTree" :props="props" :lazy="lazy" :tree-load="treeLoad" :node-click="nodeClick" :leaf-only="!referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="placeholder" :dic="treeData"></avue-input-tree> + <avue-input-tree ref="referTree" :props="props" :lazy="lazy" :tree-load="treeLoad" :node-click="nodeClick" :checked="checked" :leaf-only="referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="title" :dic="treeData"></avue-input-tree> </template> <script> import {getTree,getLazyTree} from "@/api/refer/tree"; +import {validatenull} from "@/util/validate"; export default { name: "vciWebReferTree", - props:["referConfig","value","text"], + props:["referConfig","value","text","title"], data() { return { options: this.referConfig.options, lazy: this.referConfig.options.loadType == 'node', - isMuti: this.referConfig.isMuti, - placeholder: this.referConfig.placeholder || '璇烽�夋嫨鍐呭', + isMuti:("true" == this.referConfig.options.isMuti || this.referConfig.options.isMuti == true || this.referConfig.options.muti == true) ? true : false, props: { - value: this.referConfig.valueField || this.referConfig.options.valueField || 'oid', - label: this.referConfig.textField || this.referConfig.options.textField || "name" - //value:"value", - //label:"title" + value: 'oid', + label: "name" }, - treeUrl: this.referConfig.options.url || '/api/ubcs-code/codeClassify/treeCodeClassify', + config:{ + valueField: this.referConfig.valueField || this.referConfig.options.valueField || 'oid', + textField:this.referConfig.textField || this.referConfig.options.textField || "name", + textSep:this.referConfig.textSep || ' ' + }, + treeUrl: this.referConfig.options.url || '/api/ubcs-code/mdmEngineController/defaultReferTree', treeData: [], + selectionList: [], currentNode:{}, params: {}, loadType: {'all': 'all', 'node': 'node'}, @@ -42,6 +46,7 @@ } } }, + computed:{}, methods: { getParams:function (){ var queryParams = {}; @@ -56,10 +61,10 @@ } } queryParams['referBo'] = this.options['referBo'] || this.options['referType']; + queryParams['referType']= queryParams['referBo'] queryParams['selectAllLevel'] = (this.options.loadType == this.loadType.all?true:false);//true鏃跺悗鍙颁細鎶ラ敊 - if(queryParams.isMuti =="true"){ - queryParams.muti =true; - } + + queryParams.muti =this.isMuti; if(queryParams.isQueryAllColumn =="true"){ queryParams.isQueryAllColumn = true; } @@ -143,16 +148,45 @@ })) }); }, - nodeClick(data){ - //涓嶈鐢╳atch鐩戝惉value鍊硷紝浼氭壘涓嶅埌text - this.value=data[this.props.value]; - this.text=data[this.props.label]; - this.currentNode=data; - this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.currentNode}); + nodeClick(data, node, nodeComp){ + if(!this.isMuti) { + this.setValue({checkedNodes:[data]}) + } + }, + checked(checkedNode, checkedData) { + this.setValue(checkedData) + }, + setValue:function (checkedData){ + var value = []; + var text = []; + const textSep =this.config.textSep; + for(var j =0;j<checkedData.checkedNodes.length;j++){ + const item=checkedData.checkedNodes[j]; + var v=this.config.valueField.indexOf("attribute.")>=0?item.attributes[this.config.valueField.replace("attribute.","")]:(item.attributes[this.config.valueField] || item[this.config.valueField]) + value.push(v); + var tempRaw = []; + var textFieldArray = this.config.textField.split(","); + for (var i = 0; i < textFieldArray.length; i++) {//鏄剧ず鐨勫瓧娈靛彲鑳芥湁澶氫釜 + if (!validatenull(textFieldArray[i])) { + var t=textFieldArray[i].indexOf("attribute.")>=0?item.attributes[textFieldArray[i].replace("attribute.","")]:(item.attributes[textFieldArray[i]] || item[textFieldArray[i]]) + tempRaw.push(t); + } + } + text.push(tempRaw.join(textSep)); + } + this.value = value.join(','); + this.text = text.join(',') + this.$emit("setValue", { + field: this.referConfig.field, + showField: this.referConfig.showField, + value: this.value, + text: this.text || '', + isTreeMuti:this.isMuti, + rawData: checkedData.checkedNodes + }); } }, - watch:{ - } + watch:{} } </script> diff --git a/Source/UBCS-WEB/src/components/template/FlowPath.vue b/Source/UBCS-WEB/src/components/template/FlowPath.vue index 28885d6..2d7a508 100644 --- a/Source/UBCS-WEB/src/components/template/FlowPath.vue +++ b/Source/UBCS-WEB/src/components/template/FlowPath.vue @@ -1,32 +1,18 @@ <template> - <el-dialog title="妯℃澘娴佺▼" width="90%" append-to-body="true" :visible.sync="dialogVisible"> + <avue-crud ref="crud" :table-loading="loading" :data="data" v-model="form" :option="option" :page.sync="page" :search.sync="search" @on-load="getDataList" @row-save="handleSave" @row-del="handleDelete" @row-update="handleEdit" @refresh-change="handleRefresh" @size-change="handleSizePage" - @current-change="handleCurrentPage" @selection-change="selectionChange" @row-click="handleRowClick"> - <template slot="menuLeft"> - <el-button icon="el-icon-delete" size="small" type="danger" @click="handleDeleteByIds">鍒� 闄� - </el-button> - </template> - <template slot="search" slot-scope="{row,size}"> - <el-input :placeholder="`璇疯緭鍏�${selectValue === 'id' ? '绯荤粺缂栧彿' : '绯荤粺鍚嶇О'}骞舵寜鍥炶溅鏌ヨ`" :size="size" - style="width:300px;margin-left: 10px;" v-model="search[selectValue]" clearable - @keyup.enter.native="handleEnter" @clear="handleClear"></el-input> - </template> + @current-change="handleCurrentPage"> </avue-crud> - </el-dialog> + </template> <script> -import { getFlowpathList, getStartList, flowpathSave } from '@/api/template/flowpath.js' +import { getFlowpathList, getStartList, flowpathSave, flowpathDelete } from '@/api/template/flowpath.js' export default { name: 'FlowPath', props: { - // 鏄惁鎵撳紑 - visible: { - typeof: Boolean, - default: false - }, code: { typeof: String, required: true, @@ -34,16 +20,10 @@ } }, watch: { - visible(n) { - this.dialogVisible = n; - }, - dialogVisible(n) { - this.$emit('update:visible', n) - }, }, data() { return { - dialogVisible: this.visible, + loading: false, page: { currentPage: 1, @@ -69,7 +49,6 @@ prop: 'id,name,description,version', order: 'descending' }, - selection: true, column: [ { label: '妯℃澘key', @@ -89,7 +68,7 @@ nodeClick: (data) => { console.log(data) // 鑺傜偣鐐瑰嚮鐨勬椂鍊欎細鑾峰彇鍒版暟鎹� - this.form.modeName = data.name + this.form.modelName = data.name } }, { label: '妯℃澘鍚嶇О', @@ -136,20 +115,20 @@ console.log(this.search) const { pageSize, currentPage } = this.page let param = { size: pageSize, current: currentPage } - const response = await getFlowpathList({ ...param, ...this.search }) + const response = await getFlowpathList({ ...param, ...{ templateId: this.code } }) if (response.status === 200) { console.log(response) this.loading = false const data = response.data.data this.data = data.records this.page.total = data.total - }else this.loading = false + } else this.loading = false }, // 鏂板 async handleSave(row, done, loading) { console.log(row) - const response = await flowpathSave({...row,...{templateId:this.code}}) - if(response.status ===200){ + const response = await flowpathSave({ ...row, ...{ templateId: this.code } }) + if (response.status === 200) { loading() console.log(response) this.$message({ @@ -164,9 +143,9 @@ // 缂栬緫 async handleEdit(row, index, done, loading) { console.log(row) - const {modelName,modelKey,buttonTypeKey,id} = row - let param = {modelName,modelKey,buttonTypeKey,id} - const response = await flowpathSave({...param,...{templateId:this.code}}) + const { modelName, modelKey, buttonTypeKey, id } = row + let param = { modelName, modelKey, buttonTypeKey, id } + const response = await flowpathSave({ ...param, ...{ templateId: this.code } }) if (response.status === 200) { loading() this.$message({ @@ -180,20 +159,27 @@ }, // 鍒犻櫎鍗曟潯 handleDelete(row) { - const { oid } = row - }, - // 澶氭潯鏁版嵁鍒犻櫎 - handleDeleteByIds() { - + console.log(row) + const { id } = row + this.deleteSysInfo({ id: id }) }, // 鍒犻櫎鎺ュ彛 deleteSysInfo(param) { - this.$confirm('鏄惁纭畾鍒犻櫎閫夋嫨鐨勯泦鎴愮郴缁�?', '鎻愮ず', { + this.$confirm('鏄惁纭畾鍒犻櫎閫夋嫨鐨勬ā鏉挎祦绋�?', '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', type: 'warning' }).then(async () => { // 鎺ュ彛 + const response = await flowpathDelete(param) + if (response.status === 200) { + console.log(response) + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛!' + }); + this.getDataList() + } }) }, // enter鎼滅储 @@ -215,15 +201,6 @@ handleCurrentPage(event) { this.page.currentPage = event }, - // 鐐瑰嚮閫夋嫨 - handleRowClick(row) { - this.$refs.crud.toggleRowSelection(row, true) - }, - // 澶氶�� - selectionChange(list) { - console.log(list) - - }, } } -</script> \ No newline at end of file +</script> diff --git a/Source/UBCS-WEB/src/components/template/Stage.vue b/Source/UBCS-WEB/src/components/template/Stage.vue new file mode 100644 index 0000000..ef29b0f --- /dev/null +++ b/Source/UBCS-WEB/src/components/template/Stage.vue @@ -0,0 +1,259 @@ +<template> + <el-dialog title="妯℃澘闃舵" width="90%" append-to-body="true" :visible.sync="dialogVisible"> + <avue-crud ref="crud" :table-loading="loading" :data="data" :option="option" :page.sync="page" + @on-load="getDataList" @size-change="handleSizePage" @current-change="handleCurrentPage" + @row-click="handleRowClick"> + <template slot-scope="{type,size,row,index}" slot="menu"> + <el-button icon="el-icon-check" :size="size" :type="type" + @click="handleMaintenance(row, index)">缁存姢</el-button> + </template> + </avue-crud> + <el-dialog title="妯℃澘闃舵" width="50%" append-to-body="true" :visible.sync="dialogNode"> + <avue-crud ref="crud" :table-loading="loading" :data="stageData" :option="stageOption" @on-load="getStagelist" + @row-click="handleRowStageClick"> + <template slot-scope="{type,size,row,index}" slot="menu"> + <el-button icon="el-icon-check" :size="size" :type="type" + @click="handleMaintenanceTransfer(row, index)">缁存姢</el-button> + </template> + </avue-crud> + </el-dialog> + <table-transfer :visible.sync="dialogTransfer" v-model="listVal" :dataList="tableData" :columns="columns" + keyName="oid" @save="handleSave"></table-transfer> + </el-dialog> +</template> + +<script> +import { getFlowpathList, stagelist, attributeListRight, attributeList, attributeSave } from '@/api/template/flowpath.js' +import TableTransfer from '@/components/template/TableTransfer' +export default { + name: 'Stage', + components: { + TableTransfer + }, + props: { + // 鏄惁鎵撳紑 + visible: { + typeof: Boolean, + default: false + }, + code: { + typeof: String, + required: true, + default: "" + } + }, + watch: { + visible(n) { + this.dialogVisible = n; + }, + dialogVisible(n) { + this.$emit('update:visible', n) + }, + }, + computed: { + tableData() { + return this.setTable() + }, + listVal() { + let data = this.setTable() + let newdata = data.map(item => { + return item.checked ? item.oid : undefined + }) + console.log(newdata.filter(item => item)) + return newdata.filter(item => item) + } + }, + data() { + const options = { + height: "auto", + border: true, + addBtn: false, + align: 'center', + menuAlign: 'center', + index: true, + searchMenuSpan: 8, + searchBtn: false, + emptyBtn: false, + columnBtn: false, + delBtn: false, + refreshBtn: false, + header: false, + editBtn: false, + } + return { + list: [], + listRight: [], + dialogVisible: this.visible, + dialogTransfer: false, + dialogNode: false, + visibleTable: false, + loading: false, + page: { + currentPage: 1, + pageSize: 10, + total: 0 + }, + modelKey: '', + data: [], + stageData: [], + saveParam: {}, + columns: [ + { + key: "oid", + label: "oid", + visible: false, + }, + { + key: "id", + label: "灞炴�х紪鍙�", + visible: true, + }, + { + key: "name", + label: "灞炴�у悕绉�", + visible: true, + }, + { + key: "attributeGroup", + label: "灞炴�у垎缁�", + visible: true, + }, + ], + option: { + ...options, + column: [ + { label: '妯℃澘缂栧彿', prop: 'modelKey' }, + { label: '妯℃澘鍚嶇О', prop: 'modelName' }, + { label: '鎻忚堪', prop: 'buttonTypeValue' }, + ] + }, + stageOption: { + ...options, + column: [ + { label: '闃舵缂栧彿', prop: 'taskId' }, + { label: '闃舵鍚嶇О', prop: 'taskName' }, + ] + }, + } + }, + mounted() { + this.getAttributeList() + }, + methods: { + setTable() { + return this.list.map(item => { + if (this.listRight.length !== 0) { + this.listRight.forEach(element => { + if (item.id === element.attrId) item.checked = true + }); + } + return item + }) + }, + // 鑾峰彇鍒楄〃 + async getDataList() { + this.loading = false + const { pageSize, currentPage } = this.page + let param = { size: pageSize, current: currentPage } + const response = await getFlowpathList({ ...param, ...{ templateId: this.code } }) + if (response.status === 200) { + console.log(response) + this.loading = false + const data = response.data.data + this.data = data.records + this.page.total = data.total + } else this.loading = false + }, + // 鑾峰彇闃舵鍒楄〃 + async getStagelist() { + this.loading = false + console.log(this.modelKey) + const response = await stagelist({ modelKey: this.modelKey }) + if (response.status === 200) { + this.loading = false + console.log(response.data) + this.stageData = response.data.data + } else this.loading = false + }, + // 鑾峰彇鍏ㄩ儴灞炴�� + async getAttributeList() { + const response = await attributeList({ 'conditionMap[classifyTemplateOid]': this.code }) + if (response.status === 200) { + const data = response.data.data + this.list = data.records.map(item => { + const { oid, id, name, attributeGroup } = item + return { oid, id, name, attributeGroup, ...{ checked: false } } + }) + } + }, + // 鑾峰彇宸蹭繚瀛樺睘鎬� + async getAttributeListRight() { + const response = await attributeListRight({ templateId: this.code, modelKey: this.modelKey, taskId: this.saveParam.taskId }) + if (response.status === 200) { + let data = response.data.data + data = data.map(item => { + const { attrId, attrName, attrGroup } = item + return { attrId, attrName, attrGroup } + }) + this.listRight = data + } + }, + // 缁存姢 + handleMaintenance(row) { + console.log(row) + this.dialogNode = true + this.saveParam.modelKey = row.modelKey + }, + handleMaintenanceTransfer(row) { + console.log(row) + this.dialogTransfer = true + this.saveParam.taskId = row.taskId + this.saveParam.taskName = row.taskName + this.getAttributeListRight() + }, + handleSizePage(event) { + this.page.pageSize = event + }, + handleCurrentPage(event) { + this.page.currentPage = event + }, + handleRowClick(row) { + console.log(row) + this.modelKey = row.modelKey + this.saveParam.modelKey = row.modelKey + this.dialogNode = true + }, + handleRowStageClick(row) { + this.dialogTransfer = true + this.saveParam.taskId = row.taskId + this.saveParam.taskName = row.taskName + this.getAttributeListRight() + }, + async handleSave(event) { + console.log(event) + const data = event.map(item => { + const { id, name, attributeGroup } = item + return { attrId: id, attrName: name, attrGroup: attributeGroup } + }) + let param = { + templateId: this.code, + processStageAttr: data, + ...this.saveParam + } + console.log(this.saveParam) + console.log(data) + const response = await attributeSave(param) + if (response.status === 200) { + // loading() + console.log(response) + this.$message({ + type: 'success', + message: '鏂板鏁版嵁鎴愬姛锛�' + }) + // done() + // this.getDataList() + } + } + } +} +</script> diff --git a/Source/UBCS-WEB/src/components/template/TableTransfer.vue b/Source/UBCS-WEB/src/components/template/TableTransfer.vue new file mode 100644 index 0000000..488fb95 --- /dev/null +++ b/Source/UBCS-WEB/src/components/template/TableTransfer.vue @@ -0,0 +1,322 @@ +<template> + <el-dialog :title="title" width="70%" append-to-body="true" :visible.sync="dialogVisible"> + <el-row :gutter="20"> + <el-col :span="11"> + <el-card class="box-card"> + <div slot="header" class="clearfix"> + <span>鍒濆鏁版嵁</span> + <el-input class="input" v-if="showSearch" v-model="searchLeft" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" + @keyup.enter.native="handleEnter"></el-input> + </div> + <el-table ref="transferLeftTable" :data="leftData" height="500" highlight-current-row + tooltip-effect="dark" @selection-change="handleLeftSelectionChange" @row-click="handleLeftRowClick"> + <el-table-column type="selection" width="50" align="center" fixed="left" :selectable="selectable" /> + <div v-for="(item, index) in columns" :key="index"> + <el-table-column v-if="item.visible" :label="item.label" align="center" :prop="item.key" /> + </div> + </el-table> + </el-card> + </el-col> + <el-col :span="2" class="btns" :style="{ height: '500px' }"> + <el-button class="btn" :disabled="leftMultiple" type="primary" icon="el-icon-arrow-right" + @click="moveToRight" circle></el-button> + <el-button class="btn" :disabled="rightMultiple" type="primary" @click="moveToLeft" + icon="el-icon-arrow-left" circle></el-button> + </el-col> + <el-col :span="11"> + <el-card class="box-card"> + <div slot="header" class="clearfix"> + <span>鏀瑰彉鏁版嵁</span> + <el-input class="input" v-if="showSearch" v-model="searchRight" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"></el-input> + </div> + <el-table ref="transferRightTable" :data="rightData" height="500" highlight-current-row + tooltip-effect="dark" @selection-change="handleRightSelectionChange" + @row-click="handleRightRowClick"> + <el-table-column type="selection" width="50" align="center" fixed="left" /> + <div v-for="(item, index) in columns" :key="index"> + <el-table-column v-if="item.visible" :label="item.label" align="center" :prop="item.key" /> + </div> + </el-table> + </el-card> + </el-col> + </el-row> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="tableTransferSave">淇濆瓨</el-button> + </div> + </el-dialog> +</template> + +<script> +export default { + name: 'TableTransfer', + model: { + prop: "value", + event: "change", + }, + props: { + // 鏄惁鎵撳紑 + visible: { + typeof: Boolean, + default: false + }, + title: { + typeof: String, + default: '妯℃澘闃舵缁存姢' + }, + //缁戝畾鏁版嵁 + value: { + type: Array, + default: () => { + return []; + }, + }, + //涓婚敭key鍊� + keyName: { + type: String, + default: "id", + }, + columns: { + type: Array, + default: () => { + return []; + }, + }, + dataList: { + type: Array, + default: () => { + return []; + }, + }, + /** + * 鏄惁鏄剧ず鎼滅储妗� + */ + showSearch: { + type: Boolean, + default: true, + }, + }, + + watch: { + visible(n) { + this.dialogVisible = n; + }, + dialogVisible(n) { + this.$emit('update:visible', n) + }, + searchLeft: { + handler: function () { + this.handleQueryLeft(); + }, + deep: true, + }, + searchRight: { + handler: function () { + this.handleQueryRight(); + }, + deep: true, + }, + dataList: { + handler(data) { + console.log(data) + + }, + deep: true, + } + }, + data() { + return { + dialogVisible: this.visible, + searchLeft: "", + leftIds: [], + leftMultiple: true, + leftDataList: [], + leftData: [], + searchRight: "", + rightIds: [], + rightMultiple: true, + rightDataList: [], + rightData: [], + } + }, + mounted() { + this.init(); + }, + methods: { + selectable(row, index) { + console.log(row) + return row.checked === false //涓簍rue鐨勬椂鍊欏彲浠ラ�夛紝涓篺alse鍒欎笉鍙�夋嫨 + }, + init() { + this.rightIds = this.value; + console.log(this.rightIds) + for (let i = 0; i < this.dataList.length; i++) { + if (this.value.some((item) => item == this.dataList[i][this.keyName])) { + this.rightDataList.push(this.dataList[i]); + } else { + this.leftDataList.push(this.dataList[i]); + } + } + this.leftData = [...this.leftDataList]; + this.rightData = [...this.rightDataList]; + }, + // left澶氶�夋閫変腑鏁版嵁 + handleLeftSelectionChange(selection) { + this.leftIds = selection.map((item) => item[this.keyName]); + this.leftMultiple = !selection.length; + }, + // right澶氶�夋閫変腑鏁版嵁 + handleRightSelectionChange(selection) { + this.rightIds = selection.map((item) => item[this.keyName]); + this.rightMultiple = !selection.length; + }, + // 鎸夐挳鐐瑰嚮 + moveToRight() { + for (let i = 0; i < this.leftDataList.length; i++) { + let a = this.leftIds.findIndex( + (item) => item == this.leftDataList[i][this.keyName] + ); + console.log(a) + if (a !== -1) { + this.rightDataList.push(this.leftDataList[i]); + // this.leftDataList[i].checked = true + // this.$refs.transferLeftTable.toggleRowSelection(this.leftDataList[i],true) + this.$delete(this.leftDataList, i); + i--; + } + } + // let obj = {} + // let filterright = this.rightDataList.reduce((cur, next) => { + // obj[next.id] ? "" : obj[next.id] = true && cur.push(next); + // return cur; + // }, []) + // console.log('filterright', filterright) + this.leftData = this.setData(this.leftDataList, this.searchLeft); + this.rightData = this.setData(this.rightDataList, this.searchRight); + this.$emit( + "change", + this.rightDataList.map((item) => item[this.keyName]) + ); + }, + // 鎸夐挳鐐瑰嚮 + moveToLeft() { + for (let i = 0; i < this.rightDataList.length; i++) { + let a = this.rightIds.findIndex( + (item) => item == this.rightDataList[i][this.keyName] + ); + if (a !== -1) { + this.leftDataList.push(this.rightDataList[i]); + this.$delete(this.rightDataList, i); + i--; + } + } + // let obj = {} + // let filterleft = this.leftDataList.reduce((cur, next) => { + // obj[next.id] ? "" : obj[next.id] = true && cur.push(next); + // return cur; + // }, []) + // console.log('filterright', filterleft) + this.leftData = this.setData(this.leftDataList, this.searchLeft); + this.rightData = this.setData(this.rightDataList, this.searchRight); + this.$emit( + "change", + this.rightDataList.map((item) => item[this.keyName]) + ); + }, + + handleQueryLeft() { + this.leftData = this.setData(this.leftDataList, this.searchLeft); + }, + handleQueryRight() { + this.rightData = this.setData(this.rightDataList, this.searchRight); + }, + // 鍗曢�� + handleLeftRowClick(row) { + if (this.leftData) { + this.$refs.transferLeftTable.toggleRowSelection(row) + } else { + this.$refs.transferLeftTable.clearSelection() + } + }, + // 鍗曢�� + handleRightRowClick(row) { + if (this.rightData) { + this.$refs.transferRightTable.toggleRowSelection(row) + } else { + this.$refs.transferRightTable.clearSelection() + } + }, + setData(dataList, search) { + if (search != null || search != "") { + let list = []; + for (let i = 0; i < dataList.length; i++) { + if ( + this.columns.some((item) => + dataList[i][item.key].toLowerCase().includes(search.toLowerCase()) + ) + ) { + list.push(dataList[i]); + } + } + return list; + } else { + return dataList; + } + }, + change(val) { + console.log(val); + console.log(this.value) + }, + done() { + this.dialogVisible = false + }, + tableTransferSave() { + this.$emit('save', this.rightData) + this.leftData = [...this.rightData, ...this.leftData] + this.leftDataList = [...this.rightDataList, ...this.leftDataList] + this.rightDataList = [] + this.rightData = [] + + } + }, +} +</script> + +<style lang="scss" scoped> +::v-deep(.el-col>.el-card >.el-card__header) { + background: #fff +} + +.box-card { + background: #fff; +} + +.clearfix { + display: -webkit-box; + display: flex; + display: -ms-flexbox; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.input { + float: right; + padding: 3px 0; + max-width: 400px; +} + +.btns { + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + + .btn { + margin: 20px 0; + } +} +</style> diff --git a/Source/UBCS-WEB/src/main.js b/Source/UBCS-WEB/src/main.js index 297be45..c87fec9 100644 --- a/Source/UBCS-WEB/src/main.js +++ b/Source/UBCS-WEB/src/main.js @@ -48,9 +48,12 @@ import FormTemplateDialog from "@/components/FormTemplate/index" import linkTypeAdd from "@/views/modeling/LinkTypeAdd" import MasterTree from "@/components/Master/MasterTree"; +import FlowPath from "@/components/template/FlowPath"; +import Stage from "@/components/template/Stage"; // 灏嗗伐鍏峰嚱鏁版坊鍔犲埌鍏ㄥ眬 import utilFunc from './util/func' +import flowPath from "@/views/flow/flowPath"; Vue.prototype.$utilFunc = utilFunc // 娉ㄥ唽鍏ㄥ眬crud椹卞姩 window.$crudCommon = crudCommon; @@ -97,6 +100,8 @@ Vue.component('FormTemplateDialog',FormTemplateDialog) Vue.component('LinkTypeAdd',linkTypeAdd) Vue.component('MasterTree',MasterTree) +Vue.component('FlowPath',FlowPath) +Vue.component('Stage',Stage) // 鍔犺浇鐩稿叧url鍦板潃 Object.keys(urls).forEach(key => { diff --git a/Source/UBCS-WEB/src/option/user/info.js b/Source/UBCS-WEB/src/option/user/info.js index de76103..a664bd1 100644 --- a/Source/UBCS-WEB/src/option/user/info.js +++ b/Source/UBCS-WEB/src/option/user/info.js @@ -45,7 +45,7 @@ }] }, { - label: '淇敼瀵嗙爜', + label: '', prop: 'password', column: [{ label: '鍘熷瘑鐮�', diff --git a/Source/UBCS-WEB/src/views/flow/flowPath.vue b/Source/UBCS-WEB/src/views/flow/flowPath.vue index ef76289..2040668 100644 --- a/Source/UBCS-WEB/src/views/flow/flowPath.vue +++ b/Source/UBCS-WEB/src/views/flow/flowPath.vue @@ -2,31 +2,82 @@ <div> <el-button @click="outerVisible = true">娴佺▼娴嬭瘯</el-button> <el-button @click="visibleFlow = true">妯℃澘娴佺▼</el-button> + <el-button @click="visibleStage = true">妯℃澘闃舵</el-button> + <el-button @click="visibleTable = true">table绌挎妗�</el-button> <flow-business :visible.sync="outerVisible"></flow-business> - <flow-path :visible.sync="visibleFlow" code="A12826E4-2B66-6D56-DE30-92BB1D7F607F"></flow-path> + <flow-path :visible.sync="visibleFlow" code="8b5e2017-990f-454a-9c39-4c4eeeb57553"></flow-path> + <stage :visible.sync="visibleStage" code="8b5e2017-990f-454a-9c39-4c4eeeb57553"></stage> + <table-transfer :visible.sync="visibleTable" v-model="value" :dataList="list" :columns="columns" keyName="id" + @change="change"></table-transfer> </div> </template> <script> import FlowBusiness from '@/components/template/Business' import FlowPath from '@/components/template/FlowPath' +import Stage from '@/components/template/Stage' +import TableTransfer from '@/components/template/TableTransfer' export default { - components:{ + components: { FlowBusiness, - FlowPath + FlowPath, + Stage, + TableTransfer }, data() { + const getTables = () => { + let data = [] + for (let i = 0; i < 5; i++) { + let item = { + id: `${i+1}`, + name: 'name', + address: '闆嗗洟鐮�', + data:'', + checked:false, + } + data.push(item) + } + return data + } return { + list: getTables(), + value: [], outerVisible: false, visibleFlow: false, - + visibleStage: false, + visibleTable: false, + + columns: [ + { + key: "id", + label: "id", + visible: false, + }, + { + key: "name", + label: "灞炴�х紪鍙�", + visible: true, + }, + { + key: "address", + label: "灞炴�у悕绉�", + visible: true, + }, + { + key: "address", + label: "灞炴�у垎缁�", + visible: true, + }, + ], + } }, methods: { - + change(val) { + console.log(val); + console.log(this.value) + }, } } </script> -<style lang="scss" scoped> - -</style> \ No newline at end of file +<style lang="scss" scoped></style> \ No newline at end of file diff --git a/Source/UBCS-WEB/src/views/modeling/status.vue b/Source/UBCS-WEB/src/views/modeling/status.vue index 4fb492e..9d7c465 100644 --- a/Source/UBCS-WEB/src/views/modeling/status.vue +++ b/Source/UBCS-WEB/src/views/modeling/status.vue @@ -11,36 +11,41 @@ @row-del="rowDel" @refresh-change="refreshChange" @search-reset="searchChange" - @search-change="searchChange"> + @search-change="searchChange" + @row-click="rowClick"> <template slot="menuLeft"> - <el-tooltip class="item" effect="dark" content="鏌ユ壘鐘舵�佹睜浣跨敤鑼冨洿" placement="top"> + <el-tooltip class="item" effect="dark" content="鏌ユ壘鐘舵�佷娇鐢ㄨ寖鍥�" placement="top"> <el-button size="small" plain type="primary" icon="el-icon-zoom-in" - @click="handleSearch">鏌ョ湅浣跨敤鑼冨洿 + @click="applyRangeSearch">鏌ョ湅浣跨敤鑼冨洿 </el-button> </el-tooltip> - </template>> + </template> + <template slot="radio" + slot-scope="{row}"> + <el-radio v-model="selectRow" + :label="row.$index"> + </el-radio> + </template> </avue-crud> - <el-dialog title="鏌ョ湅浣跨敤鑼冨洿" - append-to-body - :visible.sync="packageSearchBox" - width="1200px"> - <versionpackage></versionpackage> - </el-dialog> + <versionpackage :rangeData="applyRangeData" ref="applyRange"></versionpackage> </basic-container> - + </template> - + <script> - import { getPage,add,update,remove } from '../../api/omd/status'; + import { getPage,add,update,remove,getApplyRange } from '../../api/omd/status'; export default { name: "status", data(){ return { //鏌ョ湅浣跨敤鑼冨洿 packageSearchBox:false, + // 鐐瑰嚮鏁版嵁 + selectRow: '', + selectRowData: {}, //鍒嗛〉鏁版嵁 page: { pageSize: 10, @@ -56,7 +61,14 @@ border: true, index: true, searchMenuSpan:5, + highlightCurrentRow: true, + stripe:true, column:[ + { + label: '', + prop: 'radio', + width: 120 + }, { label:'鑻辨枃鍚嶇О', prop: 'id', @@ -73,12 +85,28 @@ type:'textarea' } ] - } + }, + applyRangeData: [] } }, methods:{ - handleSearch(){ - // this.packageSearchBox=true + rowClick(row){ + this.selectRow = row.$index; + this.selectRowData = row; + }, + applyRangeSearch(){ + if (!this.selectRow && this.selectRow != 0){ + console.log(this.selectRow); + this.$message({ + type:"warning", + message: "璇峰厛閫夋嫨灞炴��" + }) + } + getApplyRange(this.selectRowData.id).then(res => { + this.applyRangeData = res.data.data; + this.$refs.applyRange.rangeData = this.applyRangeData; + this.$refs.applyRange.showDialog = true; + }) }, getList() { this.loading = true; @@ -134,8 +162,7 @@ } } </script> - + <style scoped> - + </style> - \ No newline at end of file diff --git a/Source/UBCS-WEB/vue.config.js b/Source/UBCS-WEB/vue.config.js index 1e8bbca..016eb50 100644 --- a/Source/UBCS-WEB/vue.config.js +++ b/Source/UBCS-WEB/vue.config.js @@ -26,17 +26,16 @@ proxy: { '/api': { //鏈湴鏈嶅姟鎺ュ彛鍦板潃 - target: 'http://localhost:37000', - // target: 'http://localhost:37000', + target: 'http://localhost:37000', // target: 'http://192.168.1.51:37000', - // target: 'http://192.168.3.7:37000', + // target: 'http://192.168.1.46:37000', // target: 'http://dev.vci-tech.com:37000', // target: 'http://192.168.1.51:37000/', - // target: 'http://localhost:37000', + // target: 'http://localhost:37000', // target: 'http://192.168.1.63:37000', - // target: 'http://192.168.3.7:37000', + //target: 'http://192.168.3.7:37000', // target: 'http://dev.vci-tech.com:37000', - // target: 'http://192.168.1.51:37000/', + //target: 'http://192.168.1.51:37000/', //杩滅▼婕旂ず鏈嶅姟鍦板潃,鍙敤浜庣洿鎺ュ惎鍔ㄩ」鐩� // target: 'https://saber.bladex.vip/api', ws: true, diff --git a/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/feign/IDictBizClient.java b/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/feign/IDictBizClient.java index ce51779..59c2b25 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/feign/IDictBizClient.java +++ b/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/feign/IDictBizClient.java @@ -34,7 +34,7 @@ * @author Chill */ @FeignClient( - value = AppConstant.APPLICATION_NAME_OMD, + value = AppConstant.APPLICATION_SYSTEM_NAME, fallback = IDictBizClientFallback.class ) public interface IDictBizClient { diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeClient.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeClient.java index a002604..b9742fa 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeClient.java +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeClient.java @@ -18,6 +18,7 @@ import com.vci.ubcs.omd.entity.Attribute; +import com.vci.ubcs.omd.vo.AttributeVO; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.tool.api.R; import org.springframework.cloud.openfeign.FeignClient; @@ -41,6 +42,8 @@ String GET_BY_ID = API_PREFIX + "/attribute/get-by-id"; String GET_LIST = API_PREFIX + "/attribute/get-list"; + String GET_ALL = API_PREFIX + "/attribute/get-all"; + /** * 鑾峰彇鍏冩暟鎹璞� @@ -57,4 +60,11 @@ */ @GetMapping(GET_LIST) R<List<Attribute>> getList(@RequestParam("key") String key); + + /** + * 鑾峰彇鍏ㄩ儴灞炴�� + * @return 鏌ヨ缁撴灉 + */ + @GetMapping(GET_ALL) + R<List<AttributeVO>> getAll(); } diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeFallback.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeFallback.java index f358100..7080831 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeFallback.java +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeFallback.java @@ -17,6 +17,7 @@ package com.vci.ubcs.omd.feign; import com.vci.ubcs.omd.entity.Attribute; +import com.vci.ubcs.omd.vo.AttributeVO; import org.springblade.core.tool.api.R; import org.springframework.stereotype.Component; @@ -39,5 +40,13 @@ return R.fail("鑾峰彇鏁版嵁澶辫触"); } - + /** + * 鎸夐鍩熻幏鍙栧叏閮ㄥ睘鎬� + * + * @return 鏌ヨ缁撴灉 + */ + @Override + public R<List<AttributeVO>> getAll() { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } } diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java index 7fea663..544e14e 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java @@ -50,11 +50,11 @@ */ String GET_BY_OIDS = API_PREFIX + "/btm-type/get-by-oids"; - String GET_DEFAULT_ATTR_BY_BTM_ID = API_PREFIX + "/btm-attribute/get-default-attr-by-btm-id"; + String GET_DEFAULT_ATTR_BY_BTM_ID = API_PREFIX + "/btm-type/get-default-attr-by-btm-id"; - String GET_ALL_ATTR_BY_BTM_ID = API_PREFIX + "/btm-attribute/get-all-attr-by-btm-id"; + String GET_ALL_ATTR_BY_BTM_ID = API_PREFIX + "/btm-type/get-all-attr-by-btm-id"; - String GET_ALL_ATTR_BY_BTM_OID = API_PREFIX + "/btm-attribute/get-all-attr-by-btm-oid"; + String GET_ALL_ATTR_BY_BTM_OID = API_PREFIX + "/btm-type/get-all-attr-by-btm-oid"; /** * 鑾峰彇涓氬姟绫诲瀷璇︽儏淇℃伅 diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeClient.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeClient.java new file mode 100644 index 0000000..b5f682f --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeClient.java @@ -0,0 +1,136 @@ +package com.vci.ubcs.omd.feign; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.vci.ubcs.omd.vo.LinkTypeVO; +import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tool.api.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * Description: 閾炬帴绫诲瀷Feign鎺ュ彛 + * + * @author LiHang + * @date 2023/6/13 + */ +@FeignClient( + value = AppConstant.APPLICATION_NAME_OMD, + fallback = ILinkTypeFallback.class +) +public interface ILinkTypeClient { + /** + * 鍓嶇紑 + */ + String API_PREFIX = "/client"; + + /** + * 鍒嗛〉鍙傜収鏌ヨ + */ + String GET_REF_PAGE =API_PREFIX + "/link-type/get-ref-page"; + + /** + * 鍙傜収鍒楄〃鏌ヨ鏃犲垎椤� + */ + String GET_REF = API_PREFIX + "/link-type/get-ref"; + /** + * 鍙傜収鏄庣粏 + */ + String GET_DETAIL = API_PREFIX + "/link-type/get-detail"; + /** + * 鑻辨枃鍚嶇О鎵归噺鏌ヨ + */ + String GET_BY_IDS = API_PREFIX + "/link-type/get-by-ids"; + /** + * 涓婚敭鎵归噺鏌ヨ + */ + String GET_BY_OIDS = API_PREFIX + "/link-type/get-by-oids"; + /** + * 鎸夐摼鎺ョ被鍨嬭嫳鏂囧悕绉拌幏鍙栭粯璁ゅ瓧娈� + */ + String GET_DEFAULT_ATTR_BY_LINK_ID = API_PREFIX + "/link-type/get-default-attr-by-link-id"; + + /** + * 鎸夐摼鎺ョ被鍨嬭嫳鏂囧悕绉拌幏鍙栧叏閮ㄥ瓧娈� + */ + String GET_ALL_ATTR_BY_LINK_ID = API_PREFIX + "/link-type/get-all-attr-by-link-id"; + + /** + * 鎸夐摼鎺ョ被鍨嬩富閿幏鍙栧叏閮ㄥ瓧娈� + */ + String GET_ALL_ATTR_BY_LINK_OID = API_PREFIX + "/link-type/get-all-attr-by-link-oid"; + + /** + * 鑾峰彇涓氬姟绫诲瀷璇︽儏淇℃伅 + * + * @param oid 涓婚敭 + * @return 涓氬姟绫诲瀷璇︽儏淇℃伅 + */ + @GetMapping(GET_DETAIL) + R<LinkTypeVO> getDetail(@RequestParam("oid") String oid); + + /** + * 鍙傜収鍒楄〃鏌ヨ + * + * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄 + * @return 鏌ヨ缁撴灉 + */ + @PostMapping(GET_REF_PAGE) + R<Page<LinkTypeVO>> getRefPage(@RequestBody BaseQueryObject baseQueryObject); + + /** + * 鍙傜収鍒楄〃鏌ヨ + * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄 + * @return 鏌ヨ缁撴灉 + */ + @PostMapping(GET_REF) + R<List<LinkTypeVO>> getRef(@RequestBody BaseQueryObject baseQueryObject); + + /** + * 鏍规嵁鑻辨枃鍚嶇О鎵归噺鏌ヨ瀵硅薄 + * @param ids 瀵硅薄鑻辨枃鍚嶇О 浣嗘槸涓嶈兘瓒呰繃1000 + * @return 涓氬姟瀵硅薄 + */ + @PostMapping(GET_BY_IDS) + R<List<LinkTypeVO>> selectByIdCollection(@RequestBody List<String> ids); + + /** + * 鎵归噺鏍规嵁涓婚敭鑾峰彇涓氬姟绫诲瀷 + * @param pkLinkTypeCollection 涓氬姟绫诲瀷涓婚敭闆嗗悎 + * @return 涓氬姟绫诲瀷鍒楄〃锛屽鏋滄湁涓嶅瓨鍦ㄧ殑涓嶄細杩斿洖锛屽叏閮ㄤ笉瀛樺湪鐨勫垯杩斿洖绌哄垪琛� + */ + @PostMapping(GET_BY_OIDS) + R<List<LinkTypeVO>> listLinkTypeByOidCollection(@RequestBody List<String> pkLinkTypeCollection); + + /** + * 鑾峰彇涓氬姟绫诲瀷锛屽彧鏈夐粯璁ゅ瓧娈� + * + * @param linkTypeId 涓氬姟绫诲瀷id + * @return 榛樿瀛楁灞炴�� + */ + @GetMapping(GET_DEFAULT_ATTR_BY_LINK_ID) + R<LinkTypeVO> getDefaultAttrByLinkId(@RequestParam("linkTypeId") String linkTypeId); + + /** + * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeId 涓氬姟绫诲瀷id + * @return 鎵�鏈夊瓧娈� + */ + @GetMapping(GET_ALL_ATTR_BY_LINK_ID) + R<LinkTypeVO> getAllAttributeByLinkId(@RequestParam("linkTypeId") String linkTypeId); + + /** + * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeOid 涓氬姟绫诲瀷涓婚敭 + * @return 鎵�鏈夊瓧娈� + */ + @GetMapping(GET_ALL_ATTR_BY_LINK_OID) + R<LinkTypeVO> getAllAttributeByLinkOid(@RequestParam("linkTypeOid") String linkTypeOid); +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeFallback.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeFallback.java new file mode 100644 index 0000000..8310f6b --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeFallback.java @@ -0,0 +1,104 @@ +package com.vci.ubcs.omd.feign; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.vci.ubcs.omd.vo.LinkTypeVO; +import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; +import org.springblade.core.tool.api.R; + +import java.util.List; + +/** + * Description: 閾炬帴绫诲瀷feign澶辫触鐨勯厤缃被 + * + * @author LiHang + * @date 2023/6/13 + */ +public class ILinkTypeFallback implements ILinkTypeClient{ + /** + * 鑾峰彇涓氬姟绫诲瀷璇︽儏淇℃伅 + * + * @param oid 涓婚敭 + * @return 涓氬姟绫诲瀷璇︽儏淇℃伅 + */ + @Override + public R<LinkTypeVO> getDetail(String oid) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + /** + * 鍙傜収鍒楄〃鏌ヨ + * + * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄 + * @return 鏌ヨ缁撴灉 + */ + @Override + public R<Page<LinkTypeVO>> getRefPage(BaseQueryObject baseQueryObject) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + /** + * 鍙傜収鍒楄〃鏌ヨ + * + * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄 + * @return 鏌ヨ缁撴灉 + */ + @Override + public R<List<LinkTypeVO>> getRef(BaseQueryObject baseQueryObject) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + /** + * 鏍规嵁鑻辨枃鍚嶇О鎵归噺鏌ヨ瀵硅薄 + * + * @param ids 瀵硅薄鑻辨枃鍚嶇О 浣嗘槸涓嶈兘瓒呰繃1000 + * @return 涓氬姟瀵硅薄 + */ + @Override + public R<List<LinkTypeVO>> selectByIdCollection(List<String> ids) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + /** + * 鎵归噺鏍规嵁涓婚敭鑾峰彇涓氬姟绫诲瀷 + * + * @param pkLinkTypeCollection 涓氬姟绫诲瀷涓婚敭闆嗗悎 + * @return 涓氬姟绫诲瀷鍒楄〃锛屽鏋滄湁涓嶅瓨鍦ㄧ殑涓嶄細杩斿洖锛屽叏閮ㄤ笉瀛樺湪鐨勫垯杩斿洖绌哄垪琛� + */ + @Override + public R<List<LinkTypeVO>> listLinkTypeByOidCollection(List<String> pkLinkTypeCollection) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + /** + * 鑾峰彇涓氬姟绫诲瀷锛屽彧鏈夐粯璁ゅ瓧娈� + * + * @param linkTypeId 涓氬姟绫诲瀷id + * @return 榛樿瀛楁灞炴�� + */ + @Override + public R<LinkTypeVO> getDefaultAttrByLinkId(String linkTypeId) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + /** + * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeId 涓氬姟绫诲瀷id + * @return 鎵�鏈夊瓧娈� + */ + @Override + public R<LinkTypeVO> getAllAttributeByLinkId(String linkTypeId) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + /** + * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeOid 涓氬姟绫诲瀷涓婚敭 + * @return 鎵�鏈夊瓧娈� + */ + @Override + public R<LinkTypeVO> getAllAttributeByLinkOid(String linkTypeOid) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java index e2f6a78..1de1374 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java @@ -31,7 +31,8 @@ * @param mapList 闇�瑕佹彃鍏ョ殑鎵�鏈夎褰� * @return 鎻掑叆鎴愬姛鐨勬潯鏁� */ - Integer insertByBaseModel(String tableName,Map<String,String> columnMap,List<Map<String,String>> mapList);/** + Integer insertByBaseModel(String tableName,Map<String,String> columnMap,List<Map<String,String>> mapList); + /** * 浼犲叆琛ㄥ悕锛宮ap锛宭ist<map>瀹屾垚鎵归噺鏇存柊鎿嶄綔 * @param tableName 琛ㄥ悕 * @param mapList 闇�瑕佹洿鏂扮殑鎵�鏈夎褰� @@ -40,4 +41,12 @@ @InterceptorIgnore(tenantLine = "true") Integer updateBatchByBaseModel(String tableName,List<Map<String,String>> mapList); + /** + * 浼犲叆琛ㄥ悕锛宮ap锛宱ids瀹屾垚鎵归噺鍒犻櫎鎿嶄綔 + * @param tableName 琛ㄥ悕 + * @param oids 闇�瑕佸垹闄ょ殑鎵�鏈夎褰� + * @return 鍒犻櫎鎴愬姛鐨勬潯鏁� + */ + Integer deleteByTaleAndOid(String tableName,String oids); + } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java index bacba02..3b79f45 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java @@ -377,7 +377,7 @@ * @param baseModels 澶勭悊鏁版嵁 * @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟 */ - Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception; + Integer insertBatchByType(String btmType, List<BaseModel> baseModels); /** * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩竜id闆嗗悎鏌ヨ鏁版嵁杩涜杩斿洖 * @@ -385,7 +385,7 @@ * @param oids 闇�瑕佹煡璇㈢殑oid闆嗗悎 閫楀彿鍒嗗紑 * @return 鏌ヨ鍑虹殑鏁版嵁 */ - List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException; + List<BaseModel> selectByTypeAndOid(String btmType, String oids) ; /** * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔 * @@ -393,6 +393,6 @@ * @param baseModels 澶勭悊鏁版嵁 * @return 澶勭悊鐘舵�� */ - R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception; + R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java index bfb5344..7071514 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java @@ -89,7 +89,7 @@ private CodeClassifyTemplateButtonServiceImpl codeTempbuttonServiceImpl; @Autowired(required = false) private ICodeClassifyProcessTempService codeClsflowtempServiceImpl; -// @Autowired(required = false) + // @Autowired(required = false) // private CodeClsflowtempMapper codeClsflowtempMapper; @Autowired(required = false) private CodeTemplatePhaseMapper codeTempphaseMapper; @@ -493,34 +493,34 @@ // ClientBusinessObject clientBusinessObject_template_insert = null; // try { // clientBusinessObject_template_insert = clientBusinessObjectOperation.reviseBusinessObject(clientBusinessObject_template, ""); - codeCls_template_insert.setOid(VciBaseUtil.getPk()); - codeCls_template_insert.setRevisionOid(VciBaseUtil.getPk()); - codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); - codeCls_template_insert.setBtmname(codeCls_template.getBtmname()); - codeCls_template_insert.setLastR(String.valueOf(1)); - codeCls_template_insert.setFirstR(String.valueOf(0)); - codeCls_template_insert.setFirstV(String.valueOf(1)); - codeCls_template_insert.setLastV(String.valueOf(1)); - codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName()); - codeCls_template_insert.setCreateTime(new Date()); - codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName()); - codeCls_template_insert.setLastModifyTime(new Date()); - codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule()); - codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule()); - Map rvObj = baseMapper.getNextRevision(codeCls_template.getNameOid()); - codeCls_template_insert.setRevisionSeq(Integer.parseInt(rvObj.get("REVISIONSEQ").toString())); - codeCls_template_insert.setRevisionValue(rvObj.get("REVISIONVAL").toString()); + codeCls_template_insert.setOid(VciBaseUtil.getPk()); + codeCls_template_insert.setRevisionOid(VciBaseUtil.getPk()); + codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); + codeCls_template_insert.setBtmname(codeCls_template.getBtmname()); + codeCls_template_insert.setLastR(String.valueOf(1)); + codeCls_template_insert.setFirstR(String.valueOf(0)); + codeCls_template_insert.setFirstV(String.valueOf(1)); + codeCls_template_insert.setLastV(String.valueOf(1)); + codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setCreateTime(new Date()); + codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setLastModifyTime(new Date()); + codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule()); + codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule()); + Map rvObj = baseMapper.getNextRevision(codeCls_template.getNameOid()); + codeCls_template_insert.setRevisionSeq(Integer.parseInt(rvObj.get("REVISIONSEQ").toString())); + codeCls_template_insert.setRevisionValue(rvObj.get("REVISIONVAL").toString()); // VersionValueObject versionObj = this.getVersionValue(item.verRuleName); - codeCls_template_insert.setVersionSeq(Integer.parseInt(rvObj.get("VERSIONSEQ").toString())); - codeCls_template_insert.setVersionValue(rvObj.get("VERSIONVAL").toString()); - codeCls_template_insert.setLctid(codeCls_template.getLctid()); - codeCls_template_insert.setLcStatus("Editing"); - codeCls_template_insert.setId(codeCls_template.getId()); - codeCls_template_insert.setName(codeCls_template.getName()); - codeCls_template_insert.setDescription(codeCls_template.getDescription()); - codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setVersionSeq(Integer.parseInt(rvObj.get("VERSIONSEQ").toString())); + codeCls_template_insert.setVersionValue(rvObj.get("VERSIONVAL").toString()); + codeCls_template_insert.setLctid(codeCls_template.getLctid()); + codeCls_template_insert.setLcStatus("Editing"); + codeCls_template_insert.setId(codeCls_template.getId()); + codeCls_template_insert.setName(codeCls_template.getName()); + codeCls_template_insert.setDescription(codeCls_template.getDescription()); + codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName()); // codeCls_template_insert.setCheckinBy(userName); - codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); + codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); // }catch (VCIError e){ // e.printStackTrace(); // logger.error("===============>鍒嗙被妯℃澘-鍗囩増澶嶅埗鍑洪敊oid锛� "+templateOldOid+",mes"+e.error_message); @@ -919,6 +919,13 @@ @Override public R<CodeClassifyTemplateVO> addSave(CodeClassifyTemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + + QueryWrapper<CodeClassifyTemplate> wrapper = new QueryWrapper<>(); + wrapper.eq("CODECLASSIFYOID",codeClassifyTemplateDTO.getCodeclassifyoid()); + Long aLong = baseMapper.selectCount(wrapper); + if(aLong > 0){ + return R.fail("璇ュ垎绫讳笅宸叉湁瀛愭ā鐗堬紝鏃犳硶鏂板锛屼粎鑳借繘琛屽崌鐗堟搷浣滐紒"); + } //灏咲TO杞崲涓篋O CodeClassifyTemplate codeClassifyTemplateDO = new CodeClassifyTemplate(); BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDO); @@ -937,7 +944,7 @@ codeClassifyTemplateDO.setBtmTypeName(codeClassifyDO.getBtmTypeName()); codeClassifyTemplateDO.setLcStatus(FRAMEWORK_RELEASE_EDITING); codeClassifyTemplateDO.setTs(new Date()); - codeClassifyTemplateDO.setOwner(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setOwner(String.valueOf(AuthUtil.getUser().getUserId())); codeClassifyTemplateDO.setLctid("codeClsTempLc"); codeClassifyTemplateDO.setVersionValue("1"); codeClassifyTemplateDO.setVersionSeq(1); @@ -946,8 +953,8 @@ codeClassifyTemplateDO.setVersionRule("0"); codeClassifyTemplateDO.setRevisionRule("numberversionrule"); codeClassifyTemplateDO.setLastModifyTime(new Date()); - codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getUserName()); - codeClassifyTemplateDO.setCreator(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + codeClassifyTemplateDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); codeClassifyTemplateDO.setCreateTime(new Date()); codeClassifyTemplateDO.setLastV("1"); codeClassifyTemplateDO.setLastR("1"); @@ -1043,7 +1050,7 @@ // condition.put("ts",codeClassifyTemplateDOCopyFromDTO.getTs()); CodeClassifyTemplate detail = baseMapper .selectById(codeClassifyTemplateDOCopyFromDTO.getOid()); - // boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO); + // boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO); if(detail.getTs().compareTo(codeClassifyTemplateDOCopyFromDTO.getTs()) != 0){//涓嶆槸鏈�鏂扮殑涓嶈鏀� return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index 282fdb8..8565672 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -8,6 +8,7 @@ import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; +import com.vci.ubcs.code.constant.MdmBtmTypeConstant; import com.vci.ubcs.code.dto.CodeDeleteBatchDTO; import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.dto.datapush.BaseModelDTO; @@ -57,6 +58,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.Cache; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -327,6 +329,7 @@ * * @param baseModelDTO 鏁版嵁浼犺緭瀵硅薄 */ + @Transactional @Override public void changeStatus(BaseModelDTO baseModelDTO) { VciBaseUtil.alertNotNull(baseModelDTO, "鏁版嵁淇℃伅", baseModelDTO.getOid(), "涓婚敭", baseModelDTO.getBtmname(), "涓氬姟绫诲瀷", baseModelDTO.getLcStatus(), "鐩爣鐘舵��"); @@ -337,6 +340,14 @@ wrapper.eq("BTMNAME",baseModelDTO.getBtmname()); wrapper.in("OID",oids); // TODO 寰呭畬鍠� + //鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀� +// QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>(); + List<BaseModel> baseModels = new ArrayList<>(); + baseModels = selectByTypeAndOid(baseModelDTO.getBtmname(), baseModelDTO.getOid()); + if(baseModels.size() == 0){ + throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�"); + } + // 寰呭畬鍠� List<BtmTypeVO> cboList = null; // btmTypeClient.selectList(wrapper); //杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈� // Map<String, String> conditionMap = new HashMap<>(); @@ -349,6 +360,9 @@ // List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap); // 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄� if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) { + R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname())); +// String referTable = listR.getData().get(0).getTableName(); + commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(),VciBaseUtil.toInSql(baseModelDTO.getOid())); // BatchCBO batchCBO = new BatchCBO(); // batchCBO.getDeleteCbos().addAll(cboList); @@ -357,8 +371,16 @@ //boService.persistenceBatch(batchCBO); } else { + for (BaseModel baseModel : baseModels) { + baseModel.setLcStatus(baseModelDTO.getLcStatus()); + } + updateBatchByBaseModel(baseModelDTO.getBtmname(),baseModels); // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus()); } + for (CodeAllCode codeCbo : codeCbos) { + codeCbo.setLcStatus(baseModelDTO.getLcStatus()); + } + codeAllCodeService.updateBatchById(codeCbos); // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus()); } @@ -625,9 +647,10 @@ //娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙� if (!CollectionUtils.isEmpty(conditionMap)) { - //琛ㄩ渶瑕佹敼 // final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "}; - final String[] sql = {"select count(*) from pl_code_wupin t where 1 = 1 "}; + R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmtypeid())); +// String referTable = VciBaseUtil.getTableName(referVO.getReferType()); + final String[] sql = {"select count(*) from "+ listR.getData().get(0).getTableName() +" t where 1 = 1 "}; conditionMap.forEach((key, value) -> { sql[0] += " and " + key + " = " + value; }); @@ -1408,31 +1431,45 @@ DataGrid<Map<String, String>> dataGrid = new DataGrid<>(); List<Map<String, String>> dataList = new ArrayList<>(); -// if (!CollectionUtils.isEmpty(maps)) { -// maps.stream().forEach(map -> { -// Map<String, String> data = new HashMap<>(); -// map.forEach((key, value) -> { -// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); -// }); -// dataList.add(data); -// }); -// } -// dataGrid.setData(dataList); if (!CollectionUtils.isEmpty(maps)) { - wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false); maps.stream().forEach(map -> { Map<String, String> data = new HashMap<>(); + for (String s : map.keySet()) { + data.put(s.toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); + } // map.forEach((key, value) -> { // data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); // }); - for (String s : map.keySet()) { - data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); - } dataList.add(data); }); - dataGrid.setData(dataList); - dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString())); + wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), false); +// maps.stream().forEach(map -> { +// Map<String, String> data = new HashMap<>(); +//// map.forEach((key, value) -> { +//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); +//// }); +// for (String s : map.keySet()) { +// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); +// } +// dataList.add(data); +// }); } +// dataGrid.setData(dataList); +// if (!CollectionUtils.isEmpty(maps)) { +// wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false); +// maps.stream().forEach(map -> { +// Map<String, String> data = new HashMap<>(); +//// map.forEach((key, value) -> { +//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); +//// }); +// for (String s : map.keySet()) { +// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); +// } +// dataList.add(data); +// }); + dataGrid.setData(dataList); + dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString())); +// } return dataGrid; } @@ -1708,9 +1745,7 @@ } whereSql += " and ( t.secretGrade <= " + userSecret + ") "; } - //瑕佹敼锛岃〃鏄庤幏鍙栨湁闂 // String tableName = VciBaseUtil.getTableName(btmType); -// String tableName = "pl_code_wupin"; R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); String tableName = listR.getData().get(0).getTableName(); @@ -2158,15 +2193,18 @@ //pageHelper.addDefaultDesc("createTime"); pageHelper.addDefaultDesc("id"); if (!classifyService.checkHasChild(codeClassifyOid)) { - conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid); + conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, codeClassifyOid); } else { - //琛ㄩ渶瑕佹敼 // conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) - conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_classify where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED + - "' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )"); + + conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from "+ + btmTypeClient.selectByIdCollection(Collections.singletonList(MdmBtmTypeConstant.CODE_CLASSIFY)) + .getData().get(0).getTableName() +" where lcstatus='" + FrameWorkDefaultValueConstant + .FRAMEWORK_DATA_ENABLED + "' start with parentCodeClassifyOid = '" + codeClassifyOid + + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )"); } - conditionMap.put("lastr", "1"); - conditionMap.put("lastv", "1"); + conditionMap.put("t.lastr", "1"); + conditionMap.put("t.lastv", "1"); return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper); // List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList()); // //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛� @@ -3002,7 +3040,7 @@ * @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟 */ @Override - public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception { + public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) { //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); if(listR.getData().size() == 0){ @@ -3028,7 +3066,7 @@ * @return 鏌ヨ鍑虹殑鏁版嵁 */ @Override - public List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException { + public List<BaseModel> selectByTypeAndOid(String btmType, String oids) { //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); @@ -3041,38 +3079,42 @@ List<BaseModel> baseModels = new ArrayList<>(); //灏嗘煡璇㈠埌鐨勬暟鎹浆鎹负basemodel锛屼娇鐢ㄧ殑鍙嶅皠鏂瑰紡鏉ヨ繘琛屽垱寤虹殑 - for (Map map : maps) { - Object obj = BaseModel.class.newInstance(); - BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); - PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); - for (PropertyDescriptor property : propertyDescriptors) { - Method setter = property.getWriteMethod(); - if (setter != null) { - //oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊 - if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){ - LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime(); - ZoneId zoneId = ZoneId.systemDefault(); - ZonedDateTime zdt = localDateTime.atZone(zoneId); - Date date = Date.from(zdt.toInstant()); - setter.invoke(obj,date); - map.remove(property.getName().toUpperCase()); - } //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊 - else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal - && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){ - setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue()); - map.remove(property.getName().toUpperCase()); - }else if(map.get(property.getName().toUpperCase()) != null){ - setter.invoke(obj, map.get(property.getName().toUpperCase())); - map.remove(property.getName().toUpperCase()); + try{ + for (Map map : maps) { + Object obj = BaseModel.class.newInstance(); + BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + for (PropertyDescriptor property : propertyDescriptors) { + Method setter = property.getWriteMethod(); + if (setter != null) { + //oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊 + if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){ + LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime(); + ZoneId zoneId = ZoneId.systemDefault(); + ZonedDateTime zdt = localDateTime.atZone(zoneId); + Date date = Date.from(zdt.toInstant()); + setter.invoke(obj,date); + map.remove(property.getName().toUpperCase()); + } //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊 + else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal + && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){ + setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue()); + map.remove(property.getName().toUpperCase()); + }else if(map.get(property.getName().toUpperCase()) != null){ + setter.invoke(obj, map.get(property.getName().toUpperCase())); + map.remove(property.getName().toUpperCase()); + } } } - } - for (Object key : map.keySet()) { - map.put(key,String.valueOf(map.get(key))); - } + for (Object key : map.keySet()) { + map.put(key,String.valueOf(map.get(key))); + } - ((BaseModel) obj).setData(map); - baseModels.add((BaseModel) obj); + ((BaseModel) obj).setData(map); + baseModels.add((BaseModel) obj); + } + }catch (Exception e){ + throw new VciBaseException("鏌ヨ澶辫触锛�" + e.getMessage()); } return baseModels; } @@ -3148,7 +3190,7 @@ * @return 澶勭悊鐘舵�� */ @Override - public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception { + public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) { //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); if(listR.getData().size() == 0){ diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml index e53c1fc..76cb9cc 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml @@ -41,6 +41,10 @@ </foreach> </insert> + <insert id="deleteByTaleAndOid" > + delete from ${tableName} where oid in (${oids}) + </insert> + <update id="updateBatchByBaseModel" parameterType="java.util.List" > BEGIN <foreach collection="mapList" item="columnMap" index="index" separator=";"> diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/AttributeClient.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/AttributeClient.java index f246a67..dcfbc4f 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/AttributeClient.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/AttributeClient.java @@ -1,7 +1,11 @@ package com.vci.ubcs.omd.feign; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.vci.ubcs.omd.entity.Attribute; import com.vci.ubcs.omd.service.IAttributeService; +import com.vci.ubcs.omd.vo.AttributeVO; +import com.vci.ubcs.omd.wrapper.AttributeWrapper; +import com.vci.ubcs.starter.web.util.VciBaseUtil; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.tenant.annotation.NonDS; @@ -40,4 +44,16 @@ condition.put("key",key); return R.data(service.list(Condition.getQueryWrapper(condition, Attribute.class).lambda().orderByAsc(Attribute::getId))); } + + /** + * 鎸夐鍩熻幏鍙栧叏閮ㄥ睘鎬� + * + * @return 鏌ヨ缁撴灉 + */ + @Override + @GetMapping(GET_ALL) + public R<List<AttributeVO>> getAll() { + List<AttributeVO> voList = AttributeWrapper.build().listEntityVO(service.list()); + return R.data(voList); + } } diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/LinkTypeClient.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/LinkTypeClient.java new file mode 100644 index 0000000..e82d50f --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/LinkTypeClient.java @@ -0,0 +1,183 @@ +package com.vci.ubcs.omd.feign; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.vci.ubcs.omd.entity.LinkType; +import com.vci.ubcs.omd.service.ILinkTypeService; +import com.vci.ubcs.omd.vo.LinkTypeVO; +import com.vci.ubcs.omd.wrapper.LinkTypeWrapper; +import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; +import com.vci.ubcs.starter.web.pagemodel.PageHelper; +import com.vci.ubcs.starter.web.util.VciBaseUtil; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springframework.cglib.beans.BeanMap; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.*; + +/** + * Description: 閾炬帴绫诲瀷Feign瀹炵幇绫� + * + * @author LiHang + * @date 2023/6/13 + */ +@ApiIgnore() +@RestController +@AllArgsConstructor +public class LinkTypeClient implements ILinkTypeClient{ + + private final ILinkTypeService linkTypeService; + + private final String DOMAIN = "domain"; + /** + * 鑾峰彇閾炬帴绫诲瀷璇︽儏淇℃伅 + * + * @param oid 涓婚敭 + * @return 閾炬帴绫诲瀷璇︽儏淇℃伅 + */ + @Override + public R<LinkTypeVO> getDetail(String oid) { + LinkTypeVO vo = linkTypeService.getLinkTypeByOid(oid); + return R.data(vo); + } + + /** + * 鍙傜収鍒楄〃鏌ヨ + * + * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄 + * @return 鏌ヨ缁撴灉 + */ + @Override + public R<Page<LinkTypeVO>> getRefPage(BaseQueryObject baseQueryObject) { + Map<String, String> conditionMap = baseQueryObject.getConditionMap(); + if (conditionMap == null){ + conditionMap = new HashMap<>(16); + } + if (!conditionMap.containsKey(DOMAIN)){ + return R.fail("棰嗗煙鍊间笉鑳戒负绌�"); + } + PageHelper pageHelper = baseQueryObject.getPageHelper(); + if (pageHelper == null){ + pageHelper = new PageHelper(-1); + } + String domainValue = conditionMap.get(DOMAIN); + VciBaseUtil.alertNotNull(domainValue,"棰嗗煙鍊�"); + conditionMap.remove(DOMAIN); + LinkType queryObj = new LinkType(); + BeanMap.create(queryObj).putAll(conditionMap); + Query query = new Query(); + query.setSize(pageHelper.getLimit()); + query.setCurrent(pageHelper.getPage()); + IPage<LinkType> page = linkTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(queryObj).lambda().eq(LinkType::getDomain, domainValue).orderByAsc(LinkType::getId)); + Page<LinkTypeVO> pageVO = new Page<>(); + BeanUtil.copy(page,pageVO); + pageVO.setRecords(LinkTypeWrapper.build().listEntityVO(page.getRecords(),null)); + R<Page<LinkTypeVO>> r = R.data(pageVO); + r.setSuccess(true); + return r; + } + + /** + * 鍙傜収鍒楄〃鏌ヨ + * + * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄 + * @return 鏌ヨ缁撴灉 + */ + @Override + public R<List<LinkTypeVO>> getRef(BaseQueryObject baseQueryObject) { + Map<String, String> conditionMap = baseQueryObject.getConditionMap(); + if (conditionMap == null){ + conditionMap = new HashMap<>(16); + } + if (!conditionMap.containsKey(DOMAIN)){ + return R.fail("棰嗗煙鍊间笉鑳戒负绌�"); + } + PageHelper pageHelper = baseQueryObject.getPageHelper(); + if (pageHelper == null){ + pageHelper = new PageHelper(-1); + } + String domainValue = conditionMap.get(DOMAIN); + VciBaseUtil.alertNotNull(domainValue,"棰嗗煙鍊�"); + conditionMap.remove(DOMAIN); + LinkType queryObj = new LinkType(); + BeanMap.create(queryObj).putAll(conditionMap); + List<LinkType> doList = linkTypeService.list(Condition.getQueryWrapper(queryObj).lambda().eq(LinkType::getDomain, domainValue).orderByAsc(LinkType::getId)); + return R.data(LinkTypeWrapper.build().listEntityVO(doList,null)); + } + + /** + * 鏍规嵁鑻辨枃鍚嶇О鎵归噺鏌ヨ瀵硅薄 + * + * @param ids 瀵硅薄鑻辨枃鍚嶇О 浣嗘槸涓嶈兘瓒呰繃1000 + * @return 涓氬姟瀵硅薄 + */ + @Override + public R<List<LinkTypeVO>> selectByIdCollection(List<String> ids) { + Func.requireNotNull(ids,"閾炬帴绫诲瀷鑻辨枃鍚嶇О"); + List<LinkTypeVO> voList = LinkTypeWrapper.build().listEntityVO( + Optional.ofNullable(linkTypeService.list( + Wrappers.<LinkType>query().lambda().in(LinkType::getId, ids) + ) + ).orElseGet(ArrayList::new),null + ); + return R.data(voList); + } + + /** + * 鎵归噺鏍规嵁涓婚敭鑾峰彇閾炬帴绫诲瀷 + * + * @param pkLinkTypeCollection 閾炬帴绫诲瀷涓婚敭闆嗗悎 + * @return 閾炬帴绫诲瀷鍒楄〃锛屽鏋滄湁涓嶅瓨鍦ㄧ殑涓嶄細杩斿洖锛屽叏閮ㄤ笉瀛樺湪鐨勫垯杩斿洖绌哄垪琛� + */ + @Override + public R<List<LinkTypeVO>> listLinkTypeByOidCollection(List<String> pkLinkTypeCollection) { + Func.requireNotNull(pkLinkTypeCollection,"閾炬帴绫诲瀷涓婚敭"); + List<LinkTypeVO> voList = LinkTypeWrapper.build().listEntityVO( + Optional.ofNullable(linkTypeService.list( + Wrappers.<LinkType>query().lambda().in(LinkType::getOid, pkLinkTypeCollection) + ) + ).orElseGet(ArrayList::new),null + ); + return R.data(voList); + } + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屽彧鏈夐粯璁ゅ瓧娈� + * + * @param linkTypeId 閾炬帴绫诲瀷ID + * @return 榛樿瀛楁灞炴�� + */ + @Override + public R<LinkTypeVO> getDefaultAttrByLinkId(String linkTypeId) { + return R.data(linkTypeService.getLinkTypeDefaultAttrById(linkTypeId)); + } + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeId 閾炬帴绫诲瀷id + * @return 鎵�鏈夊瓧娈� + */ + @Override + public R<LinkTypeVO> getAllAttributeByLinkId(String linkTypeId) { + return R.data(linkTypeService.getLinkTypeAllAttrById(linkTypeId)); + } + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeOid 閾炬帴绫诲瀷涓婚敭 + * @return 鎵�鏈夊瓧娈� + */ + @Override + public R<LinkTypeVO> getAllAttributeByLinkOid(String linkTypeOid) { + return R.data(linkTypeService.getLinkTypeAllAttrByOid(linkTypeOid)); + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java index 203a3cd..4dfece4 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java @@ -8,6 +8,7 @@ import com.vci.ubcs.omd.vo.LinkTypeVO; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.web.pagemodel.PageHelper; +import org.springblade.core.mp.base.BaseService; import java.util.Collection; import java.util.List; @@ -20,7 +21,7 @@ * @author LiHang * @date 2023/5/24 */ -public interface ILinkTypeService extends IService<LinkType> { +public interface ILinkTypeService extends BaseService<LinkType> { /** * 鑾峰彇閾炬帴绫诲瀷鍒楄〃 @@ -209,4 +210,28 @@ * @return 鏌ヨ缁撴灉 */ List<BtmTreeVO> treeDomain(); + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屽彧鏈夐粯璁ゅ瓧娈� + * + * @param linkTypeId 閾炬帴绫诲瀷id + * @return 榛樿瀛楁灞炴�� + */ + LinkTypeVO getLinkTypeDefaultAttrById(String linkTypeId); + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeId 閾炬帴绫诲瀷id + * @return 鎵�鏈夊瓧娈� + */ + LinkTypeVO getLinkTypeAllAttrById(String linkTypeId); + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeOid 閾炬帴绫诲瀷涓婚敭 + * @return 鎵�鏈夊瓧娈� + */ + LinkTypeVO getLinkTypeAllAttrByOid(String linkTypeOid); } diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java index 409b4f2..1451bc7 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java @@ -45,6 +45,7 @@ import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.util.CollectionUtils; +import javax.validation.constraints.NotEmpty; import java.util.*; import java.util.stream.Collectors; @@ -901,4 +902,56 @@ throw new RuntimeException(e); } } + + @Override + public boolean deleteLogic(@NotEmpty List<Long> ids) { + return false; + } + + @Override + public boolean changeStatus(@NotEmpty List<Long> ids, Integer status) { + return false; + } + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屽彧鏈夐粯璁ゅ瓧娈� + * + * @param linkTypeId 閾炬帴绫诲瀷id + * @return 榛樿瀛楁灞炴�� + */ + @Override + public LinkTypeVO getLinkTypeDefaultAttrById(String linkTypeId) { + LinkTypeVO vo = getLinkTypeById(linkTypeId); + List<LinkTypeAttributeVO> attributes = linkTypeAttributeService.getDefaultAttributes(vo); + vo.setAttributes(attributes); + return vo; + } + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeId 閾炬帴绫诲瀷id + * @return 鎵�鏈夊瓧娈� + */ + @Override + public LinkTypeVO getLinkTypeAllAttrById(String linkTypeId) { + LinkTypeVO vo = getLinkTypeById(linkTypeId); + List<LinkTypeAttributeVO> attributes = linkTypeAttributeService.getAllAttributes(vo); + vo.setAttributes(attributes); + return vo; + } + + /** + * 鑾峰彇閾炬帴绫诲瀷锛屾湁鎵�鏈夌殑瀛楁 + * + * @param linkTypeOid 閾炬帴绫诲瀷涓婚敭 + * @return 鎵�鏈夊瓧娈� + */ + @Override + public LinkTypeVO getLinkTypeAllAttrByOid(String linkTypeOid) { + LinkTypeVO vo = getLinkTypeByOid(linkTypeOid); + List<LinkTypeAttributeVO> attributes = linkTypeAttributeService.getAllAttributes(vo); + vo.setAttributes(attributes); + return vo; + } } diff --git "a/Source/\346\233\264\346\224\271\350\277\207\347\232\204jar\345\214\205.zip" "b/Source/\346\233\264\346\224\271\350\277\207\347\232\204jar\345\214\205\357\274\210\346\234\211\346\233\264\346\226\260\357\274\211.zip" similarity index 100% rename from "Source/\346\233\264\346\224\271\350\277\207\347\232\204jar\345\214\205.zip" rename to "Source/\346\233\264\346\224\271\350\277\207\347\232\204jar\345\214\205\357\274\210\346\234\211\346\233\264\346\226\260\357\274\211.zip" Binary files differ -- Gitblit v1.9.3