From 3c6c92b68a1b113b5450554db750ebe1d8bd26bb Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期五, 20 九月 2024 15:16:14 +0800 Subject: [PATCH] 整合代码 action管理 --- Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue | 1 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue | 262 ++++ Source/plt-web/plt-web-ui/src/util/func.js | 26 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue | 11 Source/plt-web/plt-web-ui/src/api/UI/formDefine/api.js | 122 ++ Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue | 757 ++++++++++++++ Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/option.js | 37 Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue | 92 + /dev/null | 92 - Source/plt-web/plt-web-ui/src/api/UI/Action/api.js | 120 ++ Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue | 923 +++++++++++++---- Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue | 2 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue | 2 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue | 581 +++++++++- Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue | 5 15 files changed, 2,522 insertions(+), 511 deletions(-) diff --git a/Bin/tomcat/logs/host-manager.2024-03-04.log b/Bin/tomcat/logs/host-manager.2024-03-04.log deleted file mode 100644 index e69de29..0000000 --- a/Bin/tomcat/logs/host-manager.2024-03-04.log +++ /dev/null diff --git a/Source/plt-web/plt-web-ui/src/api/UI/Action/api.js b/Source/plt-web/plt-web-ui/src/api/UI/Action/api.js new file mode 100644 index 0000000..585655e --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/api/UI/Action/api.js @@ -0,0 +1,120 @@ +import request from '@/router/axios'; + +// 琛ㄥ崟鍗曟潯鏌ヨ鎺ュ彛 +export function getActionTree(params) { + return request({ + url: "/api/actionController/getActionTree", + method: "get", + params + }); +} + +// Action鏌ヨ鍒楄〃鎺ュ彛 +export function getActionTableData(params) { + return request({ + url: "/api/actionController/getActionTableData", + method: "post", + data: params + }); +} + +// Action鍒楄〃鏂板缓鎺ュ彛 +export function saveAction(params) { + return request({ + url: "/api/actionController/saveAction", + method: "post", + data: params + }); +} + +// Action鍒楄〃淇敼鎺ュ彛 +export function updateAction(params) { + return request({ + url: "/api/actionController/updateAction", + method: "post", + data: params + }); +} + +// Action鍒楄〃瀵煎嚭 +export function exportAction(params) { + return request({ + url: '/api/actionController/exportAction', + method: 'post', + headers: {'Content-Type': 'application/json;charset=UTF-8'}, + responseType: 'blob', + data: params + }) +} + +// Action鍒楄〃鍒犻櫎鎺ュ彛 +export function deleteAction(params) { + return request({ + url: "/api/actionController/deleteAction", + method: "delete", + data: params + }); +} + +// Action涓嬫柟鍙傛暟鍒楄〃鏌ヨ +export function getPLActionParam(params) { + return request({ + url: "/api/actionController/getPLActionParam", + method: "get", + params + }); +} + +// Action涓嬫柟鍙傛暟鍒楄〃淇濆瓨 +export function savePLActionParam(params) { + return request({ + url: "/api/actionController/savePLActionParam", + method: "post", + data: params + }); +} + +// Action涓嬫柟鍙傛暟鍒楄〃缂栬緫 +export function updatePLActionParam(params) { + return request({ + url: "/api/actionController/updatePLActionParam", + method: "post", + data: params + }); +} + +// Action涓嬫柟鍙傛暟鍒楄〃鍒犻櫎 +export function deletePLActionParam(params) { + return request({ + url: "/api/actionController/deletePLActionParam", + method: "delete", + params + }); +} + +// Action鍒嗙被淇濆瓨 +export function saveActionCls(params) { + return request({ + url: "/api/actionController/saveActionCls", + method: "post", + data: params + }); +} + +// Action鍒嗙被淇敼淇濆瓨 +export function updateActionCls(params) { + return request({ + url: "/api/actionController/updateActionCls", + method: "post", + data: params + }); +} + +// Action鍒嗙被鍒犻櫎 +export function deleteActionCls(params) { + return request({ + url: "/api/actionController/deleteActionCls", + method: "delete", + data:params + }); +} diff --git a/Source/plt-web/plt-web-ui/src/api/UI/formDefine/api.js b/Source/plt-web/plt-web-ui/src/api/UI/formDefine/api.js index 6b3b930..8eb5d60 100644 --- a/Source/plt-web/plt-web-ui/src/api/UI/formDefine/api.js +++ b/Source/plt-web/plt-web-ui/src/api/UI/formDefine/api.js @@ -1,14 +1,132 @@ import request from '@/router/axios'; // 鍒楄〃鏌ヨ -export function gridPortalVIDatas(page,limit,params) { +export function gridPortalVIDatas(page, limit, params) { return request({ url: "/api/portalVIController/gridPortalVIDatas", method: "get", - params:{ + params: { page, limit, ...params } }); } + +// 琛ㄥ崟鍗曟潯鏌ヨ鎺ュ彛 +export function getPortalVIById(params) { + return request({ + url: "/api/portalVIController/getPortalVIById", + method: "get", + params + }); +} + +// 灞炴�ц秴閾炬帴绫诲瀷鎺ュ彛 +export function getItemDblList() { + return request({ + url: "/api/portalVIController/getItemDblList", + method: "get", + }); +} + +// 琛ㄦ牸琛ㄥ崟淇濆瓨 +export function savePortalVI(params) { + return request({ + url: "/api/portalVIController/savePortalVI", + method: "post", + data: params + }); +} + +// 灞炴�ф爲鐘舵帴鍙� +export function getTreeAttributes(params) { + return request({ + url: "/api/attributeController/getTreeAttributes", + method: "get", + params + }) +} + +// 閫氳繃id鍒犻櫎 +export function deleteByIds(params) { + return request({ + url: "/api/portalVIController/deleteByIds", + method: "delete", + params + }) +} + +// 瀵煎嚭 +export function exportExcel (params) { + return request({ + url: '/api/portalVIController/exportExcel', + method: 'post', + headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}, + responseType: 'blob', + params + }) +} + +// 琛ㄥ崟鎺ュ彛娴嬭瘯鏁版嵁 +const obj = { + "itemAddFilter": "", + "itemBat": "", + "itemCols": "1", + "itemCtrlDisplyCol": "", + "itemCtrlDisplyCondition": "", + "itemCustomClass": "", + "itemCut": "", + "itemDateFormat": "", + "itemDbl": "", + "itemEQ": "", + "itemEditCondition": "", + "itemEditableProgram": "", + "itemField": "specialty", + "itemFieldWidth": "", + "itemFieldWidthList": [], + "itemHrefConf": "", + "itemHrefFields": "", + "itemHttpPathField": "", + "itemHttpVolumnPath": "", + "itemImgWH": "", + "itemInObj": "", + "itemIsEditable": "0", + "itemIsHidden": "1", + "itemIsHttpSave": "0", + "itemIsNavigatorExpand": "", + "itemIsRequired": "0", + "itemIsShowFolder": "", + "itemKeyFieldList": [], + "itemKeyFields": "", + "itemListTable": "", + "itemListTxt": "", + "itemListVal": "", + "itemName": "涓撲笟", + "itemOR": "", + "itemOutFieldList": [], + "itemOutFields": "", + "itemOutType": "", + "itemPageSize": "", + "itemParentFolderName": "", + "itemQtName": "", + "itemQueryRefFields": "", + "itemQuerySql": "", + "itemRight": "", + "itemRows": "", + "itemScript": "", + "itemSearchFieldList": [], + "itemSelectoutFieldList": [], + "itemSeniorQueryBOS": [], + "itemSeniorQueryCols": "", + "itemSeniorQueryColsCounts": "", + "itemShowExpression": "", + "itemStyle": "", + "itemTips": "", + "itemTrim": "", + "itemTxf": "", + "itemType": "text", + "itemTypeText": "鍗曡鏂囨湰妗�", + "itemValue": "", + "itemValueList": [] +} diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue index e69bd83..bf99a6a 100644 --- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue +++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue @@ -73,6 +73,7 @@ watch: { //娓叉煋绌挎妗� leftRoleData: { + // 闇�瑕佸湪鎵撳紑绌挎妗嗙粍浠剁殑鏃跺�欏leftRoleData杩涜璧嬪�硷紙鍙互鍙傝�僡ction绠$悊-action鍒楄〃 瀵煎嚭鍔熻兘锛� 濡傛灉鍦╠ata閲岄潰瀹氫箟鐨勬暟鎹紝缁勪欢鍐厀atch浼氱洃鍚笉鍒皀ewVal handler(newval) { if (newval) { // 娓呯┖data鏁扮粍 diff --git a/Source/plt-web/plt-web-ui/src/util/func.js b/Source/plt-web/plt-web-ui/src/util/func.js index 03c02d3..e342467 100644 --- a/Source/plt-web/plt-web-ui/src/util/func.js +++ b/Source/plt-web/plt-web-ui/src/util/func.js @@ -4,6 +4,28 @@ import CryptoJS from 'crypto-js' export default class func { + /** + * 鍗曢�夎〃鏍艰 + * 鏃堕棿鎴虫牸寮忓寲 + */ + static formattedDate(val) { + // 鍒涘缓涓�涓� Date 瀵硅薄 + const date = new Date(val); + + // 鏍煎紡鍖栨椂闂寸殑杈呭姪鍑芥暟 + const formatNumber = (number) => String(number).padStart(2, '0'); + + // 鎻愬彇骞舵牸寮忓寲骞淬�佹湀銆佹棩銆佸皬鏃躲�佸垎閽熷拰绉� + const year = date.getFullYear(); + const month = formatNumber(date.getMonth() + 1); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕�+1 + const day = formatNumber(date.getDate()); + const hours = formatNumber(date.getHours()); + const minutes = formatNumber(date.getMinutes()); + const seconds = formatNumber(date.getSeconds()); + + // 鏍煎紡鍖栦负 YYYY-MM-DD HH:MM:SS + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + } /** * 鍗曢�夎〃鏍艰 @@ -223,7 +245,7 @@ padding: CryptoJS.pad.Pkcs7 }); return encrypted.toString(); -} + } /** * HmacMD5鍔犲瘑 @@ -233,7 +255,7 @@ * @constructor */ static HmacMD5(message, key) { - const encrypted = CryptoJS.HmacMD5(message,key); + const encrypted = CryptoJS.HmacMD5(message, key); return encrypted.toString(); } diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue index ad7dfe9..0cd245d 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue @@ -18,7 +18,7 @@ @current-change="currentChange" > <template slot="menuLeft" slot-scope="scope"> - <el-button icon="el-icon-plus" size="small" type="primary" @click="rowSaveHandlerClick">鍒涘缓</el-button> + <el-button icon="el-icon-plus" plain size="small" type="primary" @click="rowSaveHandlerClick">鍒涘缓</el-button> <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">鍒犻櫎</el-button> <el-button icon="el-icon-view" plain size="small" type="primary" @click="chekView">鏌ョ湅浣跨敤鑼冨洿</el-button> <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadTemplateHandler">涓嬭浇瀵煎叆妯℃澘 diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue index 00c4b4b..4a4fc6e 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue @@ -908,7 +908,8 @@ props: { label: 'TreeName', value: 'id', - children: 'children' + children: 'children', + name: 'name' } }, treeData: [ @@ -927,7 +928,7 @@ name: 'el-icon-tickets', desc: 'el-icon-chat-line-square' }, - treeLoading:false + treeLoading: false } }, created() { diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue index 8ef3a18..16b6cb2 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue @@ -16,7 +16,7 @@ > <template slot="menuLeft" slot-scope="scope"> - <el-button icon="el-icon-plus" size="small" type="primary" @click="rowSaveHandlerClick">鍒涘缓</el-button> + <el-button icon="el-icon-plus" plain size="small" type="primary" @click="rowSaveHandlerClick">鍒涘缓</el-button> <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">鍒犻櫎</el-button> <el-button icon="el-icon-view" plain size="small" type="primary" @click="chekView">鏌ョ湅浣跨敤鑼冨洿</el-button> <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadTemplateHandler">涓嬭浇瀵煎叆妯℃澘 diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue index 276a7f3..5e6ad14 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue @@ -18,7 +18,7 @@ @click="checkViewClickHandler">鏌ョ湅浣跨敤鑼冨洿 </el-button> </div> - <!-- 宸︿晶鏍� --> + <!-- 宸︿晶鏍� --> <div style="height: calc(100vh - 260px);"> <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> @@ -104,7 +104,7 @@ </basic-container> </el-main> - <!-- 鏂板 淇敼 --> + <!-- 鏂板 淇敼 --> <el-dialog v-dialogDrag :title="dialogTitle === 'add' ? '鍒涘缓' : '淇敼'" @@ -164,11 +164,11 @@ </span> </el-dialog> - <!-- 瀵煎叆 --> + <!-- 瀵煎叆 --> <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="瀵煎叆" @updata="getTreeList"></upload-file> - <!-- 鏌ョ湅浣跨敤鑼冨洿 --> + <!-- 鏌ョ湅浣跨敤鑼冨洿 --> <el-dialog v-dialogDrag :visible.sync="checkViewVisible" @@ -302,7 +302,7 @@ this.getTreeList(); }, methods: { - //宸︿晶鏍戞煡璇� + // 宸︿晶鏍戞煡璇� getTreeList() { getVersionRuleAllList().then(res => { const data = res.data.data; @@ -473,7 +473,6 @@ width: 82px; } } - } .headerCon { diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/option.js b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/option.js new file mode 100644 index 0000000..5c37e9d --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/option.js @@ -0,0 +1,37 @@ +export const column = [ + { + label: '鍚嶇О', + prop: 'id', + sortable: true, + }, + { + label: '鏍囩', + prop: 'name', + sortable: true, + }, + { + label: '璺宠穬瀛楃', + prop: 'jumpCharacter', + sortable: true, + }, + { + label: '鍒濆鍊�', + prop: 'initialValue', + sortable: true, + }, + { + label: '鍓嶇紑', + prop: 'prefixion', + sortable: true, + }, + { + label: '鍚庣紑', + prop: 'suffix', + sortable: true, + }, + { + label: '鎻忚堪', + prop: 'description', + overHidden:true, + }, +]; diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue new file mode 100644 index 0000000..9c6c63e --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue @@ -0,0 +1,757 @@ +<template> + <el-container> + + <el-aside> + <basic-container> + <div ref="TreeBox" style="height: calc(100vh - 144px);!important;"> + <div class="headerCon"> + <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addTreeClickHandler">鍒涘缓 + </el-button> + <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editTreeClickHandler">淇敼 + </el-button> + <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delTreeClickHandler">鍒犻櫎 + </el-button> + <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭 + </el-button> + <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">瀵煎叆 + </el-button> + </div> + <!-- 宸︿晶鏍� --> + <div style="height: calc(100vh - 280px);"> + <avue-tree + ref="tree" + v-model="treeForm" + :data="treeData" + :option="treeOption" + @save="rowTreeSaveHandler" + @update="rowTreeUpdataHandler" + @node-click="nodeClick"> + <span slot-scope="{ node, data }" class="el-tree-node__label"> + <span style="font-size: 15px"> + <i class="el-icon-s-promotion"></i> + {{ (node || {}).label }} + </span> + </span> + </avue-tree> + </div> + </div> + </basic-container> + </el-aside> + + <el-main> + <basic-container> + <div> + <avue-crud + ref="crud" + v-model="form" + :data="data" + :option="option" + :page.sync="page" + :table-loading="tableLoading" + @row-del="rowDelHandler" + @row-save="rowSaveHandler" + @row-update="rowUpdateHandler" + @search-change="handleSearch" + @search-reset="handleReset" + @refresh-change="handleRefresh" + @selection-change="selectChangeHandler" + @row-click="rowClickHandler"> + <template slot="plTypeType" slot-scope="{row}"> + <el-tag :type="row.plTypeType === 'business' ? '' : 'success'"> + {{ row.plTypeType === 'business' ? '涓氬姟绫诲瀷' : '閾炬帴绫诲瀷' }} + </el-tag> + </template> + <template slot="menuLeft" slot-scope="scope"> + <el-button v-if="treeNodeRow.id !== 'root'" icon="el-icon-plus" plain size="small" type="primary" + @click="addClickHandler">澧炲姞 + </el-button> + <el-button icon="el-icon-download" plain size="small" type="success" @click="downLoadHandler">瀵煎嚭 + </el-button> + </template> + </avue-crud> + </div> + + <div style="margin-top: 10px"> + <avue-crud + ref="BottomCrud" + :data="bottomData" + :option="bottomOption" + :table-loading="bottomTableLoading" + @row-save="BottomRowSaveHandler" + @row-update="BottomRowUpdateHandler" + @row-del="BottomRowDelHandler" + > + <template slot="menuLeft" slot-scope="scope"> + <el-button icon="el-icon-plus" plain size="small" type="primary" @click="bottomAddClickHandler">澧炲姞 + </el-button> + </template> + + </avue-crud> + </div> + </basic-container> + </el-main> + + <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" + :select-list="selectList" :top-methods-obj="topMethodsObj" :transferTitle="transferTitle" title="瀵煎嚭" + @transferSend="exportSendHandler"> + </transfer> + + <transfer ref="actionTransfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" + :select-list="selectList" :top-methods-obj="topMethodsObj" :transferTitle="transferTitle" title="瀵煎嚭" + @transferSend="exportSendHandler"> + </transfer> + + </el-container> +</template> + +<script> +import { + getActionTree, + getActionTableData, + saveAction, + updateAction, + exportAction, + deleteAction, + getPLActionParam, + savePLActionParam, + updatePLActionParam, + deletePLActionParam, + saveActionCls, + updateActionCls, + deleteActionCls +} from '@/api/UI/Action/api' +import func from "@/util/func"; +import basicOption from "@/util/basic-option"; + +export default { + name: "index", + data() { + return { + currenRow: {}, // action褰撳墠琛屼俊鎭� + topMethodsObj: { + select: true, + all: true, + page: false + }, + transferTitle: ['鏈�夋嫨', '宸查�夋嫨'], + leftRoleData: [], + rightRoleData: [], + form: {}, + bottomTableLoading: false, + bottomData: [], + bottomOption: { + ...basicOption, + addBtn: false, + calcHeight: -30, + selection: false, + refreshBtn: false, + // height:'auto', + column: [ + { + label: '鍙傛暟鍚嶇О', + prop: 'name', + rules: [ + { + required: true, + message: '璇疯緭鍏ュ弬鏁板悕绉�', + trigger: 'blur' + } + ] + }, + { + label: '榛樿鍊�', + prop: 'defaultValue', + }, + { + label: '鎻愮ず淇℃伅', + prop: 'description', + span: 24, + type: 'textarea', + rows: 4 + }, + ], + }, + tableLoading: false, + lastIndex: null, + selectList: [], + data: [], + option: { + ...basicOption, + addBtn: false, + height: 350, + highlightCurrentRow: true, + column: [ + { + label: '缂栧彿', + prop: 'plCode', + search: true, + rules: [ + { + required: true, + message: '璇疯緭鍏ョ紪鍙�', + trigger: 'blur' + } + ] + }, + { + label: '鍚嶇О', + prop: 'plName', + search: true, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ悕绉�', + trigger: 'blur' + } + ] + }, + { + label: '绫昏矾寰�', + prop: 'plCSClass', + search: true, + overHidden: true, + }, + { + label: '鍒嗙被', + prop: 'plActionCls', + type: 'tree', + hide: true, + props: { + label: 'name', + value: 'id', + children: 'childs' + }, + rules: [ + { + required: true, + message: '璇烽�夋嫨鍒嗙被', + trigger: 'blur' + } + ], + dicData: [] + }, + { + label: '閾炬帴鍦板潃', + prop: 'plBSUrl', + search: true, + }, + { + label: '绫诲瀷', + prop: 'plTypeType', + search: true, + type: 'select', + dicData: [{ + label: '涓氬姟绫诲瀷', + value: 'business' + }, { + label: '閾炬帴绫诲瀷', + value: 'link' + }], + rules: [ + { + required: true, + message: '璇烽�夋嫨绫诲瀷', + trigger: 'blur' + } + ] + }, + { + label: '鎻忚堪', + prop: 'plDesc', + search: true, + overHidden: true, + }, + ] + }, + treeNodeRow: {}, + treeForm: {}, + treeOption: { + addBtn: false, + defaultExpandedKeys: ['root'], + props: { + label: 'name', + value: 'id', + children: 'childs' + }, + formOption: { + column: [ + { + label: '鍒嗙被鍚嶇О', + prop: 'name', + rules: [ + { + required: true, + message: '璇疯緭鍏ュ垎绫诲悕绉�', + trigger: 'blur' + } + ] + }, + { + label: '鍒嗙被搴忓彿', + prop: 'serialno', + rules: [ + { + required: true, + message: '璇疯緭鍏ュ垎绫诲簭鍙�', + trigger: 'blur' + } + ] + }, + { + label: '鍒涘缓鑰�', + prop: 'creator', + readonly: true, + }, + { + label: '鍒涘缓鏃堕棿', + prop: 'createTime', + readonly: true, + }, + { + label: '鐖朵富绫�', + prop: 'pidName', + readonly: true, + }, + { + label: '澶囨敞', + prop: 'description' + }, + ], + } + }, + treeData: [], + } + }, + created() { + this.getTreeList(); + }, + methods: { + // 宸︿晶鏍戣姹� + getTreeList(status) { + const params = { + isExp: status ? true : false + } + getActionTree(params).then(res => { + const data = res.data.obj; + this.treeData = [data]; + const selectTreeData = this.option.column.find(item => item.prop === 'plActionCls'); // 鎵惧埌action娣诲姞鍒嗙被鏍� + selectTreeData.dicData = [data]; + }) + }, + + // 宸︿晶鏍戣鐐瑰嚮 + nodeClick(row) { + this.treeNodeRow = row; + this.getRightTableList(row); + this.bottomData = []; + }, + + // 澶撮儴鍒锋柊鎸夐挳 + handleRefresh() { + if (func.isEmptyObject(this.treeNodeRow)) { + return; + } + this.getRightTableList(this.treeNodeRow); + }, + + // 鍙充晶琛ㄦ牸淇℃伅 + getRightTableList(row) { + this.tableLoading = true; + const params = { + plactioncls: row.id + } + getActionTableData(params).then(res => { + const data = res.data.data; + this.data = data; + this.tableLoading = false; + }) + }, + + // 琛ㄦ牸澶氶�� + selectChangeHandler(row) { + this.selectList = row; + }, + + // 琛岀偣鍑� + rowClickHandler(row) { + this.currenRow = row; + func.rowClickHandler( + row, + this.$refs.crud, + this.lastIndex, + (newIndex) => { + this.lastIndex = newIndex; + }, + () => { + this.selectList = []; + } + ); + + // 璇锋眰action涓嬫柟鍙傛暟鍒楄〃鏁版嵁 + this.getBottomList(row); + }, + + // 鎼滅储 + handleSearch(params, done) { + if (func.isEmptyObject(this.treeNodeRow)) { + this.$message.error('璇峰厛鍦ㄥ乏渚ч�夋嫨鑺傜偣鍚庢搷浣�'); + return done(); + } + this.tableLoading = true; + const apiParams = { + plactioncls: this.treeNodeRow.id === 'root' ? '' : this.treeNodeRow.id, + ...params + } + + getActionTableData(apiParams).then(res => { + const data = res.data.data; + this.data = data; + this.tableLoading = false; + }) + done(); + }, + + // 閲嶇疆鎼滅储鏉′欢 + handleReset() { + if (func.isEmptyObject(this.treeNodeRow)) { + this.$message.error('璇峰厛鍦ㄥ乏渚ч�夋嫨鑺傜偣鍚庢搷浣�'); + return; + } + this.getRightTableList(this.treeNodeRow); + }, + + // action鍒楄〃澧炲姞 + addClickHandler() { + if (func.isEmptyObject(this.treeNodeRow)) { + this.$message.error('璇峰厛鍦ㄥ乏渚ч�夋嫨鑺傜偣鍚庢搷浣�'); + return; + } + this.$refs.crud.rowAdd(); + this.form.plActionCls = this.treeNodeRow.id; + }, + + // action鍒楄〃澧炲姞淇濆瓨 + rowSaveHandler(form, done, loading) { + saveAction(form).then(res => { + if (res.data.code === 200) { + this.$message.success('娣诲姞鎴愬姛'); + this.getRightTableList(this.treeNodeRow); + } + done(); + }) + loading(); + }, + + // action鍒楄〃淇敼淇濆瓨 + rowUpdateHandler(row, index, done, loading) { + updateAction(row).then(res => { + if (res.data.code === 200) { + this.$message.success('淇敼鎴愬姛'); + this.getRightTableList(this.treeNodeRow); + } + done(); + }) + loading(); + }, + + // 瀵煎嚭鎸夐挳 + downLoadHandler() { + if (func.isEmptyObject(this.treeNodeRow)) { + this.$message.error('璇峰厛鍦ㄥ乏渚ч�夋嫨鑺傜偣鍚庢搷浣�'); + return; + } + + this.leftRoleData = [{ + name: '缂栧彿', + oid: '缂栧彿' + }, + { + name: '绫昏矾寰�', + oid: '绫昏矾寰�' + }, + { + name: '閾炬帴鍦板潃', + oid: '閾炬帴鍦板潃' + }, + { + name: '绫诲瀷', + oid: '绫诲瀷' + }, + { + name: '鎻忚堪', + oid: '鎻忚堪' + },] + this.$refs.transfer.visible = true; + }, + + // 绌挎妗嗕繚瀛� index涓�0鏄�夋嫨 1鏄叏閮� + exportSendHandler(row, index) { + console.log(row, index); + const params = { + dataType: index, + chooseDataOid: index === 0 ? this.selectList.map(item => item.plOId) : [], + columnName: row, + fileName: 'Action鍒楄〃鏁版嵁' + } + + exportAction(params).then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + this.$message.error(err); + }) + }, + + // action鍒楄〃琛屽垹闄� + rowDelHandler(row, index) { + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鏁版嵁鍚楋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + deleteAction(row).then(res => { + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + this.getRightTableList(this.treeNodeRow); + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 鍙傛暟鍒楄〃鏌ヨ + getBottomList() { + this.bottomTableLoading = true; + getPLActionParam({actionOid: this.currenRow.plOId}).then(res => { + const data = res.data.data; + this.bottomData = data; + this.bottomTableLoading = false; + }) + }, + + // 鍙傛暟鍒楄〃澧炲姞鎸夐挳 + bottomAddClickHandler() { + if (this.selectList.length <= 0) { + this.$message.error('娓呭厛閫夋嫨action鍐嶈繘琛屽弬鏁板垱寤�'); + return; + } + this.$refs.BottomCrud.rowAdd(); + }, + + // 鍙傛暟鍒楄〃鏂板淇濆瓨 + BottomRowSaveHandler(form, done, loading) { + savePLActionParam(form).then(res => { + if (res.data.code === 200) { + this.$message.success('娣诲姞鎴愬姛'); + this.getBottomList(); + } + done(); + }) + loading(); + }, + + // 鍙傛暟鍒楄〃淇敼淇濆瓨 + BottomRowUpdateHandler(row, index, done, loading) { + updatePLActionParam(row).then(res => { + if (res.data.code === 200) { + this.$message.success('淇敼鎴愬姛'); + this.getBottomList(); + } + done(); + }) + loading(); + }, + + // 鍙傛暟鍒楄〃鍒犻櫎 + BottomRowDelHandler(row, index) { + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鏁版嵁鍚楋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + deletePLActionParam({oid: row.oid}).then(res => { + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + this.getBottomList(); + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 宸︿晶鏍戝垱寤� + addTreeClickHandler() { + if (func.isEmptyObject(this.treeNodeRow)) { + this.$message.error('璇烽�夋嫨涓�鏉″垎绫昏繘琛屾坊鍔�'); + return; + } + + const {createTime, creator, name, id, description} = this.treeNodeRow; + this.$set(this.treeForm, 'createTime', func.formattedDate(createTime)); + this.$set(this.treeForm, 'creator', creator); + this.$set(this.treeForm, 'pid', id); + this.$set(this.treeForm, 'pidName', name); + this.$refs.tree.rowAdd(); + + }, + + // action鍒嗙被淇濆瓨 + rowTreeSaveHandler(node, data, done, loading) { + saveActionCls(data).then(res => { + if (res.data.code === 200) { + this.$message.success('鍒嗙被鍒涘缓鎴愬姛'); + this.getTreeList(); + } + done(); + }) + loading(); + }, + + // action鍒嗙被淇敼鎸夐挳 + editTreeClickHandler() { + if (func.isEmptyObject(this.treeNodeRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屼慨鏀�'); + return; + } + + if (this.treeNodeRow.id === 'root') { + this.$message.error('鏍硅妭鐐逛笉鑳戒慨鏀�'); + return; + } + const {name, serialno, creator, createTime, pid, description, id} = this.treeNodeRow; + const pidName = this.findObjectNameById(this.treeData, pid); + this.$set(this.treeForm, 'name', name); + this.$set(this.treeForm, 'id', id); + this.$set(this.treeForm, 'serialno', serialno); + this.$set(this.treeForm, 'creator', creator); + this.$set(this.treeForm, 'createTime', func.formattedDate(createTime)); + this.$set(this.treeForm, 'pid', pid); + this.$set(this.treeForm, 'pidName', pidName); + this.$set(this.treeForm, 'description', description); + + this.$refs.tree.rowEdit(); + }, + + // action鍒嗙被淇敼淇濆瓨 + rowTreeUpdataHandler(node, data, done, loading) { + updateActionCls(data).then(res => { + if (res.data.code === 200) { + this.$message.success('淇敼鎴愬姛'); + this.getBottomList(); + } + done(); + }) + loading(); + }, + + // 閫掑綊閫氳繃pid鏌ユ壘鐖朵富绫诲悕绉� + findObjectNameById(data, id) { + for (let item of data) { + if (item.id === id) { + return item.name; + } + if (item.childs && item.childs.length > 0) { + const result = this.findObjectNameById(item.childs, id); + if (result) { + return result; + } + } + } + return 'null'; + }, + + // action鍒嗙被鍒犻櫎 + delTreeClickHandler() { + if (func.isEmptyObject(this.treeNodeRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屽垹闄�'); + return; + } + + if (this.treeNodeRow.id === 'root') { + this.$message.error('鏍硅妭鐐逛笉鑳藉垹闄�'); + return; + } + + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鏁版嵁鍚楋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + deleteActionCls(this.treeNodeRow).then(res => { + if (res.data.code === 200) { + this.$message.success('鍒嗙被鍒犻櫎鎴愬姛'); + this.getTreeList(); + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // action鍒嗙被瀵煎嚭 + exportClickHandler() { + + }, + + // action鍒嗙被瀵煎叆 + uploadClickHandler() { + + } + + } +} +</script> + +<style lang="scss" scoped> +::v-deep { + .el-scrollbar__wrap { + overflow: auto !important; + } + + .headerCon { + .el-button { + width: 82px; + } + } +} + +.headerCon { + display: flex; + flex-wrap: wrap; + margin-bottom: 5px; + + .el-button + .el-button { + margin-left: 5px; + } + + .el-button { + margin-top: 5px; + } +} + +.headerCon > .el-button:nth-child(4) { + margin-left: 0; +} + +.headerCon > .el-button:nth-child(7) { + margin-left: 0; +} + +.smallBtn { + width: 82px; + text-align: center; + padding-left: 4.5px; +} + +</style> diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Action/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Action/index.vue deleted file mode 100644 index 308c333..0000000 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Action/index.vue +++ /dev/null @@ -1,92 +0,0 @@ -<template> - <el-container> - - <el-aside> - <basic-container> - <div ref="TreeBox" style="height: calc(100vh - 144px);!important;"> - <div class="headerCon"> - <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">鍒涘缓 - </el-button> - <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editClickHandler">淇敼 - </el-button> - <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delClickHandler">鍒犻櫎 - </el-button> - <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭 - </el-button> - <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">瀵煎叆 - </el-button> - <el-button class="smallBtn" plain size="small" type="primary" - @click="checkViewClickHandler">鏌ョ湅浣跨敤鑼冨洿 - </el-button> - </div> - <!-- 宸︿晶鏍� --> - <div style="height: calc(100vh - 280px);"> - <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"> - <span slot-scope="{ node, data }" class="el-tree-node__label"> - <span style="font-size: 15px"> - <i class="el-icon-s-promotion"></i> - {{ (node || {}).label }} - </span> - </span> - </avue-tree> - </div> - </div> - </basic-container> - </el-aside> - - <el-main> - <basic-container> - </basic-container> - </el-main> - - </el-container> -</template> - -<script> -export default { - name: "index" -} -</script> - -<style lang="scss" scoped> -::v-deep { - .el-scrollbar__wrap { - overflow: auto !important; - } - .headerCon{ - .el-button{ - width: 82px; - } - } -} - -.headerCon { - display: flex; - flex-wrap: wrap; - margin-bottom: 5px; - - .el-button + .el-button { - margin-left: 5px; - } - - .el-button { - margin-top: 5px; - } -} - -.headerCon > .el-button:nth-child(4) { - margin-left: 0; -} - -.headerCon > .el-button:nth-child(7) { - margin-left: 0; -} - - -.smallBtn { - width: 82px; - text-align: center; - padding-left: 4.5px; -} - -</style> diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue index 36620ac..cd500be 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue @@ -11,12 +11,12 @@ > <el-container> <div style="height: 79vh;display: flex;width: 100%;"> - - <el-aside width="15%"> + <el-aside width="17%"> <basic-container> <div style="height:650px;"> <avue-tree :data="treeData" + :loading="treeLoading" :option="treeOption" @node-drag-start="handleDragStart"> </avue-tree> @@ -26,48 +26,52 @@ <el-main> <basic-container> - <div style="height: 645px" @drop="drop" @dragover.prevent> + <div style="height: 645px;overflow-y: auto;padding-right: 5px" @drop="drop" @dragover.prevent> <div style="display: flex;justify-content: center"> <span style="display: flex;align-items: center; margin-right: 5px;"> <p class="tableTopLabel">鍚嶇О锛�</p> - <el-input v-model="name" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="topForm.viName" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </span> <span style="display: flex;align-items: center; margin-right: 5px;"> <p class="tableTopLabel">鏌ヨ妯℃澘鍚嶇О锛�</p> - <el-input v-model="name" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemQtName" placeholder="璇疯緭鍏ユ煡璇㈡ā鏉垮悕绉�" size="mini"></el-input> </span> <span style="display: flex;align-items: center; margin-right: 5px;"> <p class="tableTopLabel">鏄剧ず鍒楁暟锛�</p> - <el-input v-model="name" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> - <el-button plain size="mini" style="margin-left: 3px" type="success">璁剧疆</el-button> + <el-input v-model="topForm.showColumn" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-button plain size="mini" style="margin-left: 3px" type="success" + @click="setColumnHandler">璁剧疆</el-button> </span> <span style="display: flex;align-items: center; margin-right: 5px;"> <p class="tableTopLabel">浣嶇疆锛�</p> - <el-input v-model="name" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> - <el-button plain size="mini" style="margin-left: 3px" type="success">璋冩暣浣嶇疆</el-button> + <el-input v-model="topForm.position" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-button plain size="mini" style="margin-left: 3px" type="success" @click="positionClickHandler">璋冩暣浣嶇疆</el-button> </span> </div> <h3>椤甸潰瀹氫箟</h3> <el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-row> - <el-col v-for="(item,index) in formList" :key="index" :span="columnNumber"> - <el-tooltip :content="item.name" placement="top"> - <el-form-item :label="item.name + '锛�'" class="hiddenLabel"> - <el-input v-model="item.value" :splaceholder="item.name" size="mini"></el-input> - </el-form-item> - </el-tooltip> + <el-col v-for="(item,index) in formList" :key="index" :span="topForm.columnNumber"> + <el-form-item :class="['hiddenLabel', { 'active-border': activeItem.text === item.text }]" + :label="item.text + '锛�'" + style="padding-left: 5px" @click.native="formItemClick(item,index)"> + <el-input v-model="item.value" :placeholder="item.text" size="mini"></el-input> + </el-form-item> </el-col> </el-row> </el-form> </div> <div style="display: flex;justify-content: center;margin-top: 15px"> - <el-button icon="el-icon-check" size="small" type="primary">淇濆瓨</el-button> - <el-button icon="el-icon-delete" plain size="small" type="danger">娓呯┖</el-button> - <el-button icon="el-icon-el-icon-close" plain size="small" type="primary">鍒犻櫎缁勪欢</el-button> - <el-button icon="el-icon-plus" plain size="small" type="primary">娣诲姞鑷畾涔夌粍浠�</el-button> + <el-button icon="el-icon-check" size="small" type="primary" @click="saveClickHandler">淇濆瓨</el-button> + <el-button icon="el-icon-delete" plain size="small" type="danger" @click="emptyClickHandler">娓呯┖ + </el-button> + <el-button icon="el-icon-close" plain size="small" type="primary" @click="delModuleClickHandler">鍒犻櫎缁勪欢 + </el-button> + <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addCustomClickHandler">娣诲姞鑷畾涔夌粍浠� + </el-button> <el-button icon="el-icon-zoom-in" plain size="small" type="primary">棰勮</el-button> </div> </basic-container> @@ -82,24 +86,26 @@ <el-col :span="24"> <el-form-item label="浣跨敤瀛楁"> <div style="display: flex"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> - <el-checkbox v-model="checked" style="margin-left: 5px; margin-right: 5px">鍙</el-checkbox> - <el-checkbox v-model="checked" style="margin-left: 5px;margin-right: 0px">蹇呭~</el-checkbox> + <el-input v-model="form.text" placeholder="璇疯緭鍏ヤ娇鐢ㄥ瓧娈�" size="mini"></el-input> + <el-checkbox v-model="form.itemIsEditable" style="margin-left: 5px; margin-right: 5px">鍙 + </el-checkbox> + <el-checkbox v-model="form.itemIsRequired" style="margin-left: 5px;margin-right: 0px">蹇呭~ + </el-checkbox> </div> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鏄剧ず鍚嶇О"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemName" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item class="rightLabel" label="鏄剧ず绫诲瀷"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨娲诲姩鍖哄煙" size="mini"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> + <el-select v-model="form.itemType" placeholder="璇烽�夋嫨绫诲瀷" size="mini"> + <el-option v-for="(item,index) in showSelectList" :key="index" :label="item.label" + :value="item.value"></el-option> </el-select> </el-form-item> </el-col> @@ -107,38 +113,38 @@ <el-col :span="24"> <el-tooltip content="榛樿鍊艰〃杈惧紡" placement="top"> <el-form-item class="hiddenLabel" label="榛樿鍊艰〃杈惧紡"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemValue" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-tooltip> </el-col> <el-col :span="24"> - <!-- <el-tooltip content="鏄剧ず琛ㄨ揪寮�" placement="top">--> + <!-- <el-tooltip content="鏄剧ず琛ㄨ揪寮�" placement="top">--> <el-form-item label="鏄剧ず琛ㄨ揪寮�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemShowExpression" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> - <!-- </el-tooltip>--> + <!-- </el-tooltip>--> </el-col> <el-col :span="24"> <el-tooltip content="鏃ユ湡鏍煎紡鍖栧瓧绗︿覆" placement="top"> <el-form-item class="hiddenLabel" label="鏃ユ湡鏍煎紡鍖栧瓧绗︿覆锛�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemDateFormat" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-tooltip> </el-col> <el-col :span="24"> <el-form-item label="鍗犱綅鏂瑰紡"> - <el-radio v-model="treeRadio" label="0">鏄剧ず</el-radio> - <el-radio v-model="treeRadio" label="1">涓嶆樉绀�</el-radio> + <el-radio v-model="form.itemCols" label="1">鏄剧ず</el-radio> + <el-radio v-model="form.itemCols" label="2">涓嶆樉绀�</el-radio> </el-form-item> </el-col> <el-col :span="24" style="height: 90px"> <el-form-item label="瀛楁琛ㄨ揪寮�"> <el-input - v-model="textarea2" + v-model="form.itemAddFilter" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" resize="none" @@ -151,7 +157,7 @@ <el-tooltip content="鍙閫夋嫨鏉′欢" placement="top"> <el-form-item class="hiddenLabel" label="鍙閫夋嫨鏉′欢"> <el-input - v-model="textarea2" + v-model="form.itemEditableProgram" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" resize="none" @@ -163,20 +169,20 @@ <el-col :span="12"> <el-form-item label="鎺у埗鍒�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemCtrlDisplyCol" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item class="rightLabel" label="鏄剧ず鍒楁潯浠�" label-width="95px"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemCtrlDisplyCondition" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="鏉冮檺鎺у埗"> <div style="display: flex;align-items: center"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemRight" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> <el-button plain size="mini" style="margin-left: 3px" type="success">閫夋嫨</el-button> </div> </el-form-item> @@ -187,7 +193,7 @@ <el-col :span="24" style="height: 90px"> <el-form-item label="鑴氭湰楠岃瘉"> <el-input - v-model="textarea2" + v-model="form.itemScript" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" resize="none" @@ -199,7 +205,7 @@ <el-col :span="24" style="height: 90px"> <el-form-item label="鎻愮ず鏂囧瓧"> <el-input - v-model="textarea2" + v-model="form.itemTips" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" resize="none" @@ -210,19 +216,19 @@ <el-col :span="24"> <el-form-item label="鏌ヨ鍏宠仈鍒�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemQueryRefFields" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="鑷畾涔夌被"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemCustomClass" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="瀛樺偍璺緞"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemHttpVolumnPath" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> @@ -230,8 +236,8 @@ <el-tooltip content="瀛樺偍璺緞瀛楁" placement="top"> <el-form-item class="hiddenLabel" label="瀛樺偍璺緞瀛楁"> <div style="display: flex"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> - <el-checkbox v-model="checked" style="margin-left: 5px">http瀛樺偍</el-checkbox> + <el-input v-model="form.itemHttpPathField" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-checkbox v-model="form.itemIsHttpSave" style="margin-left: 5px">http瀛樺偍</el-checkbox> </div> </el-form-item> </el-tooltip> @@ -239,17 +245,18 @@ </el-row> - <el-row style="margin-top: 10px;border-bottom: 1px solid #878585;padding-bottom: 10px"> + <el-row v-if="form.itemType ? optionTypeStatus : true" + style="margin-top: 10px;border-bottom: 1px solid #878585;padding-bottom: 10px"> <h4>閫夐」鍒楄〃</h4> <el-col :span="12"> <el-form-item label="鍚嶇О"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="optionObj.optionName" placeholder="璇疯緭鍏ュ悕绉�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item class="rightLabel" label="鍊�" label-width="95px"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="optionObj.optionValue" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> @@ -257,18 +264,19 @@ <el-form-item> <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto"> <el-table - :data="optionRightData" + :data="form.itemValueList" :highlight-current-row="true" :show-header="false" border stripe - style="width: 100%"> + style="width: 100%" + @row-click="optionTableClick"> <el-table-column align="center" label="鍚嶇О" - prop="name"> + prop="key"> <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.name }}</el-tag> + <el-tag size="medium">{{ scope.row.key }}</el-tag> </template> </el-table-column> <el-table-column @@ -282,36 +290,39 @@ </el-table> </div> <div style="display: flex;align-items: center;justify-content: center;margin-top: 5px"> - <el-button plain size="mini" style="margin-right: 5px" type="success">娣诲姞</el-button> - <el-button plain size="mini" style="margin-left: 5px" type="danger">鍒犻櫎</el-button> + <el-button plain size="mini" style="margin-right: 5px" type="success" + @click="optionAddClickHandler">娣诲姞 + </el-button> + <el-button plain size="mini" style="margin-left: 5px" type="danger" + @click="optionDeleteClickHandler">鍒犻櫎 + </el-button> </div> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="涓�绾у弬鐓�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemListTable" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="浜岀骇鍙傜収"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemListTxt" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="鍙傜収鍊�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemListVal" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> </el-form-item> </el-col> </el-row> - - <el-row style="margin-top: 10px"> + <el-row v-if="form.itemType ? itemStyleTypeStatus : true" style="margin-top: 10px"> <el-col :span="24" style="height: 90px"> <el-form-item label="闄勫姞灞炴��"> <el-input - v-model="textarea2" + v-model="form.itemStyle" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" resize="none" @@ -325,19 +336,392 @@ </div> </basic-container> </el-aside> - </div> - </el-container> + + <!-- 娣诲姞鑷畾涔夌粍浠� --> + <el-dialog + v-dialogDrag + v-loading="customLoading" + :visible.sync="customVisible" + append-to-body="true" + class="avue-dialog" + title="琛ㄥ崟" + width="40%" + @close="closeCustomDialog"> + <el-form ref="form" :model="customForm" :rules="rules" label-position="left" label-width="85px"> + <el-row style="border-bottom: 1px solid #878585;padding-bottom: 10px"> + <el-col :span="24"> + <el-form-item label="浣跨敤瀛楁"> + <div style="display: flex"> + <el-input v-model="customForm.text" placeholder="璇疯緭鍏ヤ娇鐢ㄥ瓧娈�" size="mini"></el-input> + <el-checkbox v-model="customForm.itemIsEditable" style="margin-left: 5px; margin-right: 5px">鍙 + </el-checkbox> + <el-checkbox v-model="customForm.itemIsRequired" style="margin-left: 5px;margin-right: 0px">蹇呭~ + </el-checkbox> + </div> + </el-form-item> + </el-col> + + <el-col :span="12"> + <el-form-item label="鏄剧ず鍚嶇О"> + <el-input v-model="customForm.itemName" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="12"> + <el-form-item class="rightLabel" label="鏄剧ず绫诲瀷"> + <el-select v-model="customForm.itemType" placeholder="璇烽�夋嫨绫诲瀷" size="mini"> + <el-option v-for="(item,index) in showSelectList" :key="index" :label="item.label" + :value="item.value"></el-option> + </el-select> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-tooltip content="榛樿鍊艰〃杈惧紡" placement="top"> + <el-form-item class="hiddenLabel" label="榛樿鍊艰〃杈惧紡"> + <el-input v-model="customForm.itemValue" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-tooltip> + </el-col> + + <el-col :span="24"> + <!-- <el-tooltip content="鏄剧ず琛ㄨ揪寮�" placement="top">--> + <el-form-item label="鏄剧ず琛ㄨ揪寮�"> + <el-input v-model="customForm.itemShowExpression" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + <!-- </el-tooltip>--> + </el-col> + + <el-col :span="24"> + <el-tooltip content="鏃ユ湡鏍煎紡鍖栧瓧绗︿覆" placement="top"> + <el-form-item class="hiddenLabel" label="鏃ユ湡鏍煎紡鍖栧瓧绗︿覆锛�"> + <el-input v-model="customForm.itemDateFormat" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-tooltip> + </el-col> + + <el-col :span="24"> + <el-form-item label="鍗犱綅鏂瑰紡"> + <el-radio v-model="customForm.itemCols" label="1">鏄剧ず</el-radio> + <el-radio v-model="customForm.itemCols" label="2">涓嶆樉绀�</el-radio> + </el-form-item> + </el-col> + + <el-col :span="24" style="height: 90px"> + <el-form-item label="瀛楁琛ㄨ揪寮�"> + <el-input + v-model="customForm.itemAddFilter" + :rows="3" + placeholder="璇疯緭鍏ュ唴瀹�" + resize="none" + type="textarea"> + </el-input> + </el-form-item> + </el-col> + + <el-col :span="24" style="height: 90px"> + <el-tooltip content="鍙閫夋嫨鏉′欢" placement="top"> + <el-form-item class="hiddenLabel" label="鍙閫夋嫨鏉′欢"> + <el-input + v-model="customForm.itemEditableProgram" + :rows="3" + placeholder="璇疯緭鍏ュ唴瀹�" + resize="none" + type="textarea"> + </el-input> + </el-form-item> + </el-tooltip> + </el-col> + + <el-col :span="12"> + <el-form-item label="鎺у埗鍒�"> + <el-input v-model="customForm.itemCtrlDisplyCol" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="12"> + <el-form-item class="rightLabel" label="鏄剧ず鍒楁潯浠�" label-width="95px"> + <el-input v-model="customForm.itemCtrlDisplyCondition" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-form-item label="鏉冮檺鎺у埗"> + <div style="display: flex;align-items: center"> + <el-input v-model="customForm.itemRight" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-button plain size="mini" style="margin-left: 3px" type="success">閫夋嫨</el-button> + </div> + </el-form-item> + </el-col> + + </el-row> + <el-row style="margin-top: 10px;border-bottom: 1px solid #878585;padding-bottom: 10px"> + <el-col :span="24" style="height: 90px"> + <el-form-item label="鑴氭湰楠岃瘉"> + <el-input + v-model="customForm.itemScript" + :rows="3" + placeholder="璇疯緭鍏ュ唴瀹�" + resize="none" + type="textarea"> + </el-input> + </el-form-item> + </el-col> + + <el-col :span="24" style="height: 90px"> + <el-form-item label="鎻愮ず鏂囧瓧"> + <el-input + v-model="customForm.itemTips" + :rows="3" + placeholder="璇疯緭鍏ュ唴瀹�" + resize="none" + type="textarea"> + </el-input> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-form-item label="鏌ヨ鍏宠仈鍒�"> + <el-input v-model="customForm.itemQueryRefFields" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-form-item label="鑷畾涔夌被"> + <el-input v-model="customForm.itemCustomClass" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-form-item label="瀛樺偍璺緞"> + <el-input v-model="customForm.itemHttpVolumnPath" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-tooltip content="瀛樺偍璺緞瀛楁" placement="top"> + <el-form-item class="hiddenLabel" label="瀛樺偍璺緞瀛楁"> + <div style="display: flex"> + <el-input v-model="customForm.itemHttpPathField" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-checkbox v-model="customForm.itemIsHttpSave" style="margin-left: 5px">http瀛樺偍</el-checkbox> + </div> + </el-form-item> + </el-tooltip> + </el-col> + + </el-row> + + <el-row style="margin-top: 10px;border-bottom: 1px solid #878585;padding-bottom: 10px"> + <h4>閫夐」鍒楄〃</h4> + <el-col :span="12"> + <el-form-item label="鍚嶇О"> + <el-input v-model="customOptionObj.optionName" placeholder="璇疯緭鍏ュ悕绉�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="12"> + <el-form-item class="rightLabel" label="鍊�" label-width="95px"> + <el-input v-model="customOptionObj.optionValue" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="24" style="height: 190px"> + <el-form-item> + <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto"> + <el-table + :data="customForm.itemValueList" + :highlight-current-row="true" + :show-header="false" + border + stripe + style="width: 100%"> + <el-table-column + align="center" + label="鍚嶇О" + prop="key"> + <template slot-scope="scope"> + <el-tag size="medium">{{ scope.row.key }}</el-tag> + </template> + </el-table-column> + <el-table-column + align="center" + label="鍊�" + prop="value"> + <template slot-scope="scope"> + <el-tag size="medium">{{ scope.row.value }}</el-tag> + </template> + </el-table-column> + </el-table> + </div> + <div style="display: flex;align-items: center;justify-content: center;margin-top: 5px"> + <el-button plain size="mini" style="margin-right: 5px" type="success" + @click="optionAddClickHandler('dialog')">娣诲姞 + </el-button> + <el-button plain size="mini" style="margin-left: 5px" type="danger">鍒犻櫎</el-button> + </div> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-form-item label="涓�绾у弬鐓�"> + <el-input v-model="customForm.itemListTable" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-form-item label="浜岀骇鍙傜収"> + <el-input v-model="customForm.itemListTxt" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + + <el-col :span="24"> + <el-form-item label="鍙傜収鍊�"> + <el-input v-model="customForm.itemListVal" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row style="margin-top: 10px"> + <el-col :span="24" style="height: 90px"> + <el-form-item label="闄勫姞灞炴��"> + <el-input + v-model="customForm.itemStyle" + :rows="3" + placeholder="璇疯緭鍏ュ唴瀹�" + resize="none" + type="textarea"> + </el-input> + </el-form-item> + </el-col> + </el-row> + + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="customVisible = false">鍙� 娑�</el-button> + <el-button type="primary">纭� 瀹�</el-button> + </span> + </el-dialog> </el-dialog> </template> <script> +import {getTreeAttributes} from "@/api/UI/formDefine/api"; +import func from "@/util/func"; export default { name: "formDialog", + props: { + TreeNodeRow: { + type: Object, + default: () => { + } + }, + treeRadio: { + type: String, + default: "" + } + }, data() { return { + optionObj: { + optionName: '', + optionValue: '' + }, + customOptionObj: { + optionName: '', + optionValue: '' + }, + customForm: { + itemValueList: [], + }, + customLoading: false, + customVisible: false, + treeLoading: false, + showSelectList: [ + { + label: '鍗曡鏂囨湰妗�', + value: 'text' + }, + { + label: '鏂囨湰鎸夐挳妗�', + value: 'textbtn' + }, + { + label: '澶氳鏂囨湰妗�', + value: 'textarea' + }, + { + label: '瀵屾枃鏈', + value: 'richtext' + }, + { + label: '鏁板瓧杈撳叆妗�', + value: 'number' + }, + { + label: '瀵嗙爜妗�', + value: 'password' + }, + { + label: '鍗曢�夋寜閽�', + value: 'radio' + }, + { + label: '澶氶�夋寜閽�', + value: 'checkbox' + }, + { + label: '涓嬫媺鑿滃崟', + value: 'select' + }, + { + label: '澶氶�変笅鎷夎彍鍗�', + value: 'multiselect' + }, + { + label: '鏃ユ湡杈撳叆妗�', + value: 'date' + }, + { + label: '鏃堕棿杈撳叆妗�', + value: 'time' + }, + { + label: '鏃ユ湡鏃堕棿杈撳叆妗�', + value: 'datetime' + }, + { + label: '鏂囦欢涓婁紶', + value: 'file' + }, + { + label: '澶氭枃浠朵笂浼�', + value: 'multiFile' + }, + { + label: '鑷畾涔�', + value: 'custom' + }, + { + label: '鑷畾涔夎〃鍗�', + value: 'customform' + }, + { + label: '闅愯棌鎴栨櫘閫氭枃瀛�', + value: 'hidden' + }, + { + label: 'Web缂栬緫鍣�', + value: 'webeditor' + }, + { + label: '鐗规畩瀛楃', + value: 'specialCharacter' + }, + ], + activeItem: {}, // 鐢ㄤ簬瀛樺偍褰撳墠鐐瑰嚮鐨� item 鐨勮妭鐐逛俊鎭� + activeItemIndex: null, // 鐢ㄤ簬瀛樺偍褰撳墠鐐瑰嚮鑺傜偣鐨� index 涓嬫爣 formList: [], optionRightData: [ { @@ -346,208 +730,71 @@ } ], form: {}, + topForm: { + columnNumber: 8, + showColumn: '', + viName: '', + position: '' + }, rules: {}, - columnNumber: 3, loading: false, visible: false, treeOption: { + height: 'auto', menu: false, addBtn: false, draggable: true, + defaultExpandedKeys: ['root'], allowDrop: () => { return false; }, allowDrag: () => { return true; }, - // props: { - // label: 'name', - // value: 'id', - // children: 'children', - // }, + props: { + label: 'text', + value: 'oid', + children: 'children', + }, }, - treeData: [ - { - value: 0, - label: '涓�绾ч儴闂�', - children: [ - { - value: 1, - label: '涓�绾ч儴闂�1', - }, { - value: 2, - label: '涓�绾ч儴闂�2', - } - ] - }, { - value: 3, - label: '浜岀骇閮ㄩ棬', - children: [ - { - value: 4, - label: '浜岀骇閮ㄩ棬1', - }, { - value: 5, - label: '浜岀骇閮ㄩ棬2', - } - ] - }, - { - value: 0, - label: '涓�绾ч儴闂�', - children: [ - { - value: 1, - label: '涓�绾ч儴闂�1', - }, { - value: 2, - label: '涓�绾ч儴闂�2', - } - ] - }, { - value: 3, - label: '浜岀骇閮ㄩ棬', - children: [ - { - value: 4, - label: '浜岀骇閮ㄩ棬1', - }, { - value: 5, - label: '浜岀骇閮ㄩ棬2', - } - ] - }, - { - value: 0, - label: '涓�绾ч儴闂�', - children: [ - { - value: 1, - label: '涓�绾ч儴闂�1', - }, { - value: 2, - label: '涓�绾ч儴闂�2', - } - ] - }, { - value: 3, - label: '浜岀骇閮ㄩ棬', - children: [ - { - value: 4, - label: '浜岀骇閮ㄩ棬1', - }, { - value: 5, - label: '浜岀骇閮ㄩ棬2', - } - ] - }, - { - value: 0, - label: '涓�绾ч儴闂�', - children: [ - { - value: 1, - label: '涓�绾ч儴闂�1', - }, { - value: 2, - label: '涓�绾ч儴闂�2', - } - ] - }, { - value: 3, - label: '浜岀骇閮ㄩ棬', - children: [ - { - value: 4, - label: '浜岀骇閮ㄩ棬1', - }, { - value: 5, - label: '浜岀骇閮ㄩ棬2', - } - ] - }, - { - value: 0, - label: '涓�绾ч儴闂�', - children: [ - { - value: 1, - label: '涓�绾ч儴闂�1', - }, { - value: 2, - label: '涓�绾ч儴闂�2', - } - ] - }, { - value: 3, - label: '浜岀骇閮ㄩ棬', - children: [ - { - value: 4, - label: '浜岀骇閮ㄩ棬1', - }, { - value: 5, - label: '浜岀骇閮ㄩ棬2', - } - ] - }, - { - value: 0, - label: '涓�绾ч儴闂�', - children: [ - { - value: 1, - label: '涓�绾ч儴闂�1', - }, { - value: 2, - label: '涓�绾ч儴闂�2', - } - ] - }, { - value: 3, - label: '浜岀骇閮ㄩ棬', - children: [ - { - value: 4, - label: '浜岀骇閮ㄩ棬1', - }, { - value: 5, - label: '浜岀骇閮ㄩ棬2', - } - ] - }, - { - value: 0, - label: '涓�绾ч儴闂�', - children: [ - { - value: 1, - label: '涓�绾ч儴闂�1', - }, { - value: 2, - label: '涓�绾ч儴闂�2', - } - ] - }, { - value: 3, - label: '浜岀骇閮ㄩ棬', - children: [ - { - value: 4, - label: '浜岀骇閮ㄩ棬1', - }, { - value: 5, - label: '浜岀骇閮ㄩ棬2', - } - ] - } - ] + treeData: [] } + }, + computed: { + optionTypeStatus() { + const types = ['radio', 'checkbox', 'select']; + return types.includes(this.form.itemType); // 灞曠ず + }, + + itemStyleTypeStatus() { + const types = ['hidden', 'webeditor', 'radio', 'checkbox']; + return !types.includes(this.form.itemType); // 涓嶅睍绀� + } + }, + created() { + // this.getTreeList(); }, methods: { // 鍏抽棴瀵硅瘽妗� closeDialog() { + this.formList = []; + + }, + + getTreeList() { + this.treeLoading = true; + const params = { + 'conditionMap[typeName]': this.treeRadio === '0' ? this.TreeNodeRow.id : this.TreeNodeRow.name, + 'conditionMap[isDefault]': true, + 'conditionMap[typeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '', + } + getTreeAttributes(params).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.treeData = data; + this.treeLoading = false; + } + }) }, // 寮�濮嬫嫋鎷芥爲鑺傜偣浜嬩欢 @@ -560,13 +807,183 @@ drop(event) { // 浣跨敤 getData 鏂规硶鑾峰彇鏁版嵁 const data = JSON.parse(event.dataTransfer.getData('item')); - console.log('data', data); const params = { - name: data.label, - value: '', - type: '' + text: data.text, + oid: data.oid, } - this.formList.push(params) + const isDuplicate = this.formList.some(item => item.text === data.text); + + if (isDuplicate) { + this.$message.error('璇锋鏌ユ槸鍚︽坊鍔犵浉鍚岄」锛�') + } else { + this.formList.push(params); + } + }, + + // 椤甸潰瀹氫箟閫夐」鐐瑰嚮 + formItemClick(item, index) { + this.activeItem = item; + this.activeItemIndex = index; + this.form = {...item}; + }, + + // 璁剧疆鏄剧ず琛屾暟 + setColumnHandler() { + const number = /^[0-9]*\.?[0-9]+$/.test(this.topForm.showColumn); + + if (!number) { + this.$message.error('鍊煎繀椤绘槸鏁板瓧瀛楃'); + return; + } + this.topForm.columnNumber = this.getValueBasedOnInput(this.topForm.showColumn); + }, + + // 鏍规嵁浼犲叆姣忚鍒楁暟 鏉ュ垽鏂璭l-col :span鏄灏� + getValueBasedOnInput(val) { + const n = JSON.parse(val ? val : '3'); + switch (n) { + case 1: + return 24; + case 2: + return 12; + case 3: + return 8; + case 4: + return 6; + case 5: + return 4; + case 6: + return 4; + case 7: + case 8: + return 3; + case 9: + return 2; + default: + return n > 10 ? 1 : 8; // 榛樿缁�8 + } + }, + + // 娓呯┖椤甸潰瀹氫箟 + emptyClickHandler() { + this.$confirm('鎮ㄧ‘瀹氳娓呯┖鎵�鏈夋暟鎹悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.formList = []; + this.activeItem = {}; + this.form = {}; + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛!' + }); + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 鍒犻櫎缁勪欢 + delModuleClickHandler() { + if (func.isEmptyObject(this.activeItem)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屽垹闄�'); + return; + } + this.formList = this.formList.filter(item => item.text != this.activeItem.text); + this.activeItem = {}; + this.form = {}; + }, + + // 璋冩暣浣嶇疆 + positionClickHandler() { + if (!this.topForm.position) { + this.$message.error('璇疯緭鍏ヨ皟鏁翠綅缃�'); + return; + } + + if (func.isEmptyObject(this.activeItem)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛岃皟鏁翠綅缃�'); + return; + } + + const number = /^[0-9]*\.?[0-9]+$/.test(this.topForm.position); + + if (!number) { + this.$message.error('鍊煎繀椤绘槸鏁板瓧瀛楃'); + return; + } + + // 鍏堝皢瑕佹洿鎹綅缃殑椤归�氳繃 activeItemIndex 杩涜绉婚櫎 + this.formList.splice(this.activeItemIndex, 1); + // 灏嗗綋鍓嶇偣鍑诲璞� activeItem 鎻掑叆鍒版暟缁勪腑瀵瑰簲浣嶇疆 + this.formList.splice(JSON.parse(this.topForm.position) - 1, 0, this.activeItem); + this.activeItem = {}; + this.activeItemIndex = null; + }, + + // 閫夐」琛ㄦ牸琛岀偣鍑� + optionTableClick(row) { + console.log(row); + }, + + // 閫夐」娣诲姞 + optionAddClickHandler(val) { + let optionObj, itemValueList; + + if (val === 'dialog') { + optionObj = this.customOptionObj; + itemValueList = this.customForm.itemValueList; + } else { + if (func.isEmptyObject(this.activeItem)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屾坊鍔犻�夐」'); + return; + } + optionObj = this.optionObj; + itemValueList = this.form.itemValueList; + } + + if (!optionObj.optionName) { + this.$message.error('璇疯緭鍏ラ�夐」鍚嶇О'); + return; + } + + if (!optionObj.optionValue) { + this.$message.error('璇疯緭鍏ラ�夐」鍊�'); + return; + } + + const params = { + key: optionObj.optionName, + value: optionObj.optionValue + }; + + itemValueList.push(params); + }, + + // 閫夐」鍒犻櫎 + optionDeleteClickHandler() { + + }, + + // 娣诲姞鑷畾涔夌粍浠� + addCustomClickHandler() { + this.customVisible = true; + }, + + // 淇濆瓨鎸夐挳 + saveClickHandler() { + if (!this.topForm.viName) { + this.$message.error('鍚嶇О涓嶈兘涓虹┖'); + return; + } + if (this.formList.length <= 0) { + this.$message.error('椤甸潰涓嶈兘涓虹┖'); + return; + } + } } } @@ -582,6 +999,12 @@ } } + .active-border { + .el-form-item__label { + color: #f56c6c; /* 璁剧疆杈规鐨勬牱寮� */ + } + } + .el-col { margin-bottom: 0px; height: 40px; diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue index 0805b0c..6350b43 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue @@ -9,35 +9,35 @@ width="60%" @close="closeDialog" > - <el-form :model="form" :rules="rules" label-position="right" label-width="100px"> + <el-form v-loading="formLoading" :model="form" :rules="rules" label-position="right" label-width="100px"> <el-row> <el-col :span="12"> <el-form-item label="鍚嶇О"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.viName" placeholder="璇疯緭鍏ュ悕绉�" size="mini"></el-input> </el-form-item> </el-col> - <el-col :span="12"> <el-form-item label="姣忛〉琛屾暟"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemPageSize" placeholder="璇疯緭鍏ユ瘡椤佃鏁�" size="mini" type="number"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="闄勫姞鏌ヨ鏉′欢"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemAddFilter" placeholder="璇疯緭鍏ユ煡璇㈡潯浠�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="缁戝畾琛ㄥ崟"> <div style="display: flex;align-items: center;"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨娲诲姩鍖哄煙" size="mini"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> + <el-select v-model="form.itemInObj" clearable placeholder="璇烽�夋嫨缁戝畾琛ㄥ崟" size="mini"> + <el-option v-for="(item,index) in selectList" :key="index" :label="item.viName" + :value="item.id"></el-option> </el-select> - <el-button plain size="mini" style="margin-left: 3px" type="success">閫夋嫨</el-button> + <el-button plain size="mini" style="margin-left: 3px" type="success" @click="formSelectClickHandler">閫夋嫨 + </el-button> </div> </el-form-item> </el-col> @@ -45,9 +45,11 @@ <el-col :span="12"> <el-form-item label="鐖跺悕绉�"> <div style="display: flex;align-items: center;"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> - <el-checkbox v-model="checked" style="margin-left: 5px; margin-right: 5px">鏄剧ず鏌ヨ鍖哄煙</el-checkbox> - <el-checkbox v-model="checked" style="margin-left: 5px;margin-right: 0px">鏄剧ず鏂囦欢澶�</el-checkbox> + <el-input v-model="form.itemParentFolderName" placeholder="璇疯緭鍏ョ埗鍚嶇О" size="mini"></el-input> + <el-checkbox v-model="form.itemIsNavigatorExpand" style="margin-left: 5px; margin-right: 5px">鏄剧ず鏌ヨ鍖哄煙 + </el-checkbox> + <el-checkbox v-model="form.itemIsShowFolder" style="margin-left: 5px;margin-right: 0px">鏄剧ず鏂囦欢澶� + </el-checkbox> </div> </el-form-item> </el-col> @@ -57,8 +59,10 @@ <div style="display: flex; align-items: center"> <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> <el-table - :data="showLifeTable" - style="width: 100%"> + :data="form.itemSelectOutFieldList" + :highlight-current-row="true" + style="width: 100%" + @row-click="showLabelLeftRowClick"> <el-table-column align="center" label="鍙娇鐢ㄥ瓧娈�" @@ -67,13 +71,16 @@ </el-table> </div> <div style="margin-left: 10px; margin-right: 10px"> - <el-button circle icon="el-icon-back" style="margin-right: 10px"></el-button> - <el-button circle icon="el-icon-right"></el-button> + <el-button circle icon="el-icon-back" style="margin-right: 10px" + @click="showLeftTransferClick"></el-button> + <el-button circle icon="el-icon-right" @click="showRightTransferClick"></el-button> </div> <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> <el-table - :data="showRightTable" - style="width: 100%"> + :data="form.itemOutFieldList" + :highlight-current-row="true" + style="width: 100%" + @row-click="showLabelRightRowClick"> <el-table-column align="center" label="闇�瑕佷娇鐢ㄥ瓧娈�" @@ -90,8 +97,10 @@ <div style="display: flex; align-items: center"> <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> <el-table - :data="searchLifeTable" - style="width: 100%"> + :data="form.itemSearchFieldList" + :highlight-current-row="true" + style="width: 100%" + @row-click="searchLeftRowClick"> <el-table-column align="center" label="鍙緵鎼滅储瀛楁" @@ -100,13 +109,16 @@ </el-table> </div> <div style="margin-left: 10px; margin-right: 10px"> - <el-button circle icon="el-icon-back" style="margin-right: 10px"></el-button> - <el-button circle icon="el-icon-right"></el-button> + <el-button circle icon="el-icon-back" style="margin-right: 10px" + @click="searchLeftTransferClick"></el-button> + <el-button circle icon="el-icon-right" @click="searchRightTransferClick"></el-button> </div> <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> <el-table - :data="searchRightTable" - style="width: 100%"> + :data="form.itemKeyFieldList" + :highlight-current-row="true" + style="width: 100%" + @row-click="searchRightRowClick"> <el-table-column align="center" label="闇�鎼滅储瀛楁" @@ -120,9 +132,9 @@ <el-col :span="12"> <el-form-item label="鍒�"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨鍒�" size="mini"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> + <el-select v-model="form.itemFileWidthSelect" placeholder="璇烽�夋嫨鍒�" size="mini" @change="itemFileWidthChange"> + <el-option v-for="(item,index) in form.itemFieldWidthList" :key="index" :label="item.key" + :value="item.key"></el-option> </el-select> </el-form-item> </el-col> @@ -130,8 +142,10 @@ <el-col :span="12"> <el-form-item label="瀹藉害"> <div style="display: flex;align-items: center;"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini" style="width: 193px"></el-input> - <el-button plain size="mini" style="margin-left: 3px" type="success">璁剧疆</el-button> + <el-input v-model="form.itemWidth" placeholder="璇疯緭鍏ュ搴�" size="mini" style="width: 193px" + type="number"></el-input> + <el-button plain size="mini" style="margin-left: 3px" type="success" @click="widthSetUpClickHandler">璁剧疆 + </el-button> </div> </el-form-item> </el-col> @@ -141,25 +155,26 @@ <el-form-item label="璁剧疆鍒楀"> <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto"> <el-table - :data="columnWidthData" + :data="form.itemFieldWidthList" :highlight-current-row="true" border stripe - style="width: 100%"> + style="width: 100%" + @row-click="itemFileWidthRowClick"> <el-table-column align="center" label="鍒楀悕" - prop="id"> + prop="key"> <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.id }}</el-tag> + <el-tag size="medium">{{ scope.row.key }}</el-tag> </template> </el-table-column> <el-table-column align="center" label="鍒楀" - prop="width"> + prop="value"> <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.width }}</el-tag> + <el-tag size="medium">{{ scope.row.value }}</el-tag> </template> </el-table-column> </el-table> @@ -169,22 +184,24 @@ <el-col :span="8"> <el-form-item label="鏌ヨ瀛楁"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.searchLabel" placeholder="璇疯緭鍏ユ煡璇㈠瓧娈�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="鏌ヨ娆℃暟"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.searchNumber" placeholder="璇疯緭鍏ユ煡璇㈡鏁�" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="鏌ヨsql"> <div style="display: flex;align-items: center"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> - <el-button plain size="mini" style="margin-left: 3px" type="success">娣诲姞</el-button> - <el-button plain size="mini" style="margin-left: 3px" type="danger">鍒犻櫎</el-button> + <el-input v-model="form.searchSql" placeholder="璇疯緭鍏ql" size="mini"></el-input> + <el-button plain size="mini" style="margin-left: 3px" type="success" @click="searchAddClickHandler">娣诲姞 + </el-button> + <el-button plain size="mini" style="margin-left: 3px" type="danger" @click="searchDelClickHandler">鍒犻櫎 + </el-button> </div> </el-form-item> </el-col> @@ -193,33 +210,34 @@ <el-form-item label="鏌ヨ瀛楁"> <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto"> <el-table - :data="columnSearchData" + :data="form.itemSeniorQueryBOS" :highlight-current-row="true" border stripe - style="width: 100%"> + style="width: 100%" + @row-click="itemSeniorRowClick"> <el-table-column align="center" label="鏌ヨ瀛楁" - prop="id"> + prop="itemSeniorQueryCols"> <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.id }}</el-tag> + <el-tag size="medium">{{ scope.row.itemSeniorQueryCols }}</el-tag> </template> </el-table-column> <el-table-column align="center" label="鏌ヨ娆℃暟" - prop="name"> + prop="itemSeniorQueryColsCounts"> <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.name }}</el-tag> + <el-tag size="medium">{{ scope.row.itemSeniorQueryColsCounts }}</el-tag> </template> </el-table-column> <el-table-column align="center" label="鏌ヨsql" - prop="sql"> + prop="itemQuerySql"> <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.sql }}</el-tag> + <el-tag size="medium">{{ scope.row.itemQuerySql }}</el-tag> </template> </el-table-column> </el-table> @@ -229,9 +247,9 @@ <el-col :span="24"> <el-form-item label="鍙屽嚮鎿嶄綔"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨鍙屽嚮鎿嶄綔" size="mini"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> + <el-select v-model="form.itemDbl" placeholder="璇烽�夋嫨鍙屽嚮鎿嶄綔" size="mini"> + <el-option v-for="(item,index) in itemDblList" :key="index" :label="item.value" + :value="item.key"></el-option> </el-select> </el-form-item> </el-col> @@ -241,11 +259,11 @@ <div style="display: flex;align-items: center"> <div style="display: flex;align-items: center;width: 100%;"> <span>闀匡細</span> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="itemImgHeight" placeholder="璇疯緭鍏ラ暱搴�" size="mini"></el-input> </div> <div style="display: flex;align-items: center;width: 100%;margin-left: 30px"> <span>瀹斤細</span> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="itemImgWidth" placeholder="璇疯緭鍏ュ搴�" size="mini"></el-input> </div> </div> </el-form-item> @@ -253,19 +271,19 @@ <el-col :span="12"> <el-form-item label="瀛楃涓叉埅鍙�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemCut" placeholder="璇疯緭鍏ュ瓧绗︿覆" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="瓒呴摼鎺�"> - <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="form.itemHrefConf" placeholder="璇疯緭鍏ヨ秴閾炬帴" size="mini"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="鏌ヨ妯℃澘"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨鏌ヨ妯℃澘" size="mini"> + <el-select v-model="form.itemQtName" placeholder="璇烽�夋嫨鏌ヨ妯℃澘" size="mini"> <el-option label="鍖哄煙涓�" value="shanghai"></el-option> <el-option label="鍖哄煙浜�" value="beijing"></el-option> </el-select> @@ -274,62 +292,432 @@ </el-form> <span slot="footer" class="dialog-footer"> - <el-button>鍙� 娑�</el-button> - <el-button type="primary">纭� 瀹�</el-button> + <el-button @click="closeDialog">鍙� 娑�</el-button> + <el-button type="primary" @click="dialogSaveClickHandler">纭� 瀹�</el-button> </span> + + <el-dialog + v-dialogDrag + v-loading="selectFormLoading" + :visible.sync="selectFormVisible" + append-to-body="true" + class="avue-dialog" + title="琛ㄥ崟閫夋嫨" + width="50%"> + <avue-crud + ref="crud" + :data="selectFormData" + :option="selectFormOption" + @selection-change="selectionChange" + @row-click="rowClick"> + + </avue-crud> + + <span slot="footer" class="dialog-footer"> + <el-button @click="selectFormVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="selectFormAddClickHandler">纭� 瀹�</el-button> + </span> + </el-dialog> </el-dialog> + </template> <script> +import basicOption from "@/util/basic-option"; +import {gridPortalVIDatas, getPortalVIById, getItemDblList, savePortalVI} from "@/api/UI/formDefine/api"; +import func from "@/util/func"; + export default { name: "tableDialog", + props: { + TreeNodeRow: { + type: Object, + default: () => { + } + }, + treeRadio: { + type: String, + default: "" + } + }, + created() { + // this.getDbList(); + }, data() { return { - columnSearchData: [ - { - id: 'test', - name: '3', - sql: 'xxxxx' - } - ], - columnWidthData: [ - { - id: 'test', - width: '250' - } - ], - searchLifeTable: [], - searchRightTable: [], - showRightTable: [], - showLifeTable: [ - { - id: 'test1' - }, - { - id: 'test2' - }, - { - id: 'test1' - }, - { - id: 'test2' - }, - { - id: 'test1' - }, - { - id: 'test2' - } - ], + formLoading: false, + itemImgHeight: '', + itemImgWidth: '', + itemSeniorRow: {}, + itemDblList: [], + selectFormOption: { + ...basicOption, + addBtn: false, + menu: false, + refreshBtn: false, + column: [ + { + label: '涓氬姟鍚嶇О', + prop: 'typeName', + + }, + { + label: '鍚嶇О', + prop: 'viName', + sortable: true, + }, + { + label: '绫诲瀷', + prop: 'viTypeText', + }, + ] + }, + selectFormData: [], + selectFormLoading: false, + selectFormVisible: false, rules: {}, - form: {}, + form: { + viName: '', // 鍚嶇О + itemPageSize: '', // 姣忛〉鍙樉绀鸿鏁� + itemAddFilter: '', // 闄勫姞鏌ヨ鏉′欢 + itemInObj: '', // 缁戝畾琛ㄥ崟 + itemParentFolderName: '', // 鐖跺悕绉� + itemIsShowFolder: false, // 鏄惁鏄剧ず鏂囦欢澶� + itemIsNavigatorExpand: false, // 鏄剧ず鏌ヨ鍖哄煙 + itemSelectOutFieldList: [], // 鍙娇鐢ㄥ瓧娈� + itemOutFieldList: [], // 闇�瑕佷娇鐢ㄥ瓧娈� // 鍒椾笅鎷夋 + itemSearchFieldList: [], // 鍙緵鎼滅储浣跨敤瀛楁 + itemKeyFieldList: [], // 闇�瑕佹悳绱㈠瓧娈� + itemWidth: '250', // 瀹藉害 + itemFieldWidthList: [], // 璁剧疆鍒楀鏁扮粍 涓� itemOutFieldList 鐩稿尮閰� + itemFileWidthSelect: '', // 鍒椾笅鎷夋 + searchLabel: '', // 鏌ヨ瀛楁 + searchNumber: '1', // 鏌ヨ娆℃暟 + searchSql: '', // 鏌ヨsql + itemSeniorQueryBOS: [], // 鏌ヨ瀛楁鍒楄〃 + itemDbl: [], // 鍙屽嚮鎿嶄綔 + itemImgWH: '', // 鍥剧墖瀹介珮 w,h + itemCut: '', // 瀛楃涓叉埅鍙� + itemHrefConf: '', // 瓒呴摼鎺� + itemQtName: '', // 鏌ヨ妯℃澘 + }, + defaultForm: { + viName: '', // 鍚嶇О + itemPageSize: '', // 姣忛〉鍙樉绀鸿鏁� + itemAddFilter: '', // 闄勫姞鏌ヨ鏉′欢 + itemInObj: '', // 缁戝畾琛ㄥ崟 + itemParentFolderName: '', // 鐖跺悕绉� + itemIsShowFolder: false, // 鏄惁鏄剧ず鏂囦欢澶� + itemIsNavigatorExpand: false, // 鏄剧ず鏌ヨ鍖哄煙 + itemSelectOutFieldList: [], // 鍙娇鐢ㄥ瓧娈� + itemOutFieldList: [], // 闇�瑕佷娇鐢ㄥ瓧娈� // 鍒椾笅鎷夋 + itemSearchFieldList: [], // 鍙緵鎼滅储浣跨敤瀛楁 + itemKeyFieldList: [], // 闇�瑕佹悳绱㈠瓧娈� + itemWidth: '250', // 瀹藉害 + itemFieldWidthList: [], // 璁剧疆鍒楀鏁扮粍 涓� itemOutFieldList 鐩稿尮閰� + itemFileWidthSelect: '', // 鍒椾笅鎷夋 + searchLabel: '', // 鏌ヨ瀛楁 + searchNumber: '1', // 鏌ヨ娆℃暟 + searchSql: '', // 鏌ヨsql + itemSeniorQueryBOS: [], // 鏌ヨ瀛楁鍒楄〃 + itemDbl: [], // 鍙屽嚮鎿嶄綔 + itemImgWH: '', // 鍥剧墖瀹介珮 w,h + itemCut: '', // 瀛楃涓叉埅鍙� + itemHrefConf: '', // 瓒呴摼鎺� + itemQtName: '', // 鏌ヨ妯℃澘 + }, loading: false, - visible: false + visible: false, + selectList: [], + lastIndex: null, + showLabelLeftRow: {}, + showLabelRightRow: {}, + searchLeftRow: {}, + searchRightRow: {}, + itemFileWidthRow: {}, + itemFileWidthChangeVal: '', } }, methods: { + // 鍏抽棴瀵硅瘽妗� closeDialog() { + this.visible = false; + this.form = {...this.defaultForm}; + }, + // 閫夋嫨琛ㄥ崟鍏抽棴瀵硅瘽妗� + closeSelectFormDialog() { + + }, + + // 閫夋嫨缁戝畾琛ㄥ崟 + formSelectClickHandler() { + this.selectFormVisible = true; + const params = { + 'conditionMap[typeName]': this.TreeNodeRow.attributes.id, + 'conditionMap[viType]': 'Form', + 'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '', + } + gridPortalVIDatas(1, -1, params).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.selectFormData = data; + } + }); + }, + + // 鑾峰彇鍒濆鍖栬〃鏍奸噷闇�瑕佺殑榛樿鏁版嵁 + getFormSelectList() { + this.formLoading = true; + const params = { + 'conditionMap[typeName]': this.TreeNodeRow.id, + 'conditionMap[viType]': 'Form', + 'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '', + }; + + // 鍙戣捣绗竴涓姹� + gridPortalVIDatas(1, -1, params).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.selectList = data; + + // 纭繚 this.selectList 宸茬粡璧嬪�间笖涓嶄负绌� + if (this.selectList && this.selectList.length > 0) { + const param = { + id: this.selectList[0].id, + viType: '1' + }; + + // 鍙戣捣绗簩涓姹� + return getPortalVIById(param); + } + } + }).then(res => { + if (res.data.code === 200) { + const data = res.data.obj.prm.prmItemList.map(item => ({ + id: item.itemField + })); + // 杩囨护鍑烘潵闇�瑕佷娇鐢ㄥ瓧娈� 璧嬪�肩粰 鍙娇鐢ㄥ瓧娈垫覆鏌� 锛堜娇鐢ㄥ瓧娈电敱缂栬緫鎺ュ彛浼犻�掞級 + const list = data.filter(item => + !this.form.itemOutFieldList.some(outItem => outItem.id === item.id) + ); + this.$set(this.form, 'itemSelectOutFieldList', list); + this.formLoading = false; + } + }) + }, + + // 琛ㄦ牸澶氶�� + selectionChange(list) { + this.selectList = list; + }, + + // 琛岀偣鍑� + rowClick(row) { + func.rowClickHandler( + row, + this.$refs.crud, + this.lastIndex, + (newIndex) => { + this.lastIndex = newIndex; + }, + () => { + this.selectList = []; + } + ); + }, + + // 琛ㄥ崟閫夋嫨纭畾 + selectFormAddClickHandler() { + if (this.selectList.length <= 0) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + + if (this.selectList.length > 1) { + this.$message.error('鍙兘閫夋嫨涓�鏉℃暟鎹�'); + return; + } + const params = { + id: this.selectList[0].id, + viType: '1' + } + getPortalVIById(params).then(res => { + if (res.data.code === 200) { + const data = res.data.obj.prm.prmItemList.map(item => { + return { + id: item.itemField + } + }); + this.form.itemSelectOutFieldList = data; + this.selectFormVisible = false; + } + }) + this.form.itemInObj = this.selectList[0].id; + }, + + // 鏄剧ず瀛楁宸︿晶琛ㄦ牸琛岀偣鍑� + showLabelLeftRowClick(row) { + this.showLabelLeftRow = row; + }, + + // 鏄剧ず瀛楁鍙充晶琛ㄦ牸琛岀偣鍑� + showLabelRightRowClick(row) { + this.showLabelRightRow = row; + }, + + // 鎼滅储瀛楁宸︿晶琛ㄦ牸琛岀偣鍑� + searchLeftRowClick(row) { + this.searchLeftRow = row; + }, + + // 鎼滅储瀛楁鍙充晶琛ㄦ牸琛岀偣鍑� + searchRightRowClick(row) { + this.searchRightRow = row; + }, + + // 鏄剧ず瀛楁绌挎妗嗗乏绉� + showLeftTransferClick() { + if (func.isEmptyObject(this.showLabelRightRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); + return; + } + this.form.itemSelectOutFieldList.unshift(this.showLabelRightRow); + this.form.itemOutFieldList = this.form.itemOutFieldList.filter(item => item.id !== this.showLabelRightRow.id); + this.form.itemSearchFieldList = this.form.itemOutFieldList; + this.form.itemFieldWidthList = this.form.itemFieldWidthList.filter(item => item.key !== this.showLabelRightRow.id); + this.form.itemFileWidthSelect = this.form.itemFieldWidthList.length >= 1 ? this.form.itemFieldWidthList[0].key : ''; + this.showLabelRightRow = {}; + }, + + // 鏄剧ず瀛楁绌挎妗嗗彸绉� + showRightTransferClick() { + if (func.isEmptyObject(this.showLabelLeftRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); + return; + } + this.form.itemOutFieldList.push(this.showLabelLeftRow); + this.form.itemSearchFieldList = this.form.itemOutFieldList; + + // 杩囨护 itemSelectOutFieldList锛岀Щ闄� id 涓� showLabelLeftRow.id 鐩稿悓鐨勫璞� + this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.filter(item => item.id !== this.showLabelLeftRow.id); + this.form.itemFieldWidthList.push({ + key: this.showLabelLeftRow.id, + value: this.form.itemWidth + }); + this.form.itemFileWidthSelect = this.form.itemFieldWidthList[0].key; + this.showLabelLeftRow = {}; + + }, + + // 鎼滅储瀛楁绌挎妗嗗乏绉� + searchLeftTransferClick() { + if (func.isEmptyObject(this.searchRightRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); + return; + } + this.form.itemSearchFieldList.unshift(this.searchRightRow); + this.form.itemKeyFieldList = this.form.itemKeyFieldList.filter(item => item.id !== this.searchRightRow.id) + this.searchRightRow = {}; + }, + + // 鎼滅储鑷姩绌挎妗嗗彸绉� + searchRightTransferClick() { + if (func.isEmptyObject(this.searchLeftRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); + return; + } + + this.form.itemKeyFieldList.push(this.searchLeftRow); + + this.form.itemSearchFieldList = this.form.itemSearchFieldList.filter(item => item.id !== this.searchLeftRow.id); + this.searchLeftRow = {}; + }, + + // 璁剧疆鍒楀琛岀偣鍑� + itemFileWidthRowClick(row) { + this.itemFileWidthRow = row; + this.form.itemFileWidthSelect = row.key; + this.form.itemWidth = row.value; + }, + + // 鍒椾笅鎷塩hange + itemFileWidthChange(val) { + this.itemFileWidthChangeVal = val; + }, + + // 璁剧疆瀹藉害 + widthSetUpClickHandler() { + if (this.form.itemFileWidthSelect) { + const item = this.form.itemFieldWidthList.find(item => item.key === this.form.itemFileWidthSelect); + item.value = this.form.itemWidth; + } + }, + + // 鑾峰彇鍙屽嚮鎿嶄綔鏁版嵁 + getDbList() { + getItemDblList().then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.itemDblList = data; + } + }) + }, + + // 鏌ヨ妯℃澘琛ㄦ牸琛岀偣鍑� + itemSeniorRowClick(row) { + this.itemSeniorRow = row; + }, + + // 鏌ヨ妯℃澘娣诲姞 + searchAddClickHandler() { + this.form.itemSeniorQueryBOS.push({ + itemSeniorQueryCols: this.form.searchLabel, + itemSeniorQueryColsCounts: this.form.searchNumber, + itemQuerySql: this.form.searchSql + }); + }, + + // 鏌ヨ妯℃澘鍒犻櫎 + searchDelClickHandler() { + if (func.isEmptyObject(this.itemSeniorRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屽垹闄�'); + return; + } + + this.form.itemSeniorQueryBOS = this.form.itemSeniorQueryBOS.filter(item => item.itemSeniorQueryCols != this.itemSeniorRow.id); + this.itemSeniorRow = {}; + }, + + // 琛ㄦ牸瀵硅瘽妗嗕繚瀛� + dialogSaveClickHandler() { + this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.map(item => item.id); // 鍙娇鐢ㄥ瓧娈� + this.form.itemOutFieldList = this.form.itemOutFieldList.map(item => item.id); // 闇�瑕佷娇鐢ㄥ瓧娈� + this.form.itemSearchFieldList = this.form.itemSearchFieldList.map(item => item.id); // 鍙緵鎼滅储瀛楁 + this.form.itemKeyFieldList = this.form.itemKeyFieldList.map(item => item.id); // 闇�瑕佷娇鐢ㄥ瓧娈� + this.form.itemImgWH = `${this.itemImgHeight},${this.itemImgWidth}`; + const params = { + id: this.form.editNodeId, + prm: { + formQtName: '', + prmItemList: [ + this.form + ], + }, + typeFlag: this.treeRadio, + typeFlagText: this.treeRadio === '0' ? "涓氬姟绫诲瀷鐨勮〃鍗�" : '閾炬帴绫诲瀷鐨勮〃鍗�', + typeName: this.TreeNodeRow.attributes.id, + viName: this.form.viName, + viType: 0, + viTypeText: "琛ㄦ牸" + } + savePortalVI(params).then(res => { + if (res.data.code === 200) { + this.$message.success('淇濆瓨鎴愬姛'); + this.closeDialog(); + this.$emit('updataTable'); + } + }) } } } @@ -342,3 +730,4 @@ } } </style> + diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue index 5509441..d6c1297 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue @@ -27,11 +27,14 @@ <basic-container> <avue-crud v-if="!tableStatus" + ref="crud" :data="data" :option="option" :page.sync="page" @size-change="sizeChange" - @current-change="currentChange"> + @current-change="currentChange" + @selection-change="selectChangeHandler" + @row-click="rowClickHandler"> <template slot="menuLeft"> <div style="display: flex; align-items: center;"> <span style="display: inline-block; margin-right: 10px;"> @@ -40,7 +43,8 @@ </span> <span style="display: flex;align-items: center; margin-right: 10px;"> <p style="display: flex; flex-shrink: 0;font-size: 14px">鍚嶇О锛�</p> - <el-input v-model="input" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input> + <el-input v-model="topName" placeholder="璇疯緭鍏ュ唴瀹�" size="mini" style="margin-right: 10px;"></el-input> + <el-button plain size="mini" type="success" @click="nameSearchHandler">鏌ヨ</el-button> </span> <span style="display: flex; align-items: center;"> <p @@ -59,23 +63,28 @@ </avue-crud> <div v-if="!tableStatus" style="display: flex;justify-content: center;margin-top: 15px"> <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">澧炲姞</el-button> - <el-button icon="el-icon-delete" plain size="small" type="danger">鍒犻櫎</el-button> + <el-button icon="el-icon-delete" plain size="small" type="danger" @click="deleteClickHandler">鍒犻櫎</el-button> <el-button icon="el-icon-document-add" plain size="small" type="primary">鍏嬮殕</el-button> - <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadHandler">瀵煎叆</el-button> - <el-button icon="el-icon-download" plain size="small" type="primary" @click="downLoadHandler">瀵煎嚭</el-button> + <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆</el-button> + <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭 + </el-button> </div> </basic-container> </el-main> - <form-dialog ref="formDialog"></form-dialog> - <table-dialog ref="tableDialog"></table-dialog> + <form-dialog ref="formDialog" :TreeNodeRow="this.nodeRow" :treeRadio="treeRadio"></form-dialog> + <table-dialog ref="tableDialog" :TreeNodeRow="this.nodeRow" :treeRadio="treeRadio" + @updataTable="getRightPortalVIDatas"></table-dialog> + <!-- 瀵煎叆 --> + <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="瀵煎叆" + @updata="getRightPortalVIDatas"></upload-file> </el-container> </template> <script> import basicOption from "@/util/basic-option"; import FormDialog from "@/views/modelingMenu/ui/formDefine/components/formDialog"; -import TableDialog from "@/views/modelingMenu/ui/formDefine/components/tableDialog" -import {gridPortalVIDatas} from "@/api/UI/formDefine/api" +import TableDialog from "@/views/modelingMenu/ui/formDefine/components/tableDialog"; +import {gridPortalVIDatas, getPortalVIById, deleteByIds, exportExcel} from "@/api/UI/formDefine/api"; import {getBizTypes} from "@/api/modeling/businessType/api"; import {gridLink} from "@/api/modeling/linkType/api"; import func from "@/util/func"; @@ -85,6 +94,16 @@ components: {FormDialog, TableDialog}, data() { return { + tipList: [ + "瀵煎叆涓氬姟绫诲瀷鍚嶇О涓嶅彲涓虹┖", + "瀵煎叆鍚嶇О涓嶅彲涓虹┖涓斿悕绉板彧鑳戒负鑻辨枃瀛楁瘝", + "涓婁紶鐨勬枃浠朵负鍘嬬缉鏂囦欢锛屼笖鍘嬬缉鏍煎紡浠呰兘涓簔ip鏍煎紡" + ], + upFileType: ['zip'], + fileUrl: 'api/portalVIController/importData', + lastIndex: null, + selectList: [], + topName: '', page: { currentPage: 1, pageSize: 10, @@ -119,8 +138,15 @@ treeRadio: "0", treeData: [], treeOption: { - addBtn: false - } + addBtn: false, + props: { + label: 'id', + value: 'id', + children: 'children' + } + }, + dbClickList: [], + defaultData: [], // 鐢ㄤ簬鏌ヨ鎭㈠鍘熷鍊� } }, created() { @@ -128,7 +154,7 @@ }, computed: { tableStatus() { - return func.isEmptyObject(this.nodeRow) + return func.isEmptyObject(this.nodeRow); } }, methods: { @@ -138,8 +164,13 @@ this.$message.error('璇峰湪琛ㄦ牸涓婃柟閫夋嫨鏂板绫诲瀷'); return; } - - this.tableRadio === "0" ? this.$refs.formDialog.visible = true : this.$refs.tableDialog.visible = true; + if (this.tableRadio === "0") { + this.$refs.formDialog.visible = true; + this.$refs.formDialog.getTreeList(); + } else { + this.$refs.tableDialog.visible = true; + this.$refs.tableDialog.getDbList(); + } }, // 鍒濆鍖栨爲璇锋眰 @@ -147,12 +178,13 @@ this.treeLoading = true; getBizTypes().then(res => { const data = res.data.data.map(item => { - item.label = item.attributes.id; - return item; + this.processChildren(item); // 澶勭悊姣忎釜鑺傜偣 + item.attributes.id = item.attributes.id; + return item.attributes; // 杩斿洖澶勭悊鍚庣殑 attributes }); this.treeData = data; this.treeLoading = false; - }) + }); }, // 宸︿晶涓氬姟绫诲瀷鍒囨崲 @@ -162,12 +194,12 @@ if (val === "0") { getBizTypes().then(res => { const data = res.data.data.map(item => { - item.label = item.attributes.id; - return item; + this.processChildren(item); // 澶勭悊姣忎釜鑺傜偣 + item.attributes.id = item.attributes.id; + return item.attributes; // 杩斿洖澶勭悊鍚庣殑 attributes }); this.treeData = data; - this.treeLoading = false; - }) + }); } else { gridLink().then(res => { const data = res.data.data.map(item => { @@ -180,9 +212,19 @@ } }, + // 澶勭悊鏍戝舰缁撴瀯 + processChildren(item) { + if (item.children && item.children.length > 0) { + item.attributes.children = item.children.map(child => { + child.attributes.id = child.attributes.id; + this.processChildren(child); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� + return child.attributes; // 鍙繑鍥炲瓙鑺傜偣鐨� attributes + }); + } + }, + // 宸︿晶鏍戠偣鍑� nodeClick(row) { - console.log(row); this.tableRadio = null; this.nodeRow = row; this.getRightPortalVIDatas(row); @@ -197,15 +239,15 @@ // 鍙充晶 琛ㄦ牸 琛ㄥ崟 淇℃伅鏌ヨ getRightPortalVIDatas() { const params = { - 'conditionMap[typeName]': this.treeRadio === '0' ? this.nodeRow.attributes.id : this.nodeRow.name, + 'conditionMap[typeName]': this.treeRadio === '0' ? this.nodeRow.id : this.nodeRow.name, 'conditionMap[viType]': this.tableRadio === '0' ? 'Form' : this.tableRadio === '1' ? 'Table' : '', 'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '', } gridPortalVIDatas(this.page.currentPage, this.page.pageSize, params).then(res => { - console.log(res); if (res.data.code === 200) { const data = res.data.data; this.data = data; + this.defaultData = data; this.page.total = res.data.total; } }) @@ -227,6 +269,177 @@ this.getRightPortalVIDatas(); }, + // 缂栬緫鎸夐挳 + editBtnClick(row) { + // 琛ㄦ牸 + if (row.viType === 0) { + const params = { + id: row.id, + viType: row.viType + }; + + getPortalVIById(params).then(res => { + if (res.data.code === 200) { + const data = res.data.obj.prm; + const prmItem = data.prmItemList[0] || {}; // 鍙栧嚭绗竴涓厓绱犲苟鎻愪緵榛樿鍊� + + // 鑾峰彇鍒濆鍖栬〃鏍奸噷闇�瑕佺殑榛樿鏁版嵁 + this.$refs.tableDialog.getFormSelectList(); + + // 鏇存柊琛ㄥ崟 + this.$refs.tableDialog.form = { + ...prmItem, + viName: res.data.obj.viName, + editNodeId: row.id, + itemOutFieldList: (prmItem.itemOutFieldList || []).map(item => ({id: item})), + itemSearchFieldList: (prmItem.itemSearchFieldList || []).map(item => ({id: item})), + itemKeyFieldList: (prmItem.itemKeyFieldList || []).map(item => ({id: item})), + searchLabel: prmItem.itemSeniorQueryCols || '', + searchNumber: prmItem.itemSeniorQueryColsCounts || '1', + searchSql: prmItem.itemQuerySql || '', + itemFileWidthSelect: (prmItem.itemFieldWidthList && prmItem.itemFieldWidthList.length > 0) ? prmItem.itemFieldWidthList[0].key : '', + itemWidth: (prmItem.itemFieldWidthList && prmItem.itemFieldWidthList.length > 0) ? prmItem.itemFieldWidthList[0].value : '250' + }; + + // 澶勭悊鍥剧墖瀹介珮 + const [width = '0', height = '0'] = (prmItem.itemImgWH || '0,0').split(','); + this.$refs.tableDialog.itemImgWidth = width; + this.$refs.tableDialog.itemImgHeight = height; + + // 鍙屽嚮鎿嶄綔鑾峰彇鏁版嵁鏂规硶 + this.$refs.tableDialog.getDbList(); + + // 鏄剧ず瀵硅瘽妗� + this.$refs.tableDialog.visible = true; + } + }); + } else { + const params = { + id: row.id, + viType: row.viType + }; + + getPortalVIById(params).then(res => { + if (res.data.code === 200) { + const data = res.data.obj.prm.prmItemList; + + const updatedData = data.map(item => { + const {itemField, ...rest} = item; + return { + text: itemField, + ...rest + }; + }); + this.$refs.formDialog.formList = updatedData; + this.$refs.formDialog.getTreeList(); + this.$refs.formDialog.topForm.viName = res.data.obj.viName; + this.$refs.formDialog.topForm.columnNumber = this.getValueBasedOnInput(res.data.obj.prm.showCols); + + this.$refs.formDialog.visible = true; + } + }) + } + }, + + // 鏍规嵁浼犲叆姣忚鍒楁暟 鏉ュ垽鏂璭l-col :span鏄灏� + getValueBasedOnInput(val) { + const n = JSON.parse(val ? val : '3'); + switch (n) { + case 1: + return 24; + case 2: + return 12; + case 3: + return 8; + case 4: + return 6; + case 5: + return 4; + case 6: + return 4; + case 7: + case 8: + return 3; + case 9: + return 2; + default: + return n > 10 ? 1 : 8; // 榛樿缁�8 + } + }, + + // 鍚嶇О鏌ヨ + nameSearchHandler() { + if (!this.topName) { + this.data = this.defaultData; + return; + } + + const list = this.data.filter(item => item.viName.includes(this.topName.trim())); + this.data = list; + }, + + // 鍒犻櫎鎸夐挳 + deleteClickHandler() { + if (this.selectList.length <= 0) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + console.log(this.selectList); + const params = { + ids: this.selectList.map(item => item.id).join(',') + } + deleteByIds(params).then(res => { + console.log(res); + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + this.getRightPortalVIDatas(); + } + }) + + }, + + // 澶氶�� + selectChangeHandler(row) { + this.selectList = row; + }, + + // 琛岀偣鍑� + rowClickHandler(row) { + func.rowClickHandler( + row, + this.$refs.crud, + this.lastIndex, + (newIndex) => { + this.lastIndex = newIndex; + }, + () => { + this.selectList = []; + } + ); + }, + + // 瀵煎嚭 + exportClickHandler() { + if (this.selectList.length <= 0) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + + const params = { + ids: this.selectList.map(item => item.id).join(',') + } + exportExcel(params).then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + this.$message.error(err); + }); + }, + + // 瀵煎叆 + upLoadClickHandler() { + this.$refs.upload.visible = true; + } } } </script> @@ -265,7 +478,6 @@ .headerCon > .el-button:nth-child(7) { margin-left: 0; } - .smallBtn { width: 82px; diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue index 5a5c1e1..8761d82 100644 --- a/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue @@ -306,24 +306,35 @@ ids: row.id, isConfCategorys: this.nodeRow.id === 'firstNode' ? true : false } - getAppConfigCategoryInfo(params).then(res => { - console.log(res) - if (res.data.code === 200) { - this.$message.success('鍒犻櫎鎴愬姛'); - if (this.nodeRow.id === 'firstNode') { - this.getTreeList('save'); - } else { - this.configLoading = true; - getAppConfigDetailsByID({clsId: this.nodeRow.id}).then(res => { - if (res.data.code === 200) { - const data = res.data.data; - this.configData = data; - this.configLoading = false; - } - }) + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鏁版嵁鍚楋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + getAppConfigCategoryInfo(params).then(res => { + console.log(res) + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + if (this.nodeRow.id === 'firstNode') { + this.getTreeList('save'); + } else { + this.configLoading = true; + getAppConfigDetailsByID({clsId: this.nodeRow.id}).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.configData = data; + this.configLoading = false; + } + }) + } } - } - }) + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); }, // 閫夋嫨妗� @@ -352,30 +363,43 @@ this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); return; } + const params = { ids: this.selectList.map(item => { return item.id }).join(','), isConfCategorys: this.nodeRow.id === 'firstNode' ? true : false } - getAppConfigCategoryInfo(params).then(res => { - console.log(res) - if (res.data.code === 200) { - this.$message.success('鍒犻櫎鎴愬姛'); - if (this.nodeRow.id === 'firstNode') { - this.getTreeList('save'); - } else { - this.configLoading = true; - getAppConfigDetailsByID({clsId: this.nodeRow.id}).then(res => { - if (res.data.code === 200) { - const data = res.data.data; - this.configData = data; - this.configLoading = false; - } - }) + + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鏁版嵁鍚楋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + getAppConfigCategoryInfo(params).then(res => { + console.log(res) + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + if (this.nodeRow.id === 'firstNode') { + this.getTreeList('save'); + } else { + this.configLoading = true; + getAppConfigDetailsByID({clsId: this.nodeRow.id}).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.configData = data; + this.configLoading = false; + } + }) + } } - } - }) + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); }, // 瀵煎嚭鎸夐挳 -- Gitblit v1.9.3