更新
This commit is contained in:
parent
fa6b80814c
commit
83932947f0
1
components.d.ts
vendored
1
components.d.ts
vendored
@ -10,6 +10,7 @@ export {}
|
|||||||
declare module '@vue/runtime-core' {
|
declare module '@vue/runtime-core' {
|
||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
AccountModal: typeof import('./src/components/accountModal.vue')['default']
|
AccountModal: typeof import('./src/components/accountModal.vue')['default']
|
||||||
|
AddHealthModal: typeof import('./src/components/addHealthModal.vue')['default']
|
||||||
AddInquiryConfigModal: typeof import('./src/components/addInquiryConfigModal.vue')['default']
|
AddInquiryConfigModal: typeof import('./src/components/addInquiryConfigModal.vue')['default']
|
||||||
AddSysconfigModal: typeof import('./src/components/addSysconfigModal.vue')['default']
|
AddSysconfigModal: typeof import('./src/components/addSysconfigModal.vue')['default']
|
||||||
ChatRecord: typeof import('./src/components/chatRecord.vue')['default']
|
ChatRecord: typeof import('./src/components/chatRecord.vue')['default']
|
||||||
|
|||||||
@ -62,11 +62,4 @@ export function getCouponDetail(id){
|
|||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function exportService(data){//导出
|
|
||||||
return request({
|
|
||||||
url:'/admin/export/order/service',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@ -8,10 +8,23 @@ export function getHealthList(data){//健康包管理-获取健康包列表-分
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function healthDetail(id,params){//健康包管理-获取健康包详情
|
export function healthDetail(id){//健康包管理-获取健康包详情
|
||||||
return request({
|
return request({
|
||||||
url:'/admin/inquiry/health/'+id,
|
url:'/admin/inquiry/health/'+id,
|
||||||
method: 'post',
|
method: 'get'
|
||||||
params
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function addHealth(data){//健康包管理-获取健康包详情
|
||||||
|
return request({
|
||||||
|
url:'/admin/inquiry/health',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
export function updateHealth(id,data){//健康包管理-获取健康包详情
|
||||||
|
return request({
|
||||||
|
url:'/admin/inquiry/health/'+id,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
203
src/components/addHealthModal.vue
Normal file
203
src/components/addHealthModal.vue
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
<template>
|
||||||
|
<!-- Modal -->
|
||||||
|
<a-modal
|
||||||
|
v-model:visible="modalVisible"
|
||||||
|
fullscreen
|
||||||
|
:title="title"
|
||||||
|
title-align="start"
|
||||||
|
:footer="false"
|
||||||
|
@cancel="handleClose"
|
||||||
|
>
|
||||||
|
<a-form :model="modalForm" ref="modalFormRefConfig" :auto-label-width="true" :rules="rules">
|
||||||
|
<div class="titlebox">
|
||||||
|
<div class="bar"></div>
|
||||||
|
<div class="name">健康包信息</div>
|
||||||
|
</div>
|
||||||
|
<a-row :gutter="24" style="margin-top: 35px">
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item field="service_count" label="总服务数:">
|
||||||
|
<a-input-number
|
||||||
|
v-model="modalForm.service_count"
|
||||||
|
:style="{ width: '320px' }"
|
||||||
|
placeholder="请输入总服务数"
|
||||||
|
class="input-demo"
|
||||||
|
:step="1" :precision="0"
|
||||||
|
:min="1"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item field="monthly_frequency" label="每月次数:">
|
||||||
|
<a-input-number
|
||||||
|
v-model="modalForm.monthly_frequency"
|
||||||
|
:style="{ width: '320px' }"
|
||||||
|
placeholder="请输入每月次数"
|
||||||
|
class="input-demo"
|
||||||
|
:step="1" :precision="0"
|
||||||
|
:min="0"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24" >
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item field="service_rate" label="服务费率(%):">
|
||||||
|
<a-input-number
|
||||||
|
v-model="modalForm.service_rate"
|
||||||
|
:style="{ width: '320px' }"
|
||||||
|
placeholder="请选择服务费率"
|
||||||
|
class="input-demo"
|
||||||
|
:step="1" :precision="0"
|
||||||
|
:min="1"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item field="effective_days" label="服务有效天数:">
|
||||||
|
<a-input-number
|
||||||
|
v-model="modalForm.effective_days"
|
||||||
|
:style="{ width: '320px' }"
|
||||||
|
placeholder="请输入服务有效天数"
|
||||||
|
class="input-demo"
|
||||||
|
:step="1" :precision="0"
|
||||||
|
:min="0"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24" >
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item field="product_id" label="关联商品:" :rules="[{required: true,message:'请选择关联商品'}]">
|
||||||
|
<a-select multiple v-model="modalForm.product_id" placeholder="请选择关联商品" allow-search
|
||||||
|
:loading="loading" @search="handleGetProduct">
|
||||||
|
<a-option v-for="item in productList" :key="item.product_id" :value="item.product_id" :label="item.product_name">
|
||||||
|
{{ item.product_name }}
|
||||||
|
</a-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-divider />
|
||||||
|
</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" @click="handleSubmit" v-has="'admin:sysDoctorconfigList:save'">保存</a-button>
|
||||||
|
</a-space>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { ref,toRefs,watch,getCurrentInstance,reactive,defineExpose} from 'vue';
|
||||||
|
import { addHealth,updateHealth} from '@/api/inquiry/service';
|
||||||
|
import { parseTime } from '@/utils/parseTime';
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
let multi_point_status='';
|
||||||
|
const props = defineProps({
|
||||||
|
// 是否显示
|
||||||
|
modalVisible: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
id:{
|
||||||
|
type:String,
|
||||||
|
default:''
|
||||||
|
},
|
||||||
|
modalForm:{
|
||||||
|
type:Object,
|
||||||
|
default:{}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const title=ref('添加问诊配置');
|
||||||
|
const productList=ref([]);
|
||||||
|
const loading=ref(false);
|
||||||
|
const handleGetProduct=async(name='',id='')=>{
|
||||||
|
loading.value=true;
|
||||||
|
const {code,data}=await getProduct({
|
||||||
|
product_name:'',
|
||||||
|
product_id:'',
|
||||||
|
limit:100
|
||||||
|
});
|
||||||
|
if(code==200){
|
||||||
|
productList.value=data;
|
||||||
|
}
|
||||||
|
loading.value=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const {modalVisible,id,modalForm}=toRefs(props);
|
||||||
|
const emits = defineEmits(['healthVisibleChange','freshList']);
|
||||||
|
watch(()=>props.id,(newVal,oldValval)=>{
|
||||||
|
if(newVal){
|
||||||
|
title.value='修改健康包'
|
||||||
|
|
||||||
|
}else{
|
||||||
|
//handleDoctorList();
|
||||||
|
title.value='添加健康包';
|
||||||
|
|
||||||
|
}
|
||||||
|
},{immediate:true})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const reset=()=>{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Akiraka 20230210 关闭弹窗
|
||||||
|
const handleClose = () => {
|
||||||
|
proxy.$refs.modalFormRefConfig.resetFields();
|
||||||
|
reset();
|
||||||
|
emits('healthVisibleChange', false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSubmit=()=>{
|
||||||
|
proxy.$refs.modalFormRefConfig.validate(async (valid) => {
|
||||||
|
let data=null;
|
||||||
|
if (!valid) {
|
||||||
|
if(props.inquiry_config_id){
|
||||||
|
data= await editInquiryconfig(modalForm,props.inquiry_config_id)
|
||||||
|
}else{
|
||||||
|
data= await addInquiryconfig(modalForm);
|
||||||
|
}
|
||||||
|
if(data.code==200){
|
||||||
|
props.inquiry_config_id?proxy.$message.success('修改成功'):proxy.$message.success('添加成功');
|
||||||
|
emits('freshList', '');
|
||||||
|
}
|
||||||
|
handleClose();
|
||||||
|
}else {
|
||||||
|
console.log(valid)
|
||||||
|
proxy.$message.error('表单校验失败');
|
||||||
|
//done(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const rules = {
|
||||||
|
service_count: [{ required: true, message: '请输入总服务天数' }],
|
||||||
|
monthly_frequency:[{ required: true, message: '请输入每月次数' }],
|
||||||
|
effective_days: [{ required: true, message: '请输入服务有效天数' }],
|
||||||
|
service_rate:[{ required: true, message: '请输入服务费率' }],
|
||||||
|
health_package_product:[{ required: true, message: '请选关联商品' }],
|
||||||
|
};
|
||||||
|
defineExpose({
|
||||||
|
reset
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@ -135,7 +135,7 @@
|
|||||||
<a-input-number
|
<a-input-number
|
||||||
v-model="modalForm.coupon_count"
|
v-model="modalForm.coupon_count"
|
||||||
:style="{ width: '320px' }"
|
:style="{ width: '320px' }"
|
||||||
:step="0" :precision="0"
|
:step="1" :precision="0"
|
||||||
placeholder="请输入发放数量"
|
placeholder="请输入发放数量"
|
||||||
class="input-demo"
|
class="input-demo"
|
||||||
:min="1"
|
:min="1"
|
||||||
@ -180,7 +180,7 @@
|
|||||||
v-model="modalForm.valid_days"
|
v-model="modalForm.valid_days"
|
||||||
:style="{ width: '320px' }"
|
:style="{ width: '320px' }"
|
||||||
placeholder="请输入有效天数"
|
placeholder="请输入有效天数"
|
||||||
:step="0" :precision="0"
|
:step="1" :precision="0"
|
||||||
class="input-demo"
|
class="input-demo"
|
||||||
:min="1"
|
:min="1"
|
||||||
/>
|
/>
|
||||||
@ -209,7 +209,7 @@
|
|||||||
placeholder="请输入单商品最小可使用数量"
|
placeholder="请输入单商品最小可使用数量"
|
||||||
class="input-demo"
|
class="input-demo"
|
||||||
:min="1"
|
:min="1"
|
||||||
:step="0" :precision="0"
|
:step="1" :precision="0"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@ -222,7 +222,7 @@
|
|||||||
:style="{ width: '320px' }"
|
:style="{ width: '320px' }"
|
||||||
placeholder="请输入发放关联天数"
|
placeholder="请输入发放关联天数"
|
||||||
class="input-demo"
|
class="input-demo"
|
||||||
:step="0" :precision="0"
|
:step="1" :precision="0"
|
||||||
:min="1"
|
:min="1"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@ -250,14 +250,14 @@
|
|||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col a-col :span="24">
|
<a-col a-col :span="24">
|
||||||
<a-form-item field="is_display" label="是否展示:">
|
<a-form-item field="is_display" label="是否展示:">
|
||||||
<a-switch v-model="modalForm.is_display" :checked-value="1" />
|
<a-switch v-model="modalForm.is_display" :checked-value="1" :unchecked-value="0"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col a-col :span="24">
|
<a-col a-col :span="24">
|
||||||
<a-form-item field="is_mutex" label="是否互斥:">
|
<a-form-item field="is_mutex" label="是否互斥:">
|
||||||
<a-switch v-model="modalForm.is_mutex" :checked-value="1" />
|
<a-switch v-model="modalForm.is_mutex" :checked-value="1" :unchecked-value="0"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@ -280,6 +280,7 @@
|
|||||||
<a-form-item field="inquiry_type" label="状态:" :style="{width:'320px'}">
|
<a-form-item field="inquiry_type" label="状态:" :style="{width:'320px'}">
|
||||||
<a-select
|
<a-select
|
||||||
placeholder="请选择发放类型"
|
placeholder="请选择发放类型"
|
||||||
|
:disabled="modalForm.coupon_id"
|
||||||
v-model="modalForm.coupon_status"
|
v-model="modalForm.coupon_status"
|
||||||
>
|
>
|
||||||
<!-- 1:正常 2:强制失效 3:结束 4:删除-->
|
<!-- 1:正常 2:强制失效 3:结束 4:删除-->
|
||||||
@ -341,18 +342,35 @@
|
|||||||
>修改</a-button
|
>修改</a-button
|
||||||
>
|
>
|
||||||
</a-space>
|
</a-space>
|
||||||
|
<a-space style="margin-right: 8px" v-if="modalForm.coupon_id && modalForm.coupon_status==1">
|
||||||
|
<a-button
|
||||||
|
type="primary"
|
||||||
|
v-has="'admin:sysCouponList:edit'"
|
||||||
|
status="danger"
|
||||||
|
@click="showCoupon"
|
||||||
|
>强制失效</a-button
|
||||||
|
>
|
||||||
|
</a-space>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<isOkCouponModal
|
||||||
|
:isVisible="isVisible"
|
||||||
|
:api="updateCouponStatus"
|
||||||
|
:title="okTitle"
|
||||||
|
:dealType="'status'"
|
||||||
|
:id="modalForm.coupon_id"
|
||||||
|
@closeChangeOk="closeChangeOk"
|
||||||
|
></isOkCouponModal>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, toRefs, watch,getCurrentInstance,defineExpose} from 'vue';
|
import { ref, toRefs, watch,getCurrentInstance,defineExpose} from 'vue';
|
||||||
import { addCoupon,updateCoupon,getProduct } from '@/api/coupon/list';
|
import { addCoupon,updateCoupon,getProduct,updateCouponStatus } from '@/api/coupon/list';
|
||||||
import { Message } from '@arco-design/web-vue';
|
import { Message } from '@arco-design/web-vue';
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
const emits = defineEmits(['closeChange','changeTimeRange']);
|
const emits = defineEmits(['closeChange','changeTimeRange','freshDetail']);
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
// 是否显示
|
// 是否显示
|
||||||
modalVisible: {
|
modalVisible: {
|
||||||
@ -380,6 +398,20 @@ const defaultValue = ref([]);
|
|||||||
const rangeValue=ref([]);
|
const rangeValue=ref([]);
|
||||||
const productList=ref([]);
|
const productList=ref([]);
|
||||||
const loading=ref(false);
|
const loading=ref(false);
|
||||||
|
const okTitle=ref('');
|
||||||
|
const isVisible=ref(false);
|
||||||
|
const showCoupon=()=>{
|
||||||
|
okTitle.value='确定强制失效吗?'
|
||||||
|
isVisible.value=true;
|
||||||
|
};
|
||||||
|
//关闭启用弹框
|
||||||
|
const closeChangeOk = () => {
|
||||||
|
isVisible.value = false;
|
||||||
|
modalVisible.value = false;
|
||||||
|
emits('freshDetail',{
|
||||||
|
coupon_id:modalForm.value.coupon_id
|
||||||
|
})
|
||||||
|
};
|
||||||
const handleGetProduct=async(name='',id='')=>{
|
const handleGetProduct=async(name='',id='')=>{
|
||||||
loading.value=true;
|
loading.value=true;
|
||||||
const {code,data}=await getProduct({
|
const {code,data}=await getProduct({
|
||||||
|
|||||||
@ -85,7 +85,7 @@ const changeType=(val)=>{
|
|||||||
const handleList=async(name='')=>{
|
const handleList=async(name='')=>{
|
||||||
loading.value=true;
|
loading.value=true;
|
||||||
const {code,data}=await getPatientList({
|
const {code,data}=await getPatientList({
|
||||||
name:name
|
user_name:name
|
||||||
})
|
})
|
||||||
if(code==200){
|
if(code==200){
|
||||||
patientList.value=data;
|
patientList.value=data;
|
||||||
|
|||||||
@ -44,7 +44,7 @@ const handleClose = () => {
|
|||||||
|
|
||||||
// Akiraka 20230210 确认按钮 => 开始数据检查
|
// Akiraka 20230210 确认按钮 => 开始数据检查
|
||||||
const handleConfirm = async () => {
|
const handleConfirm = async () => {
|
||||||
const data=await api.value(id.value,{coupon_status:title.value=="确定开启吗?"?1:2})
|
const data=await api.value(id.value,{coupon_status:2})
|
||||||
if(data.code==200){
|
if(data.code==200){
|
||||||
Message.success("成功");
|
Message.success("成功");
|
||||||
//proxy.$refs.modalFormRef.resetFields();
|
//proxy.$refs.modalFormRef.resetFields();
|
||||||
|
|||||||
@ -103,7 +103,11 @@
|
|||||||
</template>
|
</template>
|
||||||
<template #coupon_status="{ record }">
|
<template #coupon_status="{ record }">
|
||||||
<!-- (1:正常 2:强制失效 3:结束 4:删除) -->
|
<!-- (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" />
|
<div v-if="record.coupon_status==1">正常</div>
|
||||||
|
<div v-else-if="record.coupon_status==2">强制失效</div>
|
||||||
|
<div v-else-if="record.coupon_status==3">结束</div>
|
||||||
|
<div v-else>删除</div>
|
||||||
|
<!-- <a-switch @click="showCoupon(value,record)" v-model="record.coupon_status" :loading="loading" :disabled="record.coupon_status==2" :checked-value="1" /> -->
|
||||||
</template>
|
</template>
|
||||||
<template #action="{ record }">
|
<template #action="{ record }">
|
||||||
<a-space>
|
<a-space>
|
||||||
@ -118,7 +122,7 @@
|
|||||||
</a-table>
|
</a-table>
|
||||||
|
|
||||||
<!-- Modal -->
|
<!-- Modal -->
|
||||||
<couponDetail ref="couponChild" :modalVisible="modalVisible" :modalForm="modalForm" @closeChange="closeCouponDetail" @changeTimeRange="changeTimeRange"></couponDetail>
|
<couponDetail ref="couponChild" :modalVisible="modalVisible" :modalForm="modalForm" @closeChange="closeCouponDetail" @changeTimeRange="changeTimeRange" @freshDetail="handleDetail"></couponDetail>
|
||||||
|
|
||||||
<!-- 发放弹窗giveVisible-->
|
<!-- 发放弹窗giveVisible-->
|
||||||
<giveCouponModal ref="giveCouponChild" :giveVisible="giveVisible" @closeGiVe="closeGiVe" :id="give_coupon_id"> </giveCouponModal>
|
<giveCouponModal ref="giveCouponChild" :giveVisible="giveVisible" @closeGiVe="closeGiVe" :id="give_coupon_id"> </giveCouponModal>
|
||||||
@ -236,7 +240,7 @@ const isVisible=ref(false);
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '已领取数量',
|
title: '已领取数量',
|
||||||
dataIndex:'coupon_take_count '
|
dataIndex:'coupon_take_count'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '已使用数量',
|
title: '已使用数量',
|
||||||
@ -346,11 +350,9 @@ const isVisible=ref(false);
|
|||||||
const closeChangeOk = () => {
|
const closeChangeOk = () => {
|
||||||
isVisible.value = false;
|
isVisible.value = false;
|
||||||
modalVisible.value = false;
|
modalVisible.value = false;
|
||||||
handleQuery();
|
|
||||||
};
|
};
|
||||||
const showCoupon=(value,record)=>{
|
const showCoupon=(value,record)=>{
|
||||||
|
|
||||||
|
|
||||||
okTitle.value=!record.coupon_status?'确定关闭吗?':'确定开启吗?';
|
okTitle.value=!record.coupon_status?'确定关闭吗?':'确定开启吗?';
|
||||||
isVisible.value=true;
|
isVisible.value=true;
|
||||||
cur_coupon_id.value=record.coupon_id;
|
cur_coupon_id.value=record.coupon_id;
|
||||||
|
|||||||
@ -1,54 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<a-form :model="queryForm" ref="queryFormRef" layout="inline">
|
|
||||||
|
|
||||||
<a-form-item field="doctor_name" label="医生姓名">
|
|
||||||
<a-input :style="{ width: '182px' }" v-model="queryForm.doctor_name" placeholder="请输入账号或者姓名" @press-enter="handleQuery" />
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item field="mobile" label="电话号码">
|
|
||||||
<a-input :style="{ width: '182px' }" v-model="queryForm.mobile" placeholder="请输入电话号码" @press-enter="handleQuery" />
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item field="inquiry_type" label="问诊类型">
|
|
||||||
<a-select v-model="queryForm.inquiry_type" placeholder="请选择服务类型" :style="{ width: '182px' }">
|
|
||||||
<!-- 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 -->
|
|
||||||
<a-option :value="1">专家问诊</a-option>
|
|
||||||
<a-option :value="2">快速问诊</a-option>
|
|
||||||
<a-option :value="3">公益问诊</a-option>
|
|
||||||
<a-option :value="4">问诊购药</a-option>
|
|
||||||
</a-select>
|
|
||||||
|
|
||||||
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item field="inquiry_mode" label="问诊方式">
|
|
||||||
<a-select v-model="queryForm.inquiry_mode" placeholder="请选择问诊方式" :style="{ width: '182px' }">
|
|
||||||
<!-- 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 -->
|
|
||||||
<a-option :value="1">图文</a-option>
|
|
||||||
<a-option :value="2">视频</a-option>
|
|
||||||
<a-option :value="3">语音</a-option>
|
|
||||||
<a-option :value="4">电话</a-option>
|
|
||||||
<a-option :value="5">会员</a-option>
|
|
||||||
<a-option :value="6">疑难会诊</a-option>
|
|
||||||
<a-option :value="7">附赠沟通</a-option>
|
|
||||||
<a-option :value="8">健康包服务</a-option>
|
|
||||||
<a-option :value="9">服务包服务</a-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item field="is_enable" label="启用状态">
|
|
||||||
<a-select v-model="queryForm.is_enable" placeholder="请选择启用状态" :style="{ width: '182px' }">
|
|
||||||
<a-option :value="0">关闭</a-option>
|
|
||||||
<a-option :value="1">开启</a-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item>
|
|
||||||
<a-space>
|
|
||||||
<a-button type="primary" @click="handleQuery"><icon-search /> 搜索</a-button>
|
|
||||||
<a-button @click="handleResetQuery"><icon-loop /> 重置</a-button>
|
|
||||||
</a-space>
|
|
||||||
</a-form-item>
|
|
||||||
</a-form>
|
|
||||||
|
|
||||||
<a-divider />
|
|
||||||
|
|
||||||
<!-- action -->
|
<!-- action -->
|
||||||
<div class="action">
|
<div class="action">
|
||||||
<a-space>
|
<a-space>
|
||||||
@ -59,41 +10,29 @@
|
|||||||
|
|
||||||
<!-- table -->
|
<!-- table -->
|
||||||
<a-table :columns="columns" :data="tableData"
|
<a-table :columns="columns" :data="tableData"
|
||||||
:scroll="{ x: 1500 }"
|
|
||||||
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
|
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
|
||||||
:pagination="{ 'show-total': true, 'show-jumper': true, 'show-page-size': true, total: pager.total, current: currentPage }"
|
:pagination="{ 'show-total': true, 'show-jumper': true, 'show-page-size': true, total: pager.total, current: currentPage }"
|
||||||
row-key="doctor_id" @selection-change="(selection) => {deleteData = selection;console.log(selection)}"
|
row-key="package_id" @selection-change="(selection) => {deleteData = selection;console.log(selection)}"
|
||||||
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
|
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
|
||||||
<template #doctor_id="{record,rowIndex}">
|
<template #doctor_id="{record,rowIndex}">
|
||||||
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
|
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
|
||||||
</template>
|
</template>
|
||||||
<template #doctor_title="{ record }">
|
<template #monthly_frequency="{ record }">
|
||||||
<div>{{ formatDoctorTitle(record.doctor_title) }}</div>
|
<div v-if="record.monthly_frequency==0">不限次</div>
|
||||||
|
<div v-else>{{ record.monthly_frequency}}</div>
|
||||||
</template>
|
</template>
|
||||||
<template #multi_point_status="{ record }">
|
<template #service_rate="{ record }">
|
||||||
<div>{{ formatMultipoint(record.multi_point_status) }}</div>
|
<div>{{record.service_rate+"%"}}</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #inquiry_type="{record}">
|
<template #health_package_product="{record}">
|
||||||
<div>{{ formatInquiryType(record.inquiry_type) }}</div>
|
<div v-for="item in record.health_package_product" :key="item.product_id" v-if="record.health_package_product.length>0">{{item.product_name }} </div>
|
||||||
|
<div v-else>-</div>
|
||||||
</template>
|
</template>
|
||||||
<template #inquiry_mode="{record}">
|
|
||||||
<div>{{ formatMode(record.inquiry_mode) }}</div>
|
|
||||||
</template>
|
|
||||||
<template #last_enable_method="{record}">
|
|
||||||
<div class="reason" v-if="record.last_enable_method==1" >自己</div>
|
|
||||||
<div v-else>后台</div>
|
|
||||||
</template>
|
|
||||||
<template #is_enable="{record}">
|
|
||||||
<a-tag v-if="record.is_enable == 0" color="red">关闭</a-tag>
|
|
||||||
<a-tag v-else-if="record.is_enable== 1" color="green">开启</a-tag>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<template #relation="{record}">
|
|
||||||
<div>{{formatRelation(record.relation)}}</div>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
<template #action="{ record }">
|
<template #action="{ record }">
|
||||||
<a-space>
|
<a-space>
|
||||||
<a-button v-has="'admin:sysDoctorconfigList:edit'" type="text"
|
<a-button v-has="'admin:sysDoctorconfigList:edit'" type="text"
|
||||||
@ -106,11 +45,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
|
|
||||||
<addInquiryConfigModal :modalVisible="modalVisible" :inquiry_config_id="inquiry_config_id" :modalForm="modalForm" @freshList="getInquiryInfo(pager);" @familyVisibleChange="()=>{modalVisible=false;inquiry_config_id='';}"></addInquiryConfigModal>
|
<addHealthModal :modalVisible="modalVisible" :id="package_id" :modalForm="modalForm" @freshList="getInquiryInfo(pager);" @healthVisibleChange="()=>{modalVisible=false;package_id='';}"></addHealthModal>
|
||||||
<!-- Akiraka 20230223 删除与批量删除 开始 -->
|
|
||||||
<!-- <DeleteModal :data="deleteData" :visible="deleteVisible" :apiDelete="removeFamily"
|
|
||||||
@deleteVisibleChange="() => deleteVisible = false" /> -->
|
|
||||||
<!-- Akiraka 20230223 删除与批量删除 结束 -->
|
|
||||||
<a-modal v-model:visible="okVisible" :modal-style="{width:'320px'}" body-class="okmodal"
|
<a-modal v-model:visible="okVisible" :modal-style="{width:'320px'}" body-class="okmodal"
|
||||||
@cancel="()=>okVisible=false">
|
@cancel="()=>okVisible=false">
|
||||||
<template #title>
|
<template #title>
|
||||||
@ -123,7 +58,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
|
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
|
||||||
import { getInquiryconfigList} from '@/api/inquiry/config';
|
import { getHealthList,healthDetail} from '@/api/inquiry/service';
|
||||||
import {formatDoctorTitle,formatInquiryType,formatMultipoint,formatMode} from "@/utils/format"
|
import {formatDoctorTitle,formatInquiryType,formatMultipoint,formatMode} from "@/utils/format"
|
||||||
|
|
||||||
// Akiraka 20230210 删除数据
|
// Akiraka 20230210 删除数据
|
||||||
@ -132,7 +67,7 @@
|
|||||||
const deleteVisible = ref(false)
|
const deleteVisible = ref(false)
|
||||||
// Akiraka 20230210 监听删除事件
|
// Akiraka 20230210 监听删除事件
|
||||||
const okVisible = ref(false);
|
const okVisible = ref(false);
|
||||||
const inquiry_config_id=ref("");
|
const package_id=ref("");
|
||||||
watch(() => deleteVisible.value, (value) => {
|
watch(() => deleteVisible.value, (value) => {
|
||||||
if (value == false) {
|
if (value == false) {
|
||||||
getInquiryInfo(pager);
|
getInquiryInfo(pager);
|
||||||
@ -173,9 +108,7 @@
|
|||||||
|
|
||||||
});
|
});
|
||||||
const modalForm = reactive({
|
const modalForm = reactive({
|
||||||
user:{},
|
|
||||||
avatar: 'https://img.applets.igandanyiyuan.com/basic/file/patient_avatar.png',
|
|
||||||
|
|
||||||
});
|
});
|
||||||
// Modal
|
// Modal
|
||||||
const modalVisible = ref(false);
|
const modalVisible = ref(false);
|
||||||
@ -187,16 +120,12 @@
|
|||||||
// Table Columns
|
// Table Columns
|
||||||
const columns = [
|
const columns = [
|
||||||
{ title: '编号', dataIndex: 'doctor_id', slotName: 'doctor_id', width: '90' },
|
{ title: '编号', dataIndex: 'doctor_id', slotName: 'doctor_id', width: '90' },
|
||||||
{ title: '医生姓名', dataIndex: 'doctor_name',width:180 },
|
{ title: '总服务次数', dataIndex: 'service_count',width:180 },
|
||||||
{ title: '手机号码', dataIndex: 'mobile_mask', width:130 },
|
{ title: '每月次数', dataIndex: 'monthly_frequency',slotName:'monthly_frequency', width:130 },
|
||||||
{ title: '科室', dataIndex: 'department_custom_name', width: 150 },
|
{ title: '服务有效天数', dataIndex: 'effective_days', width: 150 },
|
||||||
{ title: '职称', dataIndex: 'doctor_title', slotName: 'doctor_title' },
|
{ title: '服务费率', dataIndex: 'service_rate', slotName: 'service_rate',width:80 },
|
||||||
{ title: '接诊数量', dataIndex: 'work_num_day' },
|
{ title: '折扣商品总价格(元)', dataIndex: 'discount_product_total_amount',width:80 },
|
||||||
{ title: '多点执业', dataIndex: 'multi_point_status',slotName:'multi_point_status' },
|
{ title: '关联商品', dataIndex: 'health_package_product',slotName:'health_package_product',width:200 },
|
||||||
{ title: '问诊类型', dataIndex: 'inquiry_type',slotName:'inquiry_type' },
|
|
||||||
{ title: '问诊方式', dataIndex: 'inquiry_mode',slotName:'inquiry_mode' },
|
|
||||||
{ title: '启用状态', dataIndex: 'is_enable',slotName:'is_enable' },
|
|
||||||
{ title: '申请人', dataIndex: 'last_enable_method',slotName:'last_enable_method' },
|
|
||||||
{ title: '操作', slotName: 'action', fixed: "right", width: 180 },
|
{ title: '操作', slotName: 'action', fixed: "right", width: 180 },
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -208,13 +137,17 @@
|
|||||||
// 新增Satus
|
// 新增Satus
|
||||||
const handleAdd = () => {
|
const handleAdd = () => {
|
||||||
modalVisible.value = true;
|
modalVisible.value = true;
|
||||||
inquiry_config_id.value='';
|
package_id.value='';
|
||||||
};
|
};
|
||||||
|
|
||||||
//详情
|
//详情
|
||||||
const handleDetail = async (record) => {
|
const handleDetail = async (record) => {
|
||||||
inquiry_config_id.value=record.inquiry_config_id;
|
package_id.value=record.package_id;
|
||||||
modalVisible.value = true;
|
modalVisible.value = true;
|
||||||
|
const {code,data}=await healthDetail(record.package_id);
|
||||||
|
if(code==200){
|
||||||
|
Object.assign(modalForm,data)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -237,7 +170,7 @@
|
|||||||
|
|
||||||
// 获取患者信息
|
// 获取患者信息
|
||||||
const getInquiryInfo = async (params = {}) => {
|
const getInquiryInfo = async (params = {}) => {
|
||||||
const { data, code, message } = await getInquiryconfigList(params);
|
const { data, code, message } = await getHealthList(params);
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
tableData.value = data.data;
|
tableData.value = data.data;
|
||||||
Object.assign(pager, { total: data.total, page: data.page, page_size: data.page_size });
|
Object.assign(pager, { total: data.total, page: data.page, page_size: data.page_size });
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user