Merge branch 'master' of http://47.109.37.87:3000/by2025/admin-vben5
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

This commit is contained in:
FLL 2025-07-31 16:41:47 +08:00
commit c847bd29e1
4 changed files with 42 additions and 27 deletions

View File

@ -40,6 +40,10 @@ export interface AttachVO {
* *
*/ */
createTime: string; createTime: string;
quantity: number;
meetAttachId: string;
} }
export interface AttachForm extends BaseEntity { export interface AttachForm extends BaseEntity {

View File

@ -77,12 +77,12 @@ async function handleOpenChange(open: boolean) {
<DescriptionsItem label="完成时间"> <DescriptionsItem label="完成时间">
{{ orderDetail.compleTime }} {{ orderDetail.compleTime }}
</DescriptionsItem> </DescriptionsItem>
<DescriptionsItem label="是否超时"> <DescriptionsItem label="是否超时" v-if="orderDetail.isTimeOut!=null">
<component <component
:is="orderDetail.isTimeOut ? renderDict(orderDetail.isTimeOut,'wy_sf') : ''" :is="renderDict(orderDetail.isTimeOut,'wy_sf')"
/> />
</DescriptionsItem> </DescriptionsItem>
<DescriptionsItem label="服务评价"> <DescriptionsItem label="服务评价" v-if="orderDetail.serviceEvalua!=null">
<Rate :value="orderDetail.serviceEvalua" disabled/> <Rate :value="orderDetail.serviceEvalua" disabled/>
</DescriptionsItem> </DescriptionsItem>
<DescriptionsItem label="评价内容" v-if="orderDetail.serviceEvaluaText" :span="2"> <DescriptionsItem label="评价内容" v-if="orderDetail.serviceEvaluaText" :span="2">

View File

@ -118,7 +118,6 @@ async function queryAddServices() {
unit: item.unit, unit: item.unit,
quantity: 0 quantity: 0
})) }))
console.log(res,addServiceList.value);
} }
async function queryPersonData() { async function queryPersonData() {
@ -201,7 +200,7 @@ async function changeProjectNum() {
<Table :dataSource="addServiceList" v-bind="slotProps" :columns="addServiceColumns" <Table :dataSource="addServiceList" v-bind="slotProps" :columns="addServiceColumns"
:pagination="false" :pagination="false"
size="small" :show-header="false" bordered> size="small" :show-header="false" bordered>
<template #bodyCell="{ column, record, index }"> <template #bodyCell="{ column, record }">
<template v-if="column.field === 'price'"> <template v-if="column.field === 'price'">
{{ record.price + '元/' + renderDictValue(record.unit, 'pro_product_unit') }} {{ record.price + '元/' + renderDictValue(record.unit, 'pro_product_unit') }}
</template> </template>

View File

@ -6,21 +6,40 @@
layout="inline" layout="inline"
class="form-box" class="form-box"
> >
<a-form-item label="会议室类型">
<Select
v-model:value="formState.meetingRoomType"
class="room-select"
placeholder="请选择会议室类型"
style="width: 180px;"
>
<SelectOption
v-for="item in getDictOptions('meeting_room_type')"
:key="item.value"
:value="item.value"
>
{{ item.label }}
</SelectOption>
</Select>
</a-form-item>
<a-form-item label="会议日期"> <a-form-item label="会议日期">
<DatePicker v-model:value="formState.appointmentTime" style="width: 200px;"/> <DatePicker v-model:value="formState.appointmentTime" style="width: 180px;"/>
</a-form-item> </a-form-item>
<a-form-item label="会议时段"> <a-form-item label="会议时段">
<TimeRangePicker style="width: 200px;" format="HH:mm" <TimeRangePicker style="width: 200px;" format="HH:mm"
v-model:value="formState.openHours"></TimeRangePicker> v-model:value="formState.openHours"></TimeRangePicker>
</a-form-item> </a-form-item>
<a-form-item label="参会人数" style="width: 400px;"> <a-form-item label="参会人数">
<InputNumber style="width: 200px;" placeholder="请输入参会人数" <InputNumber style="width: 150px;" placeholder="请输入参会人数"
v-model:value="formState.personNumber"/> v-model:value="formState.personNumber"/>
</a-form-item> </a-form-item>
<a-form-item class="form-button"> <a-form-item >
<a-button @click="handleClean">重置</a-button> <a-button @click="handleClean">重置</a-button>
</a-form-item>
<a-form-item>
<a-button type="primary" class="primary-button" <a-button type="primary" class="primary-button"
:disabled="!formState.appointmentTime||!(formState.openHours&&formState.openHours.length)||!formState.personNumber" :disabled="!formState.meetingRoomType||!formState.appointmentTime
||!(formState.openHours&&formState.openHours.length)||!formState.personNumber"
@click="handleSearch">搜索</a-button> @click="handleSearch">搜索</a-button>
</a-form-item> </a-form-item>
</a-form> </a-form>
@ -57,24 +76,27 @@ import {
InputNumber, InputNumber,
Empty, Empty,
Alert, Alert,
DatePicker DatePicker, Select,SelectOption
} from 'ant-design-vue'; } from 'ant-design-vue';
import conferenceAddServicesModal from '../conferenceReservations/conferenceReservations-modal.vue'; import conferenceAddServicesModal from '../conferenceReservations/conferenceReservations-modal.vue';
import {notlist} from "#/api/property/roomBooking/conferenceSettings"; import {notlist} from "#/api/property/roomBooking/conferenceSettings";
import type {MeetVO} from "#/api/property/roomBooking/conferenceSettings/model"; import type {MeetVO} from "#/api/property/roomBooking/conferenceSettings/model";
import {renderDictValue} from "#/utils/render"; import {renderDictValue} from "#/utils/render";
import type { Dayjs } from 'dayjs'; import type { Dayjs } from 'dayjs';
import {getDictOptions} from "#/utils/dict";
interface FormState { interface FormState {
openHours?: any[]; openHours?: any[];
personNumber?: number|undefined; personNumber?: number|undefined;
appointmentTime?:Dayjs|undefined appointmentTime?:Dayjs|undefined;
meetingRoomType:string|undefined;
} }
const formState = reactive<FormState>({ const formState = reactive<FormState>({
openHours: [], openHours: [],
personNumber: undefined, personNumber: undefined,
appointmentTime:undefined appointmentTime:undefined,
meetingRoomType:undefined,
}); });
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE; const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
@ -94,15 +116,16 @@ async function handleSearch() {
const handleClean = () => { const handleClean = () => {
formState.openHours = []; formState.openHours = [];
formState.personNumber = null; formState.personNumber = undefined;
formState.appointmentTime = undefined; formState.appointmentTime = undefined;
formState.meetingRoomType = undefined;
} }
const [modal, modalApi] = useVbenModal({ const [modal, modalApi] = useVbenModal({
connectedComponent: conferenceAddServicesModal, connectedComponent: conferenceAddServicesModal,
}); });
function handleAdd(id:string) { function handleAdd(id:string|number) {
modalApi.setData({id}); modalApi.setData({id});
modalApi.open(); modalApi.open();
} }
@ -110,18 +133,7 @@ function handleAdd(id:string) {
<style lang="scss"> <style lang="scss">
.form-box { .form-box {
width: 100%; margin: 10px 0 0 5px;
padding: 10px 30px 0 30px;
position: relative;
.form-button {
position: absolute;
right: 30px;
.primary-button {
margin-left: 15px;
}
}
} }
.card-box { .card-box {