lincl 2 lat temu
rodzic
commit
5b582381e9

+ 7 - 2
mini-pro-web/src/api/api-medicineAbinet.js

@ -3,8 +3,13 @@ import {BASE} from "@/api/apiGateway"
let service = {
let service = {
	reviewerOrder: function(data) {
		return request({
			url: `${BASE}/baseOrder/reviewerOrder`,
			method: "post",
			data
		});
    },
	//备药单相关接口 start
	//备药单相关接口 start
	replenishList: function(params) {
	replenishList: function(params) {
		return request({
		return request({

+ 1 - 0
mini-pro-web/src/components/layout/components/AppBotNav.vue

@ -68,6 +68,7 @@ export default {
		]
		]
		if(this.$hasAuth('orderManage')){
		if(this.$hasAuth('orderManage')){
			urls.push({url: "orderList", count: 0, name: "订单管理", icon1: require('@/assets/images/diandanguanli_icon.png'), icon2: require('@/assets/images/diandanguanli01_icon.png')})
			urls.push({url: "orderList", count: 0, name: "订单管理", icon1: require('@/assets/images/diandanguanli_icon.png'), icon2: require('@/assets/images/diandanguanli01_icon.png')})
			urls.push({url: "orderListPending", count: 0, name: "待审方", icon1: require('@/assets/images/diandanguanli_icon.png'), icon2: require('@/assets/images/diandanguanli01_icon.png')})
		}
		}
		if(this.$hasAuth('device', 'operate')){
		if(this.$hasAuth('device', 'operate')){
			urls.push({url: "deviceIndex", count: 0, name: "设备管理", icon1: require('@/assets/images/shebeigaunli_icon.png'), icon2: require('@/assets/images/shebeigaunli01_icon.png')})
			urls.push({url: "deviceIndex", count: 0, name: "设备管理", icon1: require('@/assets/images/shebeigaunli_icon.png'), icon2: require('@/assets/images/shebeigaunli01_icon.png')})

+ 10 - 0
mini-pro-web/src/router/order.js

@ -24,6 +24,16 @@ const routeMap = [
                    hasBot: false
                    hasBot: false
                },
                },
				component: () => import("@/views/order/detail/index.vue")
				component: () => import("@/views/order/detail/index.vue")
            },
            {
                path: "/order/list/pending",
                name: "orderListPending",
                meta: {
                    title: "待审方",
                    hasTop: false,
                    hasBot: true
                },
				component: () => import("@/views/order/listPending.vue")
            },
            },
		]
		]
    }
    }

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

@ -13,6 +13,21 @@
                <div>开方时间</div>
                <div>开方时间</div>
                <div>{{formatDatetime(info.prescribeTime)}}</div>
                <div>{{formatDatetime(info.prescribeTime)}}</div>
            </div>
            </div>
            <div class="row">
                <div>患者姓名</div>
                <div>{{info.patientName || "--"}}</div>
            </div>
            <div class="row">
                <div>医保卡号</div>
                <div>{{info.socialSecurityCardNum || "--"}}</div>
            </div>
            <div class="row">
                <div>开方医生</div>
                <div>{{info.doctorName || "--"}}</div>
            </div>
            <div class="row">
            <div class="row">
                <div>订单金额</div>
                <div>订单金额</div>
                <div>¥{{info.amount}}</div>
                <div>¥{{info.amount}}</div>
@ -51,6 +66,38 @@
                </div>
                </div>
            </van-tab>
            </van-tab>
        </van-tabs>
        </van-tabs>
        <div v-if="info.reviewerState==0" class="bot-button">
            <div class="bot-button-inner bot-button-inner-fixed">
                <div><van-button @click="show=true" round block type="danger">不通过</van-button></div>
                <div><van-button @click="reviewerOrder(1, '')" round block type="primary" color="#17b3ec">审方通过</van-button></div>
            </div>
        </div>
        <van-popup v-model="show" position="bottom" >
            <div class="plr20">
                <div class="ptb15 fs-14">请填写不通过原因</div>
                <div class="text-ipt">
                    <van-cell-group >
                        <van-field
                            v-model="reviewerContent"
                            rows="5"
                            label=""
                            type="textarea"
                            maxlength="500"
                            placeholder="请输入.."
                            show-word-limit
                        />
                    </van-cell-group>
                </div>
            </div>
            <div class="ptb15">
                <div class="bot-button-inner">
                    <div><van-button @click="show=false" round block type="danger">返回</van-button></div>
                    <div><van-button @click="reviewerOrder(-1, reviewerContent)" round block type="primary" color="#17b3ec">确定</van-button></div>
                </div>
            </div>
        </van-popup>
    </div>
    </div>
</template>
</template>
<script>
<script>
@ -69,7 +116,9 @@ export default{
    data(){
    data(){
        return {
        return {
            id: this.$route.query.id,
            id: this.$route.query.id,
            info: ''
            info: '',
            show: false,
            reviewerContent: ''
        }
        }
    },
    },
    created() {
    created() {
@ -107,6 +156,52 @@ export default{
                images,
                images,
                startPosition
                startPosition
            });
            });
        },
        reviewerOrder(reviewerState, reviewerContent){
            new Promise((resolve, reject)=>{
                if(reviewerState == 1){
                    this.$dialog.confirm({
                        title: '提示',
                        message: '确定审核通过?',
                    })
                    .then(() => {
                        resolve()
                    })
                    .catch(() => {
                        reject()
                    });
                } else {
                    if(this.reviewerContent === ''){
                        this.$toast("请填写原因")
                        return reject()
                    }
                    resolve()
                }
            }).then(res=>{
                this.$loading('加载中..')
                let p = {
                    orderId: this.id,
                    reviewerState,
                    reviewerContent
                }
                medicineAbinetApi
                    .reviewerOrder(p)
                    .then(res=>{
                        console.log('reviewerOrder', res)
                        if(res.status == 200){
                            this.$toast("审方成功")
                            this.setBackRefresh(true)
                            this.info.reviewerState = reviewerState
                            this.show = false
                        } 
                    })
                    .catch(err=>{
                        console.error(err)
                    })
            }).catch(err=>{
                console.error(err)
            })
            
        }
        }
    },
    },
}
}
@ -146,5 +241,25 @@ export default{
            }
            }
        }
        }
    }
    }
    .bot-button{
        height: 100px;
    }
    .bot-button-inner{
        display: -webkit-box;
        padding:0 10px;
        &.bot-button-inner-fixed{
            position: fixed;
            bottom: 20px;
            width: 100%;
        }
        >div{
            width: 50%;
            padding:0 10px;
        }
    }
    .text-ipt{
        border: 1px solid #e1e1e1;
    }
}
}
</style>
</style>

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

