upload-purchase-plan.vue 13.6 KB
<template>
  <div class="container resource close-left-menu contaNEW">
      <div class="pop-banner clearfix">
        <div class="operate-btns">
          <a class="fbtn fb-refresh" @click='refresh(false)'>刷新未上传计划</a>
          <a class="fbtn fb-del" @click='remove'>删除</a>
        </div>
        <h3 class="current-module">上传采购计划</h3>
      </div>
      <!--purchase-plan start-->
      <div class="purchase-plan">
        <div class="pd-form fast-search-form">
          <div class="group-row">
            <div class="form-group form-label">
              <!-- <label for="cn1" class="label">计划单号</label> -->
              <div class="control select-style">
                <input type="text" id="cn12" maxlength="17" v-rule v-model='search.search_LIKE_billno' placeholder="计划单号" title="计划单号"> </div>
            </div>
            <div class="form-group">
              <!-- <label class="label">商品</label> -->
              <div class="control select-style">
                <input type="text" id="cn1"  maxlength="50" v-rule v-model="search.search_LIKE_goodsname" placeholder="商品" title="商品"> </div>
            </div>
          </div>
          <div class="group-row">
            <div class="form-group">
              <!-- <label for="cn3" class="label">制单日期</label> -->
               <div class="control control-date" style="height:34px;overflow: inherit;">
              <div style="width: 42%;float: left">
                <datepicker :target.sync="search.search_GTE_startDate " :readonly="readonlyFlag" title='制单开始日期' placeholder="制单开始日期"styleobj="width:100% !important;border-radius:8px 0px 0px 8px !important;"></datepicker>
              </div>
              <span class="text-and" style="width: 45px"></span>
              <div style="width: 48%;float: left;">
                <datepicker :target.sync="search.search_LTE_endDate" :readonly="readonlyFlag" title='制单结束日期' placeholder="制单结束日期"styleobj="width:100% !important;border-radius:0px 8px 8px 0px !important;"></datepicker>
              </div>
            </div>
            </div>
            <div class="form-group form-label">
              <label for="cn1" class="label">单据类型</label>
              <div class="control select-style">
              <select-ui :list="$store.state.$billType" v-model="search.search_EQ_billtype"  v-bind:disabled="disabled" class='inp4'></select-ui>
                </div>
            </div>
          </div>
          <div class="group-row">
            <div class="form-group">
              <label class="label fl w60">业务状态</label>
              <div class="control control-filtering control-filtering-green fl" style="width:320px;">
                <a class="option" :class="{'all active option ':search.search_EQ_uploadstate==''}"
                href="javascript:void(0)" @click="search.search_EQ_uploadstate=''">全部</a>
                <a class="option" :class="{'all active option ':search.search_EQ_uploadstate=='U03'}"
                href="javascript:void(0)" @click="search.search_EQ_uploadstate='U03'">已同步</a>
                 <a class="option" :class="{'all active option ':search.search_EQ_uploadstate=='U02'}"
                href="javascript:void(0)" @click="search.search_EQ_uploadstate='U02'">同步中</a>
                <a class="option" :class="{'all active option ':search.search_EQ_uploadstate=='U01'}"
                href="javascript:void(0)" @click="search.search_EQ_uploadstate='U01'">未同步</a>
              </div>
            </div>
          </div>
          <div class="group-row t-right" >
            <button class="fast-search-form-btn btn-d btn-d-lg btn-d-activate btn-d-circle" @click="getData">查 询</button>
          </div>
        </div>
        <table class="itable itable-thead-13px">
          <thead id='t_header'>
            <!-- id='t_header' -->
            <tr>
              <th class="w80">
                <div class="control" >
                  <div class="checkbox-control" v-if="search.search_EQ_uploadstate=='U03'">
                  </div>
                  <div class="checkbox-control fl" v-else>
                    <input type="checkbox" name="cb" id="cball_a"  v-model="check" >
                    <label class="checkbox ml-10 mr-0" for="cball_a">

                    </label>
                  </div>
                    序号
                </div>
                <!-- 序号 -->
              </th>
              <th class="w160">计划单号</th>
              <th class="w100">制单日期</th>
              <th class="w100">供应商名称</th>
              <th class="w70">品规数</th>
              <th class="w90">订单类型</th>
              <th class="w70">操作人</th>
              <th class="w80">备注</th>
              <th class="w80">状态</th>
              <th class="w160">操作</th>
            </tr>
          </thead>
          <tbody>
            <tr v-if="trmedplanList.length==0">
              <td colspan="10" >
              暂无符合条件的记录
              </td>
            </tr>
            <tr v-for="trmedplan in trmedplanList">
              <td v-if="trmedplan.uploadstate=='U03'">
                <!--<div class="checkbox-control" >-->
                  <!--<input type="checkbox" :id="$index" disabled v-model='check'>-->
                  <!--<label class="checkbox ml-5 mr-0" :for="$index">{{$index + 1}}</label>-->
                <!--</div>-->
                {{$index + 1}}
              </td>
              <td v-else>
                 <div class="checkbox-control" >
                  <input type="checkbox" :id="trmedplan.guid" v-model="trmedplan.checked">
                  <label class="checkbox ml-5 mr-0" :for="trmedplan.guid">{{$index + 1}}</label>
                </div>
              </td>

              <td class="t-left pr10">{{trmedplan.uploadbillno}}</td>
              <td>{{trmedplan.billdate | getYMD}} </td>
              <!-- </br>{{trmedplan.inputdate | getHMS}} -->
              <td class="t-left pr10">{{trmedplan.suppliername}}</td>
              <td>{{trmedplan.countsum}}</td>
              <td>{{trmedplan.billtype | billtype }}</td>
              <td>{{trmedplan.operatername}}</td>
              <td>{{trmedplan.memo}}</td>
              <td>
                <span class="text-color-red" v-if="trmedplan.uploadstate=='U01'">未同步</span>
                <span class="text-color-or" v-if="trmedplan.uploadstate=='U02'">同步中</span>
                <span v-if="trmedplan.uploadstate=='U03'">已同步</span>
              </td>
              <td class="pt9">
              <div class="from-button mt3">
               <a href="javascript:;" class="green-button p-lr-10" v-link="{ path: '/uploadPurchasePlanList/' + trmedplan.billno}">明细<i>|</i></a>
               <a href="javascript:;" class="green-button p-lr-10" v-on:click="pushall(trmedplan.billno,trmedplan.uploadstate)">同步到省采</a>
             </div>

              </td>
            </tr>
          </tbody>
        </table>
         <!-- <div class="pagination pagination-min m-20-0">  -->
       <!--    <em class="page">共【{{ search.totalPages }}】页</em>
          <em class="page ml-20">跳转到<input type="text" class="t-center" style='width:40px;margin:0px 5px;height:30px;' v-model='pageS'></em>
          <em class="page text-color-blue" style='cursor:pointer;' @click='getData(false,2)'>Go>></em>  -->
            <pagination
             @page-change="getData"
             :class="['m-20-0']"
             :page-no.sync="search.page"
             :page-falg="true"
             :total-pages.sync="search.totalPages">
             </pagination>
        <!-- </div> -->
      </div>
      <div class="roll-bg" v-if='requestS'>
              <div class="w60" style="margin:0 auto;">
                <img src="/images/roll.gif">
              </div>
              <div class="container resource t-center text-color-red">
                正在处理中,请勿关闭!
              </div>
            </div>
      <!--purchase-plan end-->
    </div>
