From ec2c06dabe9edaee7d28988d69a7bfd56eca3abd Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 20 九月 2024 15:39:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
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 | 264 ++++
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 | 924 +++++++++++++----
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,524 insertions(+), 512 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..de71674 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,184 @@
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;
+ }
+ this.visible = false;
+ this.$message.success('淇濆瓨鎴愬姛');
}
}
}
@@ -582,6 +1000,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..f3d3a47 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,16 +194,16 @@
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 => {
- item.label = item.name;
+ item.id = item.name;
return item;
});
this.treeData = data;
@@ -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