From b9084eb240ff5438295aec5e93c4b01180eb646c Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 27 九月 2024 09:50:56 +0800
Subject: [PATCH] UI定义右下方表格
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue | 1152 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,152 insertions(+), 0 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
new file mode 100644
index 0000000..097644e
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
@@ -0,0 +1,1152 @@
+<template>
+ <basic-container>
+ <avue-crud
+ ref="crud"
+ v-model="form"
+ :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"
+ @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>
+ <!-- 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>
+ </template>
+
+ <!-- 鍒囨崲鎼滅储绫诲瀷 婧愬璞� 鐩爣瀵硅薄鏄剧ずlabel鍒囨崲 -->
+ <template slot="showTypeLabel" slot-scope="{}">
+ <span v-if="form.templateType === '3'">椤剁骇鑺傜偣</span>
+ <span v-else-if="form.templateType === '5'">涓氬姟绫诲瀷</span>
+ <span v-else-if="form.templateType === '6'">瀵硅薄绫诲瀷</span>
+ <span v-else-if="form.searchTarger === '1'">婧愬璞�</span>
+ <span v-else-if="form.searchTarger === '2'">鐩爣瀵硅薄</span>
+ </template>
+ </avue-crud>
+ <el-dialog
+ v-dialogDrag
+ :visible.sync="btnDesignVisible"
+ append-to-body="true"
+ class="avue-dialog"
+ title="閰嶇疆鎸夐挳"
+ width="70%"
+ @close="dialogClose">
+ <el-container>
+ <el-header style="height: 40px !important;">
+ <div style="display: flex">
+ <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">娣诲姞
+ </el-button>
+ <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="editClickBtnHandler">淇敼
+ </el-button>
+ <el-button :disabled="!disabledBtn" plain size="mini" type="danger" @click="delClickBtnHandler">鍒犻櫎
+ </el-button>
+ <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="saveClickBtnHandler">淇濆瓨
+ </el-button>
+ <el-button :disabled="disabledBtn" plain size="mini" type="primary" @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>
+ </div>
+ </el-header>
+ <el-container>
+ <el-aside width="20%">
+ <basic-container>
+ <div style="height:650px;">
+ <avue-tree
+ ref="Tree"
+ :data="treeData"
+ :loading="treeLoading"
+ :option="treeOption"
+ 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>
+ </span>
+ </avue-tree>
+ </div>
+ </basic-container>
+ </el-aside>
+
+ <el-main>
+ <basic-container>
+ <el-divider content-position="left">鍩虹淇℃伅</el-divider>
+ <el-form ref="form" :model="basicForm" :rules="rules" label-width="90px" 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 label="鏄惁鎺堟潈锛�" prop="resource">
+ <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="12">
+ <el-form-item label="鏄惁鏄剧ず锛�" prop="show">
+ <el-radio v-model="basicForm.show" :disabled="disabledBtn" label="0">鏄�</el-radio>
+ <el-radio v-model="basicForm.show" :disabled="disabledBtn" label="1">鍚�</el-radio>
+ </el-form-item>
+ </el-col>
+
+ <el-col :span="12">
+ <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-form-item>
+ </el-col>
+
+ <el-col :span="12">
+ <el-form-item label="鎻愮ず淇℃伅锛�" prop="desc">
+ <el-input v-model="basicForm.desc" :readonly="disabledBtn" type="textarea"></el-input>
+ </el-form-item>
+ </el-col>
+
+ </el-row>
+ </el-form>
+
+ <el-divider content-position="left">鍙傛暟淇℃伅</el-divider>
+ <avue-crud
+ ref="paramsCrud"
+ :data="paramsData"
+ :option="paramsOption"
+ style="margin-top: 20px"
+ @row-save="paramsRowSave">
+ <template slot="menuLeft" slot-scope="scope">
+ <el-button :disabled="disabledBtn" icon="el-icon-plus" plain size="small" type="primary"
+ @click="paramsRowAddClickHandler">鍒涘缓
+ </el-button>
+ </template>
+
+ <template slot="menu" slot-scope="scope">
+ <el-button :disabled="disabledBtn" icon="el-icon-delete" size="small" type="text"
+ @click="paramsRowDeleteHandler(scope.row)">鍒犻櫎
+ </el-button>
+ </template>
+
+ </avue-crud>
+ </basic-container>
+ </el-main>
+ </el-container>
+ </el-container>
+ </el-dialog>
+ </basic-container>
+</template>
+
+<script>
+import basicOption from "@/util/basic-option";
+import func from "@/util/func";
+import {
+ getBtmDatasByPage,
+ getPortalVIDatasByPage,
+ getQTInfoDatasByPage,
+ getTabButtons,
+ addTapButton,
+ updateTapButton
+} from "@/api/UI/uiDefine/api";
+
+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": ""
+ }
+ ]
+ },
+ height: {
+ type: String,
+ default: () => "auto"
+ }
+ },
+ name: "index",
+ data() {
+ return {
+ saveType: '',
+ disabledBtn: true,
+ paramsData: [],
+ nodeTreeRow: {},
+ paramsOption: {
+ ...basicOption,
+ height: 260,
+ addBtn: false,
+ tip: false,
+ editBtn: false,
+ delBtn: false,
+ refreshBtn: false,
+ column: [
+ {
+ label: '鍚嶇О',
+ prop: 'name'
+ },
+ {
+ label: '鍊�',
+ prop: 'value'
+ }
+ ]
+ },
+ rules: {
+ seq: [
+ {required: true, message: '璇疯緭鍏ョ紪鍙�', type: 'number', trigger: 'blur'},
+ ],
+ label: [
+ {required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur'},
+ ],
+ },
+ // 鎸夐挳璁捐 鍩虹淇℃伅
+ basicForm: {
+ seq: 1
+ },
+ treeData: [
+ {
+ label: this.sourceData[0].name,
+ oId: 'parentNode',
+ children: []
+ }
+ ],
+ treeOption: {
+ menu: false,
+ addBtn: false,
+ defaultExpandedKeys: ['parentNode'],
+ props: {
+ label: 'label',
+ value: 'oId',
+ children: 'children',
+ },
+ },
+ treeLoading: false,
+ btnDesignVisible: false,
+ FormData: [],
+ form: {},
+ data: this.sourceData,
+ option: {
+ ...basicOption,
+ height: this.height,
+ addBtn: false,
+ index: true,
+ calcHeight: -30,
+ column: [
+ {
+ label: '鍚嶇О',
+ prop: 'name',
+ rules: [
+ {
+ required: true,
+ message: '璇疯緭鍏ュ悕绉�',
+ trigger: 'blur'
+ }
+ ]
+ },
+ {
+ label: '缂栧彿',
+ prop: 'seq',
+ hide: false,
+ rules: [
+ {
+ required: true,
+ message: '璇疯緭鍏ョ紪鍙�',
+ trigger: 'blur'
+ }
+ ],
+ },
+ {
+ label: 'UI瑙f瀽绫诲瀷',
+ prop: 'uiParser',
+ hide: true,
+ },
+ {
+ label: '鎵╁睍灞炴��',
+ prop: 'extAttr',
+ hide: true,
+ },
+ {
+ label: '妯℃澘绫诲瀷',
+ prop: 'templateType',
+ type: 'radio',
+ span: 24,
+ value: '1',
+ dicData: [
+ {
+ label: 'Table(琛ㄦ牸)',
+ value: '1'
+ },
+ {
+ label: 'Custom锛堣嚜瀹氫箟妯℃澘锛�',
+ value: '2'
+ },
+ {
+ label: 'TreeTable(鏍戣〃)',
+ value: '3',
+ },
+ {
+ label: 'Form(琛ㄥ崟)',
+ value: '4',
+ },
+ {
+ label: 'Tree(鏍�)',
+ value: '5',
+ },
+ {
+ label: 'UILayout(UI瀹氫箟)',
+ value: '6',
+ }
+ ],
+ formatter: (row) => {
+ const val = this.templateTypeValueHandler(row.templateType);
+ return val;
+ },
+ change: (val) => {
+ console.log(val);
+ const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
+ searchTarger.display = true; // 鍒囨崲榛樿灞曠ず鎼滅储绫诲瀷
+ // 妯℃澘绫诲瀷涓鸿〃鏍�
+ this.templateTypeTable(val.value === '1');
+ // 妯℃澘绫诲瀷涓鸿嚜瀹氫箟妯℃澘
+ this.templateTypeCustom(val.value === '2');
+ // 妯℃澘绫诲瀷涓烘爲琛�
+ this.templateTypeTreeTable(val.value === '3');
+ // 妯℃澘绫诲瀷涓鸿〃鍗�
+ this.templateTypeForm(val.value === '4');
+ // 妯℃澘绫诲瀷涓烘爲
+ this.templateTypeTree(val.value === '5');
+ // 妯℃澘绫诲瀷涓篣I瀹氫箟
+ this.templateTypeUI(val.value === '6');
+ }
+ },
+ {
+ label: '鏄剧ず绫诲瀷',
+ prop: 'navigatorType',
+ type: 'radio',
+ span: 24,
+ value: '1',
+ hide: true,
+ dicData: [
+ {
+ label: '涓嶆樉绀�',
+ value: '1'
+ },
+ {
+ label: '鏄剧ず瑙掕壊',
+ value: '2'
+ },
+ {
+ label: '鏄剧ずFolder',
+ value: '3',
+ },
+ ],
+ },
+ {
+ label: '鎼滅储绫诲瀷',
+ prop: 'searchTarger',
+ display: true,
+ type: 'radio',
+ value: '1',
+ span: 24,
+ dicData: [
+ {
+ label: '鏈璞″睘鎬�',
+ value: '1'
+ },
+ {
+ label: '鍏宠仈瀵硅薄灞炴��',
+ value: '2'
+ },
+ ],
+ formatter: (row) => {
+ return row.searchTarger === '1' ? '鏈璞″睘鎬�' : '鍏宠仈瀵硅薄灞炴��';
+ },
+ change: (val) => {
+ // 濡傛灉妯℃澘绫诲瀷鏄〃鏍笺�� 鏍戣〃 銆� 琛ㄥ崟 鍒囨崲瀵硅薄灞炴�х殑鏃跺�欙紝濡傛灉鏄湰瀵硅薄灞炴�т笉灞曠ず閾炬帴绫诲瀷锛屽惁鍒欏睍绀洪摼鎺ョ被鍨�
+ if (['1', '3', '4'].includes(this.form.templateType)) {
+ const obj = this.option.group[0].column.find(item => item.prop === 'linkType');
+ obj.display = val.value !== '1';
+ }
+ }
+ },
+ {
+ label: '鎻忚堪',
+ prop: 'description',
+ display: false
+ },
+ ],
+ group: [
+ {
+ icon: 'el-icon-folder-opened',
+ label: '',
+ arrow: false,
+ prop: 'group1',
+ column: [
+ {
+ label: '婧愬璞�',
+ prop: 'showType',
+ type: 'table',
+ display: false,
+ 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
+ })
+ })
+ }
+ },
+ },
+ {
+ label: '閾炬帴绫诲瀷',
+ prop: 'linkType',
+ type: 'table',
+ display: false,
+ 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
+ })
+ })
+ }
+ },
+ },
+ {
+ label: '閫夋嫨妯℃澘',
+ prop: 'showTypea',
+ 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
+ })
+ })
+ }
+ },
+ },
+ {
+ label: 'UI瀹氫箟',
+ prop: 'UI',
+ type: 'table',
+ 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
+ })
+ })
+ }
+ },
+ },
+ {
+ label: '鏌ヨ绫诲瀷',
+ prop: 'searchType',
+ display: false,
+ type: 'radio',
+ span: 24,
+ dicData: [
+ {
+ label: '涓氬姟绫诲瀷',
+ value: '1'
+ },
+ {
+ label: '閾炬帴绫诲瀷',
+ value: '2'
+ }
+ ]
+ },
+ {
+ label: '鏌ヨ瀵硅薄绫诲瀷',
+ prop: 'searchObjType',
+ type: 'table',
+ display: false,
+ labelWidth: 100,
+ 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
+ })
+ })
+ }
+ },
+ },
+ {
+ label: '鏌ヨ妯℃澘',
+ prop: 'showTypes',
+ type: 'table',
+ 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
+ })
+ })
+ }
+ },
+ },
+ {
+ label: '鎺у埗璺緞',
+ prop: 'kzlj',
+ display: false,
+ type: 'textarea',
+ rows: 3
+ },
+ {
+ label: '鏍硅妭鐐规樉绀鸿〃杈惧紡',
+ prop: 'genjiedian',
+ display: false,
+ labelWidth: 135,
+ span: 24
+ },
+ {
+ label: '鏍戣妭鐐规樉绀鸿〃杈惧紡',
+ prop: 'shujiedian',
+ display: false,
+ labelWidth: 135,
+ span: 24
+ },
+ {
+ label: '鍙傜収鏍戣缃�',
+ prop: 'canzhaoshu',
+ display: false,
+ },
+ {
+ label: '鍒嗛殧绗�',
+ prop: 'fgf',
+ display: false,
+ },
+ {
+ label: '灞曞紑鏂瑰紡',
+ prop: 'zkfs',
+ display: false,
+ type: 'radio',
+ dicData: [
+ {
+ label: '閫愮骇灞曞紑',
+ value: '1'
+ },
+ {
+ label: '鍏ㄩ儴灞曞紑',
+ value: '2'
+ }
+ ]
+ },
+ ]
+ },
+ {
+ 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
+ },
+ ]
+ }
+ ],
+ },
+ tableLoading: false,
+ lastIndex: null,
+ selectList: [],
+ formDataRow: {},
+ }
+ },
+ computed: {},
+ methods: {
+ // 鏍规嵁涓嶅悓鍊煎尯鍒嗙被鍨�
+ templateTypeValueHandler(val) {
+ const componentMap = {
+ '1': '琛ㄦ牸',
+ '2': '鑷畾涔夋ā鏉�',
+ '3': '鏍戣〃',
+ '4': '琛ㄥ崟',
+ '5': '鏍�',
+ '6': 'UI瀹氫箟',
+ };
+
+ return componentMap[val] || ""; // 濡傛灉涓虹┖ 杩斿洖绌�
+ },
+
+ // 琛ㄦ牸澶氶��
+ selectChangeHandler(row) {
+ this.selectList = row;
+ },
+
+ // 琛岀偣鍑�
+ rowClickHandler(row) {
+ func.rowClickHandler(
+ row,
+ this.$refs.crud,
+ this.lastIndex,
+ (newIndex) => {
+ this.lastIndex = newIndex;
+ },
+ () => {
+ this.selectList = [];
+ }
+ );
+ },
+
+ // 澧炲姞
+ addClickHandler() {
+ this.$refs.crud.rowAdd();
+ },
+
+ // 瀵硅瘽妗嗚〃鏍艰鐐瑰嚮
+ formDataRowClick(row) {
+ this.formDataRow = row;
+ },
+
+ // 瀵硅瘽妗嗚〃鏍兼坊鍔�
+ 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
+ }
+
+ this.FormData.push(obj);
+ },
+
+ // 瀵硅瘽妗嗚〃鏍煎垹闄�
+ formDataDelClickHandler() {
+ if (func.isEmptyObject(this.formDataRow)) {
+ this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
+ return;
+ }
+
+ this.FormData = this.FormData.filter(item => item.index !== this.formDataRow.index);
+ },
+
+ // 妯℃澘绫诲瀷鏄剧ず闅愯棌鏂规硶
+ updateDisplay(val, showTpeMap) {
+ const groupList = this.option.group[0].column; // 鑾峰彇绗竴灞俫roup鎵�鏈夋暟鎹�
+ groupList.forEach(item => {
+ item.display = showTpeMap.includes(item.prop) ? val : !val; // 鏇存柊display
+ });
+ },
+
+ // 妯℃澘绫诲瀷涓鸿〃鏍�
+ templateTypeTable(val) {
+ if (!val) return;
+ this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']);
+ },
+
+ // 妯℃澘绫诲瀷涓鸿嚜瀹氫箟妯℃澘
+ templateTypeCustom(val) {
+ if (!val) return;
+ const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
+ searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
+ this.updateDisplay(val, ['kzlj']);
+ },
+
+ // 妯℃澘绫诲瀷涓烘爲琛�
+ templateTypeTreeTable(val) {
+ if (!val) return;
+ this.updateDisplay(val, ['showType', 'showTypea', 'showTypes', 'zkl', 'zkfs']);
+ },
+
+ // 妯℃澘绫诲瀷涓鸿〃鍗�
+ templateTypeForm(val) {
+ if (!val) return;
+ this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']);
+ },
+
+ // 妯℃澘绫诲瀷涓烘爲
+ templateTypeTree(val) {
+ 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']);
+ },
+
+ // 妯℃澘绫诲瀷涓篣I瀹氫箟
+ templateTypeUI(val) {
+ if (!val) return;
+ const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤�
+ searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨�
+ this.updateDisplay(val, ['showType', 'UI', 'searchType', 'searchObjType', 'showTypes']);
+ },
+
+ // 鏌ユ壘鏁扮粍涓璞$储寮�
+ findIndexByEventValue(array, eventValue) {
+ return array.findIndex(item => item.eventValue === eventValue);
+ },
+
+ // 涓婄Щ
+ moveUp() {
+ const index = this.findIndexByEventValue(this.FormData, this.formDataRow.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 浣嶇疆鎻掑叆涔嬪墠琚Щ闄ょ殑鍏冪礌
+ }
+ },
+
+ // 涓嬬Щ
+ moveDown() {
+ const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue);
+ const length = this.FormData.length;
+ if (index < length - 1) {
+ const temp = this.FormData[index];
+ this.FormData.splice(index, 1, this.FormData.splice(index + 1, 1, temp)[0]);
+ }
+ },
+
+ // 鎸夐挳璁捐鍏抽棴瀵硅瘽妗�
+ dialogClose() {
+
+ },
+
+ // 鎸夐挳璁捐
+ btnDesignClickHandler() {
+ if (this.selectList.length <= 0) {
+ this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
+ return;
+ }
+ if (this.selectList.length > 1) {
+ this.$message.error('鏈�澶氶�夋嫨涓�鏉℃暟鎹�');
+ return;
+ }
+ this.btnDesignVisible = true;
+ this.getTabBtnTree();
+ },
+
+ // 宸︿晶鏍戣姹�
+ getTabBtnTree() {
+ const params = {
+ pageDefinationOid: 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.treeLoading = false;
+ } else {
+ this.$message.error('璇锋鏌ユ帶鍒跺彴閿欒');
+ }
+ })
+ },
+
+ // 鎸夐挳璁捐琛岀偣鍑�
+ nodeTreeClick(row) {
+ this.nodeTreeRow = row;
+ this.basicForm = {...row};
+ this.paramsData = row.buttonParams ? Object.entries(row.buttonParams).map(([key, value]) => ({
+ name: key,
+ value: value
+ })) : [];
+ this.disabledBtn = true;
+ },
+
+ // 鎸夐挳璁捐鍙傛暟淇℃伅鍒犻櫎
+ paramsRowDeleteHandler(row) {
+ this.paramsData.splice(row.$index, 1)
+ },
+
+ // 鎸夐挳璁捐鍙傛暟淇℃伅娣诲姞鎸夐挳
+ paramsRowAddClickHandler() {
+ this.$refs.paramsCrud.rowAdd();
+ },
+
+ // 鎸夐挳璁捐鍙傛暟淇℃伅淇濆瓨
+ paramsRowSave(row, done, loading) {
+ if (!row.name) {
+ this.$message.error('鍚嶇О涓嶈兘涓虹┖');
+ return loading();
+ }
+
+ if (!row.value) {
+ this.$message.error('鍊间笉鑳戒负绌�');
+ return loading();
+ }
+
+ this.paramsData.push(row);
+ done();
+ },
+
+ // 鎸夐挳璁捐娣诲姞
+ addClickBtnHandler() {
+ if (func.isEmptyObject(this.nodeTreeRow)) {
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜娣诲姞');
+ return;
+ }
+ this.disabledBtn = false;
+ this.basicForm = {};
+ this.paramsData = [];
+ this.saveType = 'add';
+ },
+
+ // 鎸夐挳璁捐淇敼
+ editClickBtnHandler() {
+ if (func.isEmptyObject(this.nodeTreeRow)) {
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜娣诲姞');
+ return;
+ }
+
+ if (this.nodeTreeRow.oId === "parentNode") {
+ this.$message.error('椤跺眰鑺傜偣涓嶅厑璁镐慨鏀�');
+ return;
+ }
+
+ this.disabledBtn = false;
+ this.saveType = 'edit';
+ },
+
+ // 鎸夐挳璁捐鍙栨秷
+ escClickBtnHandler() {
+ this.disabledBtn = true;
+ if (this.saveType === 'add') {
+ this.$refs.Tree.setCurrentKey(null);
+ }
+ },
+
+ // 鎸夐挳璁捐淇濆瓨
+ saveClickBtnHandler() {
+ 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
+ } : {
+ ...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 = [];
+ }
+ })
+ },
+
+ // 鎸夐挳璁捐鍒犻櫎
+ delClickBtnHandler() {
+ if (func.isEmptyObject(this.nodeTreeRow)) {
+ this.$message.error('璇烽�夋嫨鑺傜偣杩涜鍒犻櫎');
+ return;
+ }
+
+ if (this.nodeTreeRow.oId === "parentNode") {
+ this.$message.error('椤跺眰鑺傜偣涓嶅厑璁稿垹闄�');
+ return;
+ }
+
+ this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+.el-divider__text, .el-link {
+ font-size: 16px !important;
+}
+</style>
--
Gitblit v1.9.3