supply-supplylist.vue 19.9 KB
<template>
    <div class="container resource close-left-menu contaNEW">
        <div class="pop-banner clearfix">
             <div class="operate-btns">
            				<a @click="exportSupplyRelation" class="fbtn fb-download ml-10 mr-10">导出</a>

            </div>
            <h3 class="current-module">供应商清单</h3>
        </div>


        <!--supply-supplylist start-->
        <div class="supplylist clearfix supply-select">{{dual}}

            <div class="pd-form fast-search-form">
                <div class="group-row">
                    <div class="form-group">
                        <div class="control">
                            <input type="text" value="" id="cn1" v-rule maxlength="20" v-model='supplySearch.search_LIKE_chinesename'
                                   title="供应商" placeholder="供应商">
                        </div>
                    </div>
                    <div class="form-group form_group_state">
                        <label class="label">业务状态</label>
                        <div class="control control-filtering control-filtering-green fl">
                            <a class="{{ stateAll }} option" href="javascript:void(0)" @click="bizState('')">全部</a>
                            <a class="{{ stateYes }} option" href="javascript:void(0)" @click="bizState(ctns.bizstatey)">有效</a>
                            <a class="{{ stateNo }} option" href="javascript:void(0)" @click="bizState(ctns.bizstates)">停用</a>
                            <a class="{{ stateNY }} option" href="javascript:void(0)" @click="bizState(ctns.bizstatee)">失效</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="getSupplyRelation()">查 询
                    </button>
                </div>
            </div>
            <div class="supplylist-root">
                <div class="root-node" id="sortable" style='height: 480px;'>
                    <template v-for="(indexI,supplyRelation) in supplyRelationList">

                        <div class="list-show" style="display:block">
                            <template v-for="(indexJ,supplierName) in supplyRelation.supplierNameList">
                                <div class="hover-box" @click="getHospitalSupplierGoodsList(locationCalculation(indexI,indexJ),supplyRelation.supplierGuidList[indexJ])">
                                    <a href="javasript:;"  class="fl" style="width: auto; display:normal;"  v-link="{ path: '/supplyForm/' + supplyRelation.supplierGuidList[indexJ]+'/'+medguid + '/' +supplyRelation.guidList[indexJ] }">
                                    {{ supplierName }}</a><br>
                                    <span class="w40 fl">{{ supplyRelation.supplierBizStateList[indexJ] | BIZSTATE}}</span>
                                    <span class="w120 fl">{{ supplyRelation.supplierContacts[indexJ] }}</span>
                                    <span class="w120 tel-icon fl"
                                          v-if='supplyRelation.supplierContactTel[indexJ]'>{{ supplyRelation.supplierContactTel[indexJ]
                                        }}</span>
                                </div>
                            </template>
                        </div>
                    </template>
                </div>
            </div>
            <!--  v-if="authoritySetting.oneSearchFlag"  -->
            <!--     <div class="supplylist-root">
              <div class="root-node" style="overflow:auto;">
                <template v-for="(indexI,supplyRelation) in supplyRelationList">
                <div class="list-node" :class="{ 'active': activeI[indexI] }" @click="activeIClick(indexI)" style="width:345px;">
                  <span class="node-btn"></span>{{ supplyRelation.distrbName }}
                </div>
                <div class="list-show" v-show="activeI[indexI]">
                  <div class="box-shadow"  style="margin-left: 20px;width: 331px;">
                    <template v-for="(indexJ,supplierName) in supplyRelation.supplierNameList">

                    <div class="box-shadow" style="margin-left: 20px;width: 331px;" :class="{ 'active': activeJ[locationCalculation(indexI,indexJ)] }"
                      @click="getHospitalSupplierGoodsList(locationCalculation(indexI,indexJ),supplyRelation.supplierGuidList[indexJ])">
                      <div><a href="javasript:;" v-link="{ path: '/supplyForm/' + supplyRelation.supplierGuidList[indexJ]+'/'+medguid + '/' +supplyRelation.guidList[indexJ] }">{{ supplierName }}</a></div>
                      <span class="w50">{{  supplyRelation.supplierBizStateList[indexJ] | BIZSTATE}}</span>
                      <span class="w90">{{  supplyRelation.supplierContacts[indexJ] }}</span>
                      <span class="w90 tel-icon" style="padding-left:15px;">{{ supplyRelation.supplierContactTel[indexJ] }}</span>
                    </div>
                    </template>
                  </div>
                </div>
                </template>
              </div>
            </div> -->
            <div class="supplylist-table">
                <div class="fheader no-bottom pd0">
                    <h4 class="fh-good">商品列表</h4>
                </div>
                <table class="itable itable-thead-13px">
                    <thead>
                    <tr>
                        <th class="w50">序号</th>
                        <th class="w40" colspan='2'>商品</th>
                        <th class="w130 t-left">生产厂商</th>
                        <th class="w50">状态</th>
                        <!-- <th class="w70">证照完整率</th> -->
                        <th class="w100">操作</th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr v-for="mFMedGoods in mFMedGoodsList">
                        <td>{{ $index + 1 }}</td>
                        <td class="pr10">
                            <imagebox :imgarr="mFMedGoodsListImg[mFMedGoods.sdgoodsguid] | original">
                                <div class="pro-pic"
                                     :style="'background-image: url('+mFMedGoodsListImg[mFMedGoods.sdgoodsguid] +  ');margin-left: 12px;'">
                                    <span class="pic-max blue-search"></span>
                                </div>
                            </imagebox>
                        </td>
                        <td>
                            <div class="t-left pr10">{{ mFMedGoods.goodscode
                                }}<br>{{mFMedGoods.goodsname}}<br/>{{mFMedGoods.goodsspec}}
                            </div>
                        </td>
                        <td>
                            <div class="t-left pr10">{{ mFMedGoods.registkey }}<br/>{{ mFMedGoods.producer }}</div>
                        </td>
                        <!-- <td class="text-color-yellow">{{ mFMedGoods.approvalstate | APPROVALSTATE}}</td> -->
                        <td class="text-color-yellow">{{ mFMedGoods.contentState | content_state}}</td>
                        <!-- <td>{{mFMedGoods.varchar1}}%</td> -->
                        <td class="pt9"><a href="javascript:;" class="btn button-green"
                                           v-link="{ path: '/supplySupplyDetails/' + mFMedGoods.guid }">明细</a></td>
                    </tr>
                    <!--   <tr v-for="mFMedGoods in mFMedGoodsList">
                      <td>{{ $index + 1 }}
                        <imagebox :imgarr="mFMedGoodsListImg[mFMedGoods.sdgoodsguid] | original">
                        <div class="pro-pic" style="background-image: url({{mFMedGoodsListImg[mFMedGoods.sdgoodsguid] | thumbnail}});margin-left: 12px;">
                          <span class="pic-max blue-search"></span>
                        </div>
                        </imagebox>
                      </td>
                      <td><div class="p-lr-10 t-left">{{ mFMedGoods.goodscode  }}<br>{{mFMedGoods.goodsname}}<br/>mFMedGoods.goodsspec</div></td>
                      <td><div class="p-lr-10">{{ mFMedGoods.manufacturer }}<br/><br/>{{ mFMedGoods.producer }}</div></td>
                      <td >{{  mFMedGoods.approvalstate |  APPROVALSTATE}}</td>
                      <td>{{mFMedGoods.varchar1}}%</td>
                      <td><a href="javasript:;" v-link="{ path: '/supplySupplyDetails/' + mFMedGoods.guid }"class="btn-d btn-d-activate">明细</a></td>
                    </tr> -->
                    </tbody>
                </table>
                <div class="pagination m-20-0">
                    <em class="page">明细条目数【{{ mfhdeptSearch.total }}】</em>
                    <pagination
                            @page-change="getHospitalSupplierGoodsList(-1,mfhdeptSearch.search_EQ_supplierguid)"
                            :class="['m-20-0']"
                            :page-no.sync="mfhdeptSearch.page"
                            :total-pages.sync="mfhdeptSearch.totalPages">
                    </pagination>
                </div>
            </div>
        </div>
        <!--supply-supplylist end-->
    </div>
