¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 |
| | | }); |
| | | } |
| | |
| | | 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": [] |
| | | } |
| | |
| | | watch: { |
| | | //渲æç©¿æ¢æ¡ |
| | | leftRoleData: { |
| | | // éè¦å¨æå¼ç©¿æ¢æ¡ç»ä»¶çæ¶å对leftRoleDataè¿è¡èµå¼ï¼å¯ä»¥åèaction管ç-actionå表 导åºåè½ï¼ 妿å¨dataéé¢å®ä¹çæ°æ®ï¼ç»ä»¶å
watchä¼çå¬ä¸å°newVal |
| | | handler(newval) { |
| | | if (newval) { |
| | | // æ¸
空dataæ°ç» |
| | |
| | | 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}`; |
| | | } |
| | | |
| | | /** |
| | | * åéè¡¨æ ¼è¡ |
| | |
| | | padding: CryptoJS.pad.Pkcs7 |
| | | }); |
| | | return encrypted.toString(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * HmacMD5å å¯ |
| | |
| | | * @constructor |
| | | */ |
| | | static HmacMD5(message, key) { |
| | | const encrypted = CryptoJS.HmacMD5(message,key); |
| | | const encrypted = CryptoJS.HmacMD5(message, key); |
| | | return encrypted.toString(); |
| | | } |
| | | |
| | |
| | | @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">ä¸è½½å¯¼å
¥æ¨¡æ¿ |
| | |
| | | props: { |
| | | label: 'TreeName', |
| | | value: 'id', |
| | | children: 'children' |
| | | children: 'children', |
| | | name: 'name' |
| | | } |
| | | }, |
| | | treeData: [ |
| | |
| | | name: 'el-icon-tickets', |
| | | desc: 'el-icon-chat-line-square' |
| | | }, |
| | | treeLoading:false |
| | | treeLoading: false |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | > |
| | | |
| | | <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">ä¸è½½å¯¼å
¥æ¨¡æ¿ |
| | |
| | | @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"> |
| | |
| | | </basic-container> |
| | | </el-main> |
| | | |
| | | <!-- æ°å¢ ä¿®æ¹ --> |
| | | <!-- æ°å¢ ä¿®æ¹ --> |
| | | <el-dialog |
| | | v-dialogDrag |
| | | :title="dialogTitle === 'add' ? 'å建' : 'ä¿®æ¹'" |
| | |
| | | </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" |
| | |
| | | this.getTreeList(); |
| | | }, |
| | | methods: { |
| | | //å·¦ä¾§æ æ¥è¯¢ |
| | | // å·¦ä¾§æ æ¥è¯¢ |
| | | getTreeList() { |
| | | getVersionRuleAllList().then(res => { |
| | | const data = res.data.data; |
| | |
| | | width: 82px; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .headerCon { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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, |
| | | }, |
| | | ]; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | > |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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" |
| | |
| | | <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" |
| | |
| | | |
| | | <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> |
| | |
| | | <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" |
| | |
| | | <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" |
| | |
| | | |
| | | <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> |
| | | |
| | |
| | | <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> |
| | |
| | | |
| | | </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> |
| | | |
| | |
| | | <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 |
| | |
| | | </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" |
| | |
| | | </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: [ |
| | | { |
| | |
| | | } |
| | | ], |
| | | 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; |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // å¼å§ææ½æ èç¹äºä»¶ |
| | |
| | | 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); |
| | | }, |
| | | |
| | | // æ ¹æ®ä¼ å
¥æ¯è¡åæ° æ¥å¤æel-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; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | .active-border { |
| | | .el-form-item__label { |
| | | color: #f56c6c; /* 设置边æ¡çæ ·å¼ */ |
| | | } |
| | | } |
| | | |
| | | .el-col { |
| | | margin-bottom: 0px; |
| | | height: 40px; |
| | |
| | | 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> |
| | |
| | | <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> |
| | |
| | | <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="å¯ä½¿ç¨å段" |
| | |
| | | </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="éè¦ä½¿ç¨å段" |
| | |
| | | <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="å¯ä¾æç´¢å段" |
| | |
| | | </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="éæç´¢å段" |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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="请è¾å
¥sql" 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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | </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; |
| | | }, |
| | | |
| | | // å䏿change |
| | | 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'); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | </style> |
| | | |
| | |
| | | <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;"> |
| | |
| | | </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 |
| | |
| | | </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"; |
| | |
| | | components: {FormDialog, TableDialog}, |
| | | data() { |
| | | return { |
| | | tipList: [ |
| | | "导å
¥ä¸å¡ç±»ååç§°ä¸å¯ä¸ºç©º", |
| | | "导å
¥åç§°ä¸å¯ä¸ºç©ºä¸åç§°åªè½ä¸ºè±æåæ¯", |
| | | "ä¸ä¼ çæä»¶ä¸ºå缩æä»¶ï¼ä¸åç¼©æ ¼å¼ä»
è½ä¸ºzipæ ¼å¼" |
| | | ], |
| | | upFileType: ['zip'], |
| | | fileUrl: 'api/portalVIController/importData', |
| | | lastIndex: null, |
| | | selectList: [], |
| | | topName: '', |
| | | page: { |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | |
| | | treeRadio: "0", |
| | | treeData: [], |
| | | treeOption: { |
| | | addBtn: false |
| | | } |
| | | addBtn: false, |
| | | props: { |
| | | label: 'id', |
| | | value: 'id', |
| | | children: 'children' |
| | | } |
| | | }, |
| | | dbClickList: [], |
| | | defaultData: [], // ç¨äºæ¥è¯¢æ¢å¤åå§å¼ |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | computed: { |
| | | tableStatus() { |
| | | return func.isEmptyObject(this.nodeRow) |
| | | return func.isEmptyObject(this.nodeRow); |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | 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(); |
| | | } |
| | | }, |
| | | |
| | | // åå§åæ è¯·æ± |
| | |
| | | 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; |
| | | }) |
| | | }); |
| | | }, |
| | | |
| | | // 左侧ä¸å¡ç±»å忢 |
| | |
| | | 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 => { |
| | |
| | | } |
| | | }, |
| | | |
| | | // å¤çæ å½¢ç»æ |
| | | 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); |
| | |
| | | // å³ä¾§ è¡¨æ ¼ 表å ä¿¡æ¯æ¥è¯¢ |
| | | 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; |
| | | } |
| | | }) |
| | |
| | | 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; |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // æ ¹æ®ä¼ å
¥æ¯è¡åæ° æ¥å¤æel-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> |
| | |
| | | .headerCon > .el-button:nth-child(7) { |
| | | margin-left: 0; |
| | | } |
| | | |
| | | |
| | | .smallBtn { |
| | | width: 82px; |
| | |
| | | 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: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // éæ©æ¡ |
| | |
| | | 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: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // å¯¼åºæé® |