ordinaryMenu.vue 5.88 KB
<!--
 * @Description: workFrame左侧菜单列表-普通
 * @Autor: renchao
 * @LastEditTime: 2023-05-25 10:42:50
-->
<template>
  <div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
    <el-menu :default-active="activeIndex" @select="batchUnitClick" class="title-batch" v-if="showBatch">
      <el-menu-item index="-1" key="-1" class="menus">
        <div>{{ batchButtonName }}</div>
      </el-menu-item>
    </el-menu>
    <div v-if="this.isShowdrawer">
      <div class="title">
        申请单元列表({{ unitData.length }})
        <el-button type="text" class="batchDel" @click="handleBatchDel" v-if="unitData.length > 1">批量删除</el-button>
      </div>
      <el-menu :default-active="activeIndex" @select="unitClick">
        <el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
          <p class="dot" v-if="item.issave == '0'"></p>
          <div class="menu-con">
            <p>{{ item.bdcdyh }}</p>
            <p class="title-detail">{{ item.zl }}</p>
          </div>
          <i class="el-icon-delete" v-if="unitData.length > 1" @click.stop="handleDel(item)"></i>
        </el-menu-item>
      </el-menu>
    </div>
    <div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
          () => {
            this.isShowdrawer = !this.isShowdrawer;
          }
        "></div>
    <div class="map-drawer-expand map-drawer" v-else @click="
          () => {
            this.isShowdrawer = !this.isShowdrawer;
          }
        "></div>
  </div>
</template>
<script>
import { mapGetters } from 'vuex'
import { leftMenu } from "@/api/fqsq.js"
import { deleteSlbdcdy } from "@/api/ywbl.js";
export default {
  data () {
    return {
      //受理申请标识码
      bsmSlsq: this.$route.query.bsmSlsq,
      //当前流程所在环节
      bestepid: this.$route.query.bestepid,
      // 默认选中
      activeIndex: '0',
      // 折叠
      isShowdrawer: true,
      // 批量操作
      showBatch: false,
      //批量操作按钮名称
      batchButtonName: '',
      //左侧菜单数据集合
      unitData: [],
      // 设置表单传递数据
      currentSelectProps: {}
    }
  },
  mounted () {
    this.loadBdcdylist();
  },
  computed: {
    ...mapGetters(['isRefresh'])
  },
  watch: {
    isRefresh: {
      handler (newVal, oldVal) {
        if (newVal) this.loadBdcdylist()
      },
      immediate: true
    }
  },
  methods: {
    //读取申请单元信息
    loadBdcdylist () {
      var formdata = new FormData();
      formdata.append("bsmSlsq", this.bsmSlsq);
      formdata.append("bestepid", this.bestepid);
      leftMenu(formdata).then((res) => {
        if (res.code === 200 && res.result) {
          this.unitData = res.result;
          this.currentSelectProps = res.result[0];
          this.$emit('getCurrentSelectProps', this.currentSelectProps);
          this.judgeBatchShow();
          if (this.showBatch) {
            //满足批量查封/批量抵押按钮出现 即先展示批量表单
            this.batchUnitClick();
          } else {
            //默认选择单元列表第一个
            this.unitClick(0);
          }
        }
      })
    },
    //批量按钮判断
    judgeBatchShow () {
      this.showBatch = false;
      if (this.unitData.length > 1) {
        let qllx = this.$route.query?.sqywbm?.substring(0, 3);
        switch (qllx) {
          case 'A04':
            this.showBatch = true;
            this.batchButtonName = '房屋批量操作';
            break;
          case 'B39':
            this.showBatch = true;
            this.batchButtonName = '查封批量操作';
            break;
          case 'A37':
            this.showBatch = true;
            this.batchButtonName = '抵押批量操作';
            break;
          case 'B37':
            this.showBatch = true;
            this.batchButtonName = '在建工程抵押批量操作';
            break;
        }
      }
    },
    /**
     * @description: 删除左侧列表
     * @param {*} item
     * @author: renchao
     */
    handleDel (item) {
      this.$confirm("确定要删除吗, 是否继续?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          var formdata = new FormData();
          formdata.append("bsmSldyList", item.bsmSldy.split(","));
          // formdata.append("bsmSlsq", this.bsmSlsq);
          deleteSlbdcdy(formdata).then((res) => {
            if (res.code == 200) {
              this.$message.success("删除成功");
              /**
               * @description: 更新列表
               * @author: miaofang
               */
              this.loadBdcdylist()
              // this.$parent.updateDialog();
            } else {
              this.$message.error(res.message);
            }
          });
        })
        .catch(() => {
          this.$message({
            type: "info",
            message: "已取消删除",
          });
        });
    },
    //批量按钮点击事件
    batchUnitClick () {
      this.currentSelectProps.batchOperation = true;
      this.activeIndex = "-1";
      this.$parent.stepForm();

    },
    //批量操作
    handleBatchDel () {
      this.$popupDialog("批量删除", "workflow/components/batchDel", {
        bsmSlsq: this.bsmSlsq,
        dataList: this.unitData,
      }, '50%', true)
    },
    //申请单元点击事件
    unitClick (index) {
      this.currentSelectProps = this.unitData[index];
      this.currentSelectProps.batchOperation = false;
      this.activeIndex = index.toString();
      //选中表单传递数据
      this.$emit('getCurrentSelectProps', this.currentSelectProps);
      this.$parent.stepForm(index);
      this.$store.dispatch('user/refreshPage', false);
    }
  }
}
</script>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
@import "../../workFrame.scss";
.leftmenu ul {
  height: calc(100vh - 120px);
}
</style>