</template>
<script>
  module.exports={
    data:function(){
      return{
       requestS:false,
       // pageS:'',
       billtype: [{
        value: "01",
        label: "普耗"
      }, {
        value: "02",
        label: "跟台高值"
      },
       {
        value: "03",
        label: "备货高值"
      },
       {
        value: "04",
        label: "药品"
      },
       {
        value: "05",
        label: "后勤物资"
      },
      {
        value: "06",
        label: "消毒用品"
      },
      {
        value: "07",
        label: "洗涤用品"
      },
       {
        value: "08",
        label: "中药材"
      },
      {
        value: "09",
        label: "设施设备"
      }],

        trmedplanList:[],
        stateAll : 'all active',
        state1 : 'option',
        state2 : 'option',
        // state3 : 'option',
        // state4 : 'option',
        // state5 : 'option',
        // state6 : 'option',
        // state7 : 'option',
        search:{
          pageSize:50,
          page:1,
          totalPages:0,
            search_LIKE_billno: '',
            search_EQ_billtype:'',
            search_EQ_billstate:'',
            search_LTE_endDate:'',
            search_GTE_startDate: '',
            search_LIKE_goodsname:'',
            search_EQ_medguid:'',
            search_EQ_uploadstate:'U01'
        },
        authoritySetting: {
          oneSearchFlag:false,
          oneMakeMonthPlanFlag:true,
          twoDetailFlag:true,
          twoTraceFlag:true,
      },
      check:false
      };
    },

    methods:{
      // 添加商品
      pushall:function(billno,uploadstate){
        var self=this;
        if(uploadstate=='U03'){
            layer.msg('已同步不能再同步!');
            return;
        }else{
          self.$set('requestS',true);
          Ajax.get('/hospitalTrmedwv/uploadMedJhsc',{billnos:billno}).
          then(function(res){
              if(res.data.errorCode !=undefined && res.data.errorCode!=0){
                  layer.msg(res.data.message);
                  self.$set('requestS',false);
                  return ;
              }
              if(res.data.Result==0){
                  self.$set('requestS',false);
                  self.check=false;
                  self.getData(false);
              }else{
                  self.$set('requestS',false);
                  self.MessageBox({
                    title:'提示',message:'招标平台返回错误异常信息,请在列表备注中查看详细错误信息!',type:'alert'
                  },function(action){
                    self.getData();
                  });
              }
          })
        }

      },
      getData:function(isRefresh,num){
          var self = this;
          if(isRefresh) {
            this.search.page = 1;
          }
          // if(num==2){
          //   if(this.pageS>this.search.totalPages){
          //     layer.msg('输入的页码不可大于总页码数!')
          //     return;
          //   }
          //   this.search.page = this.pageS;
          // }
          Ajax.post('/hospitalTrmedwv/listTrmedJhsc',this.search)
          .then(function(response){
            var data=response.data.data;
            if(response.data.errorCode==0){
              var list=data.list;
              for(var i=0;i<list.length;i++){
                list[i].check=false;
                // 删除选择
                list[i].checked=false;
              }
              self.$set("trmedplanList",list);
              self.search.totalPages=data.totalPages;
            }

          })
      },
      refresh:function(falg){
        var self=this;
        Ajax.get('/hospitalTrmedwv/ChangeWvToTrmedJhsc')
          .then(function(response){
            var data=response.data.data;
            if(response.data.errorCode==0){
              if(!falg){
                  layer.msg('刷新成功');
                }

                self.getData();
            }else{
              layer.msg(response.data.message);
            }

        })
      },
      remove:function(){
        var self = this;
        var list=self.trmedplanList;
        var str='';
          self.MessageBox({
                  title:'提示',
                  message:'是否确定删除?',
                  type:'alert',
                  showCancelButton: true
                  },function(action){
                    if(action=='confirm'){

                     for(var a=0;a<list.length;a++){
                        if(list[a].checked){
                          str+=list[a].uploadbillno+','
                        }

                     }
                        Ajax.post('/billType/deleteTrmedJhsc',{billnos:str})
                        .then(function(response){
                          var data=response.data.data;
                          if(response.data.errorCode==0){
                              layer.msg('删除成功');
                              // self.refresh(true);
                              self.getData(true);

                              self.check=false;
                          }else{
                            layer.msg(response.data.message);
                          }

                      })


                    }
                  })

      }
   },watch:{
      'check':function(val){
          for(var i=0;i<this.trmedplanList.length;i++){

            if(this.trmedplanList[i].uploadstate!='U03'){
              this.trmedplanList.splice( i,1, Object.assign({}, this.trmedplanList[i], { 'checked': val}))
            }

          }

      },
       'search.search_EQ_uploadstate':function(){
        this.getData();
      }
   },

    route:{
      activate : function(){
        this.getData();
      }
    },

};
</script>