增加 导出报表

main
yanzai 1 year ago
parent fd47d5aad2
commit 0fab8480d0

@ -21,10 +21,10 @@
// env = 'online'
// env = 'dev'
const api_url = {
main: 'https://zwzyy-api.cjy.net.cn/'
main: 'https://zwzyy-api.sixinyun.com/'
}
if (env === 'dev') {
api_url.main = 'http://127.0.0.1:8000'
api_url.main = 'http://zhangwuzhongyiyuan'
}
const config_data = {
token_key: 'TOKEN',

@ -272,6 +272,19 @@ export const AdminInfoAction = async () => await $post({
url: `${$config.value.api.url}/api/${admin_api}/Admin/info`
}, false)
//销售报表
export const OrderSaleReportAction = async (data) => await $post({
url: `${$config.value.api.url}/api/${admin_api}/order/SaleReport`, data
}, true)
//导出报表
export const OrdersaleReportExporttAction = async (data) => await $post({
url: `${$config.value.api.url}/api/${admin_api}/order/saleReportExport`, data
}, true,'blob')
//导出订单
export const OrderOrderListExportAction = async (data) => await $post({
url: `${$config.value.api.url}/api/${admin_api}/order/OrderListExport`, data
}, true,'blob')
export const $headers = () => {
let $token
if ($save_token_type.value === 'local') {
@ -308,7 +321,7 @@ export const $response = (res, then, next = false) => {
$router.push('/login')
}
}
if (res.code !== $config.value.api.success) return window.$message().error(res.message)
// if (res.code !== $config.value.api.success) return window.$message().error(res.message)
then()
}
}

@ -0,0 +1,530 @@
<template>
<div>
<n-card title="订单列表">
<div>
<n-space align="center">
<n-tag>
<div class="form_tag_wrapper">医院</div>
</n-tag>
<n-select class="form_input_wrapper" v-model:value="page_options.hospital"
:options="hospital_select_list"/>
<n-tag>
<div class="form_tag_wrapper">时间类型</div>
</n-tag>
<n-select class="form_input_wrapper" v-model:value="page_options.time"
:options="[
{value:1,label:'创建时间'},
{value:2,label:'支付时间'},
{value:3,label:'预约时间'},
]"/>
<n-tag>
<div class="form_tag_wrapper">开始时间</div>
</n-tag>
<n-date-picker v-model:formatted-value="page_options.start_time" type="datetime"/>
<n-tag>
<div class="form_tag_wrapper">结束时间</div>
</n-tag>
<n-date-picker v-model:formatted-value="page_options.end_time" type="datetime"/>
</n-space>
<n-space mt-2 align="center">
<n-tag>
<div class="form_tag_wrapper">搜索</div>
</n-tag>
<n-input class="form_input_wrapper" v-model:value="page_options.search"/>
<n-tag>
<div class="form_tag_wrapper">状态</div>
</n-tag>
<n-radio-group v-model:value="page_options.status" name="status_radio">
<n-space>
<n-radio :value="0">全部</n-radio>
<n-radio v-for="(i,k) in status_arr" :key="k" :value="k+1">{{ i }}</n-radio>
</n-space>
</n-radio-group>
<n-button @click="searchClick()" type="info">搜索</n-button>
<n-button @click="clearSearchClick()" type="warning">清空</n-button>
</n-space>
<n-space mt-2>
<n-button @click="RefundShow(1)" type="error">退款</n-button>
<n-button @click="CancelShow(1)" type="warning">取消预约</n-button>
<n-button @click="RefundShow(2)" type="error">退款&取消预约</n-button>
<n-button @click="CancelShow(2)" type="warning">取消订单</n-button>
</n-space>
<div style="text-align: right; display: flex;justify-content: flex-end;cursor: pointer; "
@click="Export()">
<Icon type="off-screen"></Icon>
<div>导出Excel</div>
</div>
<n-data-table mt-2 striped v-model:checked-row-keys="user_order_active"
:columns="user_order_columns"
:row-key="row=>row.id" :data="user_order_list"/>
<n-pagination v-if="user_order_list_last_page > 1" @update:page="updatePage" mt-2
v-model:page="page_options.page"
:page-count="user_order_list_last_page"/>
</div>
</n-card>
</div>
</template>
<script setup>
import {
UserOrderCancelAction,
UserOrderRefundAction,
UserOrderListAction,
HospitalSelectListAction,OrderOrderListExportAction,
$response,
} from '~/api'
import $router from '~/router'
import {h} from "vue";
import {NTag, NSpace} from 'naive-ui'
import {onBeforeRouteUpdate} from "vue-router";
const default_page_options = {
page: 1,
hospital: 0,
start_time: null,
end_time: null,
time: 1,
search: '',
status: 0,
}
const page_options = ref(JSON.parse(JSON.stringify(default_page_options)))
onBeforeRouteUpdate((to) => {
routerChange(to.query)
})
const hospital_id = ref(0)
const routerChange = (query) => {
page_options.value = {
hospital: Number(query.hospital || default_page_options.hospital),
start_time: query.start_time || default_page_options.start_time,
end_time: query.end_time || default_page_options.end_time,
time: Number(query.time || default_page_options.time),
search: query.search || default_page_options.search,
status: Number(query.status || default_page_options.status),
page: Number(query.page || default_page_options.page),
}
if (hospital_select_list.value.length === 0) {
HospitalSelectList()
} else {
user_order_active.value = []
UserOrderList()
}
}
onMounted(() => {
routerChange($router.currentRoute.value.query)
})
const user_order_active = ref([])
const user_order_list = ref([])
const user_order_list_last_page = ref(0)
const UserOrderList = async () => {
const response = await UserOrderListAction({...page_options.value})
$response(response, () => {
user_order_list.value = response.data.data.map((item) => {
item.buy_info = JSON.parse(item.buy_info)
return item
})
user_order_list_last_page.value = response.data.last_page
})
}
const pay_arr = ['暂未指定', '微信', '会员卡', '免费']
const pay_color_arr = ['default', 'success', 'error', 'info']
const status_arr = ['待支付', '已支付', '已取消', '已完成', '已退款']
const status_color_arr = ['default', 'success', 'default', 'info', 'error']
const user_order_columns = [{
type: 'selection',
multiple: false
}, {
title: '体检人信息',
key: 'name',
render(row) {
let children = [
h('div', null, {
default: () => {
return [
h(
NSpace,
{align: 'center', justify: 'space-between'},
{
default: () => {
return [
h('div', null, [
h('b', '姓名: '),
row.name,
]),
h(NSpace, {
align: 'center'
}, {
default: () => {
return [
h('b', '性别:'),
h(
NTag,
{
size: 'small',
type: Number(row.sex) === 1 ? 'info' : 'error'
},
{
default: () => {
return Number(row.sex) === 1 ? '男' : '女'
}
}
),
]
}
}),
]
}
}
)
]
}
}),
h('div', null, [
h('b', '手机号: '),
h('span', row.phone),
]),
h('div', null, [
h('b', '证件号: '),
h('span', row.id_number),
]),
]
if (row.type === 2) {
children.push(h('div', null, [
h('b', '单位名称: '),
h('span', null, row.buy_info.group.group_name),
]))
}
return children
}
}, {
title: '检测信息',
key: 'type',
render(row) {
let name = '-'
if (row.combo !== '0') {
name = row.buy_info.combo.name
} else {
if (Number(row.type) === 2) {
name = row.buy_info.group.combo_name
}
}
return [
h('div', null, [
h('b', '检测类型: '),
h(
NTag,
{
size: 'small',
type: Number(row.type) === 1 ? 'success' : 'error'
},
{
default: () => {
return Number(row.type) === 1 ? '个检' : '团检'
}
}
),
]),
h('div', null, [
h('b', '套餐名称: '),
h('span', null, name),
]),
h('div', {class: ['line_wrapper']}, [
h('b', '自选项目: '),
h('div', {class: ['items_content_wrapper']}, !!row.buy_info.items.length ? row.buy_info.items.map((item) => {
return item.name
}).join('、') : '-'),
]),
]
}
}, {
title: '支付信息',
key: 'status',
render(row) {
let price = row.price
if (row.price !== row.true_price) {
// price = price + '' + row.true_price + ''
}
let children = [
h('div', null, [
h('b', '订单编号: '),
h('span', row.show),
]),
h('div', null, [
h('b', '创建时间: '),
h('span', row.created_at),
]),
h(
NSpace,
{align: 'center'},
{
default: () => {
return [
h('b', '支付方式: '),
h(
NTag,
{
size: 'small',
type: pay_color_arr[row.pay_type]
},
{
default: () => {
return pay_arr[row.pay_type]
}
}
),
]
}
}
),
h('div', null, [
h('b', '订单金额: '),
h('span', price),
]),
h('div', null, [
h('b', '实际支付金额: '),
h('span', row.true_price),
]),
h(
NSpace,
{align: 'center'},
{
default: () => {
return [
h('b', '支付状态: '),
h(
NTag,
{
size: 'small',
type: ((!!row.refund_time && row.status === 2) || (!row.appointment_number && row.status === 2))
? 'error'
: status_color_arr[row.status - 1]
},
{
default: () => {
if (!!row.refund_time && row.status === 2) return '仅退款'
if (!row.appointment_number && row.status === 2) return '仅退订'
return status_arr[row.status - 1]
}
}
),
]
}
}
),
]
if (row.status !== 1 && row.status !== 3) {
children.push(h('div', null, [
h('b', '支付时间: '),
h('span', row.pay_time),
]))
}
if (!!row.transaction) {
children.push(h('div', null, [
h('b', '支付编号: '),
h('span', row.transaction),
]))
}
if (!!row.refund_time) {
children.push(h('div', null, [
h('b', '退款时间: '),
h('span', row.refund_time),
]))
}
return children
}
}, {
title: '体检信息',
key: 'appointment',
render(row) {
let children = [
h('div', null, [
h('b', '预约时间: '),
h('span', row.appointment_time),
]),
h('div', null, [
h('b', '预约编号: '),
h('span', !!row.appointment_number ? row.appointment_number : '-'),
]),
h('div', null, [
h('b', '到检状态: '),
h(
NTag,
{
size: 'small',
type: row.check_status === 2 ? 'success' : 'error'
},
{
default: () => {
return row.check_status === 2 ? '已到检' : '未到检'
}
}
),
]),
]
if (row.check_status === 2) {
children.push(h('div', null, [
h('b', '到检时间: '),
h('span', row.check_time),
]))
}
if (!!row.exam_number) {
children.push(h('div', null, [
h('b', '体检编号: '),
h('span', row.exam_number),
]))
}
children.push(h('div', null, [
h('b', '介绍人: '),
h('span', row.referral ? row.referral : '-'),
]))
return children
}
}]
const hospital_select_list = ref([])
const HospitalSelectList = async () => {
const response = await HospitalSelectListAction(page_options.value)
$response(response, () => {
hospital_select_list.value = response.data.list.map((item) => {
return {
label: item.name,
value: item.id
}
})
if (!page_options.value.hospital && hospital_select_list.value.length > 0) {
page_options.value.hospital = hospital_select_list.value[0].value
}
UserOrderList()
})
}
const pagePush = () => {
$router.push({
query: page_options.value
})
}
const searchClick = () => {
updatePage(1)
}
const updatePage = (page) => {
page_options.value.page = page
pagePush()
}
const clearSearchClick = () => {
$router.push({
query: JSON.parse(JSON.stringify({
...default_page_options,
hospital: page_options.value.hospital,
}))
})
}
const refund_show = ref(false)
const refund_type = ref(1)
const RefundShow = (type) => {
if (user_order_active.value.length === 0) return window.$message().error('请选择一个订单')
refund_type.value = type
refund_show.value = true
}
const UserOrderRefund = async () => {
const response = await UserOrderRefundAction({
id: user_order_active.value[0],
type: refund_type.value
})
$response(response, () => {
window.$message().success('操作成功')
refund_show.value = false
UserOrderList()
})
}
const cancel_show = ref(false)
const cancel_type = ref(1)
const CancelShow = (type) => {
if (user_order_active.value.length === 0) return window.$message().error('请选择一个订单')
cancel_type.value = type
cancel_show.value = true
}
const UserOrderCancel = async () => {
const response = await UserOrderCancelAction({
id: user_order_active.value[0],
type: cancel_type.value
})
$response(response, () => {
window.$message().success('操作成功')
cancel_show.value = false
UserOrderList()
})
}
const Export = async () => {
const response = await OrderOrderListExportAction({
...page_options.value
})
$response(response, () => {
console.log(response)
const blob = new Blob([response])
const url = URL.createObjectURL(blob)
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', '订单列表.csv')
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
URL.revokeObjectURL(url)
})
}
</script>
<style>
.line_wrapper {
display: flex;
}
.items_content_wrapper {
width: 200px;
}
</style>
<style scoped>
.op0 {
opacity: 0;
}
.date_box_wrapper {
background: #ffffff;
margin-top: 2px;
cursor: pointer;
border-radius: 6px;
}
.month_wrapper {
display: flex;
}
.month_box_title_wrapper {
height: 40px;
line-height: 40px;
font-size: 20px;
background: #00000005;
}
.month_box_wrapper {
background: #00000010;
border: 1px #00000010 solid;
text-align: center;
border-radius: 6px;
overflow: hidden;
}
.form_checkbox_wrapper {
width: 300px;
}
.create {
background: #4b9d5f60;
}
</style>
<route>
{"meta":{"title":"订单列表"}}
</route>

