commodity-push-list.vue 13.9 KB
<!--医院对账单 - 列表-->
<template>
  <div class="container resource close-left-menu">
    <div class="pop-banner clearfix">
    <div class="operate-btns"> 
    </div>
    <h3 class="current-module">商品推送查询</h3>
  </div>
  <div class="order-orderlist-view clearfix">
    <div class="pd-form form-label4em mb-40 fast-search-form" >
      <div class="group-row">
        <div class="form-group form-label">
          <!-- <label for="cn1" class="label">结算单号</label> -->
          <div class="control">
            <input type="text" v-model="search.goodsname" title='商品名称' placeholder="商品名称" maxlength="50" v-rule></div>
        </div>
        <div class="form-group form-label">
              <label for="c18" class="label">商品大类</label>
              <div class="control">
                <select-ui :list="goodscateList" :selected.sync="search.goodscate" empty-text="请选择商品大类" id='c18' class='inp4'>
                </select-ui>
              </div>
            </div>
        </div> 
        <div class="group-row">
        <div class="form-group form-label">
          <!-- <label for="cn1" class="label">结算单号</label> -->
          <div class="control">
            <input type="text" v-model="search.producer" title='生产厂商' placeholder="生产厂商" maxlength="50" v-rule></div>
        </div>
        <div class="form-group form-label">
                    <label for="cc6" class="label">医院</label>
                    <div class="control">
                        <select v-model="search.medguid" class="inp2">
                            <option value="">请选择医院</option>
                            <option v-for="item in hosList" :value="item.value">&nbsp;{{item.label}}</option>
                        </select>
                    </div>
                </div>
        </div> 
        <div class="group-row">
                <div class="form-group">
                    <label class="label w70">采纳状态</label>
                    <div class="control control-filtering control-filtering-green" id="selState">
                           <a id="all_state" class="option" :class="{'active all':search.acceptstate==''}"
                           @click="search.acceptstate=''">全部</a>
                           <a id="y_state" class="option" :class="{'active all':search.acceptstate=='W'}"
                           @click="search.acceptstate='W'">已推送</a>
                           <a id="s_state" class="option" :class="{'active all':search.acceptstate=='S'}"
                           @click="search.acceptstate='S'">未采纳</a> 
                           <a id="s_state" class="option" :class="{'active all':search.acceptstate=='G'}"
                           @click="search.acceptstate='G'">已采纳</a> 
                           <a id="s_state" class="option" :class="{'active all':search.acceptstate=='N'}"
                           @click="search.acceptstate='N'">已忽略</a> 
                    </div>
                </div> 
              <div class="form-group">
                    <label class="label w70">生产来源</label>
                    <div class="control control-filtering control-filtering-green half" id="selState">
                        <a id="all_state" class="option" :class="{'active all':search.importedflag==''}"
                           @click="search.importedflag=''">全部</a>
                        <a id="y_state" class="option" :class="{'active all':search.importedflag=='2'}"
                           @click="search.importedflag='2'">进口</a>
                        <a id="s_state" class="option" :class="{'active all':search.importedflag=='1'}"
                           @click="search.importedflag='1'">国产</a> 
                    </div>
                </div>
     </div>
      <div class="group-row">
                <button  v-on:click="getData(true)"  class="fast-search-form-btn btn-d btn-d-lg btn-d-activate btn-d-circle fr">查 询</button>
      </div>
    </div>

