¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-tabs v-model="areaType" type="card" @tab-click="handleClick"> |
| | | <el-tab-pane v-if="uiDefineData.plIsShowNavigator" label="导èªåº" name="1"></el-tab-pane> |
| | | <el-tab-pane v-if="uiDefineData.plIsShowForm" label="æ§å¶åº" name="2"></el-tab-pane> |
| | | <el-tab-pane v-if="uiDefineData.plIsShowTab" label="æä½åº" name="3"></el-tab-pane> |
| | | </el-tabs> |
| | | <avue-crud |
| | | ref="crud" |
| | | :data="data" |
| | | :option="option" |
| | | :table-loading="tableLoading" |
| | | @selection-change="selectChangeHandler" |
| | | @row-click="rowClickHandler"> |
| | | <template slot="menuLeft"> |
| | | <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">å建</el-button> |
| | | <!--<el-button icon="el-icon-edit" plain size="small" type="primary" @click="editHandler">ä¿®æ¹</el-button> |
| | | <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">å é¤</el-button>--> |
| | | </template> |
| | | <template slot="menu" slot-scope="scope"> |
| | | <el-button icon="el-icon-edit" size="small" type="text" @click="rowEditBtnClick(scope.row)">ç¼è¾ |
| | | </el-button> |
| | | <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">å é¤ |
| | | </el-button> |
| | | </template> |
| | | <template slot="plIsOpen" slot-scope="{row}"> |
| | | <el-tag v-if="row.plIsOpen === 1" type="success">å¯ç¨</el-tag> |
| | | <el-tag v-else type="danger">æªå¯ç¨</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <bottom-table :sourceData="selectList[0]" :height="'280px'" style="margin-top: 15px;"></bottom-table> |
| | | <!-- å建ç¼è¾èªå®ä¹å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | v-dialogDrag |
| | | v-loading="dialogLoading" |
| | | :title="dialogType === 'add' ? ' å建 页ç¾' : 'ç¼è¾ 页ç¾'" |
| | | :visible.sync="dialogVisible" |
| | | append-to-body="true" |
| | | class="avue-dialog" |
| | | :close-on-click-modal="false" |
| | | width="800px" |
| | | @close="dialogClose" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="页é¢ç¼ç ï¼" prop="plCode"> |
| | | <el-input v-model="form.plCode"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="åç§°ï¼" prop="plName"> |
| | | <el-input v-model="form.plName"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="åºå·ï¼" prop="plSeq"> |
| | | <el-input v-model="form.plSeq"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¯å¦å¯ç¨" prop="plIsOpen"> |
| | | <el-switch v-model="form.plIsOpen" :active-value="1" :inactive-value="0" active-color="#13ce66" inactive-color="#ff4949"></el-switch> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="æ¾ç¤ºè¡¨è¾¾å¼ï¼" prop="plOpenExpression"> |
| | | <el-input type="textarea" :rows="3" v-model="form.plOpenExpression"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å½é
åæ åï¼" prop="plLabel"> |
| | | <el-input type="textarea" :rows="1" v-model="form.plLabel"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿°ï¼" prop="plDesc"> |
| | | <el-input type="textarea" :rows="1" v-model="form.plDesc"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="UIè§£æç±»ï¼" prop="plUIParser"> |
| | | <el-input type="textarea" :rows="2" v-model="form.plUIParser"></el-input> |
| | | </el-form-item> |
| | | <div class="tip"> |
| | | <div style="color: #D40000">示ä¾ï¼java_cs:xxx;java_bs:xxx;net_cs:xxx;net_bs:xxx;mobile_cs:xxx;mobile_bs:xxx;</div> |
| | | <div>1ãç¨è±æåè§åå·;åéåç»å¼ã</div> |
| | | <div>2ãæ¯ç»ç¨è±æåè§åå·:åéå䏿å±å±æ§åç§°å屿§å¼ã</div> |
| | | <div>3ãå
¶ä¸çxxxæ¯åç§è§£æç±»ç宿´ç±»ååç§°ï¼å®å
¨éå®åï¼ã</div> |
| | | <div>4ãè¾å
¥æ¶ï¼ä¸è¦æ²å车æ¢è¡ã</div> |
| | | </div> |
| | | <el-form-item label="æå±å±æ§ï¼" prop="plExtAttr"> |
| | | <el-input type="textarea" :rows="2" v-model="form.plExtAttr"></el-input> |
| | | </el-form-item> |
| | | <div class="tip"> |
| | | <div style="color: #D40000">示ä¾ï¼ext1:xx;ext2:xx;ext3:xxx;ext4:xxx;extn:xxx</div> |
| | | <div>1ãç¨è±æåè§åå·;åéåç»å¼ã</div> |
| | | <div>2ãæ¯ç»ç¨è±æåè§åå·:åéå䏿å±å±æ§åç§°å屿§å¼ã</div> |
| | | <div>3ãå¯ä»¥å®ä¹ä»»æç»ï¼ä½æ»å符é¿åº¦ä¸å¾è¶
è¿4000ã</div> |
| | | <div>4ãè¾å
¥æ¶ï¼ä¸è¦æ²å车æ¢è¡ã</div> |
| | | </div> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogClose">å æ¶</el-button> |
| | | <el-button type="primary" @click="saveHandler">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import basicOption from "@/util/basic-option"; |
| | | import { |
| | | getTabByContextIdAndType, |
| | | addTabData, |
| | | updateTabData, |
| | | deleteTabData, |
| | | } from "@/api/UI/uiDefine"; |
| | | import func from "@/util/func"; |
| | | import bottomTable from "./bottomTable/index"; |
| | | |
| | | export default { |
| | | name: "plShow", |
| | | props: { |
| | | uiDefineData: { |
| | | type: Object, |
| | | default: {} |
| | | }, |
| | | }, |
| | | components:{bottomTable}, |
| | | data() { |
| | | return { |
| | | uiDefineOid:'', |
| | | areaType: '', |
| | | tableLoading: false, |
| | | selectList: [], |
| | | option: { |
| | | ...basicOption, |
| | | height:'300px', |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | index:false, |
| | | menuWidth:160, |
| | | align:'left', |
| | | column: [{ |
| | | label: 'åºå·', |
| | | prop: 'plSeq', |
| | | width:50 |
| | | }, { |
| | | label: 'ç¼ç ', |
| | | prop: 'plCode', |
| | | width:180 |
| | | }, { |
| | | label: 'åç§°', |
| | | prop: 'plName', |
| | | width:200 |
| | | }, { |
| | | label: 'æ¯å¦å¯ç¨', |
| | | prop: 'plIsOpen', |
| | | align:'center', |
| | | width: 90 |
| | | }, { |
| | | label: 'æ¾ç¤ºè¡¨è¾¾å¼', |
| | | prop: 'plOpenExpression', |
| | | overHidden:true, |
| | | width:300 |
| | | }, { |
| | | label: 'UIè§£æç±»', |
| | | prop: 'plUIParser' |
| | | }, { |
| | | label: 'æå±å±æ§', |
| | | prop: 'plExtAttr' |
| | | }, { |
| | | label: 'æè¿°', |
| | | prop: 'plDesc' |
| | | }] |
| | | }, |
| | | data: [], |
| | | dialogLoading: false, |
| | | dialogVisible: false, |
| | | dialogType: '', |
| | | form: { |
| | | plSeq: '', |
| | | plCode: '', |
| | | plName: '', |
| | | plIsOpen:0, |
| | | plOpenExpression:'', |
| | | plLabel:'', |
| | | plUIParser:'', |
| | | plExtAttr:'', |
| | | plDesc:'' |
| | | }, |
| | | rules: { |
| | | plName: [{ |
| | | required: true, |
| | | message: '请è¾å
¥åç§°', |
| | | trigger: 'blur' |
| | | }], |
| | | plCode: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ç¼ç ', |
| | | trigger: 'blur' |
| | | }], |
| | | plSeq: [{ |
| | | required: true, |
| | | message: '请è¾å
¥åºå·', |
| | | trigger: 'blur' |
| | | }] |
| | | }, |
| | | } |
| | | }, |
| | | watch: { |
| | | uiDefineData:{ |
| | | handler(val) { |
| | | if(val && val.plOId) { |
| | | if (val.plIsShowNavigator) { |
| | | this.areaType = '1'; |
| | | }else if(val.plIsShowForm){ |
| | | this.areaType = '2' |
| | | }else{ |
| | | this.areaType = '3' |
| | | } |
| | | this.getTableList() |
| | | } |
| | | }, |
| | | immediate: true, |
| | | deep:true |
| | | } |
| | | }, |
| | | created() { |
| | | this.uiDefineOid=this.$route.params.uiDefineOid; |
| | | }, |
| | | methods: { |
| | | handleClick(tab, event) { |
| | | this.getTableList() |
| | | }, |
| | | getTableList(){ |
| | | const params = { |
| | | contextId:this.uiDefineData.plOId, |
| | | areaType:this.areaType |
| | | } |
| | | getTabByContextIdAndType( params).then(res => { |
| | | this.data = res.data.data; |
| | | this.selectList=[]; |
| | | this.$refs.crud.clearSelection(); |
| | | this.tableLoading = false; |
| | | }) |
| | | }, |
| | | selectChangeHandler(row) { |
| | | this.selectList = row; |
| | | }, |
| | | // è¡ç¹å» |
| | | rowClickHandler(row) { |
| | | func.rowClickHandler( |
| | | row, |
| | | this.$refs.crud, |
| | | this.lastIndex, |
| | | (newIndex) => { |
| | | this.lastIndex = newIndex; |
| | | }, |
| | | () => { |
| | | this.selectList = []; |
| | | } |
| | | ); |
| | | }, |
| | | //å建 |
| | | addHandler(){ |
| | | this.form={ |
| | | plSeq: '', |
| | | plCode: '', |
| | | plName: '', |
| | | plIsOpen:0, |
| | | plOpenExpression:'', |
| | | plLabel:'', |
| | | plUIParser:'', |
| | | plExtAttr:'', |
| | | plDesc:'' |
| | | }; |
| | | this.dialogType = 'add'; |
| | | this.dialogVisible = true; |
| | | }, |
| | | editHandler(){ |
| | | if(this.selectList.length!=0){ |
| | | this.rowEditBtnClick(this.selectList[0]); |
| | | }else { |
| | | this.$message.error('è¯·éæ©ä¸æ¡æ°æ®è¿è¡ç¼è¾'); |
| | | } |
| | | }, |
| | | delHandler(){ |
| | | if (this.selectList.length <= 0) { |
| | | this.$message.error('请è³å°éæ©ä¸æ¡æ°æ®'); |
| | | return; |
| | | } |
| | | const params = { |
| | | oids: this.selectList.map(item => item.plOId).join(',') |
| | | } |
| | | this.$confirm('æ¨ç¡®å®è¦å é¤æéæ©çæ°æ®åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteTabData(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success('å 餿å'); |
| | | this.getTableList(); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | // ç¼è¾æé® |
| | | rowEditBtnClick(row) { |
| | | this.form=row; |
| | | this.dialogType = 'edit'; |
| | | this.dialogVisible = true; |
| | | }, |
| | | // å é¤æé® |
| | | rowDeleteHandler(row) { |
| | | this.$confirm('æ¨ç¡®å®è¦å é¤æéæ©çæ°æ®åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteTabData({oids: row.plOId}).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success('å 餿å'); |
| | | this.getTableList(); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | // å
³éå¯¹è¯æ¡ |
| | | dialogClose() { |
| | | this.dialogVisible = false; |
| | | this.$refs.form.clearValidate(); |
| | | this.form = { |
| | | plName: '', |
| | | plCode: '', |
| | | plDesc:'', |
| | | plIsShow: [], |
| | | } |
| | | }, |
| | | // ä¿åé¡µç¾ |
| | | saveHandler() { |
| | | this.$refs.form.validate((valid,done) => { |
| | | if (valid) { |
| | | const params = { |
| | | plAreaType:parseInt(this.areaType), |
| | | plContextOId:this.uiDefineData.plOId, |
| | | ...this.form |
| | | } |
| | | if (this.dialogType === 'add') { |
| | | addTabData(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success('æ·»å æå'); |
| | | this.dialogClose(); |
| | | this.getTableList(); |
| | | } |
| | | }) |
| | | } else if (this.dialogType === 'edit') { |
| | | updateTabData(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success('ä¿®æ¹æå'); |
| | | this.dialogClose() |
| | | this.getTableList(); |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .tip{ |
| | | font-size: 12px; |
| | | color: #909399; |
| | | margin: -13px 0 10px 100px; |
| | | } |
| | | </style> |