@ -0,0 +1,334 @@
<template>
<div>
<n-card title="订单列表">
<div>
<n-space align="center">
<n-tag>
<div class="form_tag_wrapper">医院</div>
</n-tag>
<n-select class="form_input_wrapper" v-model:value="page_options.hospital"
:options="hospital_select_list" />
<n-tag>
<div class="form_tag_wrapper">开始时间</div>
</n-tag>
<n-date-picker v-model:formatted-value="page_options.start_time" type="datetime" />
<n-tag>
<div class="form_tag_wrapper">结束时间</div>
</n-tag>
<n-date-picker v-model:formatted-value="page_options.end_time" type="datetime" />
<n-button @click="searchClick()" type="info">搜索</n-button>
</n-space>
<div>
<div class="info_title">数据概览</div>
<div style="display: flex;justify-content: space-between">
<div></div>
<div style="text-align: center; width: 300px;">
<div class="info_title2">数量</div>
<div style="font-size: 18px; color: #333; font-weight: 700;">{{report_info.count}}</div>
<div class="info_title3" v-for="(item,index) in report_info" :key="index">
<span v-if="item.type==1"> </span>
<span v-else> </span><span> {{item.counts}}</span>
</div>
</div>
<div style="text-align: center;width: 300px;">
<div class="info_title2">金额</div>
<div style="font-size: 18px; color: #333; font-weight: 700;">{{report_info.price}}</div>
<div class="info_title3" v-for="(item,index) in report_info" :key="index">
<span v-if="item.type==1"> </span>
<span v-else> </span><span>{{item.price}}</span>
</div>
</div>
<div></div>
</div>
</div>
<div style="text-align: right; display: flex;justify-content: flex-end;cursor: pointer; "
@click="Export()">
<Icon type="off-screen"></Icon>
<div>导出Excel</div>
</div>
<n-data-table mt-2 striped v-model:checked-row-keys="user_order_active" :columns="user_order_columns"
:row-key="row=>row.id" :data="user_order_list" />
<n-pagination v-if="user_order_list_last_page > 1" @update:page="updatePage" mt-2
v-model:page="page_options.page" :page-count="user_order_list_last_page" />
</div>
</n-card>
</div>
</template>
<script setup>
import {
OrderSaleReportAction,
UserOrderCancelAction,
UserOrderRefundAction,
UserOrderListAction,
HospitalSelectListAction,
OrdersaleReportExporttAction,
$response,
} from '~/api'
import $router from '~/router'
import {
h
} from "vue";
import {
NTag,
NSpace
} from 'naive-ui'
import {
onBeforeRouteUpdate
} from "vue-router";
const default_page_options = {
page: 1,
hospital: 0,
start_time: null,
end_time: null,
time: 1,
search: '',
status: 0,
}
const page_options = ref(JSON.parse(JSON.stringify(default_page_options)))
onBeforeRouteUpdate((to) => {
routerChange(to.query)
})
const hospital_id = ref(0)
const routerChange = (query) => {
page_options.value = {
hospital: Number(query.hospital || default_page_options.hospital),
start_time: query.start_time || default_page_options.start_time,
end_time: query.end_time || default_page_options.end_time,
time: Number(query.time || default_page_options.time),
search: query.search || default_page_options.search,
status: Number(query.status || default_page_options.status),
page: Number(query.page || default_page_options.page),
}
if (hospital_select_list.value.length === 0) {
HospitalSelectList()
} else {
user_order_active.value = []
UserOrderList()
}
}
onMounted(() => {
routerChange($router.currentRoute.value.query)
})
let report_info = ref('')
const user_order_active = ref([])
const user_order_list = ref([])
const user_order_list_last_page = ref(0)
const UserOrderList = async () => {
const response = await OrderSaleReportAction({
...page_options.value
})
$response(response, () => {
user_order_list.value = response.data.list
report_info.value = response.data.info
let count = 0
let price = 0
report_info.value.forEach((v, i) => {
count = count + v.counts
price = parseFloat(price) + parseFloat(v.price)
})
report_info.value.count = count
report_info.value.price = price
})
}
const pay_arr = ['暂未指定', '微信', '会员卡', '免费']
const pay_color_arr = ['default', 'success', 'error', 'info']
const status_arr = ['待支付', '已支付', '已取消', '已完成', '已退款']
const status_color_arr = ['default', 'success', 'default', 'info', 'error']
const user_order_columns = [{
title: '日期',
key: 'date'
}, {
title: '类型',
key: 'type',
render(row) {
return h(
NTag, {
type: row.type === 1 ? 'success' : 'error'
}, {
default: () => {
return row.type === 1 ? '个检' : '团检'
}
}
)
}
}, {
title: '数量',
key: 'counts',
}, {
title: '金额',
key: 'price',
}]
const hospital_select_list = ref([])
const HospitalSelectList = async () => {
const response = await HospitalSelectListAction(page_options.value)
$response(response, () => {
hospital_select_list.value = response.data.list.map((item) => {
return {
label: item.name,
value: item.id
}
})
if (!page_options.value.hospital && hospital_select_list.value.length > 0) {
page_options.value.hospital = hospital_select_list.value[0].value
}
UserOrderList()
})
}
const pagePush = () => {
$router.push({
query: page_options.value
})
}
const searchClick = () => {
updatePage(1)
}
const updatePage = (page) => {
page_options.value.page = page
pagePush()
}
const clearSearchClick = () => {
$router.push({
query: JSON.parse(JSON.stringify({
...default_page_options,
hospital: page_options.value.hospital,
}))
})
}
const refund_show = ref(false)
const refund_type = ref(1)
const RefundShow = (type) => {
if (user_order_active.value.length === 0) return window.$message().error('请选择一个订单')
refund_type.value = type
refund_show.value = true
}
const UserOrderRefund = async () => {
const response = await UserOrderRefundAction({
id: user_order_active.value[0],
type: refund_type.value
})
$response(response, () => {
window.$message().success('操作成功')
refund_show.value = false
UserOrderList()
})
}
const cancel_show = ref(false)
const cancel_type = ref(1)
const CancelShow = (type) => {
if (user_order_active.value.length === 0) return window.$message().error('请选择一个订单')
cancel_type.value = type
cancel_show.value = true
}
const UserOrderCancel = async () => {
const response = await UserOrderCancelAction({
id: user_order_active.value[0],
type: cancel_type.value
})
$response(response, () => {
window.$message().success('操作成功')
cancel_show.value = false
UserOrderList()
})
}
const Export = async () => {
const response = await OrdersaleReportExporttAction({
...page_options.value
})
$response(response, () => {
console.log(response)
const blob = new Blob([response])
const url = URL.createObjectURL(blob)
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', '订单统计.csv')
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
URL.revokeObjectURL(url)
})
}
</script>
<style>
.line_wrapper {
display: flex;
}
.items_content_wrapper {
width: 200px;
}
</style>
<style scoped>
.op0 {
opacity: 0;
}
.date_box_wrapper {
background: #ffffff;
margin-top: 2px;
cursor: pointer;
border-radius: 6px;
}
.month_wrapper {
display: flex;
}
.month_box_title_wrapper {
height: 40px;
line-height: 40px;
font-size: 20px;
background: #00000005;
}
.month_box_wrapper {
background: #00000010;
border: 1px #00000010 solid;
text-align: center;
border-radius: 6px;
overflow: hidden;
}
.form_checkbox_wrapper {
width: 300px;
}
.create {
background: #4b9d5f60;
}
.info_title {
font-size: 18px;
color: #333;
margin-top: 16px;
}
.info_title2 {
font-size: 16px;
color: #666;
margin-top: 8px;
}
.info_title3 {
font-size: 14px;
color: #999;
margin-top: 4px;
}
</style>
<route>
{"meta":{"title":"订单列表"}}
</route>

@ -19,10 +19,10 @@ post.interceptors.response.use(response => {
}, error => Promise.reject(error))
const $config = useConfig()
export const $post = async (request, loading = false) => {
export const $post = async (request, loading = false, responseType = 'json') => {
const $store = useStore()
if (loading) $store.api_loading++
const response = await post(request).catch((e) => {
const response = await post(request,responseType).catch((e) => {
window.$message().error($config.value.api.error_message)
})
if (loading) $store.api_loading--

@ -0,0 +1,45 @@
<?php
namespace App\Exports;
use App\Models\Models\FangOwner;
use App\Models\UserOrder;
use http\Client\Curl\User;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
class FangOwnerExport implements FromCollection,WithHeadings
{
protected $param;
public function __construct($param)
{
$this->param = $param;
}
// public function map($row): array
// {
// return [
//// $row->date,
//// $row->type,
// // 添加更多列映射...
// ];
// }
public function headings(): array
{
return [
'日期',
'类型(1个检2团检)',
'数量',
'金额',
];
}
public function collection()
{
//创建一个对象
return $this->param ;
}
}

@ -0,0 +1,52 @@
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
class OrderListExport implements FromCollection,WithHeadings,WithMapping
{
protected $param;
public function __construct($param)
{
$this->param = $param;
}
public function map($row): array
{
return [
$row->name,
$row->sex,
$row->show,
$row->price,
$row->true_price,
$row->pay_type,
$row->status,
$row->pay_time,
$row->refund_time,
// 添加更多列映射...
];
}
public function headings(): array
{
return [
'姓名',
'性别(1男2女)',
'订单号',
'订单金额',
'实际支付金额',
'支付方式',
'支付状态(1待支付2已支付3取消4已经完成5退款)',
'支付时间',
'退款时间',
];
}
public function collection()
{
//创建一个对象
return $this->param ;
}
}

@ -2,6 +2,8 @@
namespace App\Http\Controllers;
use App\Exports\FangOwnerExport;
use App\Exports\OrderListExport;
use App\Models\Appointment;
use App\Models\Hospital;
use App\Models\HospitalExtra;
@ -12,6 +14,8 @@ use App\Models\UserPerson;
use App\Models\WeChatPay;
use App\Models\WeChatRefund;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
use Yo;
use Login;
use Lu;
@ -635,6 +639,60 @@ class UserOrderController extends Controller
}
return Yo::echo($list->orderBy('id', 'desc')->paginate(10));
}
public function OrderListExport(Request $request)
{
Login::admin([], [26, 30,37]);
$hospital = $request->post('hospital');
if (Login::$info->hospital != 0) {
if ($hospital != Login::$info->hospital) {
Yo::error_echo(100000, ['机构/医院']);
}
}
$start_time = $request->post('start_time');
$end_time = $request->post('end_time');
$time = $request->post('time');
$search = $request->post('search');
$status = $request->post('status');
$list = UserOrder::select('*')
->where('hospital', $hospital)
->where(function ($query) use ($status) {
if ($status != 0) $query->where('status', $status);
})
->where(function ($query) use ($search) {
if ($search != '') $query->where('name', $search)
->orWhere('id_number', $search)
->orWhere('phone', $search)
->orWhere('show', $search);
});
if (!!$start_time) {
switch ($time) {
case 1:
$list->where('created_at', '>=', $start_time);
break;
case 2:
$list->where('pay_time', '>=', $start_time);
break;
case 3:
$list->where('appointment_time', '>=', $start_time);
break;
}
}
if (!!$end_time) {
switch ($time) {
case 1:
$list->where('created_at', '<=', $end_time);
break;
case 2:
$list->where('pay_time', '<=', $end_time);
break;
case 3:
$list->where('appointment_time', '<=', $end_time);
break;
}
}
$list= $list->orderBy('id', 'desc')->get();
return Excel::download( new OrderListExport($list),'aa.csv',\Maatwebsite\Excel\Excel::CSV, ['Content-Type' => 'text/csv']);
}
public function callback($id)
{
@ -877,4 +935,78 @@ class UserOrderController extends Controller
$order_info->save();
return Yo::update_echo();
}
public function orderSaleReport(Request $request)
{
Login::admin();
$hospital = $request->post('hospital');
if (Login::$info->hospital != 0) {
$hospital=Login::$info->hospital;
}
$start_time = $request->post('start_time');
$end_time = $request->post('end_time');
$info = DB::table('user_orders')
->selectRaw('type, count(*) as counts, sum(true_price) as price')
->where('status', '=', 2);
$list = DB::table('user_orders')
->selectRaw('LEFT(created_at, 10) as date, type, count(*) as counts, sum(true_price) as price')
->where('status', '=', 2);
if(!!$hospital){
$list->where('hospital', '=', $hospital);
$info->where('hospital', '=', $hospital);
}
if(!!$start_time){
$list->where('created_at', '>', $start_time);
$info->where('created_at', '>', $start_time);
}
if(!!$end_time){
$list->where('created_at', '<', $end_time);
$info->where('created_at', '<', $end_time);
}
$list = $list
->groupBy('date', 'type')
->get();
$info = $info
->groupBy( 'type')
->get();
return Yo::echo([
'list' => $list,
'info'=>$info
]);
}
public function saleReportExport(Request $request){
Login::admin();
$hospital = $request->post('hospital');
if (Login::$info->hospital != 0) {
$hospital=Login::$info->hospital;
}
$start_time = $request->post('start_time');
$end_time = $request->post('end_time');
$info = DB::table('user_orders')
->selectRaw('type, count(*) as counts, sum(true_price) as price')
->where('status', '=', 2);
$list = DB::table('user_orders')
->selectRaw('LEFT(created_at, 10) as date, type, count(*) as counts, sum(true_price) as price')
->where('status', '=', 2);
if(!!$hospital){
$list->where('hospital', '=', $hospital);
$info->where('hospital', '=', $hospital);
}
if(!!$start_time){
$list->where('created_at', '>', $start_time);
$info->where('created_at', '>', $start_time);
}
if(!!$end_time){
$list->where('created_at', '<', $end_time);
$info->where('created_at', '<', $end_time);
}
$list = $list
->groupBy('date', 'type')
->get();
$info = $info
->groupBy( 'type')
->get();
//$list = array_map('utf8_decode', $list);
return Excel::download( new FangOwnerExport($list),'aa.csv',\Maatwebsite\Excel\Excel::CSV, ['Content-Type' => 'text/csv']);
}
}

@ -11,6 +11,7 @@
"laravel/framework": "^8.75",
"laravel/sanctum": "^2.11",
"laravel/tinker": "^2.5",
"maatwebsite/excel": "^3.1",
"symfony/expression-language": "^5.4",
"wechatpay/wechatpay": "^1.4"
},