@ -10,7 +10,7 @@
                        @search="onSearch"
                        @search="onSearch"
                        shape="round"
                        shape="round"
                    >
                    >
                    <div slot="action" class="plr5">
                    <div v-if="type!='pending'" slot="action" class="plr5">
                        <van-icon @click="filterShow=true" style="vertical-align: text-bottom;" color="#17b3ec" size="20px" name="filter-o" />
                        <van-icon @click="filterShow=true" style="vertical-align: text-bottom;" color="#17b3ec" size="20px" name="filter-o" />
                    </div>
                    </div>
                    </van-search>
                    </van-search>
@ -51,11 +51,12 @@
            :searchfun="false"
            :searchfun="false"
			@onLoad="onLoad">
			@onLoad="onLoad">
			<div class="list plr15">
			<div class="list plr15">
                <div @click="gotoUrl('./detail', {id: item.id})" v-for="(item, i) in list" :key="i" class="item plr15 c-333 fs-14">
                <div @click="gotoUrl('/order/detail', {id: item.id})" v-for="(item, i) in list" :key="i" class="item plr15 c-333 fs-14">
                    <div class="kitbox ptb10 bb-e1e1e1">
                    <div class="kitbox ptb10 bb-e1e1e1">
                        <div class="box-flex-1 fs-14">订单编号:{{item.prescribeNum}}</div>
                        <div class="box-flex-1 fs-14">订单编号:{{item.prescribeNum}}</div>
                        <div v-if="item.sellState==1" class="c-17b3ec">{{item.sellStateName}}</div>
                        <div v-if="item.sellState==1" class="c-17b3ec">{{item.sellStateName}}</div>
                        <div v-else class="" >{{item.sellStateName}}</div>
                        <div v-else class="" >{{item.sellStateName}}</div>
                        <div>-<span class="c-17b3ec" v-if="item.reviewerState==1">审核通过</span><span class="c-ff5e6c" v-else-if="item.reviewerState==-1">审核不通过</span><span v-else>未审方</span></div>
                    </div>
                    </div>
                    <div class="lh20 ptb10">
                    <div class="lh20 ptb10">
                        <div>来源机构:{{item.community}}</div>
                        <div>来源机构:{{item.community}}</div>