<!-- <p class="f-size14">
  当前有<span class="f_blue">{{inVoiceList.length}}</span>
  张入库单,  已选择<span class="f_blue">{{checkArrList.length}}</span>入库单,合计金额为<span class="f_blue">{{sumList | numDigit 2 | numFmt}}</span></p> -->

    <table class="itable itable-td-long-text">
      <thead >
        <tr>
          <th class="w40"  >
          序号
          </th>
          <th class="w150">商品信息</th>
          <th class="w100">通用名称</th>
          <!-- <th class="w50">单据状态</th> -->
          <th class="w60">商品大类</th>
          <th class="w80">产地</th>
          <th class="w150">指定医院</th> 
          <th class="w80">指定业务员</th> 
          <th class="w80">状态</th> 
          <th class="w80">操作</th>
        </tr>
      </thead>
      <tbody class="txt_v">
        <tr>
          <td colspan="11" v-if="mxList.length==0">
          暂无符合条件的记录
          </td>
        </tr>
        <tr v-for="po in mxList" v-if="mxList.length!=0">
          <td class="v-top pt10">
             {{ $index + 1 }}
          </td>
          <td class="t-left pr10 v-top">
          {{po.goodscode}}<br>
          <span class="p-tit-green">{{po.goodsname}}</span><br>
          {{po.goodsspec}}<br>
          {{po.producer}}<br>
          {{po.registkey}}
          </td>
          <td class="t-left pr10 v-top">{{po.chemicalname}}</td>
          <td class="v-top">{{po.goodscate | GOODSCATE}}</td> 
          <td class="v-top t-left">{{po.productionaddress}} </td>
          <td class="v-top t-left">{{po.medname}}</td> 
          <td class="v-top t-center">{{po.staffname}}</td> 
          <td class="v-top t-center">{{po.acceptstate | AcceptState}}</td> 
          <td class="v-top ">   
            <div v-if="po.acceptstate == 'S' || po.acceptstate == 'N'">
                <a href="javascript:;" class="btn button-green"  v-on:click="push(po,true)">推送</a> 
              </div>
              <div v-else>
                <a href="javascript:;" class="btn from-button text-color-custom readonly-gray" style="hov">推送</a>
              </div>   
          </td>
        </tr>
      </tbody>
    </table>
    <div class="pagination m-20-0">
      <pagination
           @page-change="getData(false)"
           :page-no.sync="search.page"
           :total-pages.sync="search.totalPages">
        </pagination>
    </div>   
    <!--新加提示信息-->
        <div class="modal " v-show="divbgShow">
            <div class="container resource">
                <div class="audit-detail"
                     style="width:300px; margin:300px auto; min-height: 170px; border:0; padding: 10px 0 0px; border-radius: 2px;">
                    <div class="sdiv-9-9b t-center text-color-gray f-size16" style="margin-left: 0; margin-right: 0; padding-bottom: 10px;">
                        指定业务员
                    </div>
                    <div class="t-center text-color-gray f-size14 mt-10">
                        <select v-model="getSupstaffGuid" class="w200" @change="selectname(getSupstaffGuid)">   
                        <option value="">请选择业务员</option>
                          <option v-for="option in getSupstaffList" v-bind:value="option.value">
                            {{option.label}}
                          </option>
                        </select>
                    </div>
                    <a v-on:click="closeDialog()" class="btn button-green mt-15" style="margin-left: 115px;">确定</a>
                </div>
            </div>
        </div>
        <!--新加提示信息 end-->
  </div>
  

</div>