@ -174,6 +174,7 @@ return [
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Maatwebsite\Excel\ExcelServiceProvider::class,
],
@ -229,6 +230,7 @@ return [
'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],

@ -0,0 +1,379 @@
<?php
use Maatwebsite\Excel\Excel;
return [
'exports' => [
/*
|--------------------------------------------------------------------------
| Chunk size
|--------------------------------------------------------------------------
|
| When using FromQuery, the query is automatically chunked.
| Here you can specify how big the chunk should be.
|
*/
'chunk_size' => 1000,
/*
|--------------------------------------------------------------------------
| Pre-calculate formulas during export
|--------------------------------------------------------------------------
*/
'pre_calculate_formulas' => false,
/*
|--------------------------------------------------------------------------
| Enable strict null comparison
|--------------------------------------------------------------------------
|
| When enabling strict null comparison empty cells ('') will
| be added to the sheet.
*/
'strict_null_comparison' => false,
/*
|--------------------------------------------------------------------------
| CSV Settings
|--------------------------------------------------------------------------
|
| Configure e.g. delimiter, enclosure and line ending for CSV exports.
|
*/
'csv' => [
'delimiter' => ',',
'enclosure' => '"',
'line_ending' => PHP_EOL,
'use_bom' => false,
'include_separator_line' => false,
'excel_compatibility' => false,
'output_encoding' => '',
'test_auto_detect' => true,
],
/*
|--------------------------------------------------------------------------
| Worksheet properties
|--------------------------------------------------------------------------
|
| Configure e.g. default title, creator, subject,...
|
*/
'properties' => [
'creator' => '',
'lastModifiedBy' => '',
'title' => '',
'description' => '',
'subject' => '',
'keywords' => '',
'category' => '',
'manager' => '',
'company' => '',
],
],
'imports' => [
/*
|--------------------------------------------------------------------------
| Read Only
|--------------------------------------------------------------------------
|
| When dealing with imports, you might only be interested in the
| data that the sheet exists. By default we ignore all styles,
| however if you want to do some logic based on style data
| you can enable it by setting read_only to false.
|
*/
'read_only' => true,
/*
|--------------------------------------------------------------------------
| Ignore Empty
|--------------------------------------------------------------------------
|
| When dealing with imports, you might be interested in ignoring
| rows that have null values or empty strings. By default rows
| containing empty strings or empty values are not ignored but can be
| ignored by enabling the setting ignore_empty to true.
|
*/
'ignore_empty' => false,
/*
|--------------------------------------------------------------------------
| Heading Row Formatter
|--------------------------------------------------------------------------
|
| Configure the heading row formatter.
| Available options: none|slug|custom
|
*/
'heading_row' => [
'formatter' => 'slug',
],
/*
|--------------------------------------------------------------------------
| CSV Settings
|--------------------------------------------------------------------------
|
| Configure e.g. delimiter, enclosure and line ending for CSV imports.
|
*/
'csv' => [
'delimiter' => null,
'enclosure' => '"',
'escape_character' => '\\',
'contiguous' => false,
'input_encoding' => 'UTF-8',
],
/*
|--------------------------------------------------------------------------
| Worksheet properties
|--------------------------------------------------------------------------
|
| Configure e.g. default title, creator, subject,...
|
*/
'properties' => [
'creator' => '',
'lastModifiedBy' => '',
'title' => '',
'description' => '',
'subject' => '',
'keywords' => '',
'category' => '',
'manager' => '',
'company' => '',
],
/*
|--------------------------------------------------------------------------
| Cell Middleware
|--------------------------------------------------------------------------
|
| Configure middleware that is executed on getting a cell value
|
*/
'cells' => [
'middleware' => [
//\Maatwebsite\Excel\Middleware\TrimCellValue::class,
//\Maatwebsite\Excel\Middleware\ConvertEmptyCellValuesToNull::class,
],
],
],
/*
|--------------------------------------------------------------------------
| Extension detector
|--------------------------------------------------------------------------
|
| Configure here which writer/reader type should be used when the package
| needs to guess the correct type based on the extension alone.
|
*/
'extension_detector' => [
'xlsx' => Excel::XLSX,
'xlsm' => Excel::XLSX,
'xltx' => Excel::XLSX,
'xltm' => Excel::XLSX,
'xls' => Excel::XLS,
'xlt' => Excel::XLS,
'ods' => Excel::ODS,
'ots' => Excel::ODS,
'slk' => Excel::SLK,
'xml' => Excel::XML,
'gnumeric' => Excel::GNUMERIC,
'htm' => Excel::HTML,
'html' => Excel::HTML,
'csv' => Excel::CSV,
'tsv' => Excel::TSV,
/*
|--------------------------------------------------------------------------
| PDF Extension
|--------------------------------------------------------------------------
|
| Configure here which Pdf driver should be used by default.
| Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF
|
*/
'pdf' => Excel::DOMPDF,
],
/*
|--------------------------------------------------------------------------
| Value Binder
|--------------------------------------------------------------------------
|
| PhpSpreadsheet offers a way to hook into the process of a value being
| written to a cell. In there some assumptions are made on how the
| value should be formatted. If you want to change those defaults,
| you can implement your own default value binder.
|
| Possible value binders:
|
| [x] Maatwebsite\Excel\DefaultValueBinder::class
| [x] PhpOffice\PhpSpreadsheet\Cell\StringValueBinder::class
| [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class
|
*/
'value_binder' => [
'default' => Maatwebsite\Excel\DefaultValueBinder::class,
],
'cache' => [
/*
|--------------------------------------------------------------------------
| Default cell caching driver
|--------------------------------------------------------------------------
|
| By default PhpSpreadsheet keeps all cell values in memory, however when
| dealing with large files, this might result into memory issues. If you
| want to mitigate that, you can configure a cell caching driver here.
| When using the illuminate driver, it will store each value in the
| cache store. This can slow down the process, because it needs to
| store each value. You can use the "batch" store if you want to
| only persist to the store when the memory limit is reached.
|
| Drivers: memory|illuminate|batch
|
*/
'driver' => 'memory',
/*
|--------------------------------------------------------------------------
| Batch memory caching
|--------------------------------------------------------------------------
|
| When dealing with the "batch" caching driver, it will only
| persist to the store when the memory limit is reached.
| Here you can tweak the memory limit to your liking.
|
*/
'batch' => [
'memory_limit' => 60000,
],
/*
|--------------------------------------------------------------------------
| Illuminate cache
|--------------------------------------------------------------------------
|
| When using the "illuminate" caching driver, it will automatically use
| your default cache store. However if you prefer to have the cell
| cache on a separate store, you can configure the store name here.
| You can use any store defined in your cache config. When leaving
| at "null" it will use the default store.
|
*/
'illuminate' => [
'store' => null,
],
/*
|--------------------------------------------------------------------------
| Cache Time-to-live (TTL)
|--------------------------------------------------------------------------
|
| The TTL of items written to cache. If you want to keep the items cached
| indefinitely, set this to null. Otherwise, set a number of seconds,
| a \DateInterval, or a callable.
|
| Allowable types: callable|\DateInterval|int|null
|
*/
'default_ttl' => 10800,
],
/*
|--------------------------------------------------------------------------
| Transaction Handler
|--------------------------------------------------------------------------
|
| By default the import is wrapped in a transaction. This is useful
| for when an import may fail and you want to retry it. With the
| transactions, the previous import gets rolled-back.
|
| You can disable the transaction handler by setting this to null.
| Or you can choose a custom made transaction handler here.
|
| Supported handlers: null|db
|
*/
'transactions' => [
'handler' => 'db',
'db' => [
'connection' => null,
],
],
'temporary_files' => [
/*
|--------------------------------------------------------------------------
| Local Temporary Path
|--------------------------------------------------------------------------
|
| When exporting and importing files, we use a temporary file, before
| storing reading or downloading. Here you can customize that path.
| permissions is an array with the permission flags for the directory (dir)
| and the create file (file).
|
*/
'local_path' => storage_path('framework/cache/laravel-excel'),
/*
|--------------------------------------------------------------------------
| Local Temporary Path Permissions
|--------------------------------------------------------------------------
|
| Permissions is an array with the permission flags for the directory (dir)
| and the create file (file).
| If omitted the default permissions of the filesystem will be used.
|
*/
'local_permissions' => [
// 'dir' => 0755,
// 'file' => 0644,
],
/*
|--------------------------------------------------------------------------
| Remote Temporary Disk
|--------------------------------------------------------------------------
|
| When dealing with a multi server setup with queues in which you
| cannot rely on having a shared local temporary path, you might
| want to store the temporary file on a shared disk. During the
| queue executing, we'll retrieve the temporary file from that
| location instead. When left to null, it will always use
| the local path. This setting only has effect when using
| in conjunction with queued imports and exports.
|
*/
'remote_disk' => null,
'remote_prefix' => null,
/*
|--------------------------------------------------------------------------
| Force Resync
|--------------------------------------------------------------------------
|
| When dealing with a multi server setup as above, it's possible
| for the clean up that occurs after entire queue has been run to only
| cleanup the server that the last AfterImportJob runs on. The rest of the server
| would still have the local temporary file stored on it. In this case your
| local storage limits can be exceeded and future imports won't be processed.
| To mitigate this you can set this config value to be true, so that after every
| queued chunk is processed the local temporary file is deleted on the server that
| processed it.
|
*/
'force_resync_remote' => null,
],
];

@ -21,10 +21,10 @@
// env = 'online'
// env = 'dev'
const api_url = {
main: 'https://health.sixinyun.com'
main: 'https://zwzyy-api.sixinyun.com/'
}
if (env === 'dev') {
api_url.main = 'http://127.0.0.1:8000'
api_url.main = 'http://zhangwuzhongyiyuan'
}
const config_data = {
token_key: 'TOKEN',
@ -58,7 +58,7 @@
})()
// PUBLIC CONFIG END
</script>
<script type="module" crossorigin src="/admin/lib/index.3790e358.js"></script>
<script type="module" crossorigin src="/admin/lib/index.3c4f55c3.js"></script>
<link rel="stylesheet" href="/admin/lib/index.ab3902eb.css">
</head>
<body>

@ -0,0 +1 @@
import{o as t,c as o,a as r,u as a,r as n}from"./index.3c4f55c3.js";const s={p:"x4 y10",text:"center blue-500 dark:gray-200"},m={__name:"404",setup(c){return a(),(_,u)=>{const e=n("RouterView");return t(),o("main",s,[r(e)])}}};export{m as default};

@ -0,0 +1 @@
import{C as o,m as e}from"./index.3c4f55c3.js";var n=o({name:"Add",render(){return e("svg",{width:"512",height:"512",viewBox:"0 0 512 512",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{d:"M256 112V400M400 256H112",stroke:"currentColor","stroke-width":"32","stroke-linecap":"round","stroke-linejoin":"round"}))}});export{n as A};

