|
@@ -1,6 +1,25 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { computed, onMounted, reactive, ref } from 'vue'
|
|
|
|
|
-import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
|
|
|
|
+import {computed, onMounted, reactive, ref} from 'vue'
|
|
|
|
|
+
|
|
|
|
|
+import {
|
|
|
|
|
+ ElButton,
|
|
|
|
|
+ ElCard,
|
|
|
|
|
+ ElDialog,
|
|
|
|
|
+ ElForm,
|
|
|
|
|
+ ElFormItem,
|
|
|
|
|
+ ElInput,
|
|
|
|
|
+ ElInputNumber,
|
|
|
|
|
+ ElMessage,
|
|
|
|
|
+ ElMessageBox,
|
|
|
|
|
+ ElOption,
|
|
|
|
|
+ ElPagination,
|
|
|
|
|
+ ElSelect,
|
|
|
|
|
+ ElSpace,
|
|
|
|
|
+ ElTable,
|
|
|
|
|
+ ElTableColumn,
|
|
|
|
|
+ ElTag,
|
|
|
|
|
+ ElUpload,
|
|
|
|
|
+} from 'element-plus'
|
|
|
import {
|
|
import {
|
|
|
Delete,
|
|
Delete,
|
|
|
Download,
|
|
Download,
|
|
@@ -16,8 +35,8 @@ import {
|
|
|
Users,
|
|
Users,
|
|
|
Wrench,
|
|
Wrench,
|
|
|
} from 'lucide-vue-next'
|
|
} from 'lucide-vue-next'
|
|
|
-import { clientGet, clientPost } from '@/utils/request.ts'
|
|
|
|
|
-import { renderAsync } from 'docx-preview'
|
|
|
|
|
|
|
+import {clientGet, clientPost} from '@/utils/request.ts'
|
|
|
|
|
+import {renderAsync} from 'docx-preview'
|
|
|
|
|
|
|
|
interface ASimplifiedHouseInfo {
|
|
interface ASimplifiedHouseInfo {
|
|
|
id: string
|
|
id: string
|
|
@@ -338,7 +357,7 @@ const getList = async () => {
|
|
|
|
|
|
|
|
const res = await clientGet<any, ASimplifiedHouseInfoReponse>(
|
|
const res = await clientGet<any, ASimplifiedHouseInfoReponse>(
|
|
|
'/asimplifiedHouseInfo/findByPage',
|
|
'/asimplifiedHouseInfo/findByPage',
|
|
|
- { params },
|
|
|
|
|
|
|
+ {params},
|
|
|
)
|
|
)
|
|
|
if (res.code !== 200) {
|
|
if (res.code !== 200) {
|
|
|
ElMessage.error(res.msg)
|
|
ElMessage.error(res.msg)
|
|
@@ -378,7 +397,7 @@ const getDetail = async (simplifiedHouseId: string) => {
|
|
|
const res = await clientGet<{ id: string }, AHouseInfoDetailResponse>(
|
|
const res = await clientGet<{ id: string }, AHouseInfoDetailResponse>(
|
|
|
'/ahouseInfoDetail/getBySimplifiedHouseId',
|
|
'/ahouseInfoDetail/getBySimplifiedHouseId',
|
|
|
{
|
|
{
|
|
|
- params: { simplifiedHouseId },
|
|
|
|
|
|
|
+ params: {simplifiedHouseId},
|
|
|
},
|
|
},
|
|
|
)
|
|
)
|
|
|
if (res.code !== 200) {
|
|
if (res.code !== 200) {
|
|
@@ -412,7 +431,7 @@ const getDeviceList = async (simplifiedHouseId: string) => {
|
|
|
const res = await clientGet<{ id: string }, ADeviceInfoListResponse>(
|
|
const res = await clientGet<{ id: string }, ADeviceInfoListResponse>(
|
|
|
'/adeviceInfo/getBySimplifiedHouseId',
|
|
'/adeviceInfo/getBySimplifiedHouseId',
|
|
|
{
|
|
{
|
|
|
- params: { simplifiedHouseId },
|
|
|
|
|
|
|
+ params: {simplifiedHouseId},
|
|
|
},
|
|
},
|
|
|
)
|
|
)
|
|
|
if (res.code !== 200) {
|
|
if (res.code !== 200) {
|
|
@@ -472,7 +491,7 @@ const getDeviceMaintainRecord = async (deviceId: string) => {
|
|
|
const res = await clientGet<{ deviceId: string }, AMaintenanceRecordsListReponse>(
|
|
const res = await clientGet<{ deviceId: string }, AMaintenanceRecordsListReponse>(
|
|
|
'/amaintenanceRecords/getByDeviceId',
|
|
'/amaintenanceRecords/getByDeviceId',
|
|
|
{
|
|
{
|
|
|
- params: { deviceId },
|
|
|
|
|
|
|
+ params: {deviceId},
|
|
|
},
|
|
},
|
|
|
)
|
|
)
|
|
|
if (res.code !== 200) {
|
|
if (res.code !== 200) {
|
|
@@ -623,7 +642,7 @@ const handleAdd = () => {
|
|
|
const handleEdit = (row: ASimplifiedHouseInfo) => {
|
|
const handleEdit = (row: ASimplifiedHouseInfo) => {
|
|
|
isEdit.value = true
|
|
isEdit.value = true
|
|
|
dialogTitle.value = '编辑房屋信息'
|
|
dialogTitle.value = '编辑房屋信息'
|
|
|
- Object.assign(houseForm, { ...row })
|
|
|
|
|
|
|
+ Object.assign(houseForm, {...row})
|
|
|
dialogVisible.value = true
|
|
dialogVisible.value = true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -673,7 +692,7 @@ const handleViewDetail = async (row: ASimplifiedHouseInfo) => {
|
|
|
// 获取房屋详细信息
|
|
// 获取房屋详细信息
|
|
|
const detail = await getDetail(row.id)
|
|
const detail = await getDetail(row.id)
|
|
|
if (detail) {
|
|
if (detail) {
|
|
|
- Object.assign(detailForm, { ...detail, simplifiedHouseId: row.id })
|
|
|
|
|
|
|
+ Object.assign(detailForm, {...detail, simplifiedHouseId: row.id})
|
|
|
} else {
|
|
} else {
|
|
|
Object.assign(detailForm, {
|
|
Object.assign(detailForm, {
|
|
|
id: '',
|
|
id: '',
|
|
@@ -747,7 +766,7 @@ const handleAddDevice = () => {
|
|
|
|
|
|
|
|
const handleEditDevice = (device: ADeviceInfo) => {
|
|
const handleEditDevice = (device: ADeviceInfo) => {
|
|
|
isDeviceEdit.value = true
|
|
isDeviceEdit.value = true
|
|
|
- Object.assign(deviceForm, { ...device })
|
|
|
|
|
|
|
+ Object.assign(deviceForm, {...device})
|
|
|
deviceDialogVisible.value = true
|
|
deviceDialogVisible.value = true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -815,7 +834,7 @@ const handleAddMaintenance = () => {
|
|
|
|
|
|
|
|
const handleEditMaintenance = (record: AMaintenanceRecords) => {
|
|
const handleEditMaintenance = (record: AMaintenanceRecords) => {
|
|
|
isMaintenanceEdit.value = true
|
|
isMaintenanceEdit.value = true
|
|
|
- Object.assign(maintenanceForm, { ...record })
|
|
|
|
|
|
|
+ Object.assign(maintenanceForm, {...record})
|
|
|
maintenanceRecordDialogVisible.value = true
|
|
maintenanceRecordDialogVisible.value = true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -907,77 +926,76 @@ onMounted(() => {
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
<template>
|
|
|
- <div class="p-0 bg-gray-50 min-h-screen">
|
|
|
|
|
|
|
+ <div class="p-0 bg-gray-50">
|
|
|
<div class="bg-white rounded-lg shadow-sm">
|
|
<div class="bg-white rounded-lg shadow-sm">
|
|
|
<!-- 页面标题 -->
|
|
<!-- 页面标题 -->
|
|
|
- <div class="flex items-center gap-3 p-6 border-b border-gray-200">
|
|
|
|
|
- <div class="flex items-center justify-center w-10 h-10 bg-blue-100 rounded-lg">
|
|
|
|
|
- <Home class="w-5 h-5 text-blue-600" />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div>
|
|
|
|
|
- <h1 class="text-xl font-semibold text-gray-900">租房信息管理</h1>
|
|
|
|
|
- <p class="text-sm text-gray-500">管理房屋基本信息、详细信息和设备信息</p>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <!-- <div class="flex items-center gap-3 p-6 border-b border-gray-200">-->
|
|
|
|
|
+ <!-- <div class="flex items-center justify-center w-10 h-10 bg-blue-100 rounded-lg">-->
|
|
|
|
|
+ <!-- <Home class="w-5 h-5 text-blue-600" />-->
|
|
|
|
|
+ <!-- </div>-->
|
|
|
|
|
+ <!-- <div>-->
|
|
|
|
|
+ <!-- <h1 class="text-xl font-semibold text-gray-900">租房信息管理</h1>-->
|
|
|
|
|
+ <!-- <p class="text-sm text-gray-500">管理房屋基本信息、详细信息和设备信息</p>-->
|
|
|
|
|
+ <!-- </div>-->
|
|
|
|
|
+ <!-- </div>-->
|
|
|
|
|
|
|
|
<!-- 搜索区域 -->
|
|
<!-- 搜索区域 -->
|
|
|
- <div class="py-4 px-4 border-b border-gray-200">
|
|
|
|
|
- <el-form :model="searchForm" inline class="flex-grow flex flex-wrap">
|
|
|
|
|
- <el-form-item label="">
|
|
|
|
|
- <span slot="label" class="font-size-4.5">资产类型:</span>
|
|
|
|
|
- <el-select
|
|
|
|
|
- v-model="searchForm.assetType"
|
|
|
|
|
- placeholder="请选择资产类型"
|
|
|
|
|
- clearable
|
|
|
|
|
- style="width: 10rem"
|
|
|
|
|
- size="default"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option label="公租房" value="公租房" />
|
|
|
|
|
- <el-option label="厂房" value="厂房" />
|
|
|
|
|
- <el-option label="创新创业基地" value="创新创业基地" />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <span slot="label" class="font-size-4.5">楼栋:</span>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="searchForm.building"
|
|
|
|
|
- style="width: 240px"
|
|
|
|
|
- size="default"
|
|
|
|
|
- placeholder="请输入楼栋"
|
|
|
|
|
- clearable
|
|
|
|
|
- />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
-
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <span slot="label" class="font-size-4.5">房间名称:</span>
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="searchForm.houseName"
|
|
|
|
|
- style="width: 240px"
|
|
|
|
|
- size="default"
|
|
|
|
|
- placeholder="请输入房间名称"
|
|
|
|
|
- clearable
|
|
|
|
|
- />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <span slot="label" class="font-size-4.5">状态:</span>
|
|
|
|
|
- <el-select
|
|
|
|
|
- v-model="searchForm.status"
|
|
|
|
|
- placeholder="请选择状态"
|
|
|
|
|
- clearable
|
|
|
|
|
- style="width: 8rem"
|
|
|
|
|
- size="default"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option label="空闲" value="空闲" />
|
|
|
|
|
- <el-option label="已租" value="已租" />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <ElCard class="mb-6" shadow="never">
|
|
|
|
|
+ <ElForm :model="searchForm" inline class="flex-grow flex flex-wrap">
|
|
|
|
|
+ <ElFormItem label="资产类型" size="default">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="searchForm.assetType"
|
|
|
|
|
+ placeholder="请选择资产类型"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ style="width: 10rem"
|
|
|
|
|
+ size="default"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option label="公租房" value="公租房"/>
|
|
|
|
|
+ <el-option label="厂房" value="厂房"/>
|
|
|
|
|
+ <el-option label="创新创业基地" value="创新创业基地"/>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </ElFormItem>
|
|
|
|
|
+ <ElFormItem label="楼栋" size="default">
|
|
|
|
|
+ <ElInput
|
|
|
|
|
+ v-model="searchForm.building"
|
|
|
|
|
+ style="width: 100px"
|
|
|
|
|
+ size="default"
|
|
|
|
|
+ placeholder="请输入楼栋"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </ElFormItem>
|
|
|
|
|
+
|
|
|
|
|
+ <ElFormItem label="房间名称" size="default">
|
|
|
|
|
+ <ElInput
|
|
|
|
|
+ v-model="searchForm.houseName"
|
|
|
|
|
+ style="width: 130px"
|
|
|
|
|
+ size="default"
|
|
|
|
|
+ placeholder="请输入房间名称"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </ElFormItem>
|
|
|
|
|
+
|
|
|
|
|
+ <ElFormItem label="状态" size="default">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="searchForm.status"
|
|
|
|
|
+ placeholder="请选择状态"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ style="width: 8rem"
|
|
|
|
|
+ size="default"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option label="空闲" value="空闲"/>
|
|
|
|
|
+ <el-option label="已租" value="已租"/>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </ElFormItem>
|
|
|
<el-button type="primary" @click="handleSearch" :icon="Search" size="default"
|
|
<el-button type="primary" @click="handleSearch" :icon="Search" size="default"
|
|
|
- >搜索</el-button
|
|
|
|
|
|
|
+ >搜索
|
|
|
|
|
+ </el-button
|
|
|
>
|
|
>
|
|
|
<el-button @click="handleReset" size="default">重置</el-button>
|
|
<el-button @click="handleReset" size="default">重置</el-button>
|
|
|
<el-button type="primary" @click="handleAdd" :icon="Plus" size="default"
|
|
<el-button type="primary" @click="handleAdd" :icon="Plus" size="default"
|
|
|
- >新增房屋</el-button
|
|
|
|
|
|
|
+ >新增房屋
|
|
|
|
|
+ </el-button
|
|
|
>
|
|
>
|
|
|
<el-button
|
|
<el-button
|
|
|
type="danger"
|
|
type="danger"
|
|
@@ -988,8 +1006,8 @@ onMounted(() => {
|
|
|
>
|
|
>
|
|
|
批量删除
|
|
批量删除
|
|
|
</el-button>
|
|
</el-button>
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-form>
|
|
|
|
|
|
|
+ </ElForm>
|
|
|
|
|
+ </ElCard>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 操作按钮区域 -->
|
|
<!-- 操作按钮区域 -->
|
|
@@ -1009,15 +1027,17 @@ onMounted(() => {
|
|
|
<!-- </div>-->
|
|
<!-- </div>-->
|
|
|
|
|
|
|
|
<!-- 数据表格 -->
|
|
<!-- 数据表格 -->
|
|
|
- <div class="px-6">
|
|
|
|
|
|
|
+ <!-- <ElCard shadow="never" class="">-->
|
|
|
|
|
+ <div class="">
|
|
|
<el-table
|
|
<el-table
|
|
|
:data="tableData"
|
|
:data="tableData"
|
|
|
v-loading="loading"
|
|
v-loading="loading"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
class="w-full"
|
|
class="w-full"
|
|
|
stripe
|
|
stripe
|
|
|
|
|
+ border
|
|
|
>
|
|
>
|
|
|
- <el-table-column type="selection" width="55" />
|
|
|
|
|
|
|
+ <el-table-column type="selection" width="55"/>
|
|
|
<el-table-column prop="assetType" label="资产类型" width="100">
|
|
<el-table-column prop="assetType" label="资产类型" width="100">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<el-tag :type="getAssetTypeTag(row.assetType)">
|
|
<el-tag :type="getAssetTypeTag(row.assetType)">
|
|
@@ -1025,10 +1045,10 @@ onMounted(() => {
|
|
|
</el-tag>
|
|
</el-tag>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column prop="houseName" label="房间名称" width="120" />
|
|
|
|
|
- <el-table-column prop="building" label="楼栋" width="100" />
|
|
|
|
|
- <el-table-column prop="floor" label="楼层" width="100" />
|
|
|
|
|
- <el-table-column prop="address" label="地址" min-width="200" show-overflow-tooltip />
|
|
|
|
|
|
|
+ <el-table-column prop="houseName" label="房间名称" width="120"/>
|
|
|
|
|
+ <el-table-column prop="building" label="楼栋" width="100"/>
|
|
|
|
|
+ <el-table-column prop="floor" label="楼层" width="100"/>
|
|
|
|
|
+ <el-table-column prop="address" label="地址" min-width="200" show-overflow-tooltip/>
|
|
|
<el-table-column prop="status" label="状态" width="100">
|
|
<el-table-column prop="status" label="状态" width="100">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<el-tag :type="row.status === '空闲' ? 'success' : 'warning'">
|
|
<el-tag :type="row.status === '空闲' ? 'success' : 'warning'">
|
|
@@ -1036,7 +1056,7 @@ onMounted(() => {
|
|
|
</el-tag>
|
|
</el-tag>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column prop="rentRange" label="租金" width="150" />
|
|
|
|
|
|
|
+ <el-table-column prop="rentRange" label="租金" width="150"/>
|
|
|
<el-table-column label="操作" width="250" fixed="right">
|
|
<el-table-column label="操作" width="250" fixed="right">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<div class="flex gap-2">
|
|
<div class="flex gap-2">
|
|
@@ -1054,7 +1074,7 @@ onMounted(() => {
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
|
|
+ <!-- </ElCard>-->
|
|
|
<!-- 分页 -->
|
|
<!-- 分页 -->
|
|
|
<div class="flex justify-center p-6">
|
|
<div class="flex justify-center p-6">
|
|
|
<el-pagination
|
|
<el-pagination
|
|
@@ -1079,19 +1099,19 @@ onMounted(() => {
|
|
|
<el-form :model="houseForm" label-width="100px" class="grid grid-cols-2 gap-4">
|
|
<el-form :model="houseForm" label-width="100px" class="grid grid-cols-2 gap-4">
|
|
|
<el-form-item label="资产类型" required>
|
|
<el-form-item label="资产类型" required>
|
|
|
<el-select v-model="houseForm.assetType" placeholder="请选择资产类型" class="w-full">
|
|
<el-select v-model="houseForm.assetType" placeholder="请选择资产类型" class="w-full">
|
|
|
- <el-option label="公租房" value="公租房" />
|
|
|
|
|
- <el-option label="厂房" value="厂房" />
|
|
|
|
|
- <el-option label="创新创业基地" value="创新创业基地" />
|
|
|
|
|
|
|
+ <el-option label="公租房" value="公租房"/>
|
|
|
|
|
+ <el-option label="厂房" value="厂房"/>
|
|
|
|
|
+ <el-option label="创新创业基地" value="创新创业基地"/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="楼栋" required>
|
|
<el-form-item label="楼栋" required>
|
|
|
- <el-input v-model="houseForm.building" placeholder="请输入楼栋" />
|
|
|
|
|
|
|
+ <el-input v-model="houseForm.building" placeholder="请输入楼栋"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="楼层">
|
|
<el-form-item label="楼层">
|
|
|
- <el-input v-model="houseForm.floor" placeholder="请输入楼层" />
|
|
|
|
|
|
|
+ <el-input v-model="houseForm.floor" placeholder="请输入楼层"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="房间名称" required>
|
|
<el-form-item label="房间名称" required>
|
|
|
- <el-input v-model="houseForm.houseName" placeholder="请输入房间名称" />
|
|
|
|
|
|
|
+ <el-input v-model="houseForm.houseName" placeholder="请输入房间名称"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="状态">
|
|
<el-form-item label="状态">
|
|
|
<el-select
|
|
<el-select
|
|
@@ -1101,8 +1121,8 @@ onMounted(() => {
|
|
|
default-first-option
|
|
default-first-option
|
|
|
disabled
|
|
disabled
|
|
|
>
|
|
>
|
|
|
- <el-option label="空闲" value="空闲" />
|
|
|
|
|
- <el-option label="已租" value="已租" />
|
|
|
|
|
|
|
+ <el-option label="空闲" value="空闲"/>
|
|
|
|
|
+ <el-option label="已租" value="已租"/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="租金">
|
|
<el-form-item label="租金">
|
|
@@ -1114,7 +1134,7 @@ onMounted(() => {
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="地址" class="col-span-2">
|
|
<el-form-item label="地址" class="col-span-2">
|
|
|
- <el-input v-model="houseForm.address" placeholder="请输入详细地址" />
|
|
|
|
|
|
|
+ <el-input v-model="houseForm.address" placeholder="请输入详细地址"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
@@ -1138,14 +1158,14 @@ onMounted(() => {
|
|
|
<el-tab-pane label="房屋详情" name="detail">
|
|
<el-tab-pane label="房屋详情" name="detail">
|
|
|
<template #label>
|
|
<template #label>
|
|
|
<div class="flex items-center gap-2">
|
|
<div class="flex items-center gap-2">
|
|
|
- <Info class="w-4 h-4" />
|
|
|
|
|
|
|
+ <Info class="w-4 h-4"/>
|
|
|
<span>房屋详情</span>
|
|
<span>房屋详情</span>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="p-4">
|
|
<div class="p-4">
|
|
|
<el-form :model="detailForm" label-width="100px" class="grid grid-cols-2 gap-4">
|
|
<el-form :model="detailForm" label-width="100px" class="grid grid-cols-2 gap-4">
|
|
|
<el-form-item label="面积">
|
|
<el-form-item label="面积">
|
|
|
- <el-input v-model="detailForm.area" placeholder="请输入面积" />
|
|
|
|
|
|
|
+ <el-input v-model="detailForm.area" placeholder="请输入面积"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="房屋类型">
|
|
<el-form-item label="房屋类型">
|
|
|
<el-select
|
|
<el-select
|
|
@@ -1153,14 +1173,14 @@ onMounted(() => {
|
|
|
placeholder="请选择房屋类型"
|
|
placeholder="请选择房屋类型"
|
|
|
class="w-full"
|
|
class="w-full"
|
|
|
>
|
|
>
|
|
|
- <el-option label="一室一厅" value="一室一厅" />
|
|
|
|
|
- <el-option label="两室一厅" value="两室一厅" />
|
|
|
|
|
- <el-option label="三室一厅" value="三室一厅" />
|
|
|
|
|
- <el-option label="三室两厅" value="三室两厅" />
|
|
|
|
|
- <el-option label="单间" value="单间" />
|
|
|
|
|
- <el-option label="套间" value="套间" />
|
|
|
|
|
- <el-option label="厂房" value="厂房" />
|
|
|
|
|
- <el-option label="仓库" value="仓库" />
|
|
|
|
|
|
|
+ <el-option label="一室一厅" value="一室一厅"/>
|
|
|
|
|
+ <el-option label="两室一厅" value="两室一厅"/>
|
|
|
|
|
+ <el-option label="三室一厅" value="三室一厅"/>
|
|
|
|
|
+ <el-option label="三室两厅" value="三室两厅"/>
|
|
|
|
|
+ <el-option label="单间" value="单间"/>
|
|
|
|
|
+ <el-option label="套间" value="套间"/>
|
|
|
|
|
+ <el-option label="厂房" value="厂房"/>
|
|
|
|
|
+ <el-option label="仓库" value="仓库"/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="房屋介绍" class="col-span-2">
|
|
<el-form-item label="房屋介绍" class="col-span-2">
|
|
@@ -1182,9 +1202,9 @@ onMounted(() => {
|
|
|
<el-tab-pane label="设备管理" name="device">
|
|
<el-tab-pane label="设备管理" name="device">
|
|
|
<template #label>
|
|
<template #label>
|
|
|
<div class="flex items-center gap-2">
|
|
<div class="flex items-center gap-2">
|
|
|
- <Settings class="w-4 h-4" />
|
|
|
|
|
|
|
+ <Settings class="w-4 h-4"/>
|
|
|
<span>设备管理</span>
|
|
<span>设备管理</span>
|
|
|
- <el-badge :value="deviceList.length" class="ml-1" />
|
|
|
|
|
|
|
+ <el-badge :value="deviceList.length" class="ml-1"/>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="p-4">
|
|
<div class="p-4">
|
|
@@ -1199,10 +1219,10 @@ onMounted(() => {
|
|
|
<!-- 设备列表 -->
|
|
<!-- 设备列表 -->
|
|
|
<div v-loading="deviceLoading">
|
|
<div v-loading="deviceLoading">
|
|
|
<el-table :data="deviceList" stripe class="w-full">
|
|
<el-table :data="deviceList" stripe class="w-full">
|
|
|
- <el-table-column prop="deviceName" label="设备名称" width="120" />
|
|
|
|
|
- <el-table-column prop="deviceType" label="设备类型" width="100" />
|
|
|
|
|
- <el-table-column prop="deviceBrand" label="品牌" width="100" />
|
|
|
|
|
- <el-table-column prop="deviceNumber" label="型号" width="120" />
|
|
|
|
|
|
|
+ <el-table-column prop="deviceName" label="设备名称" width="120"/>
|
|
|
|
|
+ <el-table-column prop="deviceType" label="设备类型" width="100"/>
|
|
|
|
|
+ <el-table-column prop="deviceBrand" label="品牌" width="100"/>
|
|
|
|
|
+ <el-table-column prop="deviceNumber" label="型号" width="120"/>
|
|
|
<el-table-column prop="devicePrice" label="价格" width="100">
|
|
<el-table-column prop="devicePrice" label="价格" width="100">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<span class="text-green-600 font-medium">{{ row.devicePrice }}</span>
|
|
<span class="text-green-600 font-medium">{{ row.devicePrice }}</span>
|
|
@@ -1242,7 +1262,7 @@ onMounted(() => {
|
|
|
|
|
|
|
|
<!-- 空状态 -->
|
|
<!-- 空状态 -->
|
|
|
<div v-if="deviceList.length === 0" class="text-center py-12">
|
|
<div v-if="deviceList.length === 0" class="text-center py-12">
|
|
|
- <Package class="w-16 h-16 text-gray-400 mx-auto mb-4" />
|
|
|
|
|
|
|
+ <Package class="w-16 h-16 text-gray-400 mx-auto mb-4"/>
|
|
|
<p class="text-gray-500 text-lg">暂无设备信息</p>
|
|
<p class="text-gray-500 text-lg">暂无设备信息</p>
|
|
|
<p class="text-gray-400 text-sm mt-2">点击上方按钮添加设备</p>
|
|
<p class="text-gray-400 text-sm mt-2">点击上方按钮添加设备</p>
|
|
|
</div>
|
|
</div>
|
|
@@ -1254,7 +1274,7 @@ onMounted(() => {
|
|
|
<el-tab-pane v-if="showTenantAndContractTabs" label="租户信息" name="tenant">
|
|
<el-tab-pane v-if="showTenantAndContractTabs" label="租户信息" name="tenant">
|
|
|
<template #label>
|
|
<template #label>
|
|
|
<div class="flex items-center gap-2">
|
|
<div class="flex items-center gap-2">
|
|
|
- <Users class="w-4 h-4" />
|
|
|
|
|
|
|
+ <Users class="w-4 h-4"/>
|
|
|
<span>租户信息</span>
|
|
<span>租户信息</span>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -1292,7 +1312,7 @@ onMounted(() => {
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div v-else class="text-center py-12">
|
|
<div v-else class="text-center py-12">
|
|
|
- <Users class="w-16 h-16 text-gray-400 mx-auto mb-4" />
|
|
|
|
|
|
|
+ <Users class="w-16 h-16 text-gray-400 mx-auto mb-4"/>
|
|
|
<p class="text-gray-500 text-lg">暂无租户信息</p>
|
|
<p class="text-gray-500 text-lg">暂无租户信息</p>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -1302,7 +1322,7 @@ onMounted(() => {
|
|
|
<el-tab-pane v-if="showTenantAndContractTabs" label="合同信息" name="contract">
|
|
<el-tab-pane v-if="showTenantAndContractTabs" label="合同信息" name="contract">
|
|
|
<template #label>
|
|
<template #label>
|
|
|
<div class="flex items-center gap-2">
|
|
<div class="flex items-center gap-2">
|
|
|
- <FileText class="w-4 h-4" />
|
|
|
|
|
|
|
+ <FileText class="w-4 h-4"/>
|
|
|
<span>合同信息</span>
|
|
<span>合同信息</span>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -1334,7 +1354,7 @@ onMounted(() => {
|
|
|
<div class="flex items-center gap-3">
|
|
<div class="flex items-center gap-3">
|
|
|
<span class="text-gray-600 font-medium w-24">押金:</span>
|
|
<span class="text-gray-600 font-medium w-24">押金:</span>
|
|
|
<span class="text-green-600 font-semibold"
|
|
<span class="text-green-600 font-semibold"
|
|
|
- >¥{{ contractInfo.contractDeposit }}</span
|
|
|
|
|
|
|
+ >¥{{ contractInfo.contractDeposit }}</span
|
|
|
>
|
|
>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="flex items-center gap-3">
|
|
<div class="flex items-center gap-3">
|
|
@@ -1354,7 +1374,7 @@ onMounted(() => {
|
|
|
<!-- 原合同 -->
|
|
<!-- 原合同 -->
|
|
|
<div class="flex items-center justify-between p-4 bg-white rounded-lg border">
|
|
<div class="flex items-center justify-between p-4 bg-white rounded-lg border">
|
|
|
<div class="flex items-center gap-3">
|
|
<div class="flex items-center gap-3">
|
|
|
- <FileText class="w-6 h-6 text-blue-600" />
|
|
|
|
|
|
|
+ <FileText class="w-6 h-6 text-blue-600"/>
|
|
|
<div>
|
|
<div>
|
|
|
<p class="font-medium text-gray-900">原合同文档</p>
|
|
<p class="font-medium text-gray-900">原合同文档</p>
|
|
|
<p class="text-sm text-gray-500">原始合同文件</p>
|
|
<p class="text-sm text-gray-500">原始合同文件</p>
|
|
@@ -1389,7 +1409,7 @@ onMounted(() => {
|
|
|
class="flex items-center justify-between p-4 bg-white rounded-lg border"
|
|
class="flex items-center justify-between p-4 bg-white rounded-lg border"
|
|
|
>
|
|
>
|
|
|
<div class="flex items-center gap-3">
|
|
<div class="flex items-center gap-3">
|
|
|
- <FileText class="w-6 h-6 text-green-600" />
|
|
|
|
|
|
|
+ <FileText class="w-6 h-6 text-green-600"/>
|
|
|
<div>
|
|
<div>
|
|
|
<p class="font-medium text-gray-900">签订后合同</p>
|
|
<p class="font-medium text-gray-900">签订后合同</p>
|
|
|
<p class="text-sm text-gray-500">已签署的合同文件</p>
|
|
<p class="text-sm text-gray-500">已签署的合同文件</p>
|
|
@@ -1421,7 +1441,7 @@ onMounted(() => {
|
|
|
class="flex items-center justify-center p-8 bg-white rounded-lg border border-dashed border-gray-300"
|
|
class="flex items-center justify-center p-8 bg-white rounded-lg border border-dashed border-gray-300"
|
|
|
>
|
|
>
|
|
|
<div class="text-center">
|
|
<div class="text-center">
|
|
|
- <FileText class="w-12 h-12 text-gray-400 mx-auto mb-2" />
|
|
|
|
|
|
|
+ <FileText class="w-12 h-12 text-gray-400 mx-auto mb-2"/>
|
|
|
<p class="text-gray-500">签订后合同暂未上传</p>
|
|
<p class="text-gray-500">签订后合同暂未上传</p>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -1429,7 +1449,7 @@ onMounted(() => {
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div v-else class="text-center py-12">
|
|
<div v-else class="text-center py-12">
|
|
|
- <FileText class="w-16 h-16 text-gray-400 mx-auto mb-4" />
|
|
|
|
|
|
|
+ <FileText class="w-16 h-16 text-gray-400 mx-auto mb-4"/>
|
|
|
<p class="text-gray-500 text-lg">暂无合同信息</p>
|
|
<p class="text-gray-500 text-lg">暂无合同信息</p>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -1475,26 +1495,26 @@ onMounted(() => {
|
|
|
>
|
|
>
|
|
|
<el-form :model="deviceForm" label-width="100px">
|
|
<el-form :model="deviceForm" label-width="100px">
|
|
|
<el-form-item label="设备名称" required>
|
|
<el-form-item label="设备名称" required>
|
|
|
- <el-input v-model="deviceForm.deviceName" placeholder="请输入设备名称" />
|
|
|
|
|
|
|
+ <el-input v-model="deviceForm.deviceName" placeholder="请输入设备名称"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="设备类型">
|
|
<el-form-item label="设备类型">
|
|
|
<el-select v-model="deviceForm.deviceType" placeholder="请选择设备类型" class="w-full">
|
|
<el-select v-model="deviceForm.deviceType" placeholder="请选择设备类型" class="w-full">
|
|
|
- <el-option label="家电" value="家电" />
|
|
|
|
|
- <el-option label="家具" value="家具" />
|
|
|
|
|
- <el-option label="厨具" value="厨具" />
|
|
|
|
|
- <el-option label="卫浴" value="卫浴" />
|
|
|
|
|
- <el-option label="办公设备" value="办公设备" />
|
|
|
|
|
- <el-option label="其他" value="其他" />
|
|
|
|
|
|
|
+ <el-option label="家电" value="家电"/>
|
|
|
|
|
+ <el-option label="家具" value="家具"/>
|
|
|
|
|
+ <el-option label="厨具" value="厨具"/>
|
|
|
|
|
+ <el-option label="卫浴" value="卫浴"/>
|
|
|
|
|
+ <el-option label="办公设备" value="办公设备"/>
|
|
|
|
|
+ <el-option label="其他" value="其他"/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="设备品牌">
|
|
<el-form-item label="设备品牌">
|
|
|
- <el-input v-model="deviceForm.deviceBrand" placeholder="请输入设备品牌" />
|
|
|
|
|
|
|
+ <el-input v-model="deviceForm.deviceBrand" placeholder="请输入设备品牌"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="设备型号">
|
|
<el-form-item label="设备型号">
|
|
|
- <el-input v-model="deviceForm.deviceNumber" placeholder="请输入设备型号" />
|
|
|
|
|
|
|
+ <el-input v-model="deviceForm.deviceNumber" placeholder="请输入设备型号"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="设备价格">
|
|
<el-form-item label="设备价格">
|
|
|
- <el-input v-model="deviceForm.devicePrice" placeholder="请输入设备价格" />
|
|
|
|
|
|
|
+ <el-input v-model="deviceForm.devicePrice" placeholder="请输入设备价格"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
@@ -1539,7 +1559,7 @@ onMounted(() => {
|
|
|
min-width="150"
|
|
min-width="150"
|
|
|
show-overflow-tooltip
|
|
show-overflow-tooltip
|
|
|
/>
|
|
/>
|
|
|
- <el-table-column prop="maintenancePerson" label="维护人员" width="100" />
|
|
|
|
|
|
|
+ <el-table-column prop="maintenancePerson" label="维护人员" width="100"/>
|
|
|
<el-table-column prop="maintenanceCost" label="维护费用" width="100">
|
|
<el-table-column prop="maintenanceCost" label="维护费用" width="100">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<span class="text-red-600 font-medium">
|
|
<span class="text-red-600 font-medium">
|
|
@@ -1580,7 +1600,7 @@ onMounted(() => {
|
|
|
|
|
|
|
|
<!-- 空状态 -->
|
|
<!-- 空状态 -->
|
|
|
<div v-if="maintenanceList.length === 0" class="text-center py-12">
|
|
<div v-if="maintenanceList.length === 0" class="text-center py-12">
|
|
|
- <Wrench class="w-16 h-16 text-gray-400 mx-auto mb-4" />
|
|
|
|
|
|
|
+ <Wrench class="w-16 h-16 text-gray-400 mx-auto mb-4"/>
|
|
|
<p class="text-gray-500 text-lg">暂无维护记录</p>
|
|
<p class="text-gray-500 text-lg">暂无维护记录</p>
|
|
|
<p class="text-gray-400 text-sm mt-2">点击上方按钮添加维护记录</p>
|
|
<p class="text-gray-400 text-sm mt-2">点击上方按钮添加维护记录</p>
|
|
|
</div>
|
|
</div>
|
|
@@ -1618,17 +1638,17 @@ onMounted(() => {
|
|
|
placeholder="请选择维护类型"
|
|
placeholder="请选择维护类型"
|
|
|
class="w-full"
|
|
class="w-full"
|
|
|
>
|
|
>
|
|
|
- <el-option label="定期保养" value="定期保养" />
|
|
|
|
|
- <el-option label="故障维修" value="故障维修" />
|
|
|
|
|
- <el-option label="清洁保养" value="清洁保养" />
|
|
|
|
|
- <el-option label="零件更换" value="零件更换" />
|
|
|
|
|
- <el-option label="升级改造" value="升级改造" />
|
|
|
|
|
- <el-option label="其他" value="其他" />
|
|
|
|
|
|
|
+ <el-option label="定期保养" value="定期保养"/>
|
|
|
|
|
+ <el-option label="故障维修" value="故障维修"/>
|
|
|
|
|
+ <el-option label="清洁保养" value="清洁保养"/>
|
|
|
|
|
+ <el-option label="零件更换" value="零件更换"/>
|
|
|
|
|
+ <el-option label="升级改造" value="升级改造"/>
|
|
|
|
|
+ <el-option label="其他" value="其他"/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item label="维护人员">
|
|
<el-form-item label="维护人员">
|
|
|
- <el-input v-model="maintenanceForm.maintenancePerson" placeholder="请输入维护人员" />
|
|
|
|
|
|
|
+ <el-input v-model="maintenanceForm.maintenancePerson" placeholder="请输入维护人员"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item label="维护费用">
|
|
<el-form-item label="维护费用">
|
|
@@ -1647,10 +1667,10 @@ onMounted(() => {
|
|
|
placeholder="请选择维护状态"
|
|
placeholder="请选择维护状态"
|
|
|
class="w-full"
|
|
class="w-full"
|
|
|
>
|
|
>
|
|
|
- <el-option label="待处理" value="待处理" />
|
|
|
|
|
- <el-option label="进行中" value="进行中" />
|
|
|
|
|
- <el-option label="已完成" value="已完成" />
|
|
|
|
|
- <el-option label="已取消" value="已取消" />
|
|
|
|
|
|
|
+ <el-option label="待处理" value="待处理"/>
|
|
|
|
|
+ <el-option label="进行中" value="进行中"/>
|
|
|
|
|
+ <el-option label="已完成" value="已完成"/>
|
|
|
|
|
+ <el-option label="已取消" value="已取消"/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|