清空显示

this.$refs.tree.setCheckedKeys([]);

树,没时间整理干净的出来了,自己看里面的tree的加载把

<template>
<div class="ti">
    <el-button type="primary text2"  @click="add" v-if="userJid[0]['id']==2009001">添加分摊</el-button>
    <el-select v-model="pindex_id" filterable placeholder="请选择"  class="kuan">
      <el-option
        key=""
        label="全部"
        value="">
      </el-option>
      <el-option
        v-for="item in options1"
        :key="item.id"
        :label="item.name"
        :value="item.id">
      </el-option>
    </el-select>
    <el-input class="search" placeholder="请输入分摊名称" v-model="search" clearable></el-input>
    <el-button type="primary text2" @click="change(1)">搜索</el-button>
    <div>这里的费用说明,如电费1度是0.5,这里的费用就是0.5。总金额是0.5*(本期读数-上期读数)</div>
    <v-divider></v-divider>
    <v-simple-table>
      <template v-slot:default>
        <thead>
          <tr>
            <th class="text-left">ID</th>
            <th class="text-left">分摊名称</th>
            <th class="text-left">分摊类型</th>
            <th class="text-left">项目</th>
            <th class="text-left">上期读数</th>
            <th class="text-left">本期读数</th>
            <th class="text-left">费用</th>
            <th class="text-left">状态</th>
            <th class="text-left">备注</th>
            <th class="text-left">创建人</th>
            <th class="text-left">日期</th>
            <th class="text-left">操作</th>
          </tr>
        </thead>
        <tbody>
          <tr class="text1" v-for="item in desserts" :key="item.id">
            <td >{{item.id}}</td>
            <td >{{item.name}}</td>
            <td >{{item.chargeItem_name}}</td>
            <td >{{item.pindex_name}}</td>
            <td >{{item.xsc_LastReadDegree}}</td>
            <td >{{item.xsc_CurrentReadDegree}}</td>
            <td >{{item.money}}</td>
            <td >{{item.status}}</td>
            <td >{{item.remarks}}</td>
            <td >{{item.user}}</td>
            <td >{{item.date}}</td>
            <td class="cdj_td">
              <div style="color: #1867c0;cursor: pointer;" @click="xiugai(item)" v-if="item.status=='待审核' && userJid[1]['id']==2009002">审核</div>
              <div style="color: red;margin-left: 5px;cursor: pointer;" @click="refuse( item.id )" v-if="item.status=='待审核' && userJid[2]['id']==2009003">拒绝</div>
              <div style="margin-left: 5px;cursor: pointer;" v-if="item.status!='待审核'">无</div>
            </td>
          </tr>
        </tbody>
      </template>
    </v-simple-table>
    <v-divider></v-divider>
    <div class="pages" v-if="desserts">
      <Page :total="total" :page-size="page" @on-change="change"  show-total />
    </div>
    <div class="zhanwu" v-else>没有数据</div>
    <!-- 新增和修改 -->
    <Modal
        v-model="modals"
        :ok-text="oktext"
        :loading="loadings"
        width="600"
        :title="title"
        @on-ok="addPost">
        <el-form  label-width="80px" style="height: 660px;overflow: auto;">
          <el-form-item label="分摊名称" :rules="[{required: true}]">
              <el-input v-model="dadepost.name"></el-input>
          </el-form-item>
          <el-form-item label="选择项目" :rules="[{required: true}]">
               <el-select v-model="dadepost.pindex_id" style="width: 100%;"  @change="changess(dadepost.pindex_id)" filterable placeholder="请选择项目">
                <el-option
                  v-for="item in options2"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id">
                </el-option>
              </el-select>
          </el-form-item>
          <el-form-item label="房产类型" :rules="[{required: true}]">
              <el-select v-model="dadepost.type" style="width: 100%;"  placeholder="请选择类型">
                <el-option label="住宅" value="1"></el-option>
                <el-option label="车位" value="2"></el-option>
                <el-option label="储藏室" value="3"></el-option>
                <el-option label="商铺" value="4"></el-option>
              </el-select>
          </el-form-item>
          <span style="margin-left: 80px;color: red;">总费用=(本期读数-上期读数)*分摊费用</span>
          <el-form-item label="分摊费用" :rules="[{required: true}]">
              <el-select v-model="dadepost.charge_id" style="width: 100%;" filterable placeholder="请选择">
                <el-option
                  v-for="item in types"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id">
                </el-option>
              </el-select>
          </el-form-item>
          <el-form-item label="分摊类型" :rules="[{required: true}]">
            <el-radio v-model="dadepost.share_type" label="1">平摊</el-radio>
            <el-radio v-model="dadepost.share_type" label="2">根据楼层分摊(只能选择一栋)</el-radio>
          </el-form-item>
          <el-form-item label="上期读数" :rules="[{required: true}]">
              <el-input v-model="dadepost.xsc_LastReadDegree"></el-input>
          </el-form-item>
          <el-form-item label="本期读数" :rules="[{required: true}]">
              <el-input v-model="dadepost.xsc_CurrentReadDegree"></el-input>
          </el-form-item>
          <el-form-item label="时间" :rules="[{required: true}]" v-if="dadec == 1">
              <el-date-picker
                v-model="dadepost.datevalue"
                type="daterange"
                unlink-panels
                range-separator="至"
                start-placeholder="开始日期"
                end-placeholder="结束日期">
              </el-date-picker>
          </el-form-item>
          <el-form-item label="时间" :rules="[{required: true}]" v-if="dadec == 2">
              {{dadepost.sdate}}至{{dadepost.enddate}}
          </el-form-item>
          <el-form-item label="备注">
              <el-input v-model="dadepost.remarks"></el-input>
          </el-form-item>
          <span class="bangd">点击打开加载,可查看分摊的房产</span>
          <el-form-item label="分摊房产" :rules="[{required: true}]">
            <div class="text item">
                <el-tree
                :props="datas"
                :data="dataarr"
                lazy
                :load="loadNode"
                show-checkbox
                ref="tree"
                node-key="id"
                includeHalfChecked="false"
                :default-checked-keys="defaultcheckedkeys"
                :default-expanded-keys="[]">
                </el-tree>
            </div>
          </el-form-item>
        </el-form>
    </Modal>
