添加队列状态

This commit is contained in:
zoujiandong 2024-06-04 08:54:39 +08:00
parent 23a4074709
commit 20ad78b4e8
5 changed files with 337 additions and 131 deletions

1
components.d.ts vendored
View File

@ -15,6 +15,7 @@ declare module '@vue/runtime-core' {
ChatRecord: typeof import('./src/components/chatRecord.vue')['default']
ConfirmModal: typeof import('./src/components/confirmModal.vue')['default']
copy: typeof import('./src/components/isOkModal copy.vue')['default']
CouponDetail: typeof import('./src/components/couponDetail.vue')['default']
DeleteModal: typeof import('./src/components/DeleteModal.vue')['default']
DoctorModal: typeof import('./src/components/doctorModal.vue')['default']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']

View File

@ -0,0 +1,300 @@
<template>
<!-- Modal -->
<a-modal
v-model:visible="modalVisible"
fullscreen
:title="modalForm.coupon_id ? '编辑优惠卷' : '创建优惠卷'"
title-align="start"
:auto-label-width="true"
:footer="false"
@cancel="handleClose"
>
<div class="titlebox">
<div class="bar"></div>
<div class="name">优惠卷信息</div>
</div>
<a-form :model="modalForm" ref="modalFormRef" :auto-label-width="true">
<a-row :gutter="24" style="margin-top: 35px">
<a-col :span="12">
<a-form-item field="inquiry_no" label="优惠卷名称:">
<a-input
placeholder="请输入优惠卷名称"
v-model="modalForm.coupon_name"
></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="inquiry_no" label="使用平台:">
<a-select
placeholder="请选择使用平台"
v-model="modalForm.coupon_client"
>
<a-option :key="1" :value="1" label="小程序">小程序</a-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="application_scope" label="使用范围:">
<a-select
@change="changeScope"
placeholder="请选择使用范围"
v-model="modalForm.application_scope"
>
<!-- 1:全场通用 2:问诊 3:按品牌适用 4:按类别适用 5:单品使用 6:全品类药品 -->
<a-option :key="1" :value="1" label="全场通用">全场通用</a-option>
<a-option :key="2" :value="2" label="问诊">问诊</a-option>
<a-option :key="3" :value="3" label="按品牌适用"
>按品牌适用</a-option
>
<a-option :key="4" :value="4" label="按类别适用"
>按类别适用</a-option
>
<a-option :key="5" :value="5" label="单品使用">单品使用</a-option>
<a-option :key="6" :value="6" label="全品类药品"
>全品类药品</a-option
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="coupon_type" label="发放类型:">
<a-select
placeholder="请选择发放类型"
v-model="modalForm.coupon_type"
@change="changeType"
>
<!-- 1 :无门槛 2:满减 3:数量 -->
<a-option :key="1" :value="1" label="无门槛">无门槛</a-option>
<a-option :key="2" :value="2" label="满减">满减</a-option>
<a-option :key="3" :value="3" label="数量">数量</a-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="inquiry_type" label="有效时间:">
<a-range-picker
style="width: 360px; margin: 0 24px 24px 0"
show-time
:time-picker-props="{ defaultValue: ['00:00:00', '09:09:06'] }"
format="YYYY-MM-DD HH:mm"
@change="onChange"
@select="onSelect"
@ok="onOk"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="valid_type" label="有效类型:">
<a-select
placeholder="请选择发放类型"
v-model="modalForm.valid_type"
@change="changeValidType"
>
<!-- 有效类型1:绝对时效xxx-xxx时间段有效 2:相对时效 n天内有效 -->
<a-option :key="1" :value="1" label="绝对时效">绝对时效</a-option>
<a-option :key="2" :value="2" label="相对时效">相对时效</a-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="valid_days" label="有效天数:">
<a-input-number v-model="modalForm.valid_days" :style="{width:'320px'}" placeholder="请输入有效天数" class="input-demo" :min="1" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="inquiry_type" label="发放个数:">
<a-input-number v-model="value" :style="{width:'320px'}" placeholder="请输入发放个数" class="input-demo" :min="1" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="with_amount" label="满减金额(元):">
<a-input-number v-model="modalForm.with_amount" :style="{width:'320px'}" placeholder="请输入满减金额" class="input-demo" :min="0" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="min_usable_number" label="单商品最小可使用数量:">
<a-input-number v-model="modalForm.min_usable_number" :style="{width:'320px'}" placeholder="请输入单商品最小可使用数量" class="input-demo" :min="1" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="distribution_with_day" label="发放关联天数:">
<a-input-number v-model="modalForm.distribution_with_day" :style="{width:'320px'}" placeholder="请输入发放关联天数" class="input-demo" :min="1" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="brand_id" label="关联品牌:">
<a-input-number v-model="modalForm.brand_id" :style="{width:'320px'}" placeholder="请选择关联品牌" class="input-demo" :min="1" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="product_id" label="关联商品:">
<a-input-number v-model="modalForm.product_id" :style="{width:'320px'}" placeholder="请选择关联商品" class="input-demo" :min="1" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col a-col :span="24">
<a-form-item field="inquiry_type" label="是否发放:">
<a-switch v-model="modalForm.coupon_status" :checked-value="1" :disabled="modalForm.coupon_status==1"/>
</a-form-item>
</a-col>
</a-row>
</a-form>
<a-divider />
<div class="titlebox">
<div class="bar"></div>
<div class="name">操作</div>
</div>
<a-row :gutter="24" style="margin-top: 35px">
<a-col :span="24">
<a-form-item field="" label="" no-style>
<a-space
style="margin-right: 8px"
>
<a-button
type="primary"
v-has="'admin:sysProductList:report'"
@click="
() => {
isVisible = true;
modalForm.coupon_id='';
}
"
>添加</a-button
>
</a-space>
<!-- 订单状态=2退款状态=45支付状态=2上报状态!=1 -->
<a-space
style="margin-right: 8px"
>
<a-button
type="primary"
v-has="'admin:sysProductList:cancel'"
status="danger"
@click="
() => {
okVisible = true;
modalForm.coupon_id='';
}
"
>保存</a-button
>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-modal>
<!-- 医生详情弹框 -->
<doctorModal
:doctorVisible="doctorVisible"
:doctor_id="doctor_id"
@doctorVisibleChange="
() => {
doctorVisible = false;
doctor_id = '';
}
"
></doctorModal>
<!-- 患者详情弹窗 -->
<patientModal
:patientVisible="patientVisible"
:data="patientData"
@patientVisibleChange="
() => {
patientVisible = false;
}
"
></patientModal>
</template>
<script setup>
import { ref, toRefs, reactive, watch, nextTick } from 'vue';
import { formatDoctorTitle } from '@/utils/format';
import { parseTime } from '@/utils/parseTime';
import { inquiryCase } from '@/api/order/list';
import {
formatInquiryType,
formatInquiryStatus,
formatMode,
} from '@/utils/format';
const emits = defineEmits(['closeChange']);
const props = defineProps({
//
modalVisible: {
type: Boolean,
default: false,
},
modalForm: {
type: Object,
default: {
order_inquiry_case: {
inquiry_case_id: '',
},
},
},
});
const doctorVisible = ref(false);
const doctor_id = ref('');
const patientVisible = ref(false);
const patientData = reactive({});
const { modalVisible, modalForm } = toRefs(props);
const order_inquiry_id = ref('');
watch(
() => props.modalForm,
() => {
if (
props.modalForm.order_inquiry_case &&
props.modalForm.order_inquiry_case.inquiry_case_id
) {
let id = props.modalForm.order_inquiry_case.inquiry_case_id;
inquiryCase(id).then((data) => {
Object.assign(patientData, data.data);
});
}
},
{ immediate: true, deep: true }
);
const changeType=(val)=>{
alert(val)
}
const changeValidType=(val)=>{
alert(val)
}
const changeScope=(val)=>{
alert(val)
}
const changeObject=(val)=>{
alert(val)
}
const handleClose = () => {
emits('closeChange', (modalVisible.value = false));
};
</script>
<style scoped>
.infobox {
display: flex;
flex-direction: column;
justify-content: space-between;
}
</style>

View File

@ -311,7 +311,6 @@ const handleClose = () => {
</script>
<style scoped>
.headImg {
margin-right: 20px;
border-radius: 50%;

View File

@ -83,10 +83,12 @@
<template #application_scope="{record}">
<div>{{formatCouponRange(record.application_scope)}}</div>
</template>
<template #coupon_type="{record}">
<div>{{formatCouponType(record. coupon_type)}}</div>
</template>
<template #coupon_status="{ record }">
<!-- 1:正常 2:强制失效 3:结束 4:删除 -->
<a-switch @click="showCoupon(value,record)" v-model="record.coupon_status" :loading="loading" :disabled="record.coupon_status==2" :checked-value="1" />
</template>
<template #action="{ record }">
@ -98,129 +100,7 @@
</a-table>
<!-- Modal -->
<a-modal v-model:visible="modalVisible" fullscreen :title="modalTitle" title-align="start" :footer="false"
@close="() => {$refs.modalFormRef.resetFields(); modalForm.coupon_id = null;}">
<div class="titlebox">
<div class="bar"></div>
<div class="name">用户信息</div>
</div>
<a-form :model="modalForm" :disabled="modalSatus=='detail' || modalForm.iden_auth_status==2
" ref="modalFormRef" :auto-label-width="true">
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="avatar" label="用户头像:">
<a-space size="large">
<a-image width="80" height="80" class="headImg" :src="modalForm.avatar">
</a-image>
</a-space>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="user_name" label="用户姓名:">
<span>{{modalForm.user_name}}</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="idCard" label="用户手机号:">
<div class="box">
<div class="cardNum">{{modalForm.mobile}}</div>
<!-- <icon-eye-invisible class="eye" @click="handelDecryptCard(modalForm.user_id)" /> -->
</div>
<!-- <div class="box" v-show="showEye && modalSatus!='add'">
<div class="cardNum">{{id_card_num}}</div>
<icon-eye class="eye" @click="()=>{showEye=false}" />
</div> -->
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-item field="status" label="用户状态:">
<!-- 0:禁用 1:正常 2:删除 -->
<span v-if="modalForm.status==0">禁用</span>
<span v-else-if="modalForm.status==1">正常</span>
<span v-else-if="modalForm.status==2">删除</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="multi_point_status" label="注册时间:">
<span v-if="parseTime(modalForm.created_at)">{{modalForm.created_at}}</span>
<span v-else>-</span>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24" v-if="modalForm.disable_reason">
<a-col :span="24">
<a-form-item field="hospital_id" label="禁用理由:">
<a-space size="large">
<span >{{modalForm.disable_reason}}</span>
</a-space>
</a-form-item>
</a-col>
</a-row>
<a-divider />
<div class="titlebox">
<div class="bar"></div>
<div class="name">就诊人信息</div>
</div>
<a-row :gutter="24" style="margin-top: 35px;">
<a-col :span="12">
<tableUnit :pagination="false" :columns="family_columns" :data="family_data" @handleFamilyDetail="handleFamilyDetail"></tableUnit>
</a-col>
</a-row>
<a-divider />
<div class="titlebox" v-if="modalForm.user_ship_address && modalForm.user_ship_address.length>0">
<div class="bar"></div>
<div class="name">收货地址</div>
</div>
<div class="cellbox" v-if="modalForm.user_ship_address && modalForm.user_ship_address.length>0">
<div class="cell" v-for="item in modalForm.user_ship_address">
<a-row :gutter="24" >
<a-col :span="12">
<a-form-item field="" label="收货人姓名:">
{{ item.consignee_name}}
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item field="" label="收货人电话:">
{{ item.consignee_tel}}
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24" >
<a-col :span="24">
<a-form-item field="" label="收货人地址:">
{{ item.province}} {{item.city}}{{item.county}}{{item.address}}
</a-form-item>
</a-col>
</a-row>
</div>
</div>
<a-divider v-if="modalForm.user_ship_address && modalForm.user_ship_address.length>0"/>
</a-form>
<div class="titlebox" >
<div class="bar"></div>
<div class="name">操作</div>
</div>
<a-row :gutter="24" style="margin-top: 35px;" >
<a-col :span="24">
<a-form-item field="" label="" no-style>
<a-space >
<a-button type="primary" v-has="'admin:sysPatientList:disable'" status="danger" @click="handleChangeStatus('0')" v-if="modalForm.status==1">禁用</a-button>
<a-button type="primary" v-has="'admin:sysPatientList:disable'" status="success" @click="handleChangeStatus('1')" v-if="modalForm.status==0">启用</a-button>
</a-space>
<!-- <a-space v-if="modalSatus=='edit'">
<a-button type="primary" status="warning">拉黑</a-button>
<a-button type="primary" status="danger">删除</a-button>
</a-space> -->
</a-form-item>
</a-col>
</a-row>
</a-modal>
<couponDetail :modalVisible="modalVisible" :modalForm="modalForm" @closeChange="()=>{modalVisible=false;}"></couponDetail>
<!-- 就诊人详情 -->
@ -329,11 +209,13 @@ const isVisible=ref(false);
title: '适用范围',
dataIndex: 'application_scope',
slotName:'application_scope'
},{
title: '有效期',
dataIndex: 'valid_type',
slotName:'valid_type'
},{
},
// {
// title: '',
// dataIndex: 'valid_type',
// slotName:'valid_type'
// },
{
title: '是否开放',
dataIndex: 'coupon_status',
slotName:'coupon_status'

View File

@ -101,6 +101,18 @@
<a-option :value="5">支付超时</a-option>
</a-select>
</a-form-item>
<a-form-item field="add_finish_status" label="订单延迟队列状态">
<a-select
v-model="queryForm.add_finish_status"
placeholder="请选择添加完成订单延迟队列状态"
:style="{ width: '220px' }"
>
<!--0:未添加 1:已添加 2:添加失败 -->
<a-option :value="0">未添加</a-option>
<a-option :value="1">已添加</a-option>
<a-option :value="2">添加失败</a-option>
</a-select>
</a-form-item>
<a-row>
<a-form-item field="pay_range_time" label="支付时间范围">
<a-range-picker
@ -212,6 +224,13 @@
<div v-else-if="record.order_service_status == 4">服务完成</div>
<div v-else-if="record.order_service_status == 5">服务取消</div>
</template>
<template #add_finish_status="{ record }">
<!-- 0:未添加 1:已添加 2:添加失败 -->
<div v-if="record.add_finish_status == 0">未添加</div>
<div v-else-if="record.add_finish_status == 1">已添加</div>
<div v-else-if="record.add_finish_status == 2">添加失败</div>
</template>
<template #amount_total="{ record }">
{{ record.amount_total }}
</template>
@ -1235,6 +1254,11 @@ const columns = [
dataIndex: 'order_service_status',
slotName: 'order_service_status',
},
{
title: '订单延迟队列状态',
dataIndex: 'add_finish_status',
slotName: 'add_finish_status',
},
{
title: '支付时间',
dataIndex: 'pay_time',