Browse Source

订单详情中存取信息文案修改成“取药码”
订单管理-订单详情-药品详情增加药品规格
app设备列表页面:取消设备中的设备所属和设备编号
智能药柜APP-设备管理增加区域选择简索
智慧药房APP入库功能-药品库新增“药品编码”显示
智慧药房APP入库功能-药品库增加数字编号;方便医生知道放了多少种药品

lincl 3 years ago
parent
commit
c22d36f6b7

+ 2 - 1
mini-pro-web/src/api/login.js

@ -137,7 +137,8 @@ export function findOneUserFormat(data) {
			if(res && res.obj){
				// "saasAdmin": "管理员"; regionAdmin" "区域管理员" ; communityAdmin "社区管理员" ;  "  "replenisher": "补货员"
				var temArr = ['saasAdmin', 'regionAdmin', 'communityAdmin', 'replenisher']
				var roleList = _.map(res.obj.role, v=>{
				var role = res.obj.role instanceof Array? res.obj.role : [res.obj.role]
				var roleList = _.map(role, v=>{
					return {
						id: v.id,
						code: v.code,

+ 79 - 10
mini-pro-web/src/views/device/index.vue

@ -9,6 +9,21 @@
    <CustomList 
        ref="customList"
        @onLoad="onLoad">
        <div slot="search">
            <form action="/">
                <van-search
                    v-model="searchText"
                    placeholder="搜索"
                    show-action
                    @search="onSearch"
                    shape="round"
                >
                <div slot="action" class="plr5">
                    <van-icon @click="filterShow=true" style="vertical-align: text-bottom;" color="#17b3ec" size="20px" name="filter-o" />
                </div>
                </van-search>
            </form>
        </div>
        <div class="list plr15 pt10">
            <van-checkbox-group v-model="result">
                <div @click="gotoUrl('./detail', {id: item.id})" v-for="(item, i) in list" :key="i" class="item bgc-fff plr15 c-333 fs-14">
@ -36,8 +51,8 @@
                            <div>已入库药品数量:{{item.shangPinKuCun}}</div>
                            <div>待入库药品数量:{{item.daibushangpinshuliang}}</div>
                            <div>未设药品货道:{{item.weishezhishangpinhuodao}}</div>
                            <div>设备所属:{{item.community}}</div>
                            <div >设备编号:{{item.equNum}}</div>
                            <!-- <div>设备所属:{{item.community}}</div>
                            <div >设备编号:{{item.equNum}}</div> -->
                            <!-- <div>上次补货时间:{{item.shangyicibuhuoshijian}}</div> -->
                        </div>
                        <div class="fs-20 c-pr">
@ -48,21 +63,42 @@
            </van-checkbox-group>
        </div>
    </CustomList>
    
    <FilterPanel 
        v-model="filterShow" 
        :filterOpts="['community']"
        @onSubmit="onSubmit" 
        :extendList.sync="extendList"
        ref="Filter"/>
</div>
</template>
<script>
import FilterPanel from '@/views/order/components/Filter'
import medicineAbinetApi from '@/api/api-medicineAbinet'
export default{
    name: 'deviceIndex',
    components:{
        FilterPanel
    },
    data(){
        return {
            list: [],
            result: [],
            active: this.$route.query.active||this.$route.query.active===0? Number(this.$route.query.active) : 1,
            networkStatus: this.$route.query.networkStatus,
            community: this.$route.query.hospital,
            town: this.$route.query.town,
            
            filterShow: false,
            searchText: '',
            selcommunity: '',
            extendList: [{
                    name: '状态',
                    value: this.$route.query.networkStatus==undefined? '' : this.$route.query.networkStatus,
                    opts: [{name: '全部', value: ''},
                        {name: '在线', value: 1},
                        {name: '离线', value: 0},
                    ]
                }
            ]
        }
    },
    watch:{
@ -71,21 +107,46 @@ export default{
        }
    },
    created() {
        console.log(this.$route.query)
        
    },
    mounted(){
        // community: this.$route.query.hospital,
        // town: this.$route.query.town,
        if(this.$route.query.hospital||this.$route.query.town){
            this.selcommunity = {
                hospitalCode: this.$route.query.hospital||'',
                hospitalName: this.$route.query.hospitalName||'',
                town: this.$route.query.town||'',
                townName: this.$route.query.townName||'',
            }
        }
        this.$refs.Filter.submit(this.selcommunity)
    },
    methods:{
        $refreshData(){
            this.$refs.customList.refresh(true)
        },
        onLoad({page, pageSize, searchText}){
            var community = '', town = '', networkStatus = ''
            if(this.selcommunity){
                community = this.selcommunity.hospitalCode||this.selcommunity.hospital||''
                town = community? '' : (this.selcommunity.town||'')
            }
            debugger
            if(this.extendList[0].value!==undefined){
                networkStatus = this.extendList[0].value
            }
            
            var p = {
                networkStatus: this.networkStatus!=undefined? this.networkStatus : '',
                content: searchText,
                networkStatus: networkStatus,
                content: this.searchText,
                userId: this.user.id,
                page: page,
                size: pageSize,
                community: this.community || '',
                town: this.community? '' : (this.town || '')
                community,
                town
            }
            var func
            if(this.active === 0){
@ -113,6 +174,14 @@ export default{
        },
        accessKzl(item){
            return item.kongzhilv? Number((item.kongzhilv*100).toFixed(2)) : 0
        },
        onSearch(){
            this.list = []
            this.$refs.customList.refresh(true)
        },
        onSubmit(data){
            this.selcommunity = data.selcommunity
            this.onSearch()
        }
    },
}

+ 6 - 6
mini-pro-web/src/views/index/Index.vue

@ -75,8 +75,8 @@
				<div class="box-flex-c c-333 fs-16 f-bold">取药次数</div>
                <div class="box-flex-c c-333 fs-12 f-bold time">
                    <ul class="ul">
                        <li @click="medicineTime('1')" :class="medicineBag == '1' ? 'li-bag':''">今日</li>
                        <li @click="medicineTime('7')" :class="medicineBag == '7' ? 'li-bag':''">7日</li>
                        <li @click="medicineTime('1')" class="border-r" :class="medicineBag == '1' ? 'li-bag':''">今日</li>
                        <li @click="medicineTime('7')" class="border-r" :class="medicineBag == '7' ? 'li-bag':''">7日</li>
                        <li @click="medicineTime('30')" class="border-r" :class="medicineBag == '30' ? 'li-bag':''">30日</li>
                        <li @click="medicineTime('90')" class="border-r" :class="medicineBag == '90' ? 'li-bag':''">90日</li>
                        <li @click="medicineTime('全部')" :class="medicineBag == '' ? 'li-bag':''">全部</li>
@ -100,8 +100,8 @@
				<div class="box-flex-c c-333 fs-16 f-bold">电子处方单</div>
                <div class="box-flex-c c-333 fs-12 f-bold time">
                    <ul class="ul">
                        <li @click="prescriptionTime('1')" :class="prescriptionBag == '1' ? 'li-bag':''">今日</li>
                        <li @click="prescriptionTime('7')" :class="prescriptionBag == '7' ? 'li-bag':''">7日</li>
                        <li @click="prescriptionTime('1')" class="border-r" :class="prescriptionBag == '1' ? 'li-bag':''">今日</li>
                        <li @click="prescriptionTime('7')" class="border-r" :class="prescriptionBag == '7' ? 'li-bag':''">7日</li>
                        <li @click="prescriptionTime('30')" class="border-r" :class="prescriptionBag == '30' ? 'li-bag':''">30日</li>
                        <li @click="prescriptionTime('90')" class="border-r" :class="prescriptionBag == '90' ? 'li-bag':''">90日</li>
                        <li @click="prescriptionTime('全部')" :class="prescriptionBag == '' ? 'li-bag':''">全部</li>
@ -124,8 +124,8 @@
				<div class="box-flex-c c-333 fs-16 f-bold">销售额</div>
                <div class="box-flex-c c-333 fs-12 f-bold time">
                    <ul class="ul">
                        <li @click="salesTime('1')" :class="salesBag == '1' ? 'li-bag':''">今日</li>
                        <li @click="salesTime('7')" :class="salesBag == '7' ? 'li-bag':''">7日</li>
                        <li @click="salesTime('1')" class="border-r" :class="salesBag == '1' ? 'li-bag':''">今日</li>
                        <li @click="salesTime('7')" class="border-r" :class="salesBag == '7' ? 'li-bag':''">7日</li>
                        <li @click="salesTime('30')" class="border-r" :class="salesBag == '30' ? 'li-bag':''">30日</li>
                        <li @click="salesTime('90')" class="border-r" :class="salesBag == '90' ? 'li-bag':''">90日</li>
                        <li @click="salesTime('全部')" :class="salesBag == '' ? 'li-bag':''">全部</li>

+ 3 - 1
mini-pro-web/src/views/index/scss/index.scss

@ -199,9 +199,11 @@
                border-top-right-radius:28px;
                border-bottom-right-radius:28px;
                .ul{
                    width: 100%;
                    li{
                        box-sizing: border-box;
                        float:left;
                        width:40px;
                        width: calc(100% / 5);
                        height:28px;
                        text-align:center;
                        line-height:28px;

+ 63 - 24
mini-pro-web/src/views/order/components/Filter.vue

@ -3,36 +3,52 @@
        <van-popup v-model="filterShow" position="right">
            <div class="fs-14 c-333  filter-panel">
                <div class="inner-content plr15">
                    <div class="ptb10">按社区</div>
                    <div class="drop-menu" :class="{active: drowMenuShow}">
                        <div class="drop-menu-title tc fs-14" @click="drowMenuShow=!drowMenuShow">
                            <span class="v-middle">{{selcommunity? (selcommunity.hospitalCode? selcommunity.hospitalName : selcommunity.townName) : '全部'}}</span>
                            <van-icon name="arrow-down" />
                        </div>
                        <div class="drop-menu-area kitbox">
                            <div class="drop-menu-area-left" v-if="townList&&townList.length">
                                <van-sidebar v-model="activeKey">
                                    <van-sidebar-item v-for="(item, i) in townList" :key="i" :title="item.townName" />
                                </van-sidebar>
                    <div class="filter-item-panel" v-if="hasCommunity">
                        <div class="ptb10">按社区</div>
                        <div class="drop-menu" :class="{active: drowMenuShow}">
                            <div class="drop-menu-title tc fs-14" @click="drowMenuShow=!drowMenuShow">
                                <span class="v-middle">{{selcommunity? (selcommunity.hospitalCode? selcommunity.hospitalName : selcommunity.townName) : '全部'}}</span>
                                <van-icon name="arrow-down" />
                            </div>
                            <div class="drop-menu-area-right">
                                <div v-for="(item, i) in communityList" :key="i" @click="selcommunity=item;drowMenuShow=false;">{{item.hospitalName}}</div>
                            <div class="drop-menu-area kitbox">
                                <div class="drop-menu-area-left" v-if="townList&&townList.length">
                                    <van-sidebar v-model="activeKey">
                                        <van-sidebar-item v-for="(item, i) in townList" :key="i" :title="item.townName" />
                                    </van-sidebar>
                                </div>
                                <div class="drop-menu-area-right">
                                    <div v-for="(item, i) in communityList" :key="i" @click="selcommunity=item;drowMenuShow=false;">{{item.hospitalName}}</div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="ptb10 mt10">按时间</div>
                    <div class="">
                        <van-tag @click="endDate='';startDate='';dateType=item.value" v-for="(item, i) in dateTypeOpts" :key="i" :class="{active: item.value===dateType}" type="primary" round>{{item.name}}</van-tag>
                    
                    <div class="filter-item-panel" v-if="hasDate">
                        <div class="ptb10">按时间</div>
                        <div class="">
                            <van-tag @click="endDate='';startDate='';dateType=item.value" v-for="(item, i) in dateTypeOpts" :key="i" :class="{active: item.value===dateType}" type="primary" round>{{item.name}}</van-tag>
                        <van-tag @click="pickDate(1)" type="primary" round :class="{active: startDate}">{{(startDate&&$moment(startDate).format('YYYY-MM-DD')) || '请选择日期'}}</van-tag>
                        <van-tag class="small" type="primary" round>至</van-tag>
                        <van-tag @click="pickDate(2)" type="primary" round :class="{active: endDate}">{{(endDate&&$moment(endDate).format('YYYY-MM-DD')) || '请选择日期'}}</van-tag>
                            <van-tag @click="pickDate(1)" type="primary" round :class="{active: startDate}">{{(startDate&&$moment(startDate).format('YYYY-MM-DD')) || '请选择日期'}}</van-tag>
                            <van-tag class="small" type="primary" round>至</van-tag>
                            <van-tag @click="pickDate(2)" type="primary" round :class="{active: endDate}">{{(endDate&&$moment(endDate).format('YYYY-MM-DD')) || '请选择日期'}}</van-tag>
                        </div>
                    </div>
                    <div class="ptb10">按类型</div>
                    <div class="">
                        <van-tag @click="state=item.value" v-for="(item, i) in stateOpts" :key="i" :class="{active: item.value===state}" type="primary" round>{{item.name}}</van-tag>
                    <div class="filter-item-panel" v-if="hasType">
                        <div class="ptb10">按类型</div>
                        <div class="">
                            <van-tag @click="state=item.value" v-for="(item, i) in stateOpts" :key="i" :class="{active: item.value===state}" type="primary" round>{{item.name}}</van-tag>
                        </div>
                    </div>
                    <template v-if="extendList&&extendList.length>0">
                    <div v-for="(citem, k) in extendList" :key="k" class="filter-item-panel" >
                        <div class="ptb10">{{citem.name}}</div>
                        <div class="">
                            <van-tag @click="citem.value=item.value" v-for="(item, i) in citem.opts" :key="i" :class="{active: item.value===citem.value}" type="primary" round>{{item.name}}</van-tag>
                        </div>
                    </div>
                    </template>
                </div>
                <div class="buttons kitbox ">
@ -59,7 +75,7 @@
import { findOneUser} from "@/api/login";
import medicineAbinetApi from '@/api/api-medicineAbinet'
export default{
    props: ['value'],
    props: ['value', 'filterOpts', 'extendList'],
    data(){
        return {
            communityText: '全部',
@ -103,6 +119,17 @@ export default{
            dateType: 3
        }
    },
    computed:{
        hasCommunity(){
            return !this.filterOpts || this.filterOpts.indexOf('community')!=-1
        },
        hasDate(){
            return !this.filterOpts || this.filterOpts.indexOf('date')!=-1
        },
        hasType(){
            return !this.filterOpts || this.filterOpts.indexOf('type')!=-1
        },
    },
    watch: {
        value(n){
            this.filterShow = n
@ -135,6 +162,11 @@ export default{
            this.dateType = 3
            this.selcommunity = ''
            this.state = ''
            if(this.extendList && this.extendList.length){
                this.extendList.forEach(v=>{
                    v.value = v.defaultVal===undefined||v.defaultVal===''? '' : v.defaultVal
                })
            }
        },
        submit(selcommunity, state, allTime){
            console.log('selcommunity', this.selcommunity)
@ -171,7 +203,8 @@ export default{
                selcommunity: this.selcommunity,
                sellState: this.state,
                startTime,
                endTime
                endTime,
                extendList: this.extendList
            })
            this.$emit('input', false)
        },
@ -332,6 +365,12 @@ export default{
        .inner-content{
            overflow-y: auto;
            height: calc(100% - 60px);
            .filter-item-panel{
                margin-top: 10px;
                &:first-child{
                    margin-top: 0;
                }
            }
        }
        .community-input{
            border: 1px solid #ccc;

+ 2 - 1
mini-pro-web/src/views/order/detail/components/DrugList.vue

@ -9,7 +9,8 @@
            </div>
            <div class="pl10 box-flex-1">
                <div class="ellipsis">{{item.goodsName}}</div>
                <div class="pt8">¥{{getMoney(item)}}</div>
                <div class="">规格:{{item.specif}}</div>
                <div class="">¥{{getMoney(item)}}</div>
            </div>
            <div class="kitbox box-v-middle pl15">x{{item.quantity}}</div>
        </div>

+ 1 - 0
mini-pro-web/src/views/order/detail/components/LogList.vue

@ -6,6 +6,7 @@
                <div class="box-flex-1">药品名称: <span>{{item.drugName}}</span></div>
                <div>x1</div>
            </div>
            <div>药品规格: <span>{{item.specif}}</span></div>
            <div>设备日志: <span>{{item.status==2? '(无异常)出货成功' : item.description}}</span></div>
            <div>设备名称: <span>{{item.equName}}</span></div>
            <div class="out-img"><span>出货图片: </span><img @click="preview(item.pic)" :src="setImgUrl(item.pic)" alt=""></div>

+ 2 - 2
mini-pro-web/src/views/order/detail/index.vue

@ -26,8 +26,8 @@
                <div>{{info.sellStateName}}</div>
            </div>
            <div class="row">
                <div>存取信息</div>
                <div>取药码 {{info.pickUpNum}}</div>
                <div>取药码</div>
                <div>{{info.pickUpNum}}</div>
            </div>
        </div>

+ 1 - 1
mini-pro-web/src/views/order/list.vue

@ -61,7 +61,7 @@
                        <div>来源机构:{{item.community}}</div>
                        <div>订单类型:{{item.orderTypeName || "线上订单"}}</div>
                        <div>开方时间:{{formatDatetime(item.prescribeTime)}}</div>
                        <div>存取信息:取药码 {{item.pickUpNum}}</div>
                        <div>取药码:{{item.pickUpNum}}</div>
                    </div>
                    <div class="ptb10 bt-e1e1e1">¥{{item.amount}}</div>
                </div>

+ 17 - 0
mini-pro-web/src/views/replenishment/start/deviceDetail.vue

@ -60,12 +60,14 @@
            <div class="list box-flex-1 bgc-fff">
                <div v-if="activeKey===0" class="plr10">
                    <div @click="toQuick(item)" class="drug-item kitbox" v-for="(item, k) in curItem.list" :key="k">
                        <div class="sort" v-if="!curOrder" ><div>{{k+1}}</div></div>
                        <div class="photo">
                            <img src="@/assets/images/drug_default.png" alt="">
                        </div>
                        <div class="box-flex-1 pl10">
                            <div class="fs-15 ellipsis_1 c-333">{{item.drugName}}</div>
                            <div class="fs-14 c-666">
                                <div>编码:{{item.drugCode}}</div>
                                <div>规格:{{item.specif}}</div>
                                <div>当前库存量:{{item.qty||item.inventoryNum||Number(item.total||0)}}</div>
                                <div v-if="curOrder">未放置数量:{{accessLeftNum(item)}}</div>
@ -635,6 +637,21 @@ export default{
                width: 60px;
                border-radius: 5px;
            }
            .sort{
                display: -webkit-box;
                padding-right: 10px;
                padding-top: 20px;
                >div{
                    font-size: 14px;
                    line-height: 20px;
                    width: 20px;
                    height: 20px;
                    background: #17b3ec;
                    border-radius: 50%;
                    color: #fff;
                    text-align: center
                }
            }
        }
    }
    .left-list, .list{