</template>
<script >
  module.exports = {
    data: function () {
      return {
        // 明细数据
        mxList: [],
        hosList: '',
        // 查询条件
        search: {
          pageSize: 50,
          page: 1,
          totalPages: 0,
          //total: 0,
          goodsname: '',
          goodscate: '',
          producer: '',
          importedflag: '',
          medguid: '', 
          acceptstate:'', 
        },
        goodscateList: [{
          value: '01',
          label: '医疗器械'
        }, {
          value: '02',
          label: '药品'
        }, {
          value: '03',
          label: '后勤物资'
        }, {
          value: '04',
          label: '消毒用品'
        }, {
          value: '05',
          label: '洗涤用品'
        }, {
          value: '06',
          label: '中药材'
        }, {
          value: '07',
          label: '设施设备'
        }, {
          value: '09',
          label: '营养制剂'
        }, {
          value: '08',
          label: '其它'
        }],  
        divbgShow:false, 
          getSupstaffList:[],
          getSupstaffGuid:'',
          getSupstaffName:'',
          goodsList:'',
          goodsLists:[],
      };
    },
    methods: {
      push: function(list,flag) {
        var self = this; 
        self.getSupstaffGuid = '';
        self.getSupstaffName = '';
        self.goodsList = '';
        if(flag == true){ 
          self.divbgShow = true; 
          self.goodsList = list;
        } 
      },
      //选择业务员
      selectname: function (getSupstaffGuid) {
          var self = this; 
          for (var i = 0; i < self.getSupstaffList.length; i++) {
             if(getSupstaffGuid == self.getSupstaffList[i].value){
                  self.getSupstaffName = self.getSupstaffList[i].label;
             }
          }  
      },
      // 关闭信息提示弹出框
            closeDialog: function () {
                var self = this; 
                self.goodsLists = [];
                self.divbgShow = false;  
                var item = {
                    'staffguid':self.getSupstaffGuid,
                    'staffname':self.getSupstaffName,
                    'medguid':self.goodsList.medguid,
                    'suppliergoodsguid':self.goodsList.suppliergoodsguid
                }
                self.goodsLists.push(item); 
                Ajax.post('/supplierGood/addMedAcceptSupgoods', {'list': self.goodsLists}).
                then(function(response) {
                var data = response.data.data; 
                 if (response.data.errorCode == 0) {
                        self.MessageBox({
                            title: '提示',
                            message: '推送成功',
                            type: 'alert'
                        }, function (action) {
                          self.getData();
                        });
                  } else {
                        self.MessageBox({
                            title: '提示',
                            message: response.data.message,
                            type: 'alert'
                        }, function (action) {
                        });
                   }
              })
            },
            getSupstaff: function () {
                var self = this;
                Ajax.post('/supplierGood/getSupstaff')
                    .then(function (response) {
                        var data = response.data;
                        if (data.errorCode == 0) {
                            self.getSupstaffList = _.map(data.data, function (item) {
                                return {
                                    label: item.realname,
                                    value: item.guid
                                };
                            });
                        } else {
                            layer.msg('数据获取异常!');
                        }
                    })
            },  
      // 获得供应关系中的医院
            getMedList: function () {
                var self = this;
                Ajax.post('/supplierGood/getSupForMeds')
                    .then(function (response) {
                        var data = response.data;
                        if (data.errorCode == 0) {
                            self.hosList = _.map(data.data, function (item) {
                                return {
                                    label: item.medname,
                                    value: item.medguid
                                };
                            });
                        } else {
                            layer.msg('数据获取异常!');
                        }
                    })
            },   
      getData: function (flag) {
        var self = this;
        if(flag){
          self.search.page = 1;
        }
        self.checkArr = [];
        self.selectAllList = [];
        Ajax.post('/supplierGood/getMccMedAcceptSupgoodsList', {'page':self.search.page,'pageSize':self.search.pageSize,'goodsname':self.search.goodsname,'goodscate':self.search.goodscate,'producer':self.search.producer,'importedflag':self.search.importedflag,'medguid':self.search.medguid,'acceptstate':self.search.acceptstate})
          .then(function (response){
            var data = response.data.data;
            if(response.data.errorCode == 0){
                  self.$set('mxList',data.list);
                  self.search.pageno = data.pageno;
                  self.search.totalPages = data.totalPages;
                  self.search.total = data.total;
            }else {
              self.MessageBox({
                title: '警告',
                message: data.message,
                type: 'alert'
              }, function(action) {});
            }
        })
      }, 
     
      // 跳转到明细页面
      goDetail:function(guid){
        var self = this;
        var type = 'cg';
        self.$route.router.go('/productListDataDetail/'+guid);
      }, 
    },
    watch: { 
      'search.importedflag':function(){
          var self = this;
          self.getData(true);
        },  
        'search.acceptstate':function(){
          var self = this;
          self.getData(true);
        },  
    },
    route: {
      activate: function () {
        this.getData(true);
        this.getMedList();  
        this.getSupstaff();
      },  
    }
  };
</script>