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