</template>
<script>
    module.exports = {
        data: function () {
            return {
                hospitalSupplierList: [],     //供应关系分类查询结果
                mFMedGoodsList: [],
                mFMedGoodsListImg: [],
                iCount: [],                   //外层记录内层数量
                activeI: [],                  //外层显示
                activeJ: [],                  //内层显示
                medguid: '',
                stateAll: 'all active',
                supplyRelationList: [],
                mfhdeptSearch: {
                    pageSize: 50,                                        //每页数量
                    page: 1,                                            //当前页
                    totalPages: 0,                                      //分页数
                    total: 0,                                           //数据总量
                    search_LIKE_goodsname: '',                          //商品名称模糊查询条件
// search_EQ_meddeptguid: '',                       //商品名称科室查询条件
                    search_EQ_supplierguid: '',                         //商品名称供应商查询条件
                    search_EQ_medguid: '',                              //商品名称医院查询条件
                    search_EQ_bizstate: this.ctns.bizstatey,            //商品有效状态
                    search_EQ_approvalstate: this.ctns.approvalstatey,  //供应商专属资料审批状态
                    search_EQ_guid: '',                                 // 商品的id
                },
                search: {
                    search_EQ_masterguid: '',
                    pageSize: 5,
                    page: 1,
                    total: 0,
                    totalPages: 0
                },
                countIndex: 0,
                supplySearch: {
                    search_EQ_bizstate: '',
                    search_LIKE_chinesename: '',
                },
                authoritySetting: {
                    oneSearchFlag: false,
                },
                guidd:''
            };
        },
        computed: {
            dual: function () {
                var self = this;
                var curMenuRole = this.$store.state.user.curMenuRole;
                self.medguid = this.$store.state.user.curUser.medguid;
                if (self.medguid != undefined && self.medguid != null) {
                    if (curMenuRole != undefined && curMenuRole != null) {
                        for (var i = 0; i < curMenuRole.length; i++) {
                            if (curMenuRole[i].menu != null) {
                                if (curMenuRole[i].menu.name == '供应商清单') {
                                    for (var j = 0; j < curMenuRole[i].buttonList.length; j++) {
// 一级菜单设置
                                        var name = curMenuRole[i].buttonList[j].name.trim();
                                        var isValid = curMenuRole[i].buttonList[j].isvalid;
                                        var level = curMenuRole[i].buttonList[j].level;
// 一级菜单设置
                                        if (!self.authoritySetting.oneSearchFlag && level == '1' && name == '查询' && isValid == 'y') {
                                            self.authoritySetting.oneSearchFlag = true;
                                        }
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
//this.$store.state.user.userName;
                return '';
            }
        },
        methods: {
            bizState: function (flag) {
                var self = this;
                if (flag == '') {
                    self.$set('stateAll', "all active");
                    self.$set('stateNo', "option");
                    self.$set('stateYes', "option");
                    self.$set('stateNY', "option");
                    self.$set('supplySearch.search_EQ_bizstate', flag);
                } else if (flag == self.ctns.bizstatey) {
                    self.$set('stateAll', "option");
                    self.$set('stateNo', "option");
                    self.$set('stateYes', "all active");
                    self.$set('stateNY', "option");
                    self.$set('supplySearch.search_EQ_bizstate', flag);
                } else if (flag == self.ctns.bizstates) {
                    self.$set('stateAll', "option");
                    self.$set('stateNo', "all active");
                    self.$set('stateYes', "option");
                    self.$set('stateNY', "option");
                    self.$set('supplySearch.search_EQ_bizstate', flag);
                } else if (flag == self.ctns.bizstatee) {
                    self.$set('stateAll', "option");
                    self.$set('stateNY', "all active");
                    self.$set('stateYes', "option");
                    self.$set('stateNo', "option");
                    self.$set('supplySearch.search_EQ_bizstate', flag);
                }
                self.getSupplyRelation();
            },
            getHospitalSupplierGoodsList: function (index, supplierguid) {
                var self = this;
                self.mfhdeptSearch.search_EQ_supplierguid = supplierguid;
                self.mfhdeptSearch.search_EQ_medguid = self.medguid;
                Ajax.get('/hospital/listHospitalContentGoods', this.mfhdeptSearch)
                    .then(function (response) {
                        var data = response.data;
                        if (data.errorCode == 0) {
                            self.$set('mFMedGoodsList', data.data.list);
                            self.$set('mFMedGoodsListImg', data.senData);
                            self.mfhdeptSearch.totalPages = data.data.totalPages;
                            self.mfhdeptSearch.total = data.data.total;
                        } else {
                            layer.msg(data.message);

                        }
// var data = response.data.data;
// self.$set('mFMedGoodsList',data.list);
// self.mfhdeptSearch.totalPages = data.totalPages;
// self.mfhdeptSearch.total = data.total;
//页面中无此方法  11-8 赵志杰
// self.getMyLicsRate();
                    })
//内层显示控制,-1代表分页
                if (index != -1) {
                    for (var i = 0; i < self.activeJ.length; i++) {
                        self.$set('activeJ[' + i + ']', false);
                    }
                    self.$set('activeJ[' + index + ']', true);
                }
            },
//外层显示控制
            activeIClick: function (indexI) {
                this.$set('activeI[' + indexI + ']', !this.activeI[indexI]);
            },
//通过内外层索引定位文件真实索引
            locationCalculation: function (indexI, indexJ) {
                var count = 0;
                for (var i = 0; i < indexI; i++) {
                    count += this.iCount[i];
                }
                return count + indexJ;
            },
// 通过医院GUID查询供应关系
            getSupplyRelation: function () {
                var self = this;
                Ajax.get('/hospital/listSupplyRelation', self.supplySearch)
                    .then(function (response) {
                        var data = response.data;
                        if (data.errorCode == 0) {


//内层循环计数器
                            var count = 0;
                            self.supplyRelationList = [];
                            for (var i = 0; i < data.data.length; i++) {
                                var supplyRelationListTemp = {};
                                supplyRelationListTemp.distrbGUID = data.data[i].DistrbGUID;

                                if (data.data[i].guid != null)
                                    supplyRelationListTemp.guidList = data.data[i].guid.split(",");

                                if (data.data[i].SupplierGUID != null)
                                    supplyRelationListTemp.supplierGuidList = data.data[i].SupplierGUID.split(",");
                                if (data.data[i].SupplierName != null)
                                    supplyRelationListTemp.supplierNameList = data.data[i].SupplierName.split(",");
                                if (data.data[i].SupplierBizState != null)
                                    supplyRelationListTemp.supplierBizStateList = data.data[i].SupplierBizState.split(",");
                                if (data.data[i].SupplierContacts != null)
                                    supplyRelationListTemp.supplierContacts = data.data[i].SupplierContacts.split(",");
                                if (data.data[i].SupplierContactTel != null)
                                    supplyRelationListTemp.supplierContactTel = data.data[i].SupplierContactTel.split(",");
//累加内层数量
                                count += supplyRelationListTemp.supplierGuidList.length;
//记录内层数量
                                self.iCount.push(supplyRelationListTemp.supplierGuidList.length);
//外层效果初始化
                                self.activeI.push(false);
                                self.supplyRelationList.push(supplyRelationListTemp);
                            }
                            self.getHospitalSupplierGoodsList(0,self.supplyRelationList[0].supplierGuidList[0]);
                           // self.$set('guidd',self.supplyRelationList[0].supplierGuidList[0])
                            for (var i = 0; i < count; i++) {
//内层效果初始化
                                self.activeJ.push(false);
                            }
                        } else {
                            layer.msg(data.message);
                        }
                    })
            },
            getMedGoodsGuid: function (guid) {
                var self = this;
                Ajax.get('/hospital/getMedGoodsGuid/' + guid)
                    .then(function (response) {
                        var data = response.data.data;
                        if (response.data.errorCode == 0) {
                            self.$route.router.go('/supplySupplyDetails/' + data);
                        } else {
                            layer.msg(response.data.message);

                        }
                    });
            },
            exportSupplyRelation: function() {
                var self = this;

                Ajax.get('/hospital/exportSupplyRelation', self.supplySearch)
                    .then(function(response) {
                        var data = response.data;
                        window.open(data);
                    })
            },
        },
        route: {
            activate: function () {
                var self=this;
                this.getSupplyRelation();

            }
        }
    };
</script>