¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud |
| | | ref="crud" |
| | | v-model="form" |
| | | :data="data" |
| | | :option="option" |
| | | :table-loading="tableLoading" |
| | | @row-del="rowDelHandler" |
| | | @row-save="rowSaveHandler" |
| | | @row-update="rowUpdateHandler" |
| | | @refresh-change="handleRefresh" |
| | | @selection-change="selectChangeHandler" |
| | | @row-click="rowClickHandler"> |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button icon="el-icon-plus" plain size="small" type="primary" |
| | | @click="addClickHandler">å¢å |
| | | </el-button> |
| | | <el-button icon="el-icon-edit-outline" plain size="small" type="primary" |
| | | @click="btnDesignClickHandler">æé®è®¾è®¡ |
| | | </el-button> |
| | | </template> |
| | | |
| | | <!-- eventKeyæä½æé® --> |
| | | <template slot="eventButtonForm" slot-scope="scope"> |
| | | <div style="width: 100%;display: flex;justify-content: center"> |
| | | <el-button plain size="mini" type="primary" @click="formDataAddClickHandler">å建</el-button> |
| | | <el-button plain size="mini" type="danger" @click="formDataDelClickHandler">å é¤</el-button> |
| | | <el-button plain size="mini" type="primary" @click="moveUp">ä¸ç§»</el-button> |
| | | <el-button plain size="mini" type="primary" @click="moveDown">ä¸ç§»</el-button> |
| | | </div> |
| | | </template> |
| | | <!-- eventKey以åeventValueæ¾ç¤ºåºå --> |
| | | <template slot="bottomValueForm" slot-scope="scope"> |
| | | <div style="height: 200px; width: 95%; border: 1px solid #bdbbbb;overflow-y: auto"> |
| | | <!-- å
容 --> |
| | | <el-table |
| | | :data="FormData" |
| | | :highlight-current-row="true" |
| | | style="width: 100%" |
| | | @row-click="formDataRowClick"> |
| | | <el-table-column |
| | | align="center" |
| | | label="EventKey" |
| | | prop="eventKey"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="EventValue" |
| | | prop="eventValue"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <!-- 忢æç´¢ç±»å æºå¯¹è±¡ ç®æ 对象æ¾ç¤ºlabel忢 --> |
| | | <template slot="showTypeLabel" slot-scope="{}"> |
| | | <span v-if="form.templateType === '3'">顶级èç¹</span> |
| | | <span v-else-if="form.templateType === '5'">ä¸å¡ç±»å</span> |
| | | <span v-else-if="form.templateType === '6'">对象类å</span> |
| | | <span v-else-if="form.searchTarger === '1'">æºå¯¹è±¡</span> |
| | | <span v-else-if="form.searchTarger === '2'">ç®æ 对象</span> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog |
| | | v-dialogDrag |
| | | :visible.sync="btnDesignVisible" |
| | | append-to-body="true" |
| | | class="avue-dialog" |
| | | title="é
ç½®æé®" |
| | | width="70%" |
| | | @close="dialogClose"> |
| | | <el-container> |
| | | <el-header style="height: 40px !important;"> |
| | | <div style="display: flex"> |
| | | <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">æ·»å |
| | | </el-button> |
| | | <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="editClickBtnHandler">ä¿®æ¹ |
| | | </el-button> |
| | | <el-button :disabled="!disabledBtn" plain size="mini" type="danger" @click="delClickBtnHandler">å é¤ |
| | | </el-button> |
| | | <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="saveClickBtnHandler">ä¿å |
| | | </el-button> |
| | | <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="escClickBtnHandler">åæ¶ |
| | | </el-button> |
| | | <el-button plain size="mini" type="primary">è°æ´ä¸ºä¸çº§æé®</el-button> |
| | | <el-button plain size="mini" type="primary">è°æ´ä¸ºä¸çº§æé®</el-button> |
| | | <el-button plain size="mini" type="primary">å¤å¶å°å
¶ä»ç»ä»¶</el-button> |
| | | </div> |
| | | </el-header> |
| | | <el-container> |
| | | <el-aside width="20%"> |
| | | <basic-container> |
| | | <div style="height:650px;"> |
| | | <avue-tree |
| | | ref="Tree" |
| | | :data="treeData" |
| | | :loading="treeLoading" |
| | | :option="treeOption" |
| | | node-key="value" |
| | | @node-click="nodeTreeClick"> |
| | | <span slot-scope="{ node, data }" class="el-tree-node__label"> |
| | | <span style="font-size: 14px"> |
| | | <i class="el-icon-s-promotion"></i> |
| | | {{ (node || {}).label }} |
| | | </span> |
| | | </span> |
| | | </avue-tree> |
| | | </div> |
| | | </basic-container> |
| | | </el-aside> |
| | | |
| | | <el-main> |
| | | <basic-container> |
| | | <el-divider content-position="left">åºç¡ä¿¡æ¯</el-divider> |
| | | <el-form ref="form" :model="basicForm" :rules="rules" label-width="90px" size="small" |
| | | style="margin-top: 20px"> |
| | | <el-row> |
| | | <el-form-item :inline-message='true' label="ç¼å·ï¼" prop="seq"> |
| | | <el-input-number v-model="basicForm.seq" :disabled="disabledBtn" :max="9999" :min="1" |
| | | controls-position="right"></el-input-number> |
| | | </el-form-item> |
| | | |
| | | <el-form-item :inline-message='true' label="åç§°ï¼" prop="label"> |
| | | <el-col :span="14"> |
| | | <el-input v-model="basicForm.label" :readonly="disabledBtn"></el-input> |
| | | </el-col> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="Actionï¼" prop="Action"> |
| | | <el-col :span="14"> |
| | | <el-input v-model="basicForm.actionOId" :readonly="disabledBtn"></el-input> |
| | | </el-col> |
| | | </el-form-item> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¯å¦ææï¼" prop="resource"> |
| | | <el-radio v-model="basicForm.authorization" :disabled="disabledBtn" label="0">æ¯</el-radio> |
| | | <el-radio v-model="basicForm.authorization" :disabled="disabledBtn" label="1">å¦</el-radio> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¯å¦æ¾ç¤ºï¼" prop="show"> |
| | | <el-radio v-model="basicForm.show" :disabled="disabledBtn" label="0">æ¯</el-radio> |
| | | <el-radio v-model="basicForm.show" :disabled="disabledBtn" label="1">å¦</el-radio> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¾ç¤ºæ¹å¼ï¼" prop="showType"> |
| | | <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="text">æå</el-radio> |
| | | <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="image">徿 </el-radio> |
| | | <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="textandimage">æåå徿 |
| | | </el-radio> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="æç¤ºä¿¡æ¯ï¼" prop="desc"> |
| | | <el-input v-model="basicForm.desc" :readonly="disabledBtn" type="textarea"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | </el-form> |
| | | |
| | | <el-divider content-position="left">åæ°ä¿¡æ¯</el-divider> |
| | | <avue-crud |
| | | ref="paramsCrud" |
| | | :data="paramsData" |
| | | :option="paramsOption" |
| | | style="margin-top: 20px" |
| | | @row-save="paramsRowSave"> |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button :disabled="disabledBtn" icon="el-icon-plus" plain size="small" type="primary" |
| | | @click="paramsRowAddClickHandler">å建 |
| | | </el-button> |
| | | </template> |
| | | |
| | | <template slot="menu" slot-scope="scope"> |
| | | <el-button :disabled="disabledBtn" icon="el-icon-delete" size="small" type="text" |
| | | @click="paramsRowDeleteHandler(scope.row)">å é¤ |
| | | </el-button> |
| | | </template> |
| | | |
| | | </avue-crud> |
| | | </basic-container> |
| | | </el-main> |
| | | </el-container> |
| | | </el-container> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import basicOption from "@/util/basic-option"; |
| | | import func from "@/util/func"; |
| | | import { |
| | | getBtmDatasByPage, |
| | | getPortalVIDatasByPage, |
| | | getQTInfoDatasByPage, |
| | | getTabButtons, |
| | | addTapButton, |
| | | updateTapButton |
| | | } from "@/api/UI/uiDefine/api"; |
| | | |
| | | export default { |
| | | props: { |
| | | sourceData: { |
| | | type: Array, |
| | | default: () => [ |
| | | { |
| | | "controlPath": "", |
| | | "description": "", |
| | | "eventKey": "", |
| | | "eventMap": null, |
| | | "eventValue": "", |
| | | "expandCols": "", |
| | | "expandMode": "", |
| | | "extAttr": "", |
| | | "id": "ABAE25CE-867E-9C73-AC1A-B316FD91C65B", |
| | | "isShowImage": "", |
| | | "linkType": "parttodocument", |
| | | "name": "ææ¯æä»¶", |
| | | "navigatorType": "", |
| | | "orderField": "", |
| | | "orderMode": "", |
| | | "orientation": "", |
| | | "qryType": null, |
| | | "queryTemplateName": "QueryPartEngineeringTechnology", |
| | | "refTreeSet": "", |
| | | "returnRows": "", |
| | | "rootContent": "", |
| | | "searchTarger": "2", |
| | | "separator": "", |
| | | "seq": "1", |
| | | "showAbs": "", |
| | | "showContent": "", |
| | | "showContentRelation": "", |
| | | "showContentTable": "", |
| | | "showContentType": "", |
| | | "showExpression": "", |
| | | "showExpressionRoot": "", |
| | | "showLinkAbs": "", |
| | | "showType": "document", |
| | | "subUILayout": "", |
| | | "subUIObjType": "", |
| | | "tabPageOId": "98F9082F-BAF4-FB81-3230-32590B34A329", |
| | | "templateId": "PartEngineeringTechnology_list", |
| | | "templateType": "1", |
| | | "type": 3, |
| | | "uiLayout": null, |
| | | "uiParser": "", |
| | | "validity": "" |
| | | } |
| | | ] |
| | | }, |
| | | height: { |
| | | type: String, |
| | | default: () => "auto" |
| | | } |
| | | }, |
| | | name: "index", |
| | | data() { |
| | | return { |
| | | saveType: '', |
| | | disabledBtn: true, |
| | | paramsData: [], |
| | | nodeTreeRow: {}, |
| | | paramsOption: { |
| | | ...basicOption, |
| | | height: 260, |
| | | addBtn: false, |
| | | tip: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | refreshBtn: false, |
| | | column: [ |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'name' |
| | | }, |
| | | { |
| | | label: 'å¼', |
| | | prop: 'value' |
| | | } |
| | | ] |
| | | }, |
| | | rules: { |
| | | seq: [ |
| | | {required: true, message: '请è¾å
¥ç¼å·', type: 'number', trigger: 'blur'}, |
| | | ], |
| | | label: [ |
| | | {required: true, message: '请è¾å
¥åç§°', trigger: 'blur'}, |
| | | ], |
| | | }, |
| | | // æé®è®¾è®¡ åºç¡ä¿¡æ¯ |
| | | basicForm: { |
| | | seq: 1 |
| | | }, |
| | | treeData: [ |
| | | { |
| | | label: this.sourceData[0].name, |
| | | oId: 'parentNode', |
| | | children: [] |
| | | } |
| | | ], |
| | | treeOption: { |
| | | menu: false, |
| | | addBtn: false, |
| | | defaultExpandedKeys: ['parentNode'], |
| | | props: { |
| | | label: 'label', |
| | | value: 'oId', |
| | | children: 'children', |
| | | }, |
| | | }, |
| | | treeLoading: false, |
| | | btnDesignVisible: false, |
| | | FormData: [], |
| | | form: {}, |
| | | data: this.sourceData, |
| | | option: { |
| | | ...basicOption, |
| | | height: this.height, |
| | | addBtn: false, |
| | | index: true, |
| | | calcHeight: -30, |
| | | column: [ |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'name', |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请è¾å
¥åç§°', |
| | | trigger: 'blur' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: 'ç¼å·', |
| | | prop: 'seq', |
| | | hide: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请è¾å
¥ç¼å·', |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | | }, |
| | | { |
| | | label: 'UIè§£æç±»å', |
| | | prop: 'uiParser', |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: 'æ©å±å±æ§', |
| | | prop: 'extAttr', |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: '模æ¿ç±»å', |
| | | prop: 'templateType', |
| | | type: 'radio', |
| | | span: 24, |
| | | value: '1', |
| | | dicData: [ |
| | | { |
| | | label: 'Table(è¡¨æ ¼)', |
| | | value: '1' |
| | | }, |
| | | { |
| | | label: 'Customï¼èªå®ä¹æ¨¡æ¿ï¼', |
| | | value: '2' |
| | | }, |
| | | { |
| | | label: 'TreeTable(æ 表)', |
| | | value: '3', |
| | | }, |
| | | { |
| | | label: 'Form(表å)', |
| | | value: '4', |
| | | }, |
| | | { |
| | | label: 'Tree(æ )', |
| | | value: '5', |
| | | }, |
| | | { |
| | | label: 'UILayout(UIå®ä¹)', |
| | | value: '6', |
| | | } |
| | | ], |
| | | formatter: (row) => { |
| | | const val = this.templateTypeValueHandler(row.templateType); |
| | | return val; |
| | | }, |
| | | change: (val) => { |
| | | console.log(val); |
| | | const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // è·åæç´¢ç±»åé
置项 |
| | | searchTarger.display = true; // 忢é»è®¤å±ç¤ºæç´¢ç±»å |
| | | // 模æ¿ç±»åä¸ºè¡¨æ ¼ |
| | | this.templateTypeTable(val.value === '1'); |
| | | // 模æ¿ç±»å为èªå®ä¹æ¨¡æ¿ |
| | | this.templateTypeCustom(val.value === '2'); |
| | | // 模æ¿ç±»å为æ 表 |
| | | this.templateTypeTreeTable(val.value === '3'); |
| | | // 模æ¿ç±»å为表å |
| | | this.templateTypeForm(val.value === '4'); |
| | | // 模æ¿ç±»å为æ |
| | | this.templateTypeTree(val.value === '5'); |
| | | // 模æ¿ç±»å为UIå®ä¹ |
| | | this.templateTypeUI(val.value === '6'); |
| | | } |
| | | }, |
| | | { |
| | | label: 'æ¾ç¤ºç±»å', |
| | | prop: 'navigatorType', |
| | | type: 'radio', |
| | | span: 24, |
| | | value: '1', |
| | | hide: true, |
| | | dicData: [ |
| | | { |
| | | label: '䏿¾ç¤º', |
| | | value: '1' |
| | | }, |
| | | { |
| | | label: 'æ¾ç¤ºè§è²', |
| | | value: '2' |
| | | }, |
| | | { |
| | | label: 'æ¾ç¤ºFolder', |
| | | value: '3', |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: 'æç´¢ç±»å', |
| | | prop: 'searchTarger', |
| | | display: true, |
| | | type: 'radio', |
| | | value: '1', |
| | | span: 24, |
| | | dicData: [ |
| | | { |
| | | label: 'æ¬å¯¹è±¡å±æ§', |
| | | value: '1' |
| | | }, |
| | | { |
| | | label: 'å
³èå¯¹è±¡å±æ§', |
| | | value: '2' |
| | | }, |
| | | ], |
| | | formatter: (row) => { |
| | | return row.searchTarger === '1' ? 'æ¬å¯¹è±¡å±æ§' : 'å
³èå¯¹è±¡å±æ§'; |
| | | }, |
| | | change: (val) => { |
| | | // å¦ææ¨¡æ¿ç±»åæ¯è¡¨æ ¼ã æ 表 ã 表å åæ¢å¯¹è±¡å±æ§çæ¶åï¼å¦ææ¯æ¬å¯¹è±¡å±æ§ä¸å±ç¤ºé¾æ¥ç±»åï¼å¦åå±ç¤ºé¾æ¥ç±»å |
| | | if (['1', '3', '4'].includes(this.form.templateType)) { |
| | | const obj = this.option.group[0].column.find(item => item.prop === 'linkType'); |
| | | obj.display = val.value !== '1'; |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | label: 'æè¿°', |
| | | prop: 'description', |
| | | display: false |
| | | }, |
| | | ], |
| | | group: [ |
| | | { |
| | | icon: 'el-icon-folder-opened', |
| | | label: '', |
| | | arrow: false, |
| | | prop: 'group1', |
| | | column: [ |
| | | { |
| | | label: 'æºå¯¹è±¡', |
| | | prop: 'showType', |
| | | type: 'table', |
| | | display: false, |
| | | placeholder: "请è¾å
¥å
容", |
| | | props: { |
| | | label: 'name', |
| | | value: 'name' |
| | | }, |
| | | children: { |
| | | border: true, |
| | | column: [{ |
| | | label: 'åç§°', |
| | | search: true, |
| | | searchSpan: 24, |
| | | prop: 'name' |
| | | }, { |
| | | label: 'æ ç¾', |
| | | prop: 'label' |
| | | }], |
| | | }, |
| | | onLoad: ({page, value, data}, callback) => { |
| | | //pageå页 |
| | | // ä¸ç®¡æ¯æç´¢ è¿æ¯é¦æ¬¡å è½½é½ä¼è§¦åpage æä»¥åªéè¦æ¿pageåå¨ä¸å¦è¿è¡è¯·æ±å°±å¯ä»¥ 妿åå»å¤ædataæç´¢ æè
value忬¡å 载就ä¼éå¤è¯·æ± |
| | | if (page) { |
| | | const params = { |
| | | "conditionMap[filterInputValue]": value ? value.name : '' |
| | | }; |
| | | getBtmDatasByPage(page.currentPage, page.pageSize, params).then(res => { |
| | | callback({ |
| | | total: res.data.total, |
| | | data: res.data.data |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: '龿¥ç±»å', |
| | | prop: 'linkType', |
| | | type: 'table', |
| | | display: false, |
| | | props: { |
| | | label: 'viName', |
| | | value: 'viName' |
| | | }, |
| | | children: { |
| | | border: true, |
| | | column: [{ |
| | | label: 'åç§°', |
| | | search: true, |
| | | searchSpan: 24, |
| | | prop: 'viName' |
| | | }, { |
| | | label: 'ç±»å', |
| | | prop: 'viType' |
| | | }], |
| | | }, |
| | | onLoad: ({page, value, data}, callback) => { |
| | | if (page) { |
| | | const params = { |
| | | "conditionMap[selectBtmType]": this.form.showType, |
| | | "conditionMap[filterInputValue]": data ? data.viName : '', |
| | | }; |
| | | getPortalVIDatasByPage(page.currentPage, page.pageSize, params).then(res => { |
| | | console.log(res); |
| | | callback({ |
| | | total: res.data.total, |
| | | data: res.data.data |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: 'éæ©æ¨¡æ¿', |
| | | prop: 'showTypea', |
| | | display: false, |
| | | type: 'table', |
| | | props: { |
| | | label: 'viName', |
| | | value: 'viName' |
| | | }, |
| | | children: { |
| | | border: true, |
| | | column: [{ |
| | | label: 'åç§°', |
| | | search: true, |
| | | searchSpan: 24, |
| | | prop: 'viName' |
| | | }, { |
| | | label: 'ç±»å', |
| | | prop: 'viType' |
| | | }], |
| | | }, |
| | | onLoad: ({page, value, data}, callback) => { |
| | | if (page) { |
| | | const params = { |
| | | "conditionMap[selectBtmType]": this.form.showType, |
| | | "conditionMap[filterInputValue]": data ? data.viName : '', |
| | | }; |
| | | getPortalVIDatasByPage(page.currentPage, page.pageSize, params).then(res => { |
| | | console.log(res); |
| | | callback({ |
| | | total: res.data.total, |
| | | data: res.data.data |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: 'UIå®ä¹', |
| | | prop: 'UI', |
| | | type: 'table', |
| | | display: false, |
| | | props: { |
| | | label: 'qtName', |
| | | value: 'qtName' |
| | | }, |
| | | children: { |
| | | border: true, |
| | | column: [{ |
| | | label: 'åç§°', |
| | | search: true, |
| | | searchSpan: 24, |
| | | prop: 'qtName' |
| | | }, { |
| | | label: 'ç±»å', |
| | | prop: 'btmName' |
| | | }], |
| | | }, |
| | | onLoad: ({page, value, data}, callback) => { |
| | | if (page) { |
| | | const params = { |
| | | "conditionMap[selectBtmType]": this.form.showType, |
| | | "conditionMap[filterInputValue]": data ? data.qtName : '', |
| | | }; |
| | | getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => { |
| | | callback({ |
| | | total: res.data.total, |
| | | data: res.data.data |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: 'æ¥è¯¢ç±»å', |
| | | prop: 'searchType', |
| | | display: false, |
| | | type: 'radio', |
| | | span: 24, |
| | | dicData: [ |
| | | { |
| | | label: 'ä¸å¡ç±»å', |
| | | value: '1' |
| | | }, |
| | | { |
| | | label: '龿¥ç±»å', |
| | | value: '2' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: 'æ¥è¯¢å¯¹è±¡ç±»å', |
| | | prop: 'searchObjType', |
| | | type: 'table', |
| | | display: false, |
| | | labelWidth: 100, |
| | | props: { |
| | | label: 'qtName', |
| | | value: 'qtName' |
| | | }, |
| | | children: { |
| | | border: true, |
| | | column: [{ |
| | | label: 'åç§°', |
| | | search: true, |
| | | searchSpan: 24, |
| | | prop: 'qtName' |
| | | }, { |
| | | label: 'ç±»å', |
| | | prop: 'btmName' |
| | | }], |
| | | }, |
| | | onLoad: ({page, value, data}, callback) => { |
| | | if (page) { |
| | | const params = { |
| | | "conditionMap[selectBtmType]": this.form.showType, |
| | | "conditionMap[filterInputValue]": data ? data.qtName : '', |
| | | }; |
| | | getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => { |
| | | callback({ |
| | | total: res.data.total, |
| | | data: res.data.data |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: 'æ¥è¯¢æ¨¡æ¿', |
| | | prop: 'showTypes', |
| | | type: 'table', |
| | | display: false, |
| | | props: { |
| | | label: 'qtName', |
| | | value: 'qtName' |
| | | }, |
| | | children: { |
| | | border: true, |
| | | column: [{ |
| | | label: 'åç§°', |
| | | search: true, |
| | | searchSpan: 24, |
| | | prop: 'qtName' |
| | | }, { |
| | | label: 'ç±»å', |
| | | prop: 'btmName' |
| | | }], |
| | | }, |
| | | onLoad: ({page, value, data}, callback) => { |
| | | if (page) { |
| | | const params = { |
| | | "conditionMap[selectBtmType]": this.form.showType, |
| | | "conditionMap[filterInputValue]": data ? data.qtName : '', |
| | | }; |
| | | getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => { |
| | | callback({ |
| | | total: res.data.total, |
| | | data: res.data.data |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: 'æ§å¶è·¯å¾', |
| | | prop: 'kzlj', |
| | | display: false, |
| | | type: 'textarea', |
| | | rows: 3 |
| | | }, |
| | | { |
| | | label: 'æ ¹èç¹æ¾ç¤ºè¡¨è¾¾å¼', |
| | | prop: 'genjiedian', |
| | | display: false, |
| | | labelWidth: 135, |
| | | span: 24 |
| | | }, |
| | | { |
| | | label: 'æ èç¹æ¾ç¤ºè¡¨è¾¾å¼', |
| | | prop: 'shujiedian', |
| | | display: false, |
| | | labelWidth: 135, |
| | | span: 24 |
| | | }, |
| | | { |
| | | label: 'åç
§æ 设置', |
| | | prop: 'canzhaoshu', |
| | | display: false, |
| | | }, |
| | | { |
| | | label: 'åé符', |
| | | prop: 'fgf', |
| | | display: false, |
| | | }, |
| | | { |
| | | label: 'å±å¼æ¹å¼', |
| | | prop: 'zkfs', |
| | | display: false, |
| | | type: 'radio', |
| | | dicData: [ |
| | | { |
| | | label: 'é级å±å¼', |
| | | value: '1' |
| | | }, |
| | | { |
| | | label: 'å
¨é¨å±å¼', |
| | | value: '2' |
| | | } |
| | | ] |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | icon: 'el-icon-folder-opened', |
| | | label: '', |
| | | arrow: false, |
| | | prop: 'group2', |
| | | column: [ |
| | | { |
| | | label: 'EventKey', |
| | | prop: 'eventKey', |
| | | type: 'select', |
| | | value: 'SelectionEvent', |
| | | dicData: [ |
| | | { |
| | | label: 'SelectionEvent', |
| | | value: 'SelectionEvent' |
| | | }, |
| | | { |
| | | label: 'DBClickEvent', |
| | | value: 'DBClickEvent' |
| | | }, |
| | | { |
| | | label: 'ClickEvent', |
| | | value: 'ClickEvent' |
| | | } |
| | | ], |
| | | }, |
| | | { |
| | | label: 'EventValue', |
| | | prop: 'eventValue', |
| | | labelWidth: 100 |
| | | }, |
| | | { |
| | | label: '', |
| | | prop: 'eventButton', |
| | | span: 24 |
| | | }, |
| | | { |
| | | label: '', |
| | | prop: 'bottomValue', |
| | | span: 24 |
| | | }, |
| | | ] |
| | | } |
| | | ], |
| | | }, |
| | | tableLoading: false, |
| | | lastIndex: null, |
| | | selectList: [], |
| | | formDataRow: {}, |
| | | } |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | // æ ¹æ®ä¸åå¼åºåç±»å |
| | | templateTypeValueHandler(val) { |
| | | const componentMap = { |
| | | '1': 'è¡¨æ ¼', |
| | | '2': 'èªå®ä¹æ¨¡æ¿', |
| | | '3': 'æ 表', |
| | | '4': '表å', |
| | | '5': 'æ ', |
| | | '6': 'UIå®ä¹', |
| | | }; |
| | | |
| | | return componentMap[val] || ""; // å¦æä¸ºç©º è¿å空 |
| | | }, |
| | | |
| | | // è¡¨æ ¼å¤é |
| | | selectChangeHandler(row) { |
| | | this.selectList = row; |
| | | }, |
| | | |
| | | // è¡ç¹å» |
| | | rowClickHandler(row) { |
| | | func.rowClickHandler( |
| | | row, |
| | | this.$refs.crud, |
| | | this.lastIndex, |
| | | (newIndex) => { |
| | | this.lastIndex = newIndex; |
| | | }, |
| | | () => { |
| | | this.selectList = []; |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | // å¢å |
| | | addClickHandler() { |
| | | this.$refs.crud.rowAdd(); |
| | | }, |
| | | |
| | | // å¯¹è¯æ¡è¡¨æ ¼è¡ç¹å» |
| | | formDataRowClick(row) { |
| | | this.formDataRow = row; |
| | | }, |
| | | |
| | | // å¯¹è¯æ¡è¡¨æ ¼æ·»å |
| | | formDataAddClickHandler() { |
| | | if (!this.form.eventKey) { |
| | | this.$message.error('è¯·éæ©EventKey'); |
| | | return; |
| | | } |
| | | |
| | | if (!this.form.eventValue) { |
| | | this.$message.error('请è¾å
¥EventValue'); |
| | | return; |
| | | } |
| | | |
| | | if (this.FormData.length >= 1) { |
| | | const eventValueStatus = this.FormData.some(item => item.eventValue === this.form.eventValue); |
| | | |
| | | if (eventValueStatus) { |
| | | this.$message.error('å·²åå¨ç¸åç EventValueï¼ä¸è½é夿·»å '); |
| | | return; |
| | | } |
| | | } |
| | | const obj = { |
| | | index: this.FormData.length, |
| | | eventKey: this.form.eventKey, |
| | | eventValue: this.form.eventValue |
| | | } |
| | | |
| | | this.FormData.push(obj); |
| | | }, |
| | | |
| | | // å¯¹è¯æ¡è¡¨æ ¼å é¤ |
| | | formDataDelClickHandler() { |
| | | if (func.isEmptyObject(this.formDataRow)) { |
| | | this.$message.error('è¯·éæ©ä¸æ¡æ°æ®'); |
| | | return; |
| | | } |
| | | |
| | | this.FormData = this.FormData.filter(item => item.index !== this.formDataRow.index); |
| | | }, |
| | | |
| | | // 模æ¿ç±»åæ¾ç¤ºéèæ¹æ³ |
| | | updateDisplay(val, showTpeMap) { |
| | | const groupList = this.option.group[0].column; // è·å第ä¸å±groupæææ°æ® |
| | | groupList.forEach(item => { |
| | | item.display = showTpeMap.includes(item.prop) ? val : !val; // æ´æ°display |
| | | }); |
| | | }, |
| | | |
| | | // 模æ¿ç±»åä¸ºè¡¨æ ¼ |
| | | templateTypeTable(val) { |
| | | if (!val) return; |
| | | this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']); |
| | | }, |
| | | |
| | | // 模æ¿ç±»å为èªå®ä¹æ¨¡æ¿ |
| | | templateTypeCustom(val) { |
| | | if (!val) return; |
| | | const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // è·åæç´¢ç±»åé
置项 |
| | | searchTarger.display = false; // ä¸å±ç¤ºæç´¢ç±»å |
| | | this.updateDisplay(val, ['kzlj']); |
| | | }, |
| | | |
| | | // 模æ¿ç±»å为æ 表 |
| | | templateTypeTreeTable(val) { |
| | | if (!val) return; |
| | | this.updateDisplay(val, ['showType', 'showTypea', 'showTypes', 'zkl', 'zkfs']); |
| | | }, |
| | | |
| | | // 模æ¿ç±»å为表å |
| | | templateTypeForm(val) { |
| | | if (!val) return; |
| | | this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']); |
| | | }, |
| | | |
| | | // 模æ¿ç±»å为æ |
| | | templateTypeTree(val) { |
| | | if (!val) return; |
| | | const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // è·åæç´¢ç±»åé
置项 |
| | | searchTarger.display = false; // ä¸å±ç¤ºæç´¢ç±»å |
| | | this.updateDisplay(val, ['showType', 'showTypes', 'genjiedian', 'shujiedian', 'canzhaoshu', 'fgf', 'zkfs', 'linkType']); |
| | | }, |
| | | |
| | | // 模æ¿ç±»å为UIå®ä¹ |
| | | templateTypeUI(val) { |
| | | if (!val) return; |
| | | const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // è·åæç´¢ç±»åé
置项 |
| | | searchTarger.display = false; // ä¸å±ç¤ºæç´¢ç±»å |
| | | this.updateDisplay(val, ['showType', 'UI', 'searchType', 'searchObjType', 'showTypes']); |
| | | }, |
| | | |
| | | // æ¥æ¾æ°ç»ä¸å¯¹è±¡ç´¢å¼ |
| | | findIndexByEventValue(array, eventValue) { |
| | | return array.findIndex(item => item.eventValue === eventValue); |
| | | }, |
| | | |
| | | // ä¸ç§» |
| | | moveUp() { |
| | | const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue); |
| | | if (index > 0) { |
| | | // ä½¿ç¨ splice æ¹æ³æ¥æ¨¡æäº¤æ¢ |
| | | const temp = this.FormData.splice(index - 1, 1, this.FormData[index])[0]; // ç§»é¤ index-1 çå
ç´ ï¼å¹¶å¨ç¸åä½ç½®æå
¥ index çå
ç´ ï¼è¿å被移é¤çå
ç´ |
| | | this.FormData.splice(index, 1, temp); // å¨ index ä½ç½®æå
¥ä¹å被移é¤çå
ç´ |
| | | } |
| | | }, |
| | | |
| | | // ä¸ç§» |
| | | moveDown() { |
| | | const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue); |
| | | const length = this.FormData.length; |
| | | if (index < length - 1) { |
| | | const temp = this.FormData[index]; |
| | | this.FormData.splice(index, 1, this.FormData.splice(index + 1, 1, temp)[0]); |
| | | } |
| | | }, |
| | | |
| | | // æé®è®¾è®¡å
³éå¯¹è¯æ¡ |
| | | dialogClose() { |
| | | |
| | | }, |
| | | |
| | | // æé®è®¾è®¡ |
| | | btnDesignClickHandler() { |
| | | if (this.selectList.length <= 0) { |
| | | this.$message.error('请è³å°éæ©ä¸æ¡æ°æ®'); |
| | | return; |
| | | } |
| | | if (this.selectList.length > 1) { |
| | | this.$message.error('æå¤éæ©ä¸æ¡æ°æ®'); |
| | | return; |
| | | } |
| | | this.btnDesignVisible = true; |
| | | this.getTabBtnTree(); |
| | | }, |
| | | |
| | | // 左侧æ è¯·æ± |
| | | getTabBtnTree() { |
| | | const params = { |
| | | pageDefinationOid: this.selectList[0].id |
| | | } |
| | | this.treeLoading = true; |
| | | getTabButtons(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | const data = res.data.data; |
| | | this.treeData[0].children = data; |
| | | this.treeLoading = false; |
| | | } else { |
| | | this.$message.error('è¯·æ£æ¥æ§å¶å°é误'); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // æé®è®¾è®¡è¡ç¹å» |
| | | nodeTreeClick(row) { |
| | | this.nodeTreeRow = row; |
| | | this.basicForm = {...row}; |
| | | this.paramsData = row.buttonParams ? Object.entries(row.buttonParams).map(([key, value]) => ({ |
| | | name: key, |
| | | value: value |
| | | })) : []; |
| | | this.disabledBtn = true; |
| | | }, |
| | | |
| | | // æé®è®¾è®¡åæ°ä¿¡æ¯å é¤ |
| | | paramsRowDeleteHandler(row) { |
| | | this.paramsData.splice(row.$index, 1) |
| | | }, |
| | | |
| | | // æé®è®¾è®¡åæ°ä¿¡æ¯æ·»å æé® |
| | | paramsRowAddClickHandler() { |
| | | this.$refs.paramsCrud.rowAdd(); |
| | | }, |
| | | |
| | | // æé®è®¾è®¡åæ°ä¿¡æ¯ä¿å |
| | | paramsRowSave(row, done, loading) { |
| | | if (!row.name) { |
| | | this.$message.error('åç§°ä¸è½ä¸ºç©º'); |
| | | return loading(); |
| | | } |
| | | |
| | | if (!row.value) { |
| | | this.$message.error('å¼ä¸è½ä¸ºç©º'); |
| | | return loading(); |
| | | } |
| | | |
| | | this.paramsData.push(row); |
| | | done(); |
| | | }, |
| | | |
| | | // æé®è®¾è®¡æ·»å |
| | | addClickBtnHandler() { |
| | | if (func.isEmptyObject(this.nodeTreeRow)) { |
| | | this.$message.error('è¯·éæ©èç¹è¿è¡æ·»å '); |
| | | return; |
| | | } |
| | | this.disabledBtn = false; |
| | | this.basicForm = {}; |
| | | this.paramsData = []; |
| | | this.saveType = 'add'; |
| | | }, |
| | | |
| | | // æé®è®¾è®¡ä¿®æ¹ |
| | | editClickBtnHandler() { |
| | | if (func.isEmptyObject(this.nodeTreeRow)) { |
| | | this.$message.error('è¯·éæ©èç¹è¿è¡æ·»å '); |
| | | return; |
| | | } |
| | | |
| | | if (this.nodeTreeRow.oId === "parentNode") { |
| | | this.$message.error('é¡¶å±èç¹ä¸å
许修æ¹'); |
| | | return; |
| | | } |
| | | |
| | | this.disabledBtn = false; |
| | | this.saveType = 'edit'; |
| | | }, |
| | | |
| | | // æé®è®¾è®¡åæ¶ |
| | | escClickBtnHandler() { |
| | | this.disabledBtn = true; |
| | | if (this.saveType === 'add') { |
| | | this.$refs.Tree.setCurrentKey(null); |
| | | } |
| | | }, |
| | | |
| | | // æé®è®¾è®¡ä¿å |
| | | saveClickBtnHandler() { |
| | | const saveFunction = this.saveType === 'add' ? addTapButton : updateTapButton; |
| | | const bottomParams = {}; |
| | | if (this.paramsData.length > 0) { |
| | | this.paramsData.forEach(item => { |
| | | bottomParams[item.name] = item.value |
| | | }) |
| | | } |
| | | ; |
| | | |
| | | const params = this.saveType === 'add' ? { |
| | | ...this.basicForm, |
| | | parentId: this.nodeTreeRow.oId === 'parentNode' ? '' : this.nodeTreeRow.parentId, |
| | | buttonParams: bottomParams |
| | | } : { |
| | | ...this.basicForm, |
| | | buttonParams: bottomParams |
| | | } |
| | | |
| | | saveFunction(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.disabledBtn = true; |
| | | this.getTabBtnTree(); |
| | | this.basicForm = {}; |
| | | this.paramsData = []; |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // æé®è®¾è®¡å é¤ |
| | | delClickBtnHandler() { |
| | | if (func.isEmptyObject(this.nodeTreeRow)) { |
| | | this.$message.error('è¯·éæ©èç¹è¿è¡å é¤'); |
| | | return; |
| | | } |
| | | |
| | | if (this.nodeTreeRow.oId === "parentNode") { |
| | | this.$message.error('é¡¶å±èç¹ä¸å
许å é¤'); |
| | | return; |
| | | } |
| | | |
| | | this.$confirm('æ¨ç¡®å®è¦å é¤æéæ©çæ°æ®åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-divider__text, .el-link { |
| | | font-size: 16px !important; |
| | | } |
| | | </style> |