@ -68,7 +69,7 @@
            </div>
            </div>
		</CustomList>
		</CustomList>
        <FilterPanel v-model="filterShow" @onSubmit="onSubmit" ref="Filter"/>
        <FilterPanel v-if="type!='pending'" v-model="filterShow" :extendList="extendList" @onSubmit="onSubmit" ref="Filter"/>
        <!-- <van-popup v-model="filterShow" position="right">
        <!-- <van-popup v-model="filterShow" position="right">
            <div class="fs-14 c-333 plr15 filter-panel">
            <div class="fs-14 c-333 plr15 filter-panel">
                <div class="ptb10">按社区</div>
                <div class="ptb10">按社区</div>
@ -119,6 +120,7 @@ import medicineAbinetApi from '@/api/api-medicineAbinet'
import { findOneUser} from "@/api/login";
import { findOneUser} from "@/api/login";
export default{
export default{
    name: 'orderList',
    name: 'orderList',
    props: ['type'],
    components:{
    components:{
        FilterPanel
        FilterPanel
    },
    },
@ -147,6 +149,17 @@ export default{
            communityList: [],
            communityList: [],
            selcommunity: '',
            selcommunity: '',
            sellState: '',
            sellState: '',
            extendList: [{
                name: "按审方状态",
                value: this.type == 'pending'? 0 : '',
                opts: [
                    {name: '全部', value: ""},
                    {name: '未审方', value: 0},
                    {name: '审方通过', value: 1},
                    {name: '审方不通过', value: -1},
                ],
            }]
        }
        }
    },
    },
    watch: {
    watch: {
@ -155,7 +168,9 @@ export default{
        }
        }
    },
    },
    created() {
    created() {
        
        if(this.type == 'pending'){
            this.startDate = this.$moment("2000-01-01")
        }
    },
    },
    mounted(){
    mounted(){
        var allTime = false
        var allTime = false
@ -171,9 +186,14 @@ export default{
            this.sellState = this.$route.query.sellState
            this.sellState = this.$route.query.sellState
            allTime = true
            allTime = true
        }
        }
        this.$refs.Filter.submit(this.selcommunity, this.sellState, allTime)
        if(this.type != 'pending'){
            this.$refs.Filter.submit(this.selcommunity, this.sellState, allTime)
        }
    },
    },
    methods:{
    methods:{
        $refreshData(){
            this.$refs.customList.refresh(true)
        },
        onLoad({page, pageSize, searchText}){
        onLoad({page, pageSize, searchText}){
            var { startDate, endDate } = this
            var { startDate, endDate } = this
            var p 
            var p 
@ -195,8 +215,9 @@ export default{
                    endTime: endDate? this.$moment(endDate).format('YYYY-MM-DD 23:59:59') : '',
                    endTime: endDate? this.$moment(endDate).format('YYYY-MM-DD 23:59:59') : '',
                    userId: this.user.id,
                    userId: this.user.id,
                    community,
                    community,
                    town,
                    sellState: this.sellState,
                    sellState: this.sellState,
                    reviewerState: this.extendList[0].value,
                    town,
                    page: page,
                    page: page,
                    size: pageSize
                    size: pageSize
                } 
                }