</div>
</template>

<script>
export default {
  data () {
    return {
     dadec:1,
     oktext:'保存',
     title:'添加分摊费用',
     loadings:true,
     modals:false,
     types:[],
     typesvalyel:'',
     activeName: '0',
     search:'',
     company_id:'',
     pindex_id:'',
     desserts: '',
     total:12,
     page:1,
     cs:'',
     dadepost:{
       id:'',
       name:'',
       pindex_id:'',
       charge_id:'',
       type:'',
       remarks:'',
       xsc_LastReadDegree:'',
       xsc_CurrentReadDegree:'',
       checked_id:[],
       checked_ids:[],
       money:'',
       share_type:'',
       datevalue:[],
       sdate:'',
       enddate:'',
     },
     options: [],
     options1: [],
     options2:[],
     userJid:[],
     datas:{
       label: 'label',
       children: 'zones',
       isLeaf: 'leaf',
       value: 'id',
       value1:'region',
       varue2:'type',
       value3:'pindex_id',
     },
     dataarr:[],
     defaultcheckedkeys:[],
     defaultcheckedkeyssa:[],
     node_had: [],
     resolve_had: [],
     name:''
    }
  },
  //界面没出来前加载
  created() {
    this.userJid = [{id:''},{id:''},{id:''},{id:''}];
    this.$myhttp.get('admin/lavel3?pid=2009',{
      'Content-Type': 'application/json'
      }).then(backdata=>{ // 异步执行成功后
        // console.log(backdata.data);
        if(backdata.data != 1){
          var date = backdata.data;
          date.forEach(item => {
            //本界面权限
            if(item.id == 2009001){
              this.userJid[0]['id'] = item.id;
            }
            if(item.id == 2009002){
              this.userJid[1]['id'] = item.id;
            }
            if(item.id == 2009003){
              this.userJid[2]['id'] = item.id;
            }
          });
        }else{
          //本界面权限
          this.userJid = [{id:'2009001'},{id:'2009002'},{id:'2009003'},{id:'2009004'}];
        }
        // console.log(this.userJid)
      });
  },
  mounted(){
    this.change(1);
    //加载公司列表和归属列表
    this.$myhttp.get('admin/getcompany',{
      'Content-Type': 'application/json'
      }).then(backdata=>{ // 异步执行成功后
        this.options = backdata.data[0];
    });
    //查询收费类型
    // this.$myhttp.get('admin/common/type',{
    //   'Content-Type': 'application/json'
    //   }).then(backdata=>{ // 异步执行成功后
    //     this.types = backdata.data.data;
    // });
    //我和我下级的项目
    this.$myhttp.get('admin/common/pindex',{
      'Content-Type': 'application/json'
      }).then(backdata=>{ // 异步执行成功后
         this.options1 = backdata.data.data;
         this.options2 = backdata.data.data;
    });
  },
  methods: {
    //查询
    change(page){
      this.modals = false;
      this.$Loading.start();
      this.$myhttp.get('admin/share/index?page='+page+'&company_id='+this.company_id+'&pindex_id='+this.pindex_id+'&search='+this.search,{
        'Content-Type': 'application/json'
        }).then(backdata=>{ // 异步执行成功后
          this.desserts = backdata.data.data;
          this.total = backdata.data.count;
          this.page = backdata.data.page;
          this.$Loading.finish();
      });
    },
    //项目改变查询收费项
    changess(pindex_id){
      this.$Loading.start();
      this.$myhttp.get('admin/share/getPindexCharge?pindex_id='+pindex_id,{
        'Content-Type': 'application/json'
        }).then(backdata=>{ // 异步执行成功后
          this.types = backdata.data.data;
          this.$Loading.finish();
          this.$forceUpdate();
      });
    },
    //点击添加
    add(){
      this.dadec = 1;
      this.dadepost={
        id:'',
        name:'',
        pindex_id:'',
        charge_id:'',
        type:'',
        remarks:'',
        xsc_LastReadDegree:'',
        xsc_CurrentReadDegree:'',
        checked_id:[],
        checked_ids:[],
        money:'',
        share_type:'',
        datevalue:[],
        sdate:'',
        enddate:'',
      };
      this.defaultcheckedkeyssa = [];
      this.defaultcheckedkeys=[];
      this.$forceUpdate();
      this.oktext='保存';
      this.title='添加分摊费用';
      this.modals = true;
    },
    xiugai(item){
      this.dadec = 2;
      this.oktext='审核';
      this.title='审核分摊费用';
      this.dadepost.id = item.id;
      this.dadepost.name = item.name;
      this.dadepost.pindex_id = item.pindex_id;
      this.dadepost.charge_id = item.charge_id;
      this.dadepost.type = item.type;
      this.dadepost.remarks = item.remarks;
      this.dadepost.xsc_LastReadDegree = item.xsc_LastReadDegree;
      this.dadepost.xsc_CurrentReadDegree = item.xsc_CurrentReadDegree;
      this.dadepost.money = item.money;
      // this.defaultcheckedkeys = item.checked_id;
      this.defaultcheckedkeys=[];
      this.defaultcheckedkeyssa = item.checked_id;
      this.dadepost.sdate = item.sdate;
      this.dadepost.enddate = item.enddate;

      this.$forceUpdate();
      this.node_had.childNodes = [];
      this.loadNode(this.node_had, this.resolve_had); //再次执行懒加载的方法
      this.modals = true;
    },
    //新增和修改保存,审核
    addPost(){
      let id = this.dadepost.id;
      if(this.dadec == 2){
        this.$confirm('确定要审核通过吗', '提示', {
          type: 'warning'
        }).then(() => {
          this.loading = true;
          this.$myhttp.post('admin/share/checks',{'id':id},{
            'Content-Type': 'application/x-www-form-urlencoded'
            }).then(backdata=>{ // 异步执行成功后
              this.change(1);
              this.$Message.success('操作成功');
              this.$Loading.finish();
          });
        }).catch(() => {
        });
        return false;
      }
      if(this.dadepost.name == ''){
        this.$Message.error('分摊名称不能为空');
        this.loading();
        return false;
      }
      if(this.dadepost.pindex_id == ''){
        this.$Message.error('项目不能为空');
        this.loading();
        return false;
      }
      if(this.dadepost.charge_id == ''){
        this.$Message.error('分摊费用不能为空');
        this.loading();
        return false;
      }
      if(this.dadepost.type == ''){
        this.$Message.error('房产类型不能为空');
        this.loading();
        return false;
      }
      if(this.dadepost.share_type == ''){
        this.$Message.error('分摊类型不能为空');
        this.loading();
        return false;
      }
      if(this.dadepost.xsc_LastReadDegree == ''){
        this.$Message.error('上期读数不能为空');
        this.loading();
        return false;
      }
      if(this.dadepost.xsc_CurrentReadDegree == ''){
        this.$Message.error('本期读数不能为空');
        this.loading();
        return false;
      }

      if(this.dadepost.datevalue != null && this.dadepost.datevalue != ''){
        var d = this.dadepost.datevalue[0];//开始时间
        var e = this.dadepost.datevalue[1];//结束时间
        this.dadepost.sdate = new Date(d).getTime()/1000;
        this.dadepost.enddate = new Date(e).getTime()/1000;
      }else{
        this.dadepost.sdate = "";
        this.dadepost.enddate = "";
      }
      if(this.dadepost.sdate == ""){
        this.$Message.error('时间不能为空');
        this.loading();
        return false;
      }
      var checked_id = this.$refs.tree.getCheckedKeys();//获得全选状态id(回显用)
      var checked_ids = this.$refs.tree.getCheckedNodes();//获得全选状态id数组(保存遍历出住宅用),不用
      this.dadepost.checked_id = checked_id;
      this.dadepost.checked_ids = checked_ids;
      if(checked_id.length == 0){
        this.$Message.error('请选择分摊的房产');
        this.loading();
        return false;
      }
      this.$Loading.start();
      this.$myhttp.post('admin/share/addPost',this.dadepost,{
        'Content-Type': 'application/x-www-form-urlencoded'
        }).then(backdata=>{
          this.$Loading.finish();
          this.change(1);
      });
    },
    //绑定(懒加载方法)
    loadNode(node, resolve) {
        var _this = this;
        setTimeout(() => {
        if (node.level === 0) {
          this.node_had.childNodes = [];
          this.node_had = node;
          this.resolve_had = resolve;
          return resolve([{'label':this.name,'id':this.dadepost.pindex_id,'region':0,'type':this.dadepost.type,'pindex_id':this.dadepost.pindex_id,superior:'0'}]);
        }
        if(this.dadepost.pindex_id == ''){
            this.$Message.error('请选择项目');
            this.node_had.childNodes = []; //把存起来的node的子节点清空,不然会界面会出现重复树!
            this.loadNode(this.node_had, this.resolve_had); //再次执行懒加载的方法
            return false;
        }
        if(this.dadepost.type == ''){
            this.$Message.error('请选择房产类型');
            this.node_had.childNodes = []; //把存起来的node的子节点清空,不然会界面会出现重复树!
            this.loadNode(this.node_had, this.resolve_had); //再次执行懒加载的方法
            return false;
        }
        //加载
        node.data && this.$myhttp.post('admin/getbindingArrs',node.data,{
        'Content-Type': 'application/json'
        }).then(backdata=>{ // 异步执行成功后
          // _this.defaultcheckedkeys =  _this.arr;
          _this.defaultcheckedkeys=_this.defaultcheckedkeyssa;
          return resolve(backdata.data);
        });
        }, 300);
    },
    //拒绝通过
    refuse(id){
      this.$confirm('确定要拒绝通过吗', '提示', {
        type: 'warning'
      }).then(() => {
        this.loading = true;
        this.$myhttp.post('admin/share/refuse',{'id':id},{
          'Content-Type': 'application/x-www-form-urlencoded'
          }).then(backdata=>{
            this.change(1);
            this.$Message.success('操作成功');
            this.$Loading.finish();
        });
      }).catch(() => {
      });
    },

    loading(){
      this.loadings = false;
      setTimeout(() => {
          this.loadings = true;
      }, 100);
    }

  },
  watch: {
    //两个懒加载方法
    'dadepost.type'(val){
      this.node_had.childNodes = [];
      this.loadNode(this.node_had, this.resolve_had); //再次执行懒加载的方法
    },
    'dadepost.pindex_id'(val){
      this.node_had.childNodes = []; //把存起来的node的子节点清空,不然会界面会出现重复树!
      let _this = this;
      this.options2.forEach(function(it){
        if(val == it.id){
          _this.name = it.name;
        }
      })
      this.loadNode(this.node_had, this.resolve_had); //再次执行懒加载的方法
    }
  }
}
</script>
<style scoped>
.ti{
  margin: 1%;
  width: 98%;
}
.text1{
  text-align: center;
}
.pages{
  margin-top: 2%;
  margin-right: 3%;
  text-align: right;
}
.zhujie{
  margin-left: 14%;
  color: brown;
}
.search{
  margin-top: 0.2%;
  width: 20%;
  margin-bottom: 1.5%;
}
.text2{
  color: rgb(250, 248, 248);
}
.kuan{
  width: 12%;
}
.zhanwu{
  text-align: center;
  color: rgb(207, 205, 205);
  font-size: 20px;
  margin-top: 3%;
}
.text3{
  color: rgb(9, 145, 145);
}
.bangd{
  margin-left: 14%;
  color: rgb(6, 141, 107);
}
.item{
  margin-top: 1%;
}
</style>