导出功能

This commit is contained in:
zoujiandong 2023-11-14 16:20:52 +08:00
parent aa36d30145
commit c44507fb47
20 changed files with 649 additions and 65 deletions

View File

@ -86,4 +86,12 @@ export function getDoctorDetail(id){
params
})
}
export function exportDoctor(data){//导出
return request({
url:'/admin/export/doctor',
method: 'post',
data
})
}

View File

@ -18,4 +18,19 @@ export function getAccountDetail(id){
method: 'get',
params
})
}
}
export function exportAccount(data){//导出
return request({
url:'/admin/export/doctor/account',
method: 'post',
data
})
}
export function exportAccountOrder(data){//导出关联订单
return request({
url:'/admin/export/doctor/account/order',
method: 'post',
data
})
}

View File

@ -6,4 +6,11 @@ export function getBankList(params){
params
})
}
export function exportBankcard(data){//导出
return request({
url:'/admin/export/doctor/bank/card',
method: 'post',
data
})
}

View File

@ -44,6 +44,18 @@ export function getOrder(params){
method: 'put'
})
}
export function exportRecord(data){//导出
return request({
url:'/admin/export/withdrawal',
method: 'post',
data
})
}
export function exportRecordOrder(data){//导出相关订单
return request({
url:'/admin/export/withdrawal/order',
method: 'post',
data
})
}

View File

@ -72,4 +72,20 @@ export function getIm(params){//获取im分页
params
})
}
export function exportInquiry(data){//导出问诊订单
return request({
url:'/admin/export/order/inquiry',
method: 'post',
data
})
}
export function exportProduct(data){//导出药品订单
return request({
url:'/admin/export/order/product',
method: 'post',
data
})
}

View File

@ -23,4 +23,11 @@ export function getFamilyDetail(id){
params
})
}
export function exportFamily(data){//导出
return request({
url:'/admin/export/patient/family',
method: 'post',
data
})
}

View File

@ -22,4 +22,11 @@ export function getPatientDetail(id){
method: 'put',
data
})
}
export function exportPatient(data){//导出
return request({
url:'/admin/export/patient',
method: 'post',
data
})
}

View File

@ -22,3 +22,11 @@ export function getPrescriptionDetail(id){
method: 'get'
})
}
export function exportPrescription(data){//导出
return request({
url:'/admin/export/prescription',
method: 'post',
data
})
}

View File

@ -7,6 +7,8 @@
<div class="bar"></div>
<div class="name">关联订单</div>
</div>
<!-- action -->
<a-row style="margin-top: 35px;">
<a-form :model="queryForm" ref="queryFormRef" layout="inline">
@ -66,6 +68,16 @@
</a-row>
</a-form>
<a-divider />
</a-row>
<a-row>
<div class="action">
<a-space>
<a-button v-has="'admin:sysDoctorAccount:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysDoctorAccount:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysDoctorAccount:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>
</a-row>
<a-row :gutter="24" >
<a-col :span="24">
@ -77,7 +89,7 @@
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
:pagination="{ 'show-total': true, 'show-jumper': true, 'show-page-size': true, total: pager.total, current: currentPage }"
row-key="order_inquiry_id" @selection-change="(selection) => {console.log(selection)}"
row-key="order_inquiry_id" @selection-change="(selection) => {selectData=selection}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
@ -144,10 +156,11 @@
</template>
<script setup>
import {ref,toRefs,watch,reactive,getCurrentInstance} from 'vue';
import {getAccountOrder} from "@/api/finance/account"
import {getAccountOrder,exportAccountOrder} from "@/api/finance/account"
import { parseTime } from '@/utils/parseTime';
import {formatInquiryType,formatOrderCancelReason,formatEnteyStatus} from "@/utils/format"
import { Message } from '@arco-design/web-vue';
import { downloadFile } from '@/utils/downloadFile';
const props = defineProps({
//
modalVisible: {
@ -158,6 +171,7 @@ const props = defineProps({
type: Object,
},
});
const selectData=ref([]);
const { proxy } = getCurrentInstance();
const doctor_id=ref('');
const currentPage = ref(1);
@ -296,7 +310,45 @@ const handleQuery = async () => {
proxy.$refs.queryFormRef.resetFields();
handleGetOrder(doctor_id.value,queryForm);
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
account_id:props.modalForm.account_id,
...queryForm
}
}else if(type==2){
if(selectData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
selectData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
account_id:props.modalForm.account_id,
}
}else if(type==3){
fromData={
account_id:props.modalForm.account_id,
type
}
}
const {code,data}=await exportAccountOrder(fromData);
if(code==200){
downloadFile(data,'医生账户关联订单');
}
proxy.$loading.hide();
}
</script>
<style scoped>
.cardNum {

View File

@ -128,7 +128,16 @@
<div class="bar"></div>
<div class="name">订单记录</div>
</div>
<a-row :gutter="24" style="margin-top: 35px;">
<!-- action -->
<div class="action" style="margin-top: 35px;">
<a-space>
<a-button v-has="'admin:sysFinancialRecord:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<!-- <a-button v-has="'admin:sysFamilyList:remove'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button> -->
<a-button v-has="'admin:sysFinancialRecord:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>
<a-row :gutter="24" >
<a-col :span="24">
<a-form-item field="idCard" :hide-label="true" >
<!-- table -->
@ -137,7 +146,7 @@
style="width:100%"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
: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="withdrawal_order_id" @selection-change="(selection) => {deleteData = selection;}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
@ -242,11 +251,12 @@
<script setup>
import {ref,toRefs,watch,reactive,getCurrentInstance} from 'vue';
import {decryptCard} from '@/api/doctor/list';
import {getOrder,editIncome,withdrawalStatus,confirmPay} from "@/api/finance/record"
import {getOrder,editIncome,withdrawalStatus,confirmPay,exportRecordOrder} from "@/api/finance/record"
import { parseTime } from '@/utils/parseTime';
import {formatInquiryType} from "@/utils/format"
import {getOrderDetail,inquiryCase} from '@/api/order/list';
import { Message } from '@arco-design/web-vue';
import { downloadFile } from '@/utils/downloadFile';
const props = defineProps({
//
modalVisible: {
@ -258,6 +268,7 @@ const props = defineProps({
},
});
const { proxy } = getCurrentInstance();
const deleteData=ref([]);
const confirmVisible=ref(false);
const okVisible=ref(false);
const withdrawal_order_id=ref('');
@ -420,6 +431,47 @@ const handleSubmitConfirm=()=>{
}
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
withdrawal_id:props.modalForm.withdrawal_id,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
withdrawal_id:props.modalForm.withdrawal_id,
type,
id
}
}else if(type==3){
//tableRef.value.selectAll(false)
fromData={
withdrawal_id:props.modalForm.withdrawal_id,
type
}
}
const {code,data}=await exportRecordOrder(fromData);
if(code==200){
downloadFile(data,'提现记录关联订单');
}
proxy.$loading.hide();
}
</script>
<style scoped>
.cardNum {

15
src/utils/downloadFile.js Normal file
View File

@ -0,0 +1,15 @@
export const downloadFile=(fileUrl,name='')=>{
const request = new XMLHttpRequest()
request.open('GET', fileUrl)
request.responseType = 'blob'
request.onload = (res) => {
if (res.target.status == 200) {
const url = window.URL.createObjectURL(res.currentTarget.response)
const link = document.createElement('a')
link.href = url
link.setAttribute('download', name+new Date().getTime())
link.click()
}
}
request.send()
}

View File

@ -81,6 +81,12 @@
<a-option :value="1"></a-option>
</a-select>
</a-form-item>
<a-form-item field="create_range_time" label="创建时间范围">
<a-range-picker
style="width: 330px"
v-model="queryForm.create_range_time"
/>
</a-form-item>
<a-form-item>
<a-space>
<a-button type="primary" @click="handleQuery"><icon-search /> 搜索</a-button>
@ -95,11 +101,14 @@
<div class="action">
<a-space>
<a-button v-has="'admin:sysDoctorList:add'" type="primary" @click="handleAdd"><icon-plus /> 新增 </a-button>
<a-button v-has="'admin:sysDoctorList:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysDoctorList:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysDoctorList:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>
<!-- table -->
<a-table :columns="columns" :data="tableData" :scroll="{ x: 1700 }"
<a-table :columns="columns" ref="tableRef" :data="tableData" :scroll="{ x: 1700 }"
:row-selection="{ type: 'checkbox', showCheckedAll: true}"
: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)}"
@ -621,12 +630,13 @@
</template>
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, watch } from 'vue';
import { getDoctorList, addDoctor, removeDoctor, updateDoctor, getDoctorDetail, departmentList, decryptCard, hospitalList, expertiseList, areaList, bankList, decryptBank } from '@/api/doctor/list';
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch } from 'vue';
import { getDoctorList, addDoctor, removeDoctor, updateDoctor, getDoctorDetail, departmentList, decryptCard, hospitalList, expertiseList, areaList, bankList, decryptBank,exportDoctor} from '@/api/doctor/list';
import { applyCA,updateCA,removeCA,updateSign,applySign } from '@/api/doctor/ca';
import { ossSign, ossUpload } from '@/api/oss';
import { parseTime } from '@/utils/parseTime';
import { Message } from '@arco-design/web-vue';
import { downloadFile } from '@/utils/downloadFile';
import dayjs from 'dayjs'
// Akiraka 20230210
const deleteData = ref([])
@ -639,7 +649,8 @@
if (value == false) {
getDoctorInfo(pager);
}
});
})
const tableRef=ref();
const showCheckedAll=ref(true);
const file = ref();
const oldFrontImg = ref(''), oldBackImg = ref(''), oldSignImg = ref('');
@ -785,6 +796,14 @@ const showCheckedAll=ref(true);
const id_card_front_list = ref([]);
const id_card_back_list = ref([]);
const sign_image_list = ref([]);
watch(()=>queryForm.create_range_time,(value)=>{
if(value){
let[startTime,endTime]=value
queryForm.created_at=startTime+"&"+endTime;
}else{
queryForm.created_at=''
};
})
watch(() => license_cert_list.value, (value) => {
let arr = []
value.forEach((item) => {
@ -1577,6 +1596,46 @@ const showCheckedAll=ref(true);
getOssSign(1, fileList[0].file);
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
deleteData.value=[];
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
deleteData.value=[];
//tableRef.value.selectAll(false)
fromData={
type
}
}
const {code,data}=await exportDoctor(fromData);
if(code==200){
downloadFile(data,'医生列表');
}
proxy.$loading.hide();
}
//ca
onMounted(() => {
getDoctorInfo(pager);
@ -1586,6 +1645,7 @@ const showCheckedAll=ref(true);
handelAreaList("", "", 2);
handleBankList();
});
</script>

View File

@ -32,7 +32,9 @@
<!-- action -->
<div class="action">
<a-space>
<a-button v-has="'admin:sysFamilyList:add'" type="primary" @click="handleAdd"><icon-export /> 导出 </a-button>
<a-button v-has="'admin:sysFinancialBank:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysFinancialBank:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysFinancialBank:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>
@ -41,7 +43,7 @@
:scroll="{ x: 1400 }"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
: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="bank_card_id" @selection-change="(selection) => {deleteData = selection;console.log(selection)}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
@ -78,9 +80,9 @@
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
import { getBankList} from '@/api/finance/bank';
import { getBankList,exportBankcard} from '@/api/finance/bank';
import { bankList} from '@/api/doctor/list';
import {downloadFile} from "@/utils/downloadFile"
// Akiraka 20230210
const deleteData = ref([])
// Akiraka 20230210
@ -225,6 +227,44 @@ const bankData = ref([])
}
})
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
//tableRef.value.selectAll(false)
fromData={
type
}
}
const {code,data}=await exportBankcard(fromData);
if(code==200){
downloadFile(data,'银行卡管理');
}
proxy.$loading.hide();
}
onMounted(() => {
getBankInfo(pager);
handleBankList();

View File

@ -22,7 +22,9 @@
<!-- action -->
<div class="action">
<a-space>
<a-button v-has="'admin:sysDoctorAccount:export'" type="primary" @click="handleExport"><icon-export />导出 </a-button>
<a-button v-has="'admin:sysDoctorAccount:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysDoctorAccount:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysDoctorAccount:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>
@ -31,7 +33,7 @@
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
: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="account_id" @selection-change="(selection) => {deleteData = selection;console.log(selection)}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
@ -67,7 +69,7 @@
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
import { getAccountList,getAccountDetail} from '@/api/finance/account';
import { getAccountList,getAccountDetail,exportAccount} from '@/api/finance/account';
// Akiraka 20230210
const deleteData = ref([])
@ -162,9 +164,6 @@
// Table Data
const tableData = ref([]);
const handleExport=()=>{
alert('导出')
}
//
const handleDetail = async (record) => {
const { code, data, message } = await getAccountDetail(record.doctor_id);
@ -217,7 +216,44 @@
proxy.$refs.queryFormRef.resetFields();
getAccountInfo(queryForm);
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
//tableRef.value.selectAll(false)
fromData={
type
}
}
const {code,data}=await exportAccount(fromData);
if(code==200){
downloadFile(data,'提现记录');
}
proxy.$loading.hide();
}
onMounted(() => {
getAccountInfo(pager);

View File

@ -52,20 +52,22 @@
<a-divider />
<!-- action -->
<!-- <div class="action">
<div class="action">
<a-space>
<a-button v-has="'admin:sysFamilyList:add'" type="primary" @click="handleAdd"><icon-plus /> 新增 </a-button>
<a-button v-has="'admin:sysFamilyList:remove'" type="primary" status="danger"><icon-delete /> 批量删除 </a-button>
<a-button v-has="'admin:sysFinancialRecord:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysFinancialRecord:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysFinancialRecord:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div> -->
</div>
<!-- table -->
<a-table :columns="columns" :data="tableData"
:scroll="{ x:2000 }"
ref="tableRef"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
: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)}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
row-key="withdrawal_id" @selection-change="(selection) => {deleteData = selection;}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange" >
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
</template>
@ -116,8 +118,9 @@
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed, withDirectives } from 'vue';
import { getWithdrawalList,getWithdrawalDetail} from '@/api/finance/record';
import { getWithdrawalList,getWithdrawalDetail,exportRecord} from '@/api/finance/record';
import { parseTime } from '@/utils/parseTime';
import {downloadFile} from "@/utils/downloadFile"
// Akiraka 20230210
const deleteData = ref([])
// Akiraka 20230210
@ -125,6 +128,7 @@
// Akiraka 20230210
const okVisible = ref(false);
watch(() => deleteVisible.value, (value) => {
if (value == false) {
getWithdrawalInfo(pager);
@ -306,8 +310,48 @@ watch(() => queryForm.payment_range_time,
proxy.$refs.queryFormRef.resetFields();
handleQuery();
}
const tableRef = ref()
// const selectAll=(check)=>{
// console.log(check);
// }
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
tableRef.value.selectAll(false)
fromData={
type
}
}
const {code,data}=await exportRecord(fromData);
if(code==200){
downloadFile(data,'提现记录');
}
proxy.$loading.hide();
}
onMounted(() => {
getWithdrawalInfo(pager);
});

View File

@ -96,6 +96,15 @@
</a-form>
<a-divider />
<!-- action -->
<div class="action">
<a-space>
<a-button v-has="'admin:sysProductList:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysProductList:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysProductList:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>
<!-- table -->
<a-table
:columns="columns"
@ -109,7 +118,7 @@
current: currentPage,
}"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
row-key="post_id"
row-key="order_product_id"
@selection-change="
(selection) => {
deleteData = selection;
@ -644,7 +653,8 @@ import {
cancelProduct,
reportPrePscription,
lookAddress,
inquiryCase
inquiryCase,
exportProduct
} from '@/api/order/list';
import { parseTime } from '@/utils/parseTime';
import {
@ -655,6 +665,7 @@ import {
formatProductCancelReason,
} from '@/utils/format';
const IMG_URL = import.meta.env.VITE_IMG_URL;
import { downloadFile } from '@/utils/downloadFile';
// Akiraka 20230210
const deleteData = ref([]);
// Akiraka 20230210
@ -1012,6 +1023,43 @@ const openPatient = () => {
//Object.assign(patientData, modalForm.order_inquiry_case);
patientVisible.value = true;
};
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
fromData={
type
}
}
const {code,data}=await exportProduct(fromData);
if(code==200){
downloadFile(data,'药品订单');
}
proxy.$loading.hide();
}
onMounted(() => {
getProductInfo(pager);

View File

@ -82,6 +82,14 @@
</a-form>
<a-divider />
<!-- action -->
<div class="action">
<a-space>
<a-button v-has="'admin:sysOrderList:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysOrderList:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysOrderList:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>
<!-- table -->
<a-table
@ -90,7 +98,7 @@
:data="tableData"
:pagination="{ 'show-total': true, 'show-jumper': true, 'show-page-size': true, total: pager.total, current: currentPage }"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
row-key="post_id"
row-key="order_inquiry_id"
@selection-change="(selection) => {deleteData = selection;}"
@page-change="handlePageChange"
@page-size-change="handlepage_sizeChange"
@ -421,10 +429,10 @@
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch } from 'vue';
import { getOrderList,getOrderDetail,cancelInquiry,inquiryCase} from '@/api/order/list';
import {exportInquiry, getOrderList,getOrderDetail,cancelInquiry,inquiryCase} from '@/api/order/list';
import { parseTime } from '@/utils/parseTime';
import {formatDoctorTitle,formatOrderCancelReason} from "@/utils/format"
import { downloadFile } from '@/utils/downloadFile';
// Akiraka 20230210
const deleteData = ref([])
// Akiraka 20230210
@ -723,7 +731,44 @@ const handleResetQuery = () => {
//getOrderInfo(queryForm);
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
fromData={
type
}
}
const {code,data}=await exportInquiry(fromData);
if(code==200){
downloadFile(data,'问诊订单');
}
proxy.$loading.hide();
}
onMounted(() => {
getOrderInfo(pager);
});

