From 0f4bac6483639a3be54d8fa311e005a2a3c99885 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 27 九月 2024 17:45:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue | 388 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 388 insertions(+), 0 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue new file mode 100644 index 0000000..6c677e5 --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue @@ -0,0 +1,388 @@ +<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瑙f瀽绫伙細" prop="plUIParser"> + <el-input type="textarea" :rows="2" v-model="form.plUIParser"></el-input> + </el-form-item> + <div class="tip"> + <div style="color: #D40000">绀轰緥锛歫ava_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">绀轰緥锛歟xt1: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瑙f瀽绫�', + 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> -- Gitblit v1.9.3