From 4006805916d04a398243292316fbad8a05d2f67b Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期一, 06 一月 2025 16:23:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue | 1202 ++++++++++++++++++++++++++++++++++----------------------
1 files changed, 734 insertions(+), 468 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
index 097644e..ad110fe 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
@@ -1,56 +1,51 @@
<template>
- <basic-container>
+ <div>
<avue-crud
ref="crud"
v-model="form"
+ :before-close="beforeClose"
+ :before-open="beforeOpen"
:data="data"
:option="option"
:table-loading="tableLoading"
- @row-del="rowDelHandler"
@row-save="rowSaveHandler"
@row-update="rowUpdateHandler"
- @refresh-change="handleRefresh"
@selection-change="selectChangeHandler"
@row-click="rowClickHandler">
<template slot="menuLeft" slot-scope="scope">
- <el-button icon="el-icon-plus" plain size="small" type="primary"
+ <el-button v-if="permissionChildrenList.UiPageLayoutAddBtn" icon="el-icon-plus" plain size="small" type="primary"
@click="addClickHandler">澧炲姞
- </el-button>
- <el-button icon="el-icon-edit-outline" plain size="small" type="primary"
- @click="btnDesignClickHandler">鎸夐挳璁捐
</el-button>
</template>
- <!-- eventKey鎿嶄綔鎸夐挳 -->
- <template slot="eventButtonForm" slot-scope="scope">
- <div style="width: 100%;display: flex;justify-content: center">
- <el-button plain size="mini" type="primary" @click="formDataAddClickHandler">鍒涘缓</el-button>
- <el-button plain size="mini" type="danger" @click="formDataDelClickHandler">鍒犻櫎</el-button>
- <el-button plain size="mini" type="primary" @click="moveUp">涓婄Щ</el-button>
- <el-button plain size="mini" type="primary" @click="moveDown">涓嬬Щ</el-button>
- </div>
+ <template slot="menu" slot-scope="scope">
+ <el-button v-if="permissionChildrenList.UiPageLayoutDesignBtn" icon="el-icon-edit-outline" size="small" type="text"
+ @click="btnDesignClickHandler(scope.row)">鎸夐挳璁捐
+ </el-button>
+ <el-button v-if="permissionChildrenList.UiPageLayoutEditBtn" icon="el-icon-edit" size="small" type="text" @click="editBtnClick(scope.row)">缂栬緫
+ </el-button>
+ <el-button v-if="permissionChildrenList.UiPageLayoutDelBtn" icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎
+ </el-button>
+ <el-button v-if="permissionChildrenList.UiPageLayoutCloneBtn" icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">鍏嬮殕
+ </el-button>
</template>
+
<!-- eventKey浠ュ強eventValue鏄剧ず鍖哄煙 -->
<template slot="bottomValueForm" slot-scope="scope">
- <div style="height: 200px; width: 95%; border: 1px solid #bdbbbb;overflow-y: auto">
- <!-- 鍐呭 -->
- <el-table
- :data="FormData"
- :highlight-current-row="true"
- style="width: 100%"
- @row-click="formDataRowClick">
- <el-table-column
- align="center"
- label="EventKey"
- prop="eventKey">
- </el-table-column>
- <el-table-column
- align="center"
- label="EventValue"
- prop="eventValue">
- </el-table-column>
- </el-table>
- </div>
+ <avue-crud
+ :data="eventData"
+ :option="eventOption"
+ @row-click="formDataRowClick">
+ <template slot="menuLeft" slot-scope="scope">
+ <el-button plain size="mini" type="primary" @click="formDataAddClickHandler">鍒涘缓</el-button>
+ </template>
+
+ <template slot="menu" slot-scope="scope">
+ <el-button plain size="mini" type="danger" @click="formDataDelClickHandler(scope.row)">鍒犻櫎</el-button>
+ <el-button plain size="mini" type="primary" @click="moveUp(scope.row)">涓婄Щ</el-button>
+ <el-button plain size="mini" type="primary" @click="moveDown(scope.row)">涓嬬Щ</el-button>
+ </template>
+ </avue-crud>
</template>
<!-- 鍒囨崲鎼滅储绫诲瀷 婧愬璞� 鐩爣瀵硅薄鏄剧ずlabel鍒囨崲 -->
@@ -61,6 +56,52 @@
<span v-else-if="form.searchTarger === '1'">婧愬璞�</span>
<span v-else-if="form.searchTarger === '2'">鐩爣瀵硅薄</span>
</template>
+
+ <template slot="extAttrLabel" slot-scope="{}">
+ <el-tooltip placement="top">
+ <div slot="content">绀轰緥:ext1:xx;ext2;ext3:xx;ext4:xxx;extn:xxx;
+ <br/>1銆佺敤鑻变氦鍗婅鍒嗗彿:鍒嗛殧鍚勭粍鍊�;
+ <br/>2銆佹瘡缁勭敤鑻变氦鍗婅鍐掑彿:鍒嗛殧鍗曚竴鎵╁睍灞炴�у悕绉板強灞炴�у��;
+ <br/>3銆佸彲浠ュ畾涔変换鎰忕粍锛屼絾鎬诲瓧绗﹂暱搴︿笉寰楄秴杩�4000;
+ <br/>4銆佽緭鍏ユ椂锛屼笉瑕佹暡鍥炶溅鎹㈣;
+ </div>
+ <span>鎵╁睍灞炴�� <i class="el-icon-warning" style="color:red;"></i> </span>
+ </el-tooltip>
+ </template>
+
+ <template slot="uiParserLabel" slot-scope="{}">
+ <el-tooltip placement="top">
+ <div slot="content">绀轰緥锛歫ava_cs;xxx.java_bs;xxx.net_cs;xxxx.net_bs;xxx.mobile_cs;xx.mobile_bs;xxx;
+ <br/>1銆佺敤鑻辨枃鍗婅鍒嗗彿;鍒嗗壊鍚勭粍鍊硷紱锛堣繖閲岀粨灏剧殑鏄腑鏂囧瓧绗︾殑鍒嗗彿锛�
+ <br/>2銆佹瘡缁勭敤鑻辨枃鍗婅鍐掑彿:鍒嗛殧鍗曚竴鎵╁睍灞炴�у悕绉板強灞炴�у�硷紱
+ <br/>3銆佸叾涓殑xxx鏄悇绉嶈В鏋愮被鐨勫畬鏁寸被鍨嬪悕绉帮紙瀹屽叏闄愬畾鍚�)锛�
+ <br/>4銆佽緭鍏ユ椂锛屼笉瑕佹暡鍥炶溅鎹㈣;
+ </div>
+ <span>UI瑙f瀽绫诲瀷 <i class="el-icon-warning" style="color:red;"></i> </span>
+ </el-tooltip>
+ </template>
+
+ <template slot="templateIdForm" slot-scope="{}">
+ <el-select v-model="form.templateId" filterable placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in templateIdList"
+ :key="item.viName"
+ :label="item.viName"
+ :value="item.viName">
+ </el-option>
+ </el-select>
+ </template>
+
+ <template slot="queryTemplateNameForm" slot-scope="{}">
+ <el-select v-model="form.queryTemplateName" filterable placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in queryTemplateNameList"
+ :key="item.qtName"
+ :label="item.qtName"
+ :value="item.qtName">
+ </el-option>
+ </el-select>
+ </template>
</avue-crud>
<el-dialog
v-dialogDrag
@@ -68,28 +109,28 @@
append-to-body="true"
class="avue-dialog"
title="閰嶇疆鎸夐挳"
- width="70%"
- @close="dialogClose">
- <el-container>
- <el-header style="height: 40px !important;">
+ width="1200px"
+ @close="$refs.form.clearValidate();disabledBtn=true;">
+ <el-container v-loading="dialogLoading">
+ <el-header style="height: 40px !important;padding-left: 5px;">
<div style="display: flex">
- <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">娣诲姞
+ <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">娣诲姞
</el-button>
- <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="editClickBtnHandler">淇敼
+ <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary" @click="editClickBtnHandler">淇敼
</el-button>
- <el-button :disabled="!disabledBtn" plain size="mini" type="danger" @click="delClickBtnHandler">鍒犻櫎
+ <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="danger" @click="delClickBtnHandler">鍒犻櫎
</el-button>
- <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="saveClickBtnHandler">淇濆瓨
+ <el-button v-show="!disabledBtn" :disabled="disabledBtn" plain size="mini" icon="el-icon-check" type="success" @click="saveClickBtnHandler">淇濆瓨
</el-button>
- <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="escClickBtnHandler">鍙栨秷
+ <el-button v-show="!disabledBtn" :disabled="disabledBtn" plain size="mini" icon="el-icon-close" type="danger" @click="escClickBtnHandler">鍙栨秷
</el-button>
- <el-button plain size="mini" type="primary">璋冩暣涓轰笅绾ф寜閽�</el-button>
- <el-button plain size="mini" type="primary">璋冩暣涓轰笂绾ф寜閽�</el-button>
- <el-button plain size="mini" type="primary">澶嶅埗鍒板叾浠栫粍浠�</el-button>
+ <el-button v-show="disabledBtn" plain size="mini" type="primary" @click="changeBottomBtnHandler">璋冩暣涓轰笅绾ф寜閽�</el-button>
+ <el-button v-show="disabledBtn" plain size="mini" type="primary" @click="changeTopBtnHandler">璋冩暣涓轰笂绾ф寜閽�</el-button>
+ <el-button v-show="disabledBtn" plain size="mini" type="primary" @click="cloneClickBtnHandler">澶嶅埗鍒板叾浠栫粍浠�</el-button>
</div>
</el-header>
<el-container>
- <el-aside width="20%">
+ <el-aside width="25%">
<basic-container>
<div style="height:650px;">
<avue-tree
@@ -100,9 +141,10 @@
node-key="value"
@node-click="nodeTreeClick">
<span slot-scope="{ node, data }" class="el-tree-node__label">
- <span style="font-size: 14px">
- <i class="el-icon-s-promotion"></i>
- {{ (node || {}).label }}
+ <span style="display: flex">
+ <i v-if="data.oId=='parentNode'" class="iconShow el-icon-s-home"></i>
+ <icon-show v-else :name="data.iconPath"></icon-show>
+ {{ (node || {}).label }}
</span>
</span>
</avue-tree>
@@ -113,33 +155,38 @@
<el-main>
<basic-container>
<el-divider content-position="left">鍩虹淇℃伅</el-divider>
- <el-form ref="form" :model="basicForm" :rules="rules" label-width="90px" size="small"
+ <el-form ref="form" :model="basicForm" :rules="rules" label-width="100px" size="small"
style="margin-top: 20px">
<el-row>
- <el-form-item :inline-message='true' label="缂栧彿锛�" prop="seq">
- <el-input-number v-model="basicForm.seq" :disabled="disabledBtn" :max="9999" :min="1"
- controls-position="right"></el-input-number>
- </el-form-item>
-
- <el-form-item :inline-message='true' label="鍚嶇О锛�" prop="label">
- <el-col :span="14">
- <el-input v-model="basicForm.label" :readonly="disabledBtn"></el-input>
- </el-col>
- </el-form-item>
-
- <el-form-item label="Action锛�" prop="Action">
- <el-col :span="14">
- <el-input v-model="basicForm.actionOId" :readonly="disabledBtn"></el-input>
- </el-col>
- </el-form-item>
+ <el-col :span="12">
+ <el-form-item :inline-message='true' label="缂栧彿锛�" prop="seq">
+ <el-input-number v-model="basicForm.seq" :disabled="disabledBtn" :max="9999" :min="1"
+ controls-position="right"></el-input-number>
+ </el-form-item>
+ </el-col>
<el-col :span="12">
- <el-form-item label="鏄惁鎺堟潈锛�" prop="resource">
+ <el-form-item :inline-message='true' label="鍚嶇О锛�" prop="label">
+ <el-input v-model="basicForm.label" :disabled="disabledBtn"></el-input>
+ </el-form-item>
+ </el-col>
+
+ <el-col :span="12">
+ <el-form-item label="Action锛�" prop="actionName">
+ <el-input v-model="basicForm.actionName" :disabled="disabledBtn" :clearable="true" @focus="actionFoucus" @clear="clearActionValue">
+ <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer" @click="actionFoucus"></i>
+ </el-input>
+ </el-form-item>
+ </el-col>
+
+ <el-col :span="12">
+ <el-form-item label="鏄惁鎺堟潈锛�" prop="authorization">
<el-radio v-model="basicForm.authorization" :disabled="disabledBtn" label="0">鏄�</el-radio>
<el-radio v-model="basicForm.authorization" :disabled="disabledBtn" label="1">鍚�</el-radio>
</el-form-item>
</el-col>
-
+ <el-col :span="24">
+ </el-col>
<el-col :span="12">
<el-form-item label="鏄惁鏄剧ず锛�" prop="show">
<el-radio v-model="basicForm.show" :disabled="disabledBtn" label="0">鏄�</el-radio>
@@ -147,18 +194,22 @@
</el-form-item>
</el-col>
- <el-col :span="12">
+ <el-col :span="12" v-show="basicForm.show=='0'">
<el-form-item label="鏄剧ず鏂瑰紡锛�" prop="showType">
<el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="text">鏂囧瓧</el-radio>
<el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="image">鍥炬爣</el-radio>
- <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="textandimage">鏂囧瓧鍜屽浘鏍�
- </el-radio>
+ <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="textandimage">鏂囧瓧鍜屽浘鏍�</el-radio>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24" v-show="basicForm.show=='0' && (basicForm.displayMode=='image'||basicForm.displayMode=='textandimage')">
+ <el-form-item label="鍥炬爣锛�" prop="iconPath">
+ <input-icon v-model="basicForm.iconPath" :disabled="disabledBtn"></input-icon>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <el-col :span="24">
<el-form-item label="鎻愮ず淇℃伅锛�" prop="desc">
- <el-input v-model="basicForm.desc" :readonly="disabledBtn" type="textarea"></el-input>
+ <el-input v-model="basicForm.desc" :disabled="disabledBtn" type="textarea"></el-input>
</el-form-item>
</el-col>
@@ -168,10 +219,12 @@
<el-divider content-position="left">鍙傛暟淇℃伅</el-divider>
<avue-crud
ref="paramsCrud"
+ v-model="paramsForm"
:data="paramsData"
:option="paramsOption"
style="margin-top: 20px"
- @row-save="paramsRowSave">
+ @row-save="paramsRowSave"
+ @row-update="paramsRowUpdate">
<template slot="menuLeft" slot-scope="scope">
<el-button :disabled="disabledBtn" icon="el-icon-plus" plain size="small" type="primary"
@click="paramsRowAddClickHandler">鍒涘缓
@@ -179,6 +232,9 @@
</template>
<template slot="menu" slot-scope="scope">
+ <el-button :disabled="disabledBtn" icon="el-icon-edit" size="small" type="text"
+ @click="paramsRowEditHandler(scope.row)">淇敼
+ </el-button>
<el-button :disabled="disabledBtn" icon="el-icon-delete" size="small" type="text"
@click="paramsRowDeleteHandler(scope.row)">鍒犻櫎
</el-button>
@@ -190,80 +246,111 @@
</el-container>
</el-container>
</el-dialog>
- </basic-container>
+ <action-dialog ref="actionDialog" @cancelAction="actionCancelHandler" @updataAction="actionSaveHandler"></action-dialog>
+ <clone-dialog ref="cloneDialog" :fromOid="fromOid" :sourceOId="sourceOId" paramsType="tab"
+ type="pageDef"></clone-dialog>
+ <clone-dialog ref="cloneBtnDialog" :fromOid="formBtnOid" :sourceOId="sourceBtnOid" paramsType="pageDef"
+ type="tabButton"></clone-dialog>
+ </div>
</template>
<script>
import basicOption from "@/util/basic-option";
import func from "@/util/func";
import {
- getBtmDatasByPage,
- getPortalVIDatasByPage,
- getQTInfoDatasByPage,
+ getPLPageDefinations,
getTabButtons,
addTapButton,
- updateTapButton
-} from "@/api/UI/uiDefine/api";
+ updateTapButton,
+ addPageDefination,
+ deleteTabButton,
+ delPageDefination,
+ joinBtn,
+ exitBtn,
+ updatePageDefination,
+ getPortalVIDatasByPage,
+ getQTInfoDatasByPage
+} from "@/api/UI/uiDefine";
+import actionDialog from '@/views/modelingMenu/ui/Aciton/components/dialog';
+import cloneDialog from "@/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog";
+import {mapGetters} from "vuex";
export default {
props: {
sourceData: {
- type: Array,
- default: () => [
- {
- "controlPath": "",
- "description": "",
- "eventKey": "",
- "eventMap": null,
- "eventValue": "",
- "expandCols": "",
- "expandMode": "",
- "extAttr": "",
- "id": "ABAE25CE-867E-9C73-AC1A-B316FD91C65B",
- "isShowImage": "",
- "linkType": "parttodocument",
- "name": "鎶�鏈枃浠�",
- "navigatorType": "",
- "orderField": "",
- "orderMode": "",
- "orientation": "",
- "qryType": null,
- "queryTemplateName": "QueryPartEngineeringTechnology",
- "refTreeSet": "",
- "returnRows": "",
- "rootContent": "",
- "searchTarger": "2",
- "separator": "",
- "seq": "1",
- "showAbs": "",
- "showContent": "",
- "showContentRelation": "",
- "showContentTable": "",
- "showContentType": "",
- "showExpression": "",
- "showExpressionRoot": "",
- "showLinkAbs": "",
- "showType": "document",
- "subUILayout": "",
- "subUIObjType": "",
- "tabPageOId": "98F9082F-BAF4-FB81-3230-32590B34A329",
- "templateId": "PartEngineeringTechnology_list",
- "templateType": "1",
- "type": 3,
- "uiLayout": null,
- "uiParser": "",
- "validity": ""
- }
- ]
+ type: Object,
+ default: () => {
+ }
},
height: {
type: String,
default: () => "auto"
}
},
+ components: {
+ actionDialog,
+ cloneDialog
+ },
name: "index",
data() {
return {
+ queryTemplateNameList: [],
+ templateIdList: [],
+ searchTargerChangeFlag: false,
+ showTypeChangeFlag: false,
+ linkTypeChangeFlag: false,
+ formBtnOid: '',
+ sourceBtnOid: '',
+ sourceOId: '',
+ fromOid: '',
+ paramsForm: {},
+ eventOption: {
+ ...basicOption,
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ refreshBtn: false,
+ highlightCurrentRow: true,
+ height: 200,
+ column: [
+ {
+ label: 'EventKey',
+ prop: 'eventKey',
+ type: 'select',
+ value: 'SelectionEvent',
+ dicData: [
+ {
+ label: 'SelectionEvent',
+ value: 'SelectionEvent'
+ },
+ {
+ label: 'DBClickEvent',
+ value: 'DBClickEvent'
+ },
+ {
+ label: 'ClickEvent',
+ value: 'ClickEvent'
+ }
+ ],
+ cell: true
+ },
+ {
+ label: 'EventValue',
+ prop: 'eventValue',
+ cell: true,
+ rules: [
+ {
+ required: true,
+ message: '璇疯緭鍏ventValue',
+ trigger: 'blur'
+ }
+ ]
+ }
+ ]
+ },
+ eventData: [],
+ btnActionVisible: false,
+ dialogLoading: false,
saveType: '',
disabledBtn: true,
paramsData: [],
@@ -276,14 +363,34 @@
editBtn: false,
delBtn: false,
refreshBtn: false,
+ dialogWidth:'600',
+ menuWidth:'150',
column: [
{
label: '鍚嶇О',
- prop: 'name'
+ prop: 'name',
+ width:180,
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '璇疯緭鍏ュ悕绉�',
+ trigger: 'blur'
+ }
+ ]
},
{
label: '鍊�',
- prop: 'value'
+ prop: 'value',
+ type:'textarea',
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '璇疯緭鍏ュ��',
+ trigger: 'blur'
+ }
+ ]
}
]
},
@@ -294,18 +401,15 @@
label: [
{required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur'},
],
+ actionName: [
+ {required: true, message: '璇烽�夋嫨Action', trigger: 'blur'},
+ ],
},
// 鎸夐挳璁捐 鍩虹淇℃伅
basicForm: {
seq: 1
},
- treeData: [
- {
- label: this.sourceData[0].name,
- oId: 'parentNode',
- children: []
- }
- ],
+ treeData: [],
treeOption: {
menu: false,
addBtn: false,
@@ -320,17 +424,23 @@
btnDesignVisible: false,
FormData: [],
form: {},
- data: this.sourceData,
+ data: [],
option: {
...basicOption,
+ size:'mini',
height: this.height,
addBtn: false,
index: true,
calcHeight: -30,
+ editBtn: false,
+ delBtn: false,
+ menuWidth:300,
column: [
{
label: '鍚嶇О',
prop: 'name',
+ width: 220,
+ labelWidth: 110,
rules: [
{
required: true,
@@ -342,6 +452,8 @@
{
label: '缂栧彿',
prop: 'seq',
+ width:100,
+ labelWidth: 110,
hide: false,
rules: [
{
@@ -355,16 +467,25 @@
label: 'UI瑙f瀽绫诲瀷',
prop: 'uiParser',
hide: true,
+ labelWidth: 110,
},
{
label: '鎵╁睍灞炴��',
prop: 'extAttr',
hide: true,
+ labelWidth: 110,
+ },
+ {
+ label: '鎻忚堪',
+ prop: 'description',
+ labelWidth: 110,
+ hide: false,
},
{
label: '妯℃澘绫诲瀷',
prop: 'templateType',
type: 'radio',
+ labelWidth: 110,
span: 24,
value: '1',
dicData: [
@@ -398,7 +519,11 @@
return val;
},
change: (val) => {
- console.log(val);
+ const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'searchObjType', 'queryTemplateName', 'controlPath', 'expandCols', 'rootContent', 'showAbs', 'showLinkAbs', 'separator']
+ // list.forEach(item => {
+ // this.form[item] = "";
+ // })
+ // this.form.searchTarger = '1'
const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
searchTarger.display = true; // 鍒囨崲榛樿灞曠ず鎼滅储绫诲瀷
// 妯℃澘绫诲瀷涓鸿〃鏍�
@@ -419,6 +544,7 @@
label: '鏄剧ず绫诲瀷',
prop: 'navigatorType',
type: 'radio',
+ labelWidth: 110,
span: 24,
value: '1',
hide: true,
@@ -441,6 +567,7 @@
label: '鎼滅储绫诲瀷',
prop: 'searchTarger',
display: true,
+ labelWidth: 110,
type: 'radio',
value: '1',
span: 24,
@@ -463,174 +590,144 @@
const obj = this.option.group[0].column.find(item => item.prop === 'linkType');
obj.display = val.value !== '1';
}
+
+ if (this.searchTargerChangeFlag) {
+ // 鍒囨崲娓呯┖妯℃澘绫诲瀷
+ const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType', 'bsDataModel', 'csDataModel'];
+ list.forEach(item => {
+ this.form[item] = '';
+ })
+ } else {
+ this.searchTargerChangeFlag = true;
+ }
}
- },
- {
- label: '鎻忚堪',
- prop: 'description',
- display: false
},
],
group: [
{
- icon: 'el-icon-folder-opened',
- label: '',
- arrow: false,
+ icon:'el-icon-info',
+ label:'',
+ arrow: true,
prop: 'group1',
column: [
{
label: '婧愬璞�',
prop: 'showType',
- type: 'table',
- display: false,
+ type: 'select',
+ labelWidth: 115,
+ cascader: ['linkType', 'SubUILayout', 'searchObjType'],
placeholder: "璇疯緭鍏ュ唴瀹�",
- props: {
- label: 'name',
- value: 'name'
- },
- children: {
- border: true,
- column: [{
- label: '鍚嶇О',
- search: true,
- searchSpan: 24,
- prop: 'name'
- }, {
- label: '鏍囩',
- prop: 'label'
- }],
- },
- onLoad: ({page, value, data}, callback) => {
- //page鍒嗛〉
- // 涓嶇鏄悳绱� 杩樻槸棣栨鍔犺浇閮戒細瑙﹀彂page 鎵�浠ュ彧闇�瑕佹嬁page瀛樺湪涓庡惁杩涜璇锋眰灏卞彲浠� 濡傛灉鍐嶅幓鍒ゆ柇data鎼滅储 鎴栬�卾alue鍒濇鍔犺浇灏变細閲嶅璇锋眰
- if (page) {
- const params = {
- "conditionMap[filterInputValue]": value ? value.name : ''
- };
- getBtmDatasByPage(page.currentPage, page.pageSize, params).then(res => {
- callback({
- total: res.data.total,
- data: res.data.data
- })
+ dicUrl: '/api/uiManagerController/getBtmDatasByPage?page=1&limit=-1',
+ filterable: true,
+ change: (val) => {
+ if (val.value) {
+ let params = {
+ 'conditionMap[selectBtmType]': this.form.searchTarger === '1' ? val.value : this.form.linkType
+ }
+ getPortalVIDatasByPage(1, -1, params).then(res => {
+ this.templateIdList = res.data.data;
+ })
+ getQTInfoDatasByPage(1, -1, params).then(res => {
+ this.queryTemplateNameList = res.data.data;
})
}
+ if (this.showTypeChangeFlag) {
+ if (val.value) {
+ if (this.form.searchTarger === '1') {
+ this.form.templateId = "";
+ this.form.queryTemplateName = "";
+ } else {
+ this.form.linkType = "";
+ this.form.templateId = "";
+ this.form.queryTemplateName = "";
+ }
+ }
+ } else {
+ this.showTypeChangeFlag = true;
+ }
},
+ props: {
+ label: 'name',
+ value: 'name',
+ desc: 'label'
+ },
+ rules: [
+ {
+ required: true,
+ message: '璇烽�夋嫨鍐呭',
+ trigger: 'change'
+ }
+ ],
},
{
label: '閾炬帴绫诲瀷',
prop: 'linkType',
- type: 'table',
+ type: 'select',
display: false,
+ labelWidth: 115,
+ filterable: true,
props: {
- label: 'viName',
- value: 'viName'
+ label: 'name',
+ value: 'name',
+ desc: 'tag'
},
- children: {
- border: true,
- column: [{
- label: '鍚嶇О',
- search: true,
- searchSpan: 24,
- prop: 'viName'
- }, {
- label: '绫诲瀷',
- prop: 'viType'
- }],
- },
- onLoad: ({page, value, data}, callback) => {
- if (page) {
- const params = {
- "conditionMap[selectBtmType]": this.form.showType,
- "conditionMap[filterInputValue]": data ? data.viName : '',
- };
- getPortalVIDatasByPage(page.currentPage, page.pageSize, params).then(res => {
- console.log(res);
- callback({
- total: res.data.total,
- data: res.data.data
- })
+ dicUrl: '/api/uiManagerController/getLinkDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}',
+ change: (val) => {
+ if (val.value) {
+ let params = {
+ 'conditionMap[selectBtmType]': val.value
+ }
+ getPortalVIDatasByPage(1, -1, params).then(res => {
+ this.templateIdList = res.data.data;
+ })
+ getQTInfoDatasByPage(1, -1, params).then(res => {
+ this.queryTemplateNameList = res.data.data;
})
}
- },
+ if (this.linkTypeChangeFlag) {
+ if (val.value) {
+ this.form.templateId = "";
+ this.form.queryTemplateName = "";
+ }
+ } else {
+ this.linkTypeChangeFlag = true;
+ }
+ }
},
{
label: '閫夋嫨妯℃澘',
- prop: 'showTypea',
+ prop: 'templateId',
+ labelWidth: 115,
display: false,
- type: 'table',
- props: {
- label: 'viName',
- value: 'viName'
- },
- children: {
- border: true,
- column: [{
- label: '鍚嶇О',
- search: true,
- searchSpan: 24,
- prop: 'viName'
- }, {
- label: '绫诲瀷',
- prop: 'viType'
- }],
- },
- onLoad: ({page, value, data}, callback) => {
- if (page) {
- const params = {
- "conditionMap[selectBtmType]": this.form.showType,
- "conditionMap[filterInputValue]": data ? data.viName : '',
- };
- getPortalVIDatasByPage(page.currentPage, page.pageSize, params).then(res => {
- console.log(res);
- callback({
- total: res.data.total,
- data: res.data.data
- })
- })
+ formslot: true,
+ rules: [
+ {
+ required: true,
+ message: '璇烽�夋嫨妯℃澘',
+ trigger: 'submit'
}
- },
+ ],
},
{
label: 'UI瀹氫箟',
- prop: 'UI',
- type: 'table',
+ prop: 'SubUILayout',
+ type: 'select',
+ labelWidth: 115,
+ filterable: true,
display: false,
props: {
- label: 'qtName',
- value: 'qtName'
+ label: 'plName',
+ value: 'plCode',
},
- children: {
- border: true,
- column: [{
- label: '鍚嶇О',
- search: true,
- searchSpan: 24,
- prop: 'qtName'
- }, {
- label: '绫诲瀷',
- prop: 'btmName'
- }],
- },
- onLoad: ({page, value, data}, callback) => {
- if (page) {
- const params = {
- "conditionMap[selectBtmType]": this.form.showType,
- "conditionMap[filterInputValue]": data ? data.qtName : '',
- };
- getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => {
- callback({
- total: res.data.total,
- data: res.data.data
- })
- })
- }
- },
+ dicUrl: '/api/uiManagerController/getUILayoutDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}',
},
{
label: '鏌ヨ绫诲瀷',
prop: 'searchType',
display: false,
+ value: '1',
type: 'radio',
+ labelWidth: 115,
span: 24,
dicData: [
{
@@ -646,112 +743,59 @@
{
label: '鏌ヨ瀵硅薄绫诲瀷',
prop: 'searchObjType',
- type: 'table',
+ type: 'select',
display: false,
- labelWidth: 100,
+ labelWidth: 115,
props: {
label: 'qtName',
- value: 'qtName'
+ value: 'qtName',
+ desc: 'btmName'
},
- children: {
- border: true,
- column: [{
- label: '鍚嶇О',
- search: true,
- searchSpan: 24,
- prop: 'qtName'
- }, {
- label: '绫诲瀷',
- prop: 'btmName'
- }],
- },
- onLoad: ({page, value, data}, callback) => {
- if (page) {
- const params = {
- "conditionMap[selectBtmType]": this.form.showType,
- "conditionMap[filterInputValue]": data ? data.qtName : '',
- };
- getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => {
- callback({
- total: res.data.total,
- data: res.data.data
- })
- })
- }
- },
+ dicUrl: '/api/uiManagerController/getLinkDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]=',// cs绔湁闂 鏆傛椂涓嶅睍绀哄唴瀹�
},
{
label: '鏌ヨ妯℃澘',
- prop: 'showTypes',
- type: 'table',
+ prop: 'queryTemplateName',
+ labelWidth: 115,
+ type: 'select',
display: false,
- props: {
- label: 'qtName',
- value: 'qtName'
- },
- children: {
- border: true,
- column: [{
- label: '鍚嶇О',
- search: true,
- searchSpan: 24,
- prop: 'qtName'
- }, {
- label: '绫诲瀷',
- prop: 'btmName'
- }],
- },
- onLoad: ({page, value, data}, callback) => {
- if (page) {
- const params = {
- "conditionMap[selectBtmType]": this.form.showType,
- "conditionMap[filterInputValue]": data ? data.qtName : '',
- };
- getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => {
- callback({
- total: res.data.total,
- data: res.data.data
- })
- })
- }
- },
+ formslot: true,
},
{
label: '鎺у埗璺緞',
- prop: 'kzlj',
+ prop: 'controlPath',
+ labelWidth: 115,
display: false,
type: 'textarea',
+ span: 24,
rows: 3
},
{
- label: '鏍硅妭鐐规樉绀鸿〃杈惧紡',
- prop: 'genjiedian',
+ label: '鏍戠粨鏋勫睍寮�鍒�',
+ prop: 'expandCols',
+ labelWidth: 115,
display: false,
- labelWidth: 135,
- span: 24
- },
- {
- label: '鏍戣妭鐐规樉绀鸿〃杈惧紡',
- prop: 'shujiedian',
- display: false,
- labelWidth: 135,
- span: 24
+ span: 12
},
{
label: '鍙傜収鏍戣缃�',
- prop: 'canzhaoshu',
+ prop: 'showLinkAbs',
+ labelWidth: 115,
display: false,
},
{
label: '鍒嗛殧绗�',
- prop: 'fgf',
+ prop: 'separator',
+ labelWidth: 115,
display: false,
},
{
label: '灞曞紑鏂瑰紡',
- prop: 'zkfs',
+ prop: 'expandMode',
display: false,
type: 'radio',
+ labelWidth: 115,
+ value: '1',
dicData: [
{
label: '閫愮骇灞曞紑',
@@ -759,52 +803,50 @@
},
{
label: '鍏ㄩ儴灞曞紑',
- value: '2'
+ value: '0'
}
]
+ },
+ {
+ label: 'B/S鑷畾涔夋煡璇�',
+ prop: 'bsDataModel',
+ display: false,
+ labelWidth: 115,
+ span: 12
+ },
+ {
+ label: 'C/S鑷畾涔夋煡璇�',
+ prop: 'csDataModel',
+ display: false,
+ labelWidth: 115,
+ span: 12
+ },
+ {
+ label: '鏍硅妭鐐规樉绀鸿〃杈惧紡',
+ prop: 'rootContent',
+ display: false,
+ labelWidth: 135,
+ span: 12
+ },
+ {
+ label: '鏍戣妭鐐规樉绀鸿〃杈惧紡',
+ prop: 'showAbs',
+ display: false,
+ labelWidth: 135,
+ span: 12
},
]
},
{
- icon: 'el-icon-folder-opened',
label: '',
arrow: false,
prop: 'group2',
column: [
{
- label: 'EventKey',
- prop: 'eventKey',
- type: 'select',
- value: 'SelectionEvent',
- dicData: [
- {
- label: 'SelectionEvent',
- value: 'SelectionEvent'
- },
- {
- label: 'DBClickEvent',
- value: 'DBClickEvent'
- },
- {
- label: 'ClickEvent',
- value: 'ClickEvent'
- }
- ],
- },
- {
- label: 'EventValue',
- prop: 'eventValue',
- labelWidth: 100
- },
- {
- label: '',
- prop: 'eventButton',
- span: 24
- },
- {
label: '',
prop: 'bottomValue',
- span: 24
+ span: 24,
+ labelWidth: 10
},
]
}
@@ -816,8 +858,45 @@
formDataRow: {},
}
},
- computed: {},
+ computed:{
+ ...mapGetters(["permission"]),
+ permissionChildrenList() {
+ return {
+ UiPageLayoutAddBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutAdd, false),
+ UiPageLayoutEditBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutEdit, false),
+ UiPageLayoutDelBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutDel, false),
+ UiPageLayoutCloneBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutClone, false),
+ UiPageLayoutDesignBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutDesign, false),
+ }
+ }
+ },
+ watch: {
+ sourceData: {
+ handler(val) {
+ if (val && val.plOId) {
+ this.getTableList();
+ } else {
+ this.data = [];
+ }
+ },
+ immediate: true,
+ deep: true
+ }
+ },
methods: {
+ //鑾峰彇鍒楄〃鏁版嵁
+ getTableList() {
+ const params = {
+ pageContextOId: this.sourceData.plOId
+ }
+ getPLPageDefinations(params).then(res => {
+ this.data = res.data.data;
+ this.selectList = [];
+ this.$refs.crud.clearSelection();
+ this.tableLoading = false;
+ })
+ },
+
// 鏍规嵁涓嶅悓鍊煎尯鍒嗙被鍨�
templateTypeValueHandler(val) {
const componentMap = {
@@ -847,14 +926,111 @@
this.lastIndex = newIndex;
},
() => {
- this.selectList = [];
+ this.selectList = [row];
}
);
},
// 澧炲姞
addClickHandler() {
+ if (!this.sourceData || !this.sourceData.plOId) {
+ this.$message.error('璇峰湪涓婃柟閫夋嫨涓�鏉℃暟鎹悗杩涜娣诲姞');
+ return;
+ }
this.$refs.crud.rowAdd();
+ },
+
+ // 澧炲姞鍏抽棴瀵硅瘽妗� 娓呯┖event鏁扮粍
+ beforeClose(done) {
+ this.eventData = [];
+ this.showTypeChangeFlag = false;
+ this.linkTypeChangeFlag = false;
+ done();
+ },
+
+ // 淇敼
+ editBtnClick(row) {
+ this.eventData = [];
+ if (row.eventKey && row.eventValue) {
+ let keys = row.eventKey.split(',');
+ let values = row.eventValue.split(',');
+
+ this.eventData = keys.map((key, index) => {
+ return {
+ index: this.eventData.length,
+ eventKey: key.trim(),
+ eventValue: values[index],
+ $cellEdit: true
+ };
+ });
+ }
+ this.searchTargerChangeFlag = false;
+ this.$refs.crud.rowEdit(row);
+ },
+
+ // 鍒犻櫎
+ rowDeleteHandler(row) {
+ this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ const params = {
+ oids: row.id
+ }
+ delPageDefination(params).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛');
+ this.getTableList();
+ }
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+
+ // 淇濆瓨
+ rowSaveHandler(row, done, loading) {
+ if (row.templateType === '6') {
+ row.SubUIObjType = row.showType;
+ row.showType = "";
+ }
+ const params = {
+ ...row,
+ tabPageOId: this.sourceData.plOId
+ }
+ addPageDefination(params).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.obj);
+ this.getTableList();
+ done();
+ }
+ }).catch(err => {
+ loading();
+ })
+ },
+
+ rowUpdateHandler(row, index, done, loading) {
+ if (row.templateType === '6') {
+ row.SubUIObjType = row.showType;
+ row.showType = "";
+ }
+ const params = {
+ ...row,
+ tabPageOId: this.sourceData.plOId
+ }
+ updatePageDefination(params).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.obj);
+ this.getTableList();
+ done();
+ }
+ }).catch(err => {
+ loading();
+ })
},
// 瀵硅瘽妗嗚〃鏍艰鐐瑰嚮
@@ -864,41 +1040,19 @@
// 瀵硅瘽妗嗚〃鏍兼坊鍔�
formDataAddClickHandler() {
- if (!this.form.eventKey) {
- this.$message.error('璇烽�夋嫨EventKey');
- return;
- }
-
- if (!this.form.eventValue) {
- this.$message.error('璇疯緭鍏ventValue');
- return;
- }
-
- if (this.FormData.length >= 1) {
- const eventValueStatus = this.FormData.some(item => item.eventValue === this.form.eventValue);
-
- if (eventValueStatus) {
- this.$message.error('宸插瓨鍦ㄧ浉鍚岀殑 EventValue锛屼笉鑳介噸澶嶆坊鍔�');
- return;
- }
- }
const obj = {
- index: this.FormData.length,
- eventKey: this.form.eventKey,
- eventValue: this.form.eventValue
+ index: this.eventData.length,
+ eventKey: this.form.eventKey || 'SelectionEvent',
+ eventValue: this.form.eventValue,
+ $cellEdit: true
}
- this.FormData.push(obj);
+ this.eventData.push(obj);
},
// 瀵硅瘽妗嗚〃鏍煎垹闄�
- formDataDelClickHandler() {
- if (func.isEmptyObject(this.formDataRow)) {
- this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
- return;
- }
-
- this.FormData = this.FormData.filter(item => item.index !== this.formDataRow.index);
+ formDataDelClickHandler(row) {
+ this.eventData = this.eventData.filter(item => item.index !== row.index);
},
// 妯℃澘绫诲瀷鏄剧ず闅愯棌鏂规硶
@@ -912,7 +1066,7 @@
// 妯℃澘绫诲瀷涓鸿〃鏍�
templateTypeTable(val) {
if (!val) return;
- this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']);
+ this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsDataModel', 'csDataModel']);
},
// 妯℃澘绫诲瀷涓鸿嚜瀹氫箟妯℃澘
@@ -920,19 +1074,19 @@
if (!val) return;
const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
- this.updateDisplay(val, ['kzlj']);
+ this.updateDisplay(val, ['controlPath']);
},
// 妯℃澘绫诲瀷涓烘爲琛�
templateTypeTreeTable(val) {
if (!val) return;
- this.updateDisplay(val, ['showType', 'showTypea', 'showTypes', 'zkl', 'zkfs']);
+ this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'expandMode', 'bsDataModel', 'csDataModel']);
},
// 妯℃澘绫诲瀷涓鸿〃鍗�
templateTypeForm(val) {
if (!val) return;
- this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']);
+ this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsDataModel', 'csDataModel']);
},
// 妯℃澘绫诲瀷涓烘爲
@@ -940,7 +1094,7 @@
if (!val) return;
const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
- this.updateDisplay(val, ['showType', 'showTypes', 'genjiedian', 'shujiedian', 'canzhaoshu', 'fgf', 'zkfs', 'linkType']);
+ this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType', 'bsDataModel', 'csDataModel']);
},
// 妯℃澘绫诲瀷涓篣I瀹氫箟
@@ -948,7 +1102,7 @@
if (!val) return;
const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
- this.updateDisplay(val, ['showType', 'UI', 'searchType', 'searchObjType', 'showTypes']);
+ this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName', 'bsDataModel', 'csDataModel']);
},
// 鏌ユ壘鏁扮粍涓璞$储寮�
@@ -957,57 +1111,54 @@
},
// 涓婄Щ
- moveUp() {
- const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue);
+ moveUp(row) {
+ const index = this.findIndexByEventValue(this.eventData, row.eventValue);
if (index > 0) {
- // 浣跨敤 splice 鏂规硶鏉ユā鎷熶氦鎹�
- const temp = this.FormData.splice(index - 1, 1, this.FormData[index])[0]; // 绉婚櫎 index-1 鐨勫厓绱狅紝骞跺湪鐩稿悓浣嶇疆鎻掑叆 index 鐨勫厓绱狅紝杩斿洖琚Щ闄ょ殑鍏冪礌
- this.FormData.splice(index, 1, temp); // 鍦� index 浣嶇疆鎻掑叆涔嬪墠琚Щ闄ょ殑鍏冪礌
+ // 浣跨敤 splice 鏉ユā鎷熶氦鎹�
+ const temp = this.eventData.splice(index - 1, 1, this.eventData[index])[0]; // 绉婚櫎 index-1 鐨勫厓绱� 骞跺湪鐩稿悓浣嶇疆鎻掑叆 index 鐨勫厓绱� 杩斿洖琚Щ闄ょ殑鍏冪礌
+ this.eventData.splice(index, 1, temp); // 鍦� index 浣嶇疆鎻掑叆涔嬪墠琚Щ闄ょ殑鍏冪礌
}
},
// 涓嬬Щ
- moveDown() {
- const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue);
- const length = this.FormData.length;
+ moveDown(row) {
+ const index = this.findIndexByEventValue(this.eventData, row.eventValue);
+ const length = this.eventData.length;
if (index < length - 1) {
- const temp = this.FormData[index];
- this.FormData.splice(index, 1, this.FormData.splice(index + 1, 1, temp)[0]);
+ const temp = this.eventData[index];
+ this.eventData.splice(index, 1, this.eventData.splice(index + 1, 1, temp)[0]);
}
- },
-
- // 鎸夐挳璁捐鍏抽棴瀵硅瘽妗�
- dialogClose() {
-
},
// 鎸夐挳璁捐
- btnDesignClickHandler() {
- if (this.selectList.length <= 0) {
- this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
+ btnDesignClickHandler(row) {
+ /*if (this.selectList.length != 1) {
+ this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
return;
- }
- if (this.selectList.length > 1) {
- this.$message.error('鏈�澶氶�夋嫨涓�鏉℃暟鎹�');
- return;
- }
+ }*/
this.btnDesignVisible = true;
- this.getTabBtnTree();
+ this.formBtnOid = row.id;
+ this.getTabBtnTree(row);
},
// 宸︿晶鏍戣姹�
- getTabBtnTree() {
+ getTabBtnTree(row) {
const params = {
- pageDefinationOid: this.selectList[0].id
+ pageDefinationOid: row && row.id ? row.id : this.selectList[0].id
}
this.treeLoading = true;
getTabButtons(params).then(res => {
if (res.data.code === 200) {
const data = res.data.data;
- this.treeData[0].children = data;
+ this.treeData = [{
+ label: row && row.id ? row.name : this.selectList[0].name,
+ oId: 'parentNode',
+ disabled: true,
+ children: data
+ }];
this.treeLoading = false;
} else {
- this.$message.error('璇锋鏌ユ帶鍒跺彴閿欒');
+ this.$message.error(res.data.msg);
}
})
},
@@ -1021,6 +1172,7 @@
value: value
})) : [];
this.disabledBtn = true;
+ this.$refs.form.clearValidate()
},
// 鎸夐挳璁捐鍙傛暟淇℃伅鍒犻櫎
@@ -1028,9 +1180,20 @@
this.paramsData.splice(row.$index, 1)
},
+ // 鎸夐挳璁捐淇℃伅鍙傛暟淇℃伅淇敼
+ paramsRowEditHandler(row) {
+ this.$refs.paramsCrud.rowEdit(row, row.$index);
+ },
+
// 鎸夐挳璁捐鍙傛暟淇℃伅娣诲姞鎸夐挳
paramsRowAddClickHandler() {
this.$refs.paramsCrud.rowAdd();
+ },
+
+ // 鎸夐挳璁捐鍙傛暟淇℃伅淇敼淇濆瓨
+ paramsRowUpdate(row, index, done, loading) {
+ this.paramsData.splice(index, 1, row);
+ done();
},
// 鎸夐挳璁捐鍙傛暟淇℃伅淇濆瓨
@@ -1064,7 +1227,7 @@
// 鎸夐挳璁捐淇敼
editClickBtnHandler() {
if (func.isEmptyObject(this.nodeTreeRow)) {
- this.$message.error('璇烽�夋嫨鑺傜偣杩涜娣诲姞');
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜淇敼');
return;
}
@@ -1087,33 +1250,47 @@
// 鎸夐挳璁捐淇濆瓨
saveClickBtnHandler() {
- const saveFunction = this.saveType === 'add' ? addTapButton : updateTapButton;
- const bottomParams = {};
- if (this.paramsData.length > 0) {
- this.paramsData.forEach(item => {
- bottomParams[item.name] = item.value
- })
+ if (this.basicForm.show == '0' && (this.basicForm.displayMode == 'image' || this.basicForm.displayMode == 'textandimage') && this.basicForm.iconPath == '') {
+ this.$message.error('璇烽�夋嫨鍥炬爣');
+ return;
}
- ;
+ this.$refs.form.validate((valid, done) => {
+ if (valid) {
+ this.dialogLoading = true;
+ const saveFunction = this.saveType === 'add' ? addTapButton : updateTapButton;
+ const bottomParams = {};
+ if (this.paramsData.length > 0) {
+ this.paramsData.forEach(item => {
+ bottomParams[item.name] = item.value
+ })
+ }
+ const params = this.saveType === 'add' ? {
+ ...this.basicForm,
+ parentId: this.nodeTreeRow.oId === 'parentNode' ? '' : this.nodeTreeRow.parentId,
+ buttonParams: bottomParams,
+ tableOId: this.selectList[0].id
+ } : {
+ ...this.basicForm,
+ buttonParams: bottomParams
+ }
- const params = this.saveType === 'add' ? {
- ...this.basicForm,
- parentId: this.nodeTreeRow.oId === 'parentNode' ? '' : this.nodeTreeRow.parentId,
- buttonParams: bottomParams
- } : {
- ...this.basicForm,
- buttonParams: bottomParams
- }
-
- saveFunction(params).then(res => {
- if (res.data.code === 200) {
- this.$message.success(res.data.obj);
- this.disabledBtn = true;
- this.getTabBtnTree();
- this.basicForm = {};
- this.paramsData = [];
+ saveFunction(params).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.obj);
+ this.disabledBtn = true;
+ this.getTabBtnTree();
+ this.basicForm = {};
+ this.paramsData = [];
+ this.dialogLoading = false;
+ }
+ }).catch(err => {
+ this.dialogLoading = false;
+ })
+ } else {
+ return false;
}
- })
+ done();
+ });
},
// 鎸夐挳璁捐鍒犻櫎
@@ -1133,7 +1310,14 @@
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
-
+ deleteTabButton(this.nodeTreeRow).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛');
+ this.getTabBtnTree();
+ this.basicForm = {};
+ this.paramsData = [];
+ }
+ })
}).catch(() => {
this.$message({
type: 'info',
@@ -1141,7 +1325,89 @@
});
});
},
- }
+
+ // 澶嶅埗鍒板叾浠栫粍浠�
+ cloneClickBtnHandler() {
+ if (func.isEmptyObject(this.nodeTreeRow)) {
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜澶嶅埗');
+ return;
+ }
+ if (this.nodeTreeRow.oId === "parentNode") {
+ this.$message.error('椤跺眰鑺傜偣涓嶅厑璁稿鍒�');
+ return;
+ }
+ this.sourceBtnOid = this.nodeTreeRow.oId;
+ this.$refs.cloneBtnDialog.openDialog(this.nodeTreeRow);
+ },
+
+ // 閫夋嫨action
+ actionFoucus() {
+ this.$refs.actionDialog.openDialog();
+ },
+
+ // 淇濆瓨action
+ actionSaveHandler(val) {
+ this.$set(this.basicForm, 'actionName', val.plName);
+ this.$set(this.basicForm, 'actionOId', val.plOId);
+ this.$set(this.basicForm, 'iconPath', val.plImage);//鍥炬爣
+ this.$refs.form.clearValidate('Action')
+ },
+ // action閫夋嫨寮圭獥鐩存帴鍏抽棴
+ actionCancelHandler() {
+ if(this.basicForm.actionOId){
+ this.$refs.form.clearValidate('Action')
+ }
+ },
+
+ //娓呴櫎action
+ clearActionValue(){
+ this.$set(this.basicForm, 'actionName', '');
+ this.$set(this.basicForm, 'actionOId', '');
+ },
+ // 鎵撳紑鍏嬮殕瀵硅瘽妗�
+ rowCloneHandler(row) {
+ this.fromOid = this.sourceData.plOId;
+ this.sourceOId = row.id;
+ this.$refs.cloneDialog.openDialog(row);
+ },
+
+ // 璋冩暣涓轰笅绾ф寜閽�
+ changeBottomBtnHandler() {
+ if (func.isEmptyObject(this.nodeTreeRow)) {
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜淇敼');
+ return;
+ }
+
+ if (this.nodeTreeRow.oId === "parentNode") {
+ this.$message.error('椤跺眰鑺傜偣涓嶅厑璁歌皟鏁�');
+ return;
+ }
+ joinBtn(this.nodeTreeRow).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.obj);
+ this.getTabBtnTree();
+ }
+ })
+ },
+
+ // 璋冩暣涓轰笂绾ф寜閽�
+ changeTopBtnHandler() {
+ if (func.isEmptyObject(this.nodeTreeRow)) {
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜淇敼');
+ return;
+ }
+ if (this.nodeTreeRow.oId === "parentNode") {
+ this.$message.error('椤跺眰鑺傜偣涓嶅厑璁歌皟鏁�');
+ return;
+ }
+ exitBtn(this.nodeTreeRow).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.obj);
+ this.getTabBtnTree();
+ }
+ })
+ }
+ },
}
</script>
--
Gitblit v1.9.3