@ -0,0 +1,99 @@
import{m as t,C as j,P as H,W as N,f as F,H as B,V as E,a0 as se,U as P,D as ue,ac as l,L as b,J as r,K as y,M,ae as be,af as he,ag as fe,G as ke,X as ve,Q as V,ah as me,a1 as ge,a2 as K,a4 as xe,ai as pe,aj as Ce,aa as ye}from"./index.3c4f55c3.js";var we=t("svg",{viewBox:"0 0 64 64",class:"check-icon"},t("path",{d:"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z"})),Re=t("svg",{viewBox:"0 0 100 100",class:"line-icon"},t("path",{d:"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z"}));const G=ue("n-checkbox-group"),ze={min:Number,max:Number,size:String,value:Array,defaultValue:{type:Array,default:null},disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:[Function,Array]};var De=j({name:"CheckboxGroup",props:ze,setup(o){const{mergedClsPrefixRef:g}=H(o),x=N(o),{mergedSizeRef:w,mergedDisabledRef:S}=x,s=F(o.defaultValue),R=B(()=>o.value),u=E(R,s),c=B(()=>{var h;return((h=u.value)===null||h===void 0?void 0:h.length)||0}),a=B(()=>Array.isArray(u.value)?new Set(u.value):new Set);function $(h,n){const{nTriggerFormInput:p,nTriggerFormChange:C}=x,{onChange:f,"onUpdate:value":k,onUpdateValue:v}=o;if(Array.isArray(u.value)){const i=Array.from(u.value),A=i.findIndex(I=>I===n);h?~A||(i.push(n),v&&l(v,i,{actionType:"check",value:n}),k&&l(k,i,{actionType:"check",value:n}),p(),C(),s.value=i,f&&l(f,i)):~A&&(i.splice(A,1),v&&l(v,i,{actionType:"uncheck",value:n}),k&&l(k,i,{actionType:"uncheck",value:n}),f&&l(f,i),s.value=i,p(),C())}else h?(v&&l(v,[n],{actionType:"check",value:n}),k&&l(k,[n],{actionType:"check",value:n}),f&&l(f,[n]),s.value=[n],p(),C()):(v&&l(v,[],{actionType:"uncheck",value:n}),k&&l(k,[],{actionType:"uncheck",value:n}),f&&l(f,[]),s.value=[],p(),C())}return se(G,{checkedCountRef:c,maxRef:P(o,"max"),minRef:P(o,"min"),valueSetRef:a,disabledRef:S,mergedSizeRef:w,toggleCheckbox:$}),{mergedClsPrefix:g}},render(){return t("div",{class:`${this.mergedClsPrefix}-checkbox-group`,role:"group"},this.$slots)}}),Se=b([r("checkbox",`
line-height: var(--n-label-line-height);
font-size: var(--n-font-size);
outline: none;
cursor: pointer;
display: inline-flex;
flex-wrap: nowrap;
align-items: flex-start;
word-break: break-word;
--n-merged-color-table: var(--n-color-table);
`,[b("&:hover",[r("checkbox-box",[y("border",{border:"var(--n-border-checked)"})])]),b("&:focus:not(:active)",[r("checkbox-box",[y("border",`
border: var(--n-border-focus);
box-shadow: var(--n-box-shadow-focus);
`)])]),M("inside-table",[r("checkbox-box",`
background-color: var(--n-merged-color-table);
`)]),M("checked",[r("checkbox-box",`
background-color: var(--n-color-checked);
`,[r("checkbox-icon",[b(".check-icon",`
opacity: 1;
transform: scale(1);
`)])])]),M("indeterminate",[r("checkbox-box",[r("checkbox-icon",[b(".check-icon",`
opacity: 0;
transform: scale(.5);
`),b(".line-icon",`
opacity: 1;
transform: scale(1);
`)])])]),M("checked, indeterminate",[b("&:focus:not(:active)",[r("checkbox-box",[y("border",`
border: var(--n-border-checked);
box-shadow: var(--n-box-shadow-focus);
`)])]),r("checkbox-box",`
background-color: var(--n-color-checked);
border-left: 0;
border-top: 0;
`,[y("border",{border:"var(--n-border-checked)"})])]),M("disabled",{cursor:"not-allowed"},[M("checked",[r("checkbox-box",`
background-color: var(--n-color-disabled-checked);
`,[y("border",{border:"var(--n-border-disabled-checked)"}),r("checkbox-icon",[b(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled-checked)"})])])]),r("checkbox-box",`
background-color: var(--n-color-disabled);
`,[y("border",{border:"var(--n-border-disabled)"}),r("checkbox-icon",[b(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled)"})])]),y("label",{color:"var(--n-text-color-disabled)"})]),r("checkbox-box-wrapper",`
position: relative;
width: var(--n-size);
flex-shrink: 0;
flex-grow: 0;
user-select: none;
-webkit-user-select: none;
`),r("checkbox-box",`
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
height: var(--n-size);
width: var(--n-size);
display: inline-block;
box-sizing: border-box;
border-radius: var(--n-border-radius);
background-color: var(--n-color);
transition: background-color 0.3s var(--n-bezier);
`,[y("border",`
transition:
border-color .3s var(--n-bezier),
box-shadow .3s var(--n-bezier);
border-radius: inherit;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
border: var(--n-border);
`),r("checkbox-icon",`
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 1px;
right: 1px;
top: 1px;
bottom: 1px;
`,[b(".check-icon, .line-icon",`
width: 100%;
fill: var(--n-check-mark-color);
opacity: 0;
transform: scale(0.5);
transform-origin: center;
transition:
fill 0.3s var(--n-bezier),
transform 0.3s var(--n-bezier),
opacity 0.3s var(--n-bezier),
border-color 0.3s var(--n-bezier);
`),be({left:"1px",top:"1px"})])]),y("label",`
color: var(--n-text-color);
transition: color .3s var(--n-bezier);
user-select: none;
-webkit-user-select: none;
padding: var(--n-label-padding);
font-weight: var(--n-label-font-weight);
`,[b("&:empty",{display:"none"})])]),he(r("checkbox",`
--n-merged-color-table: var(--n-color-table-modal);
`)),fe(r("checkbox",`
--n-merged-color-table: var(--n-color-table-popover);
`))]);const Te=Object.assign(Object.assign({},V.props),{size:String,checked:{type:[Boolean,String,Number],default:void 0},defaultChecked:{type:[Boolean,String,Number],default:!1},value:[String,Number],disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:String,focusable:{type:Boolean,default:!0},checkedValue:{type:[Boolean,String,Number],default:!0},uncheckedValue:{type:[Boolean,String,Number],default:!1},"onUpdate:checked":[Function,Array],onUpdateChecked:[Function,Array],privateInsideTable:Boolean,onChange:[Function,Array]});var Me=j({name:"Checkbox",props:Te,setup(o){const g=F(null),{mergedClsPrefixRef:x,inlineThemeDisabled:w,mergedRtlRef:S}=H(o),s=N(o,{mergedSize(e){const{size:m}=o;if(m!==void 0)return m;if(c){const{value:d}=c.mergedSizeRef;if(d!==void 0)return d}if(e){const{mergedSize:d}=e;if(d!==void 0)return d.value}return"medium"},mergedDisabled(e){const{disabled:m}=o;if(m!==void 0)return m;if(c){if(c.disabledRef.value)return!0;const{maxRef:{value:d},checkedCountRef:z}=c;if(d!==void 0&&z.value>=d&&!n.value)return!0;const{minRef:{value:_}}=c;if(_!==void 0&&z.value<=_&&n.value)return!0}return e?e.disabled.value:!1}}),{mergedDisabledRef:R,mergedSizeRef:u}=s,c=ke(G,null),a=F(o.defaultChecked),$=P(o,"checked"),h=E($,a),n=ve(()=>{if(c){const e=c.valueSetRef.value;return e&&o.value!==void 0?e.has(o.value):!1}else return h.value===o.checkedValue}),p=V("Checkbox","-checkbox",Se,me,o,x);function C(e){if(c&&o.value!==void 0)c.toggleCheckbox(!n.value,o.value);else{const{onChange:m,"onUpdate:checked":d,onUpdateChecked:z}=o,{nTriggerFormInput:_,nTriggerFormChange:U}=s,D=n.value?o.uncheckedValue:o.checkedValue;d&&l(d,D,e),z&&l(z,D,e),m&&l(m,D,e),_(),U(),a.value=D}}function f(e){R.value||C(e)}function k(e){if(!R.value)switch(e.key){case" ":case"Enter":C(e)}}function v(e){switch(e.key){case" ":e.preventDefault()}}const i={focus:()=>{var e;(e=g.value)===null||e===void 0||e.focus()},blur:()=>{var e;(e=g.value)===null||e===void 0||e.blur()}},A=ge("Checkbox",S,x),I=B(()=>{const{value:e}=u,{common:{cubicBezierEaseInOut:m},self:{borderRadius:d,color:z,colorChecked:_,colorDisabled:U,colorTableHeader:D,colorTableHeaderModal:L,colorTableHeaderPopover:O,checkMarkColor:W,checkMarkColorDisabled:J,border:Q,borderFocus:X,borderDisabled:Y,borderChecked:q,boxShadowFocus:Z,textColor:ee,textColorDisabled:oe,checkMarkColorDisabledChecked:ne,colorDisabledChecked:re,borderDisabledChecked:ae,labelPadding:ce,labelLineHeight:le,labelFontWeight:ie,[K("fontSize",e)]:de,[K("size",e)]:te}}=p.value;return{"--n-label-line-height":le,"--n-label-font-weight":ie,"--n-size":te,"--n-bezier":m,"--n-border-radius":d,"--n-border":Q,"--n-border-checked":q,"--n-border-focus":X,"--n-border-disabled":Y,"--n-border-disabled-checked":ae,"--n-box-shadow-focus":Z,"--n-color":z,"--n-color-checked":_,"--n-color-table":D,"--n-color-table-modal":L,"--n-color-table-popover":O,"--n-color-disabled":U,"--n-color-disabled-checked":re,"--n-text-color":ee,"--n-text-color-disabled":oe,"--n-check-mark-color":W,"--n-check-mark-color-disabled":J,"--n-check-mark-color-disabled-checked":ne,"--n-font-size":de,"--n-label-padding":ce}}),T=w?xe("checkbox",B(()=>u.value[0]),I,o):void 0;return Object.assign(s,i,{rtlEnabled:A,selfRef:g,mergedClsPrefix:x,mergedDisabled:R,renderedChecked:n,mergedTheme:p,labelId:pe(),handleClick:f,handleKeyUp:k,handleKeyDown:v,cssVars:w?void 0:I,themeClass:T==null?void 0:T.themeClass,onRender:T==null?void 0:T.onRender})},render(){var o;const{$slots:g,renderedChecked:x,mergedDisabled:w,indeterminate:S,privateInsideTable:s,cssVars:R,labelId:u,label:c,mergedClsPrefix:a,focusable:$,handleKeyUp:h,handleKeyDown:n,handleClick:p}=this;return(o=this.onRender)===null||o===void 0||o.call(this),t("div",{ref:"selfRef",class:[`${a}-checkbox`,this.themeClass,this.rtlEnabled&&`${a}-checkbox--rtl`,x&&`${a}-checkbox--checked`,w&&`${a}-checkbox--disabled`,S&&`${a}-checkbox--indeterminate`,s&&`${a}-checkbox--inside-table`],tabindex:w||!$?void 0:0,role:"checkbox","aria-checked":S?"mixed":x,"aria-labelledby":u,style:R,onKeyup:h,onKeydown:n,onClick:p,onMousedown:()=>{ye("selectstart",window,C=>{C.preventDefault()},{once:!0})}},t("div",{class:`${a}-checkbox-box-wrapper`},"\xA0",t("div",{class:`${a}-checkbox-box`},t(Ce,null,{default:()=>this.indeterminate?t("div",{key:"indeterminate",class:`${a}-checkbox-icon`},Re):t("div",{key:"check",class:`${a}-checkbox-icon`},we)}),t("div",{class:`${a}-checkbox-box__border`}))),c!==null||g.default?t("span",{class:`${a}-checkbox__label`,id:u},g.default?g.default():c):null)}});export{Me as _,De as a};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{C as e,m as r}from"./index.3c4f55c3.js";var o=e({name:"Backward",render(){return r("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r("path",{d:"M12.2674 15.793C11.9675 16.0787 11.4927 16.0672 11.2071 15.7673L6.20572 10.5168C5.9298 10.2271 5.9298 9.7719 6.20572 9.48223L11.2071 4.23177C11.4927 3.93184 11.9675 3.92031 12.2674 4.206C12.5673 4.49169 12.5789 4.96642 12.2932 5.26634L7.78458 9.99952L12.2932 14.7327C12.5789 15.0326 12.5673 15.5074 12.2674 15.793Z",fill:"currentColor"}))}}),l=e({name:"FastBackward",render(){return r("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},r("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},r("g",{fill:"currentColor","fill-rule":"nonzero"},r("path",{d:"M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z"}))))}}),C=e({name:"FastForward",render(){return r("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},r("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},r("g",{fill:"currentColor","fill-rule":"nonzero"},r("path",{d:"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z"}))))}}),a=e({name:"Forward",render(){return r("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r("path",{d:"M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z",fill:"currentColor"}))}});export{o as B,a as F,C as a,l as b};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{Q as l,C as e,f as n,m as a,a7 as t}from"./index.3c4f55c3.js";const c=Object.assign(Object.assign({},l.props),{trigger:String,xScrollable:Boolean,onScroll:Function}),i=e({name:"Scrollbar",props:c,setup(){const r=n(null);return Object.assign(Object.assign({},{scrollTo:(...s)=>{var o;(o=r.value)===null||o===void 0||o.scrollTo(s[0],s[1])},scrollBy:(...s)=>{var o;(o=r.value)===null||o===void 0||o.scrollBy(s[0],s[1])}}),{scrollbarInstRef:r})},render(){return a(t,Object.assign({ref:"scrollbarInstRef"},this.$props),this.$slots)}});var u=i;export{u as _};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,76 @@
import{L as r,J as n,M as t,O as H,af as V,ag as j,C as D,P as F,Q as b,ak as I,a1 as J,H as c,a2 as a,a4 as K,m as N}from"./index.3c4f55c3.js";var Q=r([n("table",`
font-size: var(--n-font-size);
font-variant-numeric: tabular-nums;
line-height: var(--n-line-height);
width: 100%;
border-radius: var(--n-border-radius) var(--n-border-radius) 0 0;
text-align: left;
border-collapse: separate;
border-spacing: 0;
overflow: hidden;
background-color: var(--n-td-color);
border-color: var(--n-merged-border-color);
transition:
background-color .3s var(--n-bezier),
border-color .3s var(--n-bezier),
color .3s var(--n-bezier);
--n-merged-border-color: var(--n-border-color);
`,[r("th",`
white-space: nowrap;
transition:
background-color .3s var(--n-bezier),
border-color .3s var(--n-bezier),
color .3s var(--n-bezier);
text-align: inherit;
padding: var(--n-th-padding);
vertical-align: inherit;
text-transform: none;
border: 0px solid var(--n-merged-border-color);
font-weight: var(--n-th-font-weight);
color: var(--n-th-text-color);
background-color: var(--n-th-color);
border-bottom: 1px solid var(--n-merged-border-color);
border-right: 1px solid var(--n-merged-border-color);
`,[r("&:last-child",`
border-right: 0px solid var(--n-merged-border-color);
`)]),r("td",`
transition:
background-color .3s var(--n-bezier),
border-color .3s var(--n-bezier),
color .3s var(--n-bezier);
padding: var(--n-td-padding);
color: var(--n-td-text-color);
background-color: var(--n-td-color);
border: 0px solid var(--n-merged-border-color);
border-right: 1px solid var(--n-merged-border-color);
border-bottom: 1px solid var(--n-merged-border-color);
`,[r("&:last-child",`
border-right: 0px solid var(--n-merged-border-color);
`)]),t("bordered",`
border: 1px solid var(--n-merged-border-color);
border-radius: var(--n-border-radius);
`,[r("tr",[r("&:last-child",[r("td",`
border-bottom: 0 solid var(--n-merged-border-color);
`)])])]),t("single-line",[r("th",`
border-right: 0px solid var(--n-merged-border-color);
`),r("td",`
border-right: 0px solid var(--n-merged-border-color);
`)]),t("single-column",[r("tr",[r("&:not(:last-child)",[r("td",`
border-bottom: 0px solid var(--n-merged-border-color);
`)])])]),t("striped",[r("tr:nth-of-type(even)",[r("td","background-color: var(--n-td-color-striped)")])]),H("bottom-bordered",[r("tr",[r("&:last-child",[r("td",`
border-bottom: 0px solid var(--n-merged-border-color);
`)])])])]),V(n("table",`
background-color: var(--n-td-color-modal);
--n-merged-border-color: var(--n-border-color-modal);
`,[r("th",`
background-color: var(--n-th-color-modal);
`),r("td",`
background-color: var(--n-td-color-modal);
`)])),j(n("table",`
background-color: var(--n-td-color-popover);
--n-merged-border-color: var(--n-border-color-popover);
`,[r("th",`
background-color: var(--n-th-color-popover);
`),r("td",`
background-color: var(--n-td-color-popover);
`)]))]);const W=Object.assign(Object.assign({},b.props),{bordered:{type:Boolean,default:!0},bottomBordered:{type:Boolean,default:!0},singleLine:{type:Boolean,default:!0},striped:Boolean,singleColumn:Boolean,size:{type:String,default:"medium"}});var A=D({name:"Table",props:W,setup(e){const{mergedClsPrefixRef:o,inlineThemeDisabled:i,mergedRtlRef:g}=F(e),v=b("Table","-table",Q,I,e,o),h=J("Table",g,o),s=c(()=>{const{size:l}=e,{self:{borderColor:m,tdColor:p,tdColorModal:u,tdColorPopover:f,thColor:C,thColorModal:x,thColorPopover:z,thTextColor:k,tdTextColor:P,borderRadius:R,thFontWeight:B,lineHeight:y,borderColorModal:M,borderColorPopover:T,tdColorStriped:$,tdColorStripedModal:w,tdColorStripedPopover:S,[a("fontSize",l)]:_,[a("tdPadding",l)]:E,[a("thPadding",l)]:L},common:{cubicBezierEaseInOut:O}}=v.value;return{"--n-bezier":O,"--n-td-color":p,"--n-td-color-modal":u,"--n-td-color-popover":f,"--n-td-text-color":P,"--n-border-color":m,"--n-border-color-modal":M,"--n-border-color-popover":T,"--n-border-radius":R,"--n-font-size":_,"--n-th-color":C,"--n-th-color-modal":x,"--n-th-color-popover":z,"--n-th-font-weight":B,"--n-th-text-color":k,"--n-line-height":y,"--n-td-padding":E,"--n-th-padding":L,"--n-td-color-striped":$,"--n-td-color-striped-modal":w,"--n-td-color-striped-popover":S}}),d=i?K("table",c(()=>e.size[0]),s,e):void 0;return{rtlEnabled:h,mergedClsPrefix:o,cssVars:i?void 0:s,themeClass:d==null?void 0:d.themeClass,onRender:d==null?void 0:d.onRender}},render(){var e;const{mergedClsPrefix:o}=this;return(e=this.onRender)===null||e===void 0||e.call(this),N("table",{class:[`${o}-table`,this.themeClass,{[`${o}-table--rtl`]:this.rtlEnabled,[`${o}-table--bottom-bordered`]:this.bottomBordered,[`${o}-table--bordered`]:this.bordered,[`${o}-table--single-line`]:this.singleLine,[`${o}-table--single-column`]:this.singleColumn,[`${o}-table--striped`]:this.striped}],style:this.cssVars},this.$slots)}});export{A as _};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{_ as n,o as r,c as p,i as o,h as t,a as d,w as i,d as a,s as l,bD as u,bE as f}from"./index.3c4f55c3.js";const s={},v=e=>(u("data-v-f317350c"),e=e(),f(),e),m=v(()=>t("div",{class:"i404_wrapper"},[t("img",{src:"https://iph.href.lu/300x300/?text=404",alt:""})],-1)),h={"mt-10":""};function x(e,_){const c=l;return r(),p("div",null,[m,o(" \u672A\u627E\u5230\u9875\u9762 "),t("div",h,[d(c,{type:"primary",onClick:_[0]||(_[0]=b=>e.$router.back())},{default:i(()=>[o("\u8FD4\u56DE")]),_:1})])])}typeof a=="function"&&a(s);var y=n(s,[["render",x],["__scopeId","data-v-f317350c"]]);export{y as default};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{_ as P,a as z,b as D,c as G,d as I}from"./additional6.38a2d7df.js";import{_ as K,a as Q,b as W}from"./additional4.9084fc43.js";import{_ as X,a as Y,b as Z,c as tt}from"./additional0.85433c84.js";import{f as c,bq as ot,e as nt,br as h,o as n,c as g,a as i,w as u,h as v,j as t,i as et,F as at,l as pt,b as a,bu as s,d as f,bs as st,$ as lt,N as _t,s as it,v as ut,B as ct}from"./index.3c4f55c3.js";import{_ as rt,a as mt}from"./Tabs.8ade11eb.js";import{_ as dt}from"./Select.de1bebee.js";import"./Input.55d24dc2.js";import"./Suffix.a0cffb13.js";import"./DataTable.2c2d13a1.js";import"./Checkbox.ab3986eb.js";import"./FocusDetector.c9a22081.js";import"./Forward.2564511a.js";import"./InputNumber.9f939f4d.js";import"./Add.ce499526.js";import"./Scrollbar.8f14e661.js";import"./Image.ed056435.js";import"./DatePicker.fdf5ebbf.js";import"./_commonjsHelpers.b273fa3f.js";import"./headers.187bcef9.js";import"./Grid.243156f9.js";const yt=v("div",{class:"form_tag_wrapper"},"\u533B\u9662",-1),ht={__name:"additional",setup(gt){const r={hospital:0,type:0},o=c(JSON.parse(JSON.stringify(r)));ot(p=>{d(p.query)});const d=p=>{o.value={hospital:Number(p.hospital||r.hospital),type:Number(p.type)||r.type},e.value=o.value.hospital,m.value.length===0&&b()};nt(()=>{d(h.currentRoute.value.query)});const m=c([]),b=async()=>{const p=await st();lt(p,()=>{m.value=p.data.list.map(l=>({label:l.name,value:l.id}))})},y=()=>{const p=o.value.type;o.value.type=-1,h.push({name:"config-additional",query:{hospital:o.value.hospital,type:p}})},k=c(["\u9996\u9875\u8F6E\u64AD\u56FE","\u9996\u9875\u5E7F\u544A\u6A2A\u5E45","\u9996\u9875\u4E2D\u90E8\u6309\u94AE","\u9996\u9875\u5E95\u90E8\u6309\u94AE","\u5957\u9910\u6392\u5E8F","\u5957\u9910\u57FA\u6570","\u989D\u5916\u914D\u7F6E","\u6D3B\u52A8\u5957\u9910","\u62A5\u544A\u5BF9\u6BD4","\u65B0\u95FB\u7BA1\u7406","\u95EE\u7B54\u7BA1\u7406","\u5206\u8D26\u7BA1\u7406"]),$=p=>{o.value.type=p,y()},e=c(0);return(p,l)=>{const A=_t,N=dt,B=it,w=ut,C=rt,x=mt,S=X,V=Y,q=Z,L=tt,U=K,F=Q,H=P,J=W,O=z,R=D,T=G,j=I,E=ct;return n(),g("div",null,[i(E,{title:"\u533B\u9662\u989D\u5916\u4FE1\u606F"},{default:u(()=>[v("div",null,[i(w,{align:"center"},{default:u(()=>[i(A,null,{default:u(()=>[yt]),_:1}),i(N,{class:"form_input_wrapper",value:t(o).hospital,"onUpdate:value":l[0]||(l[0]=_=>t(o).hospital=_),options:[{label:"\u901A\u7528",value:0},...t(m)]},null,8,["value","options"]),i(B,{type:"primary",onClick:l[1]||(l[1]=_=>y())},{default:u(()=>[et("\u5207\u6362")]),_:1})]),_:1}),i(x,{"onUpdate:value":[$,l[2]||(l[2]=_=>t(o).type=_)],value:t(o).type,"mt-2":"",type:"segment"},{default:u(()=>[(n(!0),g(at,null,pt(t(k),(_,M)=>(n(),a(C,{name:M,tab:_},null,8,["name","tab"]))),256))]),_:1},8,["value"]),t(o).type===0?(n(),a(S,{key:0,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===1?(n(),a(V,{key:1,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===2?(n(),a(q,{key:2,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===3?(n(),a(L,{key:3,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===4?(n(),a(U,{key:4,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===5?(n(),a(F,{key:5,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===6?(n(),a(H,{key:6,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===7?(n(),a(J,{key:7,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===8?(n(),a(O,{key:8,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===9?(n(),a(R,{key:9,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===10?(n(),a(T,{key:10,hospital:t(e)},null,8,["hospital"])):s("",!0),t(o).type===11?(n(),a(j,{key:11,hospital:t(e)},null,8,["hospital"])):s("",!0)])]),_:1})])}}};typeof f=="function"&&f(ht);export{ht as default};

@ -0,0 +1 @@
import{_ as F,a as H,b as I,c as J,d as O}from"./additional6.38a2d7df.js";import{f as i,bq as R,e as S,br as m,o as n,c as r,a as d,w as y,j as t,F as U,l as V,b as s,bu as p,d as f,B as j,du as E,$ as L}from"./index.3c4f55c3.js";import{_ as M,a as P}from"./Tabs.8ade11eb.js";import"./Input.55d24dc2.js";import"./Suffix.a0cffb13.js";import"./DataTable.2c2d13a1.js";import"./Checkbox.ab3986eb.js";import"./FocusDetector.c9a22081.js";import"./Select.de1bebee.js";import"./Forward.2564511a.js";import"./InputNumber.9f939f4d.js";import"./Add.ce499526.js";import"./Scrollbar.8f14e661.js";import"./Image.ed056435.js";import"./DatePicker.fdf5ebbf.js";import"./_commonjsHelpers.b273fa3f.js";import"./headers.187bcef9.js";const z={key:0},D={__name:"additional",setup(G){const a=i(!1),h=async()=>{const e=await E();L(e,()=>{a.value=e.data.info})},l={type:0},o=i(JSON.parse(JSON.stringify(l)));R(e=>{u(e.query)});const u=e=>{o.value={type:Number(e.type)||l.type},h()};S(()=>{u(m.currentRoute.value.query)});const g=()=>{const e=o.value.type;o.value.type=-1,m.push({query:{type:e}})},b=i(["\u989D\u5916\u914D\u7F6E","\u62A5\u544A\u5BF9\u6BD4","\u65B0\u95FB\u7BA1\u7406","\u95EE\u7B54\u7BA1\u7406","\u5206\u8D26\u7BA1\u7406"]),v=e=>{o.value.type=e,g()};return i(0),(e,c)=>{const k=M,A=P,B=F,N=H,q=I,C=J,$=O,w=j;return n(),r("div",null,[d(w,{title:"\u989D\u5916\u914D\u7F6E"},{default:y(()=>[t(a)?(n(),r("div",z,[d(A,{"onUpdate:value":[v,c[0]||(c[0]=_=>t(o).type=_)],value:t(o).type,"mt-2":"",type:"segment"},{default:y(()=>[(n(!0),r(U,null,V(t(b),(_,x)=>(n(),s(k,{name:x,tab:_},null,8,["name","tab"]))),256))]),_:1},8,["value"]),t(o).type===0?(n(),s(B,{key:0,hospital:t(a).id},null,8,["hospital"])):p("",!0),t(o).type===1?(n(),s(N,{key:1,hospital:t(a).id},null,8,["hospital"])):p("",!0),t(o).type===2?(n(),s(q,{key:2,hospital:t(a).id},null,8,["hospital"])):p("",!0),t(o).type===3?(n(),s(C,{key:3,hospital:t(a).id},null,8,["hospital"])):p("",!0),t(o).type===4?(n(),s($,{key:4,hospital:t(a).id},null,8,["hospital"])):p("",!0)])):p("",!0)]),_:1})])}}};typeof f=="function"&&f(D);export{D as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.form_content_wrapper[data-v-28838298]{width:500px}.tox-tinymce-aux{z-index:99999999!important}#editor[data-v-456daa83]{width:100%;height:100%}.editor_container_wrapper[data-v-456daa83]{width:800px;min-height:300px;position:relative}.config_image_wrapper[data-v-45a53409]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;max-width:700px;margin:0 auto}.config_image_item_wrapper[data-v-45a53409]{width:125px;height:125px;display:table-cell;vertical-align:middle;text-align:center;line-height:125px;background:#00000010;position:relative}.config_image_item_wrapper img[data-v-45a53409]{width:auto;height:auto;max-width:100%;max-height:100%;position:absolute;z-index:1;left:50%;bottom:0;right:0;top:50%;transform:translate(-50%,-50%)}.config_image_cover_upload_wrapper[data-v-45a53409]{width:50%;background:#5e92ff50}.config_image_cover_upload_wrapper[data-v-45a53409]:hover{background:#5e92ff70}.config_image_cover_delete_wrapper[data-v-45a53409]{width:50%;background:#fd606050}.config_image_cover_delete_wrapper[data-v-45a53409]:hover{background:#fd606070}.config_image_cover_wrapper[data-v-45a53409]{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;z-index:2;opacity:0;justify-content:center}.config_image_cover_wrapper[data-v-45a53409]:hover{opacity:1}.upload_input_wrapper[data-v-45a53409]{width:0;height:0;opacity:0}.form_title_wrapper[data-v-45a53409]{width:1000px}.form_textarea_wrapper[data-v-45a53409],.form_textarea_wrapper[data-v-1d8b340a]{width:300px}.button_group_wrapper[data-v-1d8b340a]{width:270px}

@ -0,0 +1 @@
import{r as t,o as r,b as n,d as o}from"./index.3c4f55c3.js";const c={__name:"admin",setup(a){return(s,_)=>{const e=t("router-view");return r(),n(e)}}};typeof o=="function"&&o(c);export{c as default};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{r as t,o as n,b as r,d as o}from"./index.3c4f55c3.js";const c={__name:"appointment",setup(a){return(p,s)=>{const e=t("router-view");return n(),r(e)}}};typeof o=="function"&&o(c);export{c as default};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{_ as x,a as F,b as H}from"./additional4.9084fc43.js";import{f as s,bq as I,e as J,br as m,o as n,c as r,a as d,w as y,j as e,F as O,l as R,b as p,bu as u,d as f,B as S,du as U,$ as V}from"./index.3c4f55c3.js";import{_ as $,a as j}from"./Tabs.8ade11eb.js";import"./Scrollbar.8f14e661.js";import"./Grid.243156f9.js";import"./Input.55d24dc2.js";import"./Suffix.a0cffb13.js";import"./Select.de1bebee.js";import"./FocusDetector.c9a22081.js";import"./InputNumber.9f939f4d.js";import"./Add.ce499526.js";const E={key:0},L={__name:"combo",setup(M){const a=s(!1),b=async()=>{const t=await U();V(t,()=>{a.value=t.data.info})},i={type:0},o=s(JSON.parse(JSON.stringify(i)));I(t=>{l(t.query)});const l=t=>{o.value={type:Number(t.type)||i.type},b()};J(()=>{l(m.currentRoute.value.query)});const g=()=>{const t=o.value.type;o.value.type=-1,m.push({query:{type:t}})},h=s(["\u5957\u9910\u6392\u5E8F","\u5957\u9910\u57FA\u6570","\u6D3B\u52A8\u5957\u9910"]),v=t=>{o.value.type=t,g()};return s(0),(t,c)=>{const k=$,B=j,N=x,q=F,A=H,C=S;return n(),r("div",null,[d(C,{title:"\u5957\u9910\u7BA1\u7406"},{default:y(()=>[e(a)?(n(),r("div",E,[d(B,{"onUpdate:value":[v,c[0]||(c[0]=_=>e(o).type=_)],value:e(o).type,"mt-2":"",type:"segment"},{default:y(()=>[(n(!0),r(O,null,R(e(h),(_,w)=>(n(),p(k,{name:w,tab:_},null,8,["name","tab"]))),256))]),_:1},8,["value"]),e(o).type===0?(n(),p(N,{key:0,hospital:e(a).id},null,8,["hospital"])):u("",!0),e(o).type===1?(n(),p(q,{key:1,hospital:e(a).id},null,8,["hospital"])):u("",!0),e(o).type===2?(n(),p(A,{key:2,hospital:e(a).id},null,8,["hospital"])):u("",!0)])):u("",!0)]),_:1})])}}};typeof f=="function"&&f(L);export{L as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{e as w,f as b,dn as k,$ as c,o as p,c as u,a,w as o,h as d,j as s,i as r,bu as $,d as i,dp as x,N as B,v as V,s as U,B as h}from"./index.3c4f55c3.js";import{N as A}from"./headers.187bcef9.js";import{_ as T}from"./Select.de1bebee.js";import"./Suffix.a0cffb13.js";import"./FocusDetector.c9a22081.js";const j={key:0,"mt-5":""},E=d("div",{class:"form_tag_wrapper"},"\u72B6\u6001",-1),H={__name:"config",setup(J){w(()=>{l()});const e=b(!1),l=async()=>{const n=await k();c(n,()=>{e.value=n.data.info})},m=async()=>{const n=await x({config_id:e.value.id,label:e.value.label,value:JSON.stringify(e.value.value),type:e.value.type,remark:e.value.remark});c(n,()=>{window.$message().success(n.message),l()})};return(n,t)=>{const f=A,v=B,g=T,C=V,y=U,N=h;return p(),u("div",null,[a(N,{title:"\u57FA\u7840\u914D\u7F6E"},{default:o(()=>[d("div",null,[s(e)?(p(),u("div",j,[a(f,null,{default:o(()=>[r("\u4F1A\u5458\u5361\u53C2\u6570")]),_:1}),a(C,{align:"center"},{default:o(()=>[a(v,null,{default:o(()=>[E]),_:1}),a(g,{class:"form_input_wrapper",value:s(e).value.open,"onUpdate:value":t[0]||(t[0]=_=>s(e).value.open=_),options:[{value:1,label:"\u5F00\u542F"},{value:0,label:"\u5173\u95ED"}]},null,8,["value"])]),_:1}),a(y,{"mt-2":"",type:"primary",onClick:t[1]||(t[1]=_=>m())},{default:o(()=>[r("\u4FDD\u5B58")]),_:1})])):$("",!0)])]),_:1})])}}};typeof i=="function"&&i(H);export{H as default};

@ -0,0 +1 @@
import{r as t,o as r,b as n,d as o}from"./index.3c4f55c3.js";const c={__name:"config",setup(s){return(_,a)=>{const e=t("router-view");return r(),n(e)}}};typeof o=="function"&&o(c);export{c as default};

@ -0,0 +1,16 @@
import{J as w,L as h,M as c,C as z,P as $,Q as l,dm as T,H as f,a2 as i,a4 as H,m as P}from"./index.3c4f55c3.js";var R=w("h",`
font-size: var(--n-font-size);
font-weight: var(--n-font-weight);
margin: var(--n-margin);
transition: color .3s var(--n-bezier);
color: var(--n-text-color);
`,[h("&:first-child",{marginTop:0}),c("prefix-bar",{position:"relative",paddingLeft:"var(--n-prefix-width)"},[c("align-text",{paddingLeft:0},[h("&::before",{left:"calc(-1 * var(--n-prefix-width))"})]),h("&::before",`
content: "";
width: var(--n-bar-width);
border-radius: calc(var(--n-bar-width) / 2);
transition: background-color .3s var(--n-bezier);
left: 0;
top: 0;
bottom: 0;
position: absolute;
`),h("&::before",{backgroundColor:"var(--n-bar-color)"})])]);const B=Object.assign(Object.assign({},l.props),{type:{type:String,default:"default"},prefix:String,alignText:Boolean});var n=r=>z({name:`H${r}`,props:B,setup(e){const{mergedClsPrefixRef:o,inlineThemeDisabled:s}=$(e),a=l("Typography","-h",R,T,e,o),d=f(()=>{const{type:g}=e,{common:{cubicBezierEaseInOut:m},self:{headerFontWeight:b,headerTextColor:p,[i("headerPrefixWidth",r)]:u,[i("headerFontSize",r)]:x,[i("headerMargin",r)]:v,[i("headerBarWidth",r)]:C,[i("headerBarColor",g)]:y}}=a.value;return{"--n-bezier":m,"--n-font-size":x,"--n-margin":v,"--n-bar-color":y,"--n-bar-width":C,"--n-font-weight":b,"--n-text-color":p,"--n-prefix-width":u}}),t=s?H(`h${r}`,f(()=>e.type[0]),d,e):void 0;return{mergedClsPrefix:o,cssVars:s?void 0:d,themeClass:t==null?void 0:t.themeClass,onRender:t==null?void 0:t.onRender}},render(){var e;const{prefix:o,alignText:s,mergedClsPrefix:a,cssVars:d,$slots:t}=this;return(e=this.onRender)===null||e===void 0||e.call(this),P(`h${r}`,{class:[`${a}-h`,`${a}-h${r}`,this.themeClass,{[`${a}-h--prefix-bar`]:o,[`${a}-h--align-text`]:s}],style:d},t)}});const L=n("1");n("2");n("3");const S=n("4");n("5");n("6");export{S as N,L as a};

@ -0,0 +1 @@
import{_ as G,f as m,bq as K,e as Q,br as H,o as l,c as i,a as o,w as e,h as s,j as _,i as v,k as W,F as g,l as b,b as x,t as C,bA as I,d as L,bB as X,$ as R,bC as Y,s as Z,v as ee,x as te,N as ae,B as oe,bD as ne,bE as se}from"./index.3c4f55c3.js";import{_ as le}from"./DatePicker.fdf5ebbf.js";import{_ as _e,a as re}from"./Grid.243156f9.js";import"./Suffix.a0cffb13.js";import"./FocusDetector.c9a22081.js";import"./Forward.2564511a.js";import"./Input.55d24dc2.js";import"./_commonjsHelpers.b273fa3f.js";const pe=u=>(ne("data-v-b6d42758"),u=u(),se(),u),de=pe(()=>s("div",{class:"form_tag_wrapper"},"\u5E74\u4EFD",-1)),ie={"mt-2":"",class:"month_wrapper"},ue={class:"month_box_wrapper"},ce={class:"month_box_title_wrapper"},ye={class:"date_box_wrapper"},fe=["onClick"],U={__name:"holidays",setup(u){const N={year:null},r=m(JSON.parse(JSON.stringify(N)));K(a=>{S(a.query)});const S=a=>{r.value={year:a.year||N.year},J()};Q(()=>{S(H.currentRoute.value.query)});const $=m([]),J=async()=>{const a=await X({year:r.value.year});R(a,()=>{$.value=a.data.list,r.value.year=String(a.data.year)})},V=()=>{H.push({name:"appointment-holidays",query:r.value})},j=["\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D","\u65E5"],O={date:"",day:0,type:0},p=m(JSON.parse(JSON.stringify(O))),d=m(!1),D=a=>{a.date!==""&&(p.value=JSON.parse(JSON.stringify(a)),d.value=!0)},h=async a=>{const t=await Y({date:p.value.date,type:a});R(t,()=>{p.value=JSON.parse(JSON.stringify(O)),d.value=!1,J()})},E=["","holidays","weekday"];return(a,t)=>{const c=Z,A=ee,F=te,T=ae,z=le,w=_e,k=re,M=oe;return l(),i("div",null,[o(F,{show:_(d),"onUpdate:show":t[3]||(t[3]=n=>W(d)?d.value=n:null),preset:"card",style:{width:"400px"},title:"\u8BBE\u7F6E","auto-focus":!1,bordered:!1},{default:e(()=>[s("div",null,[o(A,{justify:"center"},{default:e(()=>[o(c,{onClick:t[0]||(t[0]=n=>h(0)),disabled:_(p).type===0,type:"info"},{default:e(()=>[v("\u666E\u901A")]),_:1},8,["disabled"]),o(c,{onClick:t[1]||(t[1]=n=>h(1)),disabled:_(p).type===1,type:"success"},{default:e(()=>[v("\u8282\u5047\u65E5 ")]),_:1},8,["disabled"]),o(c,{onClick:t[2]||(t[2]=n=>h(2)),disabled:_(p).type===2,type:"error"},{default:e(()=>[v("\u5DE5\u4F5C\u65E5 ")]),_:1},8,["disabled"])]),_:1})])]),_:1},8,["show"]),o(M,{title:"\u8282\u5047\u65E5"},{default:e(()=>[s("div",null,[o(A,{align:"center"},{default:e(()=>[o(T,null,{default:e(()=>[de]),_:1}),o(z,{"formatted-value":_(r).year,"onUpdate:formatted-value":t[4]||(t[4]=n=>_(r).year=n),type:"year",format:"yyyy"},null,8,["formatted-value"]),o(c,{onClick:t[5]||(t[5]=n=>V()),type:"info"},{default:e(()=>[v("\u5207\u6362")]),_:1})]),_:1}),s("div",ie,[o(k,{"x-gap":"2","y-gap":"2",cols:4},{default:e(()=>[(l(!0),i(g,null,b(_($),(n,B)=>(l(),x(w,{key:B},{default:e(()=>[s("div",ue,[s("div",ce,C(B+1)+"\u6708",1),o(k,{"x-gap":"2","y-gap":"2",cols:7},{default:e(()=>[(l(),i(g,null,b(7,(q,y)=>o(w,{key:y},{default:e(()=>[s("div",ye,C(j[y]),1)]),_:2},1024)),64))]),_:1}),(l(!0),i(g,null,b(n,(q,y)=>(l(),x(k,{key:y,"x-gap":"2","y-gap":"2",cols:7},{default:e(()=>[(l(!0),i(g,null,b(q,(f,P)=>(l(),x(w,{key:P},{default:e(()=>[s("div",{onClick:me=>D(f),class:I(["date_box_wrapper",[E[f.type]]])},[s("span",{class:I([f.date===""?"op0":""])},C(f.day),3)],10,fe)]),_:2},1024))),128))]),_:2},1024))),128))])]),_:2},1024))),128))]),_:1})])])]),_:1})])}}};typeof L=="function"&&L(U);var Ne=G(U,[["__scopeId","data-v-b6d42758"]]);export{Ne as default};

@ -0,0 +1 @@
import{_ as F,a as H,b as I,c as J}from"./additional0.85433c84.js";import{f as _,bq as O,e as R,br as m,o as n,c as u,a as d,w as y,j as t,F as S,l as U,b as s,bu as p,d as f,B as V,du as $,$ as j}from"./index.3c4f55c3.js";import{_ as E,a as L}from"./Tabs.8ade11eb.js";import"./Image.ed056435.js";import"./Suffix.a0cffb13.js";import"./Input.55d24dc2.js";import"./Select.de1bebee.js";import"./FocusDetector.c9a22081.js";import"./DatePicker.fdf5ebbf.js";import"./Forward.2564511a.js";import"./_commonjsHelpers.b273fa3f.js";import"./DataTable.2c2d13a1.js";import"./Checkbox.ab3986eb.js";import"./Add.ce499526.js";const M={key:0},P={__name:"home",setup(z){const a=_(!1),g=async()=>{const o=await $();j(o,()=>{a.value=o.data.info})},r={type:0},e=_(JSON.parse(JSON.stringify(r)));O(o=>{l(o.query)});const l=o=>{e.value={type:Number(o.type)||r.type},g()};R(()=>{l(m.currentRoute.value.query)});const h=()=>{const o=e.value.type;e.value.type=-1,m.push({query:{type:o}})},b=_(["\u9996\u9875\u8F6E\u64AD\u56FE","\u9996\u9875\u5E7F\u544A\u6A2A\u5E45","\u9996\u9875\u4E2D\u90E8\u6309\u94AE","\u9996\u9875\u5E95\u90E8\u6309\u94AE"]),v=o=>{e.value.type=o,h()};return _(0),(o,c)=>{const k=E,A=L,B=F,N=H,q=I,C=J,w=V;return n(),u("div",null,[d(w,{title:"\u9996\u9875\u7BA1\u7406"},{default:y(()=>[t(a)?(n(),u("div",M,[d(A,{"onUpdate:value":[v,c[0]||(c[0]=i=>t(e).type=i)],value:t(e).type,"mt-2":"",type:"segment"},{default:y(()=>[(n(!0),u(S,null,U(t(b),(i,x)=>(n(),s(k,{name:x,tab:i},null,8,["name","tab"]))),256))]),_:1},8,["value"]),t(e).type===0?(n(),s(B,{key:0,hospital:t(a).id},null,8,["hospital"])):p("",!0),t(e).type===1?(n(),s(N,{key:1,hospital:t(a).id},null,8,["hospital"])):p("",!0),t(e).type===2?(n(),s(q,{key:2,hospital:t(a).id},null,8,["hospital"])):p("",!0),t(e).type===3?(n(),s(C,{key:3,hospital:t(a).id},null,8,["hospital"])):p("",!0)])):p("",!0)]),_:1})])}}};typeof f=="function"&&f(P);export{P as default};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{r as t,o as r,b as n,d as o}from"./index.3c4f55c3.js";const c={__name:"hospital",setup(s){return(a,_)=>{const e=t("router-view");return r(),n(e)}}};typeof o=="function"&&o(c);export{c as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{bm as h,f as g,e as $,o as C,c as S,a as e,w as t,h as r,j as s,i as k,d as N,bn as J,$ as p,bo as O,bp as x,N as B,s as U,v as P,B as V}from"./index.3c4f55c3.js";import{_ as I}from"./Input.55d24dc2.js";import"./Suffix.a0cffb13.js";const T=r("div",{class:"form_tag_wrapper"},"\u6635\u79F0",-1),j=r("div",{class:"form_tag_wrapper"},"\u65E7\u5BC6\u7801",-1),D=r("div",{class:"form_tag_wrapper"},"\u65B0\u5BC6\u7801",-1),E=r("div",{class:"form_tag_wrapper"},"\u786E\u8BA4\u5BC6\u7801",-1),M={__name:"info",setup(q){const c=h(),i=g({account_id:0,nickname:""}),m=async()=>{const l=await J();p(l,()=>{c.admin_info=l.data.info,i.value=JSON.parse(JSON.stringify(l.data.info))})};$(()=>{m()});const y=async()=>{if(i.value.nickname===c.admin_info.nickname)return;const l=await O(i.value.nickname);p(l,()=>{m(),window.$message().success("\u4FEE\u6539\u6210\u529F")})},f={old:"",new:"",check:""},b=async()=>{if(v())return;const l=await x({account_id:i.value.account_id,password:n.value.new,old_password:n.value.old});p(l,()=>{n.value=JSON.parse(JSON.stringify(f)),window.$message().success("\u4FEE\u6539\u6210\u529F")})},n=g(JSON.parse(JSON.stringify(f))),v=()=>n.value.old.length<6||n.value.old.length>20||n.value.new.length<6||n.value.new.length>20||n.value.new!==n.value.check;return(l,a)=>{const u=B,d=I,w=U,_=P,A=V;return C(),S("div",null,[e(A,{title:"\u4E2A\u4EBA\u8BBE\u7F6E"},{default:t(()=>[r("div",null,[e(_,{align:"center"},{default:t(()=>[e(u,null,{default:t(()=>[T]),_:1}),e(d,{class:"form_input_wrapper",value:s(i).nickname,"onUpdate:value":a[0]||(a[0]=o=>s(i).nickname=o)},null,8,["value"]),e(w,{disabled:s(i).nickname===s(c).admin_info.nickname,onClick:a[1]||(a[1]=o=>y()),type:"info"},{default:t(()=>[k("\u4FEE\u6539\u6635\u79F0 ")]),_:1},8,["disabled"])]),_:1}),e(_,{"mt-5":"",align:"center"},{default:t(()=>[e(u,null,{default:t(()=>[j]),_:1}),e(d,{type:"password",class:"form_input_wrapper",value:s(n).old,"onUpdate:value":a[2]||(a[2]=o=>s(n).old=o)},null,8,["value"])]),_:1}),e(_,{"mt-2":"",align:"center"},{default:t(()=>[e(u,null,{default:t(()=>[D]),_:1}),e(d,{type:"password",class:"form_input_wrapper",value:s(n).new,"onUpdate:value":a[3]||(a[3]=o=>s(n).new=o)},null,8,["value"])]),_:1}),e(_,{"mt-2":"",align:"center"},{default:t(()=>[e(u,null,{default:t(()=>[E]),_:1}),e(d,{type:"password",class:"form_input_wrapper",value:s(n).check,"onUpdate:value":a[4]||(a[4]=o=>s(n).check=o)},null,8,["value"])]),_:1}),e(w,{disabled:v(),onClick:a[5]||(a[5]=o=>b()),"mt-5":"",type:"info"},{default:t(()=>[k("\u4FEE\u6539\u5BC6\u7801 ")]),_:1},8,["disabled"])])]),_:1})])}}};typeof N=="function"&&N(M);export{M as default};

@ -0,0 +1 @@
import{_ as H,e as S,f as I,du as V,$ as g,o as p,c as u,h as l,a as t,w as n,j as e,v as r,N as d,i as $,bu as w,cN as A,d as b,cS as q,cM as M,dv as T,s as j,y as D,B as L,bD as P,bE as R}from"./index.3c4f55c3.js";import{_ as z}from"./Input.55d24dc2.js";import"./Suffix.a0cffb13.js";const c=m=>(P("data-v-444dc401"),m=m(),R(),m),F={key:0},G=c(()=>l("div",{class:"form_tag_wrapper"},"\u540D\u79F0",-1)),J=c(()=>l("div",{class:"form_tag_wrapper"},"\u5730\u5740",-1)),K=c(()=>l("div",{class:"form_tag_wrapper"},"\u7ECF\u5EA6",-1)),O=c(()=>l("div",{class:"form_tag_wrapper"},"\u7EAC\u5EA6",-1)),Q=c(()=>l("div",{class:"form_tag_wrapper"},"Logo",-1)),W={class:"config_image_wrapper"},X={class:"config_image_item_wrapper","m-1":""},Y={key:0},Z={class:"config_image_cover_wrapper"},ee=["src"],te=c(()=>l("div",{class:"form_tag_wrapper"},"\u8054\u7CFB\u7535\u8BDD",-1)),ae={key:1},h={__name:"info",setup(m){S(()=>{y()});const a=I(!1),y=async()=>{const _=await V();g(_,()=>{a.value=_.data.info})},C=async _=>{const o=_.target.files[0];v.value.value=null;const i=await q(o),f=await M(i);g(f,()=>{a.value.logo=f.data.url})},v=I(null),x=_=>{v.value=_},N=()=>{v.value.click()},U=()=>{a.value.logo=""},B=async()=>{const _=await T({...a.value});g(_,()=>{window.$message().success(_.message),y()})};return(_,o)=>{const i=z,f=j,k=D,E=L;return p(),u("div",null,[l("input",{class:"upload_input_wrapper",accept:"image/*",onChange:C,type:"file",ref:x},null,32),t(E,{title:"\u57FA\u672C\u4FE1\u606F"},{default:n(()=>[!!e(a)&&e(a).id!==0?(p(),u("div",F,[t(e(r),{align:"center"},{default:n(()=>[t(e(d),null,{default:n(()=>[G]),_:1}),t(i,{class:"form_input_wrapper",value:e(a).name,"onUpdate:value":o[0]||(o[0]=s=>e(a).name=s)},null,8,["value"])]),_:1}),t(e(r),{"mt-2":"",align:"center"},{default:n(()=>[t(e(d),null,{default:n(()=>[J]),_:1}),t(i,{class:"form_input_wrapper",value:e(a).address,"onUpdate:value":o[1]||(o[1]=s=>e(a).address=s)},null,8,["value"])]),_:1}),t(e(r),{"mt-2":"",align:"center"},{default:n(()=>[t(e(d),null,{default:n(()=>[K]),_:1}),t(i,{class:"form_input_wrapper",value:e(a).longitude,"onUpdate:value":o[2]||(o[2]=s=>e(a).longitude=s)},null,8,["value"]),t(f,{text:"",tag:"a",href:"https://lbs.qq.com/getPoint/",target:"_blank",type:"info"},{default:n(()=>[$(" \u83B7\u53D6\u7ECF\u7EAC\u5EA6 ")]),_:1})]),_:1}),t(e(r),{"mt-2":"",align:"center"},{default:n(()=>[t(e(d),null,{default:n(()=>[O]),_:1}),t(i,{class:"form_input_wrapper",value:e(a).latitude,"onUpdate:value":o[3]||(o[3]=s=>e(a).latitude=s)},null,8,["value"])]),_:1}),t(e(r),{"mt-2":"",align:"center"},{default:n(()=>[t(e(d),null,{default:n(()=>[Q]),_:1}),l("div",W,[l("div",X,[e(a).logo?w("",!0):(p(),u("span",Y,"\u6682\u65E0\u56FE\u7247")),l("div",Z,[l("div",{class:"config_image_cover_upload_wrapper","cursor-pointer":"",onClick:o[4]||(o[4]=s=>N())},[t(k,{type:"upload-three"})]),e(a).logo?(p(),u("div",{key:0,"cursor-pointer":"",class:"config_image_cover_delete_wrapper",onClick:o[5]||(o[5]=s=>U())},[t(k,{type:"delete-one"})])):w("",!0)]),e(a).logo?(p(),u("img",{key:1,src:e(A)(e(a).logo),alt:""},null,8,ee)):w("",!0)])])]),_:1}),t(e(r),{"mt-2":"",align:"center"},{default:n(()=>[t(e(d),null,{default:n(()=>[te]),_:1}),t(i,{class:"form_input_wrapper",value:e(a).phone,"onUpdate:value":o[6]||(o[6]=s=>e(a).phone=s)},null,8,["value"])]),_:1}),t(f,{onClick:o[7]||(o[7]=s=>B()),type:"info","mt-2":""},{default:n(()=>[$("\u4FDD\u5B58")]),_:1})])):(p(),u("div",ae,"\u4E0D\u53EF\u8BBE\u7F6E\u8BE5\u533B\u9662/\u673A\u6784\u4FE1\u606F"))]),_:1})])}}};typeof b=="function"&&b(h);var le=H(h,[["__scopeId","data-v-444dc401"]]);export{le as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{_ as G,dw as H,bm as M,dx as J,dy as O,dz as P,f as c,bq as Q,e as W,br as S,o as u,c as X,h as n,j as o,cN as B,a as t,w as _,i as g,k as T,dA as N,dB as Y,dC as Z,b as p,dD as ee,dE as R,dj as U,d as A,dF as oe,$ as ne,dG as se,s as te,dH as ae,y as le,v as _e,bD as ce,bE as ue}from"./index.3c4f55c3.js";import{a as re}from"./headers.187bcef9.js";import{_ as de}from"./Input.55d24dc2.js";import{_ as ie}from"./Checkbox.ab3986eb.js";import"./Suffix.a0cffb13.js";const pe=r=>(ce("data-v-93454da0"),r=r(),ue(),r),fe={class:"login_logo_wrapper"},ve=["src"],me={class:"login_space_image_wrapper"},ge=["src"],ke={class:"login_space_form_wrapper"},ye={"mt-5":""},we={"mt-5":""},$e={"mt-5":""},he={"mt-10":""},be={"mt-5":""},xe=pe(()=>n("div",{class:"login_space_form_divider_wrapper"},null,-1)),D={__name:"login",setup(r){const E=H(),k=M(),y=J(),w=O(),$=P(),d=c(""),l=c(""),f=c(!1),j=s=>{f.value=s},h={f:"/"},b=c(h);Q(s=>{x(s.query)});const x=s=>{b.value={f:s.f||h.f}};W(()=>{x(S.currentRoute.value.query)});const v=async()=>{const s=d.value.replace(/^\s+|\s+$/g,"");if(s==="")return window.$message().error("\u8BF7\u8F93\u5165\u8D26\u53F7");if(l.value==="")return window.$message().error("\u8BF7\u8F93\u5165\u5BC6\u7801");const e=await oe({account:s,password:l.value});ne(e,()=>{f.value?(y.value="local",w.value="",$.value=e.data.token):(y.value="session",w.value=e.data.token,$.value=""),se(),S.push(decodeURIComponent(b.value.f))})},q=()=>{l.value===""?C.value.focus():v()},C=c(null),F=s=>{C.value=s};return(s,e)=>{const K=re,I=de,m=te,L=ie,V=ae,i=le,z=_e;return u(),X("div",{class:"login_page_wrapper",style:U({background:o(E).app_theme+"20"})},[n("div",fe,[n("img",{src:o(B)(o(k).config.Logo),alt:""},null,8,ve)]),n("div",{class:"login_space_wrapper shadow-lg",style:U({background:o(R)?"#333333":"#ffffff"})},[n("div",me,[n("img",{src:o(B)(o(k).config.Login\u6B22\u8FCE\u56FE\u7247),alt:""},null,8,ge)]),n("div",ke,[n("div",ye,[t(K,null,{default:_(()=>[g("\u767B\u5F55")]),_:1})]),n("div",we,[t(I,{value:o(d),"onUpdate:value":e[0]||(e[0]=a=>T(d)?d.value=a:null),onKeydown:e[1]||(e[1]=N(a=>q(),["enter"])),placeholder:"\u8BF7\u8F93\u5165\u8D26\u53F7"},null,8,["value"])]),n("div",$e,[t(I,{ref:F,type:"password",onKeydown:e[2]||(e[2]=N(a=>v(),["enter"])),value:o(l),"onUpdate:value":e[3]||(e[3]=a=>T(l)?l.value=a:null),placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801"},null,8,["value"])]),n("div",he,[t(m,{onClick:e[4]||(e[4]=a=>v()),type:"primary","w-full":""},{default:_(()=>[g("\u767B\u5F55")]),_:1})]),n("div",be,[t(L,{"onUpdate:checked":j,"default-checked":o(f)},{default:_(()=>[g("\u81EA\u52A8\u767B\u5F55")]),_:1},8,["default-checked"])]),xe,t(V,{dashed:""}),t(z,{justify:"center"},{default:_(()=>[t(m,{text:"",onClick:e[5]||(e[5]=a=>o(Y)()),"mr-5":""},{default:_(()=>[o(Z)?(u(),p(i,{key:0,type:"off-screen"})):(u(),p(i,{key:1,type:"full-screen"}))]),_:1}),t(m,{text:"",onClick:e[6]||(e[6]=a=>o(ee)()),"mr-5":""},{default:_(()=>[o(R)?(u(),p(i,{key:0,type:"sun-one"})):(u(),p(i,{key:1,type:"moon"}))]),_:1})]),_:1})])],4)],4)}}};typeof A=="function"&&A(D);var Ne=G(D,[["__scopeId","data-v-93454da0"]]);export{Ne as default};

@ -0,0 +1 @@
import{_ as o,o as t,c as r,a,r as c}from"./index.3c4f55c3.js";const n={},s={class:"px-4 py-10 text-gray-700 dark:text-gray-200"};function _(i,p){const e=c("RouterView");return t(),r("main",s,[a(e)])}var m=o(n,[["render",_]]);export{m as default};

@ -0,0 +1 @@
.line_wrapper{display:flex}.items_content_wrapper{width:200px}.op0[data-v-0fe95a03]{opacity:0}.date_box_wrapper[data-v-0fe95a03]{background:#ffffff;margin-top:2px;cursor:pointer;border-radius:6px}.month_wrapper[data-v-0fe95a03]{display:flex}.month_box_title_wrapper[data-v-0fe95a03]{height:40px;line-height:40px;font-size:20px;background:#00000005}.month_box_wrapper[data-v-0fe95a03]{background:#00000010;border:1px #00000010 solid;text-align:center;border-radius:6px;overflow:hidden}.form_checkbox_wrapper[data-v-0fe95a03]{width:300px}.create[data-v-0fe95a03]{background:#4b9d5f60}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{r,o as t,b as n,d as o}from"./index.3c4f55c3.js";const c={__name:"order",setup(s){return(_,a)=>{const e=r("router-view");return t(),n(e)}}};typeof o=="function"&&o(c);export{c as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.line_wrapper{display:flex}.items_content_wrapper{width:200px}.op0[data-v-52af4026]{opacity:0}.date_box_wrapper[data-v-52af4026]{background:#ffffff;margin-top:2px;cursor:pointer;border-radius:6px}.month_wrapper[data-v-52af4026]{display:flex}.month_box_title_wrapper[data-v-52af4026]{height:40px;line-height:40px;font-size:20px;background:#00000005}.month_box_wrapper[data-v-52af4026]{background:#00000010;border:1px #00000010 solid;text-align:center;border-radius:6px;overflow:hidden}.form_checkbox_wrapper[data-v-52af4026]{width:300px}.create[data-v-52af4026]{background:#4b9d5f60}.info_title[data-v-52af4026]{font-size:18px;color:#333;margin-top:16px}.info_title2[data-v-52af4026]{font-size:16px;color:#666;margin-top:8px}.info_title3[data-v-52af4026]{font-size:14px;color:#999;margin-top:4px}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{r as t,o as r,b as n,d as e}from"./index.3c4f55c3.js";const s={__name:"settings",setup(c){return(_,a)=>{const o=t("router-view");return r(),n(o)}}};typeof e=="function"&&e(s);export{s as default};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.line_wrapper{display:flex}.items_content_wrapper{width:200px}.op0[data-v-90a62552]{opacity:0}.date_box_wrapper[data-v-90a62552]{background:#ffffff;margin-top:2px;cursor:pointer;border-radius:6px}.month_wrapper[data-v-90a62552]{display:flex}.month_box_title_wrapper[data-v-90a62552]{height:40px;line-height:40px;font-size:20px;background:#00000005}.month_box_wrapper[data-v-90a62552]{background:#00000010;border:1px #00000010 solid;text-align:center;border-radius:6px;overflow:hidden}.form_checkbox_wrapper[data-v-90a62552]{width:300px}.create[data-v-90a62552]{background:#4b9d5f60}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.line_wrapper{display:flex}.items_content_wrapper{width:200px}.op0[data-v-d9b7fd90]{opacity:0}.date_box_wrapper[data-v-d9b7fd90]{background:#ffffff;margin-top:2px;cursor:pointer;border-radius:6px}.month_wrapper[data-v-d9b7fd90]{display:flex}.month_box_title_wrapper[data-v-d9b7fd90]{height:40px;line-height:40px;font-size:20px;background:#00000005}.month_box_wrapper[data-v-d9b7fd90]{background:#00000010;border:1px #00000010 solid;text-align:center;border-radius:6px;overflow:hidden}.form_checkbox_wrapper[data-v-d9b7fd90]{width:300px}.create[data-v-d9b7fd90]{background:#4b9d5f60}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{r,o as t,b as n,d as e}from"./index.3c4f55c3.js";const c={__name:"user",setup(s){return(_,a)=>{const o=r("router-view");return t(),n(o)}}};typeof e=="function"&&e(c);export{c as default};

@ -160,3 +160,7 @@ Route::post("api/$admin_api/Admin/status", [\App\Http\Controllers\AdminControlle
Route::post("api/$admin_api/Admin/info", [\App\Http\Controllers\AdminController::class, 'info']);
Route::post("api/$admin_api/Admin/menu", [\App\Http\Controllers\AdminController::class, 'menu']);
Route::post("api/$admin_api/Config/get", [\App\Http\Controllers\ConfigController::class, 'get']);
Route::post("api/$admin_api/order/SaleReport", [\App\Http\Controllers\UserOrderController::class, 'orderSaleReport']);
Route::any("api/$admin_api/order/saleReportExport", [\App\Http\Controllers\UserOrderController::class, 'saleReportExport']);
Route::any("api/$admin_api/order/OrderListExport", [\App\Http\Controllers\UserOrderController::class, 'OrderListExport']);

Binary file not shown.
Loading…
Cancel
Save