View File

@ -32,18 +32,19 @@
<a-divider />
<!-- action -->
<!-- <div class="action">
<div class="action">
<a-space>
<a-button v-has="'admin:sysFamilyList:add'" type="primary" @click="handleAdd"><icon-plus /> 新增 </a-button>
<a-button v-has="'admin:sysFamilyList:remove'" type="primary" status="danger"><icon-delete /> 批量删除 </a-button>
<a-button v-has="'admin:sysFamilyList:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysFamilyList:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysFamilyList:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div> -->
</div>
<!-- table -->
<a-table :columns="columns" :data="tableData"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
: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="family_id" @selection-change="(selection) => {deleteData = selection;console.log(selection)}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
@ -96,9 +97,9 @@
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
import { getFamilyList,getFamilyDetail} from '@/api/patient/family';
import { getFamilyList,getFamilyDetail,exportFamily} from '@/api/patient/family';
import {formatRelation} from "@/utils/format"
import { downloadFile } from '@/utils/downloadFile';
// Akiraka 20230210
const deleteData = ref([])
// Akiraka 20230210
@ -265,7 +266,43 @@
proxy.$refs.queryFormRef.resetFields();
getFamilyInfo(queryForm);
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
fromData={
type
}
}
const {code,data}=await exportFamily(fromData);
if(code==200){
downloadFile(data,'就诊人列表');
}
proxy.$loading.hide();
}
onMounted(() => {
getFamilyInfo(pager);

View File

@ -33,18 +33,19 @@
<a-divider />
<!-- action -->
<!-- <div class="action">
<div class="action">
<a-space>
<a-button v-has="'admin:sysPatientList:add'" type="primary" @click="handleAdd"><icon-plus /> 新增 </a-button>
<a-button v-has="'admin:sysPatientList:remove'" type="primary" status="danger"><icon-delete /> 批量删除 </a-button>
<a-button v-has="'admin:sysPatientList:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysPatientList:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysPatientList:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div> -->
</div>
<!-- table -->
<a-table :columns="columns" :data="tableData"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
: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="patient_id" @selection-change="(selection) => {deleteData = selection;console.log(selection)}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
@ -235,9 +236,10 @@
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
import { getPatientList,getPatientDetail,changeStatus} from '@/api/patient/list';
import { getPatientList,getPatientDetail,changeStatus,exportPatient} from '@/api/patient/list';
import {getFamilyDetail} from '@/api/patient/family';
import {parseTime} from "@/utils/parseTime"
import { downloadFile } from '@/utils/downloadFile';
// Akiraka 20230210
const deleteData = ref([])
// Akiraka 20230210
@ -463,7 +465,43 @@ const handleChangeStatus=async(status)=>{
proxy.$refs.queryFormRef.resetFields();
getPatientInfo(queryForm);
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
fromData={
type
}
}
const {code,data}=await exportPatient(fromData);
if(code==200){
downloadFile(data,'患者列表');
}
proxy.$loading.hide();
}
onMounted(() => {
getPatientInfo(pager);

View File

@ -76,20 +76,20 @@
<a-divider />
<!-- action -->
<!-- <div class="action">
<div class="action">
<a-space>
<a-button v-has="'admin:sysPrescriptionList:add'" type="primary" @click="handleAdd"><icon-plus /> 新增 </a-button>
<a-button v-has="'admin:sysPrescriptionList:remove'" type="primary" status="danger"><icon-delete /> 批量删除 </a-button>
<a-button v-has="'admin:sysPrescriptionList:selectExport'" type="primary" @click="handlExport(2)"><icon-export /> 选择数据导出 </a-button>
<a-button v-has="'admin:sysPrescriptionList:searchExport'" type="primary" @click="handlExport(1)"><icon-export /> 当前搜索全部导出</a-button>
<a-button v-has="'admin:sysPrescriptionList:allExport'" type="primary" @click="handlExport(3)"><icon-export /> 全部导出</a-button>
</a-space>
</div>-->
</div>
<!-- table -->
<a-table :columns="columns" :data="tableData"
:scroll="{ x: 1400 }"
:row-selection="{ type: 'checkbox', showCheckedAll: true }"
: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="order_prescription_id" @selection-change="(selection) => {deleteData = selection;console.log(selection)}"
@page-change="handlePageChange" @page-size-change="handlepage_sizeChange">
<template #doctor_id="{record,rowIndex}">
<div>{{(rowIndex+1)+(pager.page-1)*pager.page_size}}</div>
@ -145,10 +145,10 @@
<script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
import { getPrescriptionList,getPrescriptionDetail} from '@/api/prescription/list';
import { getPrescriptionList,getPrescriptionDetail,exportPrescription} from '@/api/prescription/list';
import {formatPrescriptionStatus} from "@/utils/format"
import { downloadFile } from '@/utils/downloadFile';
// Akiraka 20230210
const deleteData = ref([])
// Akiraka 20230210
@ -341,8 +341,45 @@ watch(() => queryForm.expired_range_time,
//getPrescriptionInfo(queryForm);
currentPage.value=1;
//getProductInfo(queryForm);
handleQuery();
handleQuery();
}
const handlExport=async(type)=>{
proxy.$loading.show();
let fromData=null;
if(type==1){
fromData={
type,
...queryForm
}
}else if(type==2){
if(deleteData.value.length==0){
proxy.$message.warning('请勾选数据');
proxy.$loading.hide();
return false;
};
let id='';
deleteData.value.forEach((item)=>{
if(id){
id=","+item
}else{
id=item;
}
})
fromData={
type,
id
}
}else if(type==3){
fromData={
type
}
}
const {code,data}=await exportPrescription(fromData);
if(code==200){
downloadFile(data,'问诊订单');
}
proxy.$loading.hide();
}
onMounted(() => {