6/22完善引入,
This commit is contained in:
@@ -28,9 +28,9 @@
|
||||
v-model="activityTime"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
@update:model-value="
|
||||
(data) => {
|
||||
if (data && data.length > 0) {
|
||||
@change="
|
||||
(data: string[] | null) => {
|
||||
if (data) {
|
||||
form.startTime = data[0];
|
||||
form.endTime = data[1];
|
||||
} else {
|
||||
@@ -116,7 +116,7 @@
|
||||
:on-error="handleError"
|
||||
:limit="1"
|
||||
>
|
||||
<img v-if="form.coverImage" :src="form.coverImage" class="avatar" />
|
||||
<img alt="活动封面" v-if="form.coverImage" :src="form.coverImage" class="avatar" />
|
||||
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
@@ -210,11 +210,13 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import editor from '@/components/Editor/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addActivity, getActivity, updateActivity } from '@/api/system/Activity';
|
||||
import { genFileId, UploadFiles, UploadInstance, UploadProps, UploadRawFile } from 'element-plus';
|
||||
import { genFileId, UploadInstance, UploadProps, UploadRawFile } from 'element-plus';
|
||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||
import { Plus } from '@element-plus/icons-vue';
|
||||
|
||||
const uploadUrl = import.meta.env.VITE_APP_BASE_API + '/activity/uploadImage';
|
||||
|
||||
@@ -290,7 +292,7 @@ const activityTime = ref([]);
|
||||
// 上传文件
|
||||
const upload = ref<UploadInstance>();
|
||||
// 上传成功
|
||||
const handleAvatarSuccess: UploadProps['onSuccess'] = (response, uploadFile) => {
|
||||
const handleAvatarSuccess: UploadProps['onSuccess'] = (response) => {
|
||||
if (response.data && response.data.url) {
|
||||
form.value.coverImage = response.data.url;
|
||||
}
|
||||
@@ -305,14 +307,14 @@ const handleExceed: UploadProps['onExceed'] = (files) => {
|
||||
upload.value?.submit();
|
||||
};
|
||||
// 上传失败
|
||||
const handleError: UploadProps['onError'] = (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
||||
const handleError: UploadProps['onError'] = (error: Error) => {
|
||||
console.log(error);
|
||||
};
|
||||
|
||||
// ! 投诉 ====================================================================================================
|
||||
|
||||
// ! 签到 =======================================
|
||||
const isSignin = ref(false);
|
||||
// const isSignin = ref(false);
|
||||
let AMapLi = null;
|
||||
let map: any = null;
|
||||
let circle: any = null;
|
||||
@@ -514,17 +516,17 @@ function handleBack() {
|
||||
/**
|
||||
* 销毁地图及所有工具实例(防内存泄漏、重复初始化)
|
||||
*/
|
||||
function destroyMapInstance() {
|
||||
if (map) {
|
||||
map.destroy();
|
||||
map = null;
|
||||
}
|
||||
mouseTool = null;
|
||||
geocoder = null;
|
||||
circle = null;
|
||||
AMapLi = null;
|
||||
mapReady.value = false;
|
||||
}
|
||||
// function destroyMapInstance() {
|
||||
// if (map) {
|
||||
// map.destroy();
|
||||
// map = null;
|
||||
// }
|
||||
// mouseTool = null;
|
||||
// geocoder = null;
|
||||
// circle = null;
|
||||
// AMapLi = null;
|
||||
// mapReady.value = false;
|
||||
// }
|
||||
onUnmounted(() => {
|
||||
// destroyMapInstance();
|
||||
});
|
||||
|
||||
@@ -20,19 +20,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['activity:activity:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['repair:edit:activity']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['activity:activity:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -60,8 +47,8 @@
|
||||
<el-table-column label="操作" align="center" width="300px" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.status === '0'" link type="primary" @click="handleSend(scope.row)">发布</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['activity:activity:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['activity:activity:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['activity:activity:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['activity:activity:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -89,7 +76,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Activity" lang="ts">
|
||||
import { listActivity, delActivity, updateActivity } from '@/api/system/Activity/index';
|
||||
import { listActivity, delActivity, updateActivity } from '@/api/system/Activity';
|
||||
import { ActivityVO, ActivityQuery, ActivityForm } from '@/api/system/Activity/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
@@ -201,7 +188,7 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: ActivityVO) => {
|
||||
const handleUpdate = (row?: ActivityVO) => {
|
||||
const _id = row?.id || ids.value[0];
|
||||
router.push({
|
||||
path: '/repair/editActivity',
|
||||
@@ -233,17 +220,6 @@ const handleDelete = async (row?: ActivityVO) => {
|
||||
await getList();
|
||||
};
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download(
|
||||
'activity/activity/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`activity_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
v-on:error="handleAvatarError"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
>
|
||||
<img v-if="form.url" :src="form.url" class="avatar" />
|
||||
<img v-if="form.url" :src="form.url" class="avatar" alt="" />
|
||||
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||
<template #tip>
|
||||
<div class="el-upload__tip">支持jpg, png等格式文件上传,文件大小不超过10MB.</div>
|
||||
@@ -49,9 +49,9 @@ import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addBanner, getBanner, updateBanner } from '@/api/system/Banner';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
import { UploadProps, UploadRawFile } from 'element-plus';
|
||||
import { Plus } from '@element-plus/icons-vue';
|
||||
|
||||
const uploadUrl = import.meta.env.VITE_APP_BASE_API + '/car/uploadImage';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
|
||||
@@ -20,25 +20,12 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['banner:banner:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['banner:banner:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['banner:banner:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
:show-add="checkPermi(['banner:banner:add'])"
|
||||
:show-edit="checkPermi(['banner:banner:edit'])"
|
||||
:show-delete="checkPermi(['banner:banner:remove'])"
|
||||
:show-edit="false"
|
||||
:show-delete="false"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -77,46 +64,25 @@
|
||||
<el-table-column label="添加时间" align="center" prop="createTime" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['banner:banner:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['banner:banner:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['banner:banner:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['banner:banner:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改Banner图管理对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="bannerFormRef" :model="form" label-width="80px">
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="byOrder">
|
||||
<el-input v-model="form.byOrder" placeholder="请输入排序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="小区id" prop="villageId">
|
||||
<el-input v-model="form.villageId" placeholder="请输入小区id" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Banner" lang="ts">
|
||||
import { listBanner, getBanner, delBanner, addBanner, updateBanner, switchBanner } from '@/api/system/Banner';
|
||||
import { listBanner, delBanner, switchBanner } from '@/api/system/Banner';
|
||||
import { BannerVO, BannerQuery, BannerForm } from '@/api/system/Banner/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
const bannerList = ref<BannerVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
@@ -125,20 +91,13 @@ const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const bannerFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const initFormData: BannerForm = {
|
||||
id: undefined,
|
||||
name: undefined,
|
||||
status: undefined,
|
||||
byOrder: undefined,
|
||||
link: undefined,
|
||||
villageId: undefined
|
||||
link: undefined
|
||||
};
|
||||
const data = reactive<PageData<BannerForm, BannerQuery>>({
|
||||
form: { ...initFormData },
|
||||
@@ -148,12 +107,11 @@ const data = reactive<PageData<BannerForm, BannerQuery>>({
|
||||
name: undefined,
|
||||
status: undefined,
|
||||
byOrder: undefined,
|
||||
link: undefined,
|
||||
villageId: undefined
|
||||
link: undefined
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form } = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询Banner图管理列表 */
|
||||
const getList = async () => {
|
||||
@@ -168,18 +126,6 @@ const getList = async () => {
|
||||
});
|
||||
};
|
||||
|
||||
/** 取消按钮 */
|
||||
const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
};
|
||||
|
||||
/** 表单重置 */
|
||||
const reset = () => {
|
||||
form.value = { ...initFormData };
|
||||
bannerFormRef.value?.resetFields();
|
||||
};
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.value.pageNum = 1;
|
||||
@@ -208,7 +154,7 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: BannerVO) => {
|
||||
const handleUpdate = (row?: BannerVO) => {
|
||||
const _id = row?.id || ids.value[0];
|
||||
router.push({
|
||||
path: '/system/editBanner',
|
||||
@@ -218,23 +164,6 @@ const handleUpdate = async (row?: BannerVO) => {
|
||||
});
|
||||
};
|
||||
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
bannerFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
await updateBanner(form.value).finally(() => (buttonLoading.value = false));
|
||||
} else {
|
||||
await addBanner(form.value).finally(() => (buttonLoading.value = false));
|
||||
}
|
||||
proxy?.$modal.msgSuccess('操作成功');
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: BannerVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
@@ -244,16 +173,6 @@ const handleDelete = async (row?: BannerVO) => {
|
||||
await getList();
|
||||
};
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download(
|
||||
'banner/banner/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`banner_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
};
|
||||
function handleSwitch(id: string, status: string) {
|
||||
switchBanner(id, status).then(() => {
|
||||
ElMessage.success('操作成功');
|
||||
|
||||
@@ -11,50 +11,50 @@
|
||||
</div>
|
||||
</template>
|
||||
<div>
|
||||
<div class="CarinfoBox">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfoBox">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">投诉类型</div>
|
||||
<div class="main">{{ form.type }}</div>
|
||||
</div>
|
||||
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">投诉人姓名</div>
|
||||
<div class="main">{{ form.complaintName }}</div>
|
||||
</div>
|
||||
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">手机号码</div>
|
||||
<div class="main">{{ form.phone }}</div>
|
||||
</div>
|
||||
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">投诉时间</div>
|
||||
<div class="main">{{ form.createTime }}</div>
|
||||
</div>
|
||||
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">处理状态</div>
|
||||
<div class="main">
|
||||
<DictTag :options="com_complaint_status" :value="form.status"></DictTag>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="CarinfoBox signle">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfoBox signLe">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">问题描述</div>
|
||||
<div class="main">{{ form.problemDes }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="CarinfoBox signle">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfoBox signLe">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">问题照片</div>
|
||||
<div class="main">
|
||||
<el-image
|
||||
v-for="(item, index) in problemIamgeUrllist"
|
||||
v-for="(item, index) in problemImageUrlList"
|
||||
:key="index"
|
||||
:src="item"
|
||||
:preview-teleported="true"
|
||||
:preview-src-list="problemIamgeUrllist"
|
||||
:preview-src-list="problemImageUrlList"
|
||||
style="width: 120px; height: 120px; margin-right: 10px"
|
||||
></el-image>
|
||||
</div>
|
||||
@@ -71,7 +71,7 @@
|
||||
<span>处理情况</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="formbox">
|
||||
<div class="formBox">
|
||||
<el-form ref="formRef" :rules="rules" class="m-auto" :inline="false" label-width="100px" :model="form">
|
||||
<el-form-item label="处理状态" prop="status">
|
||||
<el-radio-group v-model="form.status">
|
||||
@@ -103,11 +103,13 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import repairUser from '@/components/Holder/repairUser.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getComplaint, updateComplaint } from '@/api/system/Complaint';
|
||||
import { listComplaintType } from '@/api/system/ComplainType';
|
||||
import { ResidentVO } from '@/api/system/resident/type';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_complaint_status } = toRefs<any>(proxy?.useDict('com_complaint_status'));
|
||||
|
||||
@@ -121,7 +123,7 @@ const form = ref({
|
||||
'problemDes': '',
|
||||
'complaintName': '',
|
||||
'phone': '',
|
||||
'problemIamgeUrl': '',
|
||||
'problemImageUrl': '',
|
||||
'status': '1', // 投诉状态 0待处理 1已处理
|
||||
'handleId': '',
|
||||
'handleName': '',
|
||||
@@ -133,7 +135,7 @@ const rules = {
|
||||
handleContent: [{ required: true, message: '投诉处理内容不能为空', trigger: 'blur' }]
|
||||
};
|
||||
const userid = ref();
|
||||
const problemIamgeUrllist = ref([]);
|
||||
const problemImageUrlList = ref([]);
|
||||
// ! 投诉 ====================================================================================================
|
||||
async function init() {
|
||||
const res2 = await listComplaintType();
|
||||
@@ -142,7 +144,7 @@ async function init() {
|
||||
...form.value,
|
||||
...res.data
|
||||
};
|
||||
problemIamgeUrllist.value = res.data.problemImageUrl ? res.data.problemImageUrl.split(',') : [];
|
||||
problemImageUrlList.value = res.data.problemImageUrl ? res.data.problemImageUrl.split(',') : [];
|
||||
form.value.status = '1';
|
||||
const find = res2.rows.find((item) => item.id === form.value.typeId);
|
||||
if (find) {
|
||||
@@ -156,8 +158,7 @@ if (route.query.id) {
|
||||
init();
|
||||
}
|
||||
|
||||
function handleChange(pop) {
|
||||
console.log(pop);
|
||||
function handleChange(pop: ResidentVO) {
|
||||
form.value.handleId = pop.userId;
|
||||
form.value.handleName = pop.nickName;
|
||||
}
|
||||
@@ -195,14 +196,14 @@ function handleBack() {
|
||||
flex: 1;
|
||||
font-size: 14px;
|
||||
|
||||
.CarinfoBox {
|
||||
.carInfoBox {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
gap: 20px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
.carinfo_item {
|
||||
.carInfo_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.label {
|
||||
@@ -211,13 +212,13 @@ function handleBack() {
|
||||
}
|
||||
}
|
||||
|
||||
&.signle {
|
||||
&.signLe {
|
||||
grid-template-columns: repeat(1, 1fr);
|
||||
grid-template-rows: repeat(1, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
.formbox {
|
||||
.formBox {
|
||||
width: 500px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<el-form ref="queryFormRef" label-width="120px" :model="queryParams" :inline="true">
|
||||
<el-form-item label="投诉类型" prop="typeId">
|
||||
<el-select v-model="queryParams.typeId" placeholder="请选择投诉类型" style="width: 240px">
|
||||
<el-option :disabled="item.status === '1'" v-for="item in complaintyTyplist" :key="item.id" :label="item.name" :value="item.id" />
|
||||
<el-option :disabled="item.status === '1'" v-for="item in complainTypeList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="投诉人姓名" prop="complaintName">
|
||||
@@ -36,7 +36,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['complaint:complaint:query']">查看详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['complaint:complaint:query']">查看详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -45,9 +45,8 @@
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<!-- complaint -->
|
||||
<script setup name="Complaint" lang="ts">
|
||||
import { listComplaint, getComplaint, delComplaint, addComplaint, updateComplaint } from '@/api/system/Complaint/index';
|
||||
import { listComplaint } from '@/api/system/Complaint';
|
||||
import { ComplaintVO, ComplaintQuery, ComplaintForm } from '@/api/system/Complaint/type';
|
||||
import { listComplaintType } from '@/api/system/ComplainType';
|
||||
|
||||
@@ -55,7 +54,6 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_complaint_status } = toRefs<any>(proxy?.useDict('com_complaint_status'));
|
||||
|
||||
const complaintList = ref<ComplaintVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
@@ -64,12 +62,6 @@ const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const complaintFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const initFormData: ComplaintForm = {
|
||||
id: undefined,
|
||||
@@ -77,7 +69,7 @@ const initFormData: ComplaintForm = {
|
||||
problemDes: undefined,
|
||||
complaintName: undefined,
|
||||
phone: undefined,
|
||||
problemIamgeUrl: undefined,
|
||||
problemImageUrl: undefined,
|
||||
status: undefined,
|
||||
handleId: undefined,
|
||||
handleName: undefined,
|
||||
@@ -92,26 +84,25 @@ const data = reactive<PageData<ComplaintForm, ComplaintQuery>>({
|
||||
problemDes: undefined,
|
||||
complaintName: undefined,
|
||||
phone: undefined,
|
||||
problemIamgeUrl: undefined,
|
||||
problemImageUrl: undefined,
|
||||
status: undefined,
|
||||
handleId: undefined,
|
||||
handleName: undefined,
|
||||
handleContent: undefined,
|
||||
params: {}
|
||||
handleContent: undefined
|
||||
},
|
||||
rules: {
|
||||
id: [{ required: true, message: '投诉管理表id不能为空', trigger: 'blur' }]
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
const complaintyTyplist = ref([]);
|
||||
const complainTypeList = ref([]);
|
||||
/** 查询投诉管理列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
const res2 = await listComplaintType();
|
||||
complaintyTyplist.value = res2.rows;
|
||||
complainTypeList.value = res2.rows;
|
||||
listComplaint(queryParams.value)
|
||||
.then((res) => {
|
||||
complaintList.value = res.rows;
|
||||
@@ -143,7 +134,7 @@ const handleSelectionChange = (selection: ComplaintVO[]) => {
|
||||
|
||||
const router = useRouter();
|
||||
/** 详情按钮操作 */
|
||||
const handleUpdate = async (row?: ComplaintVO) => {
|
||||
const handleUpdate = (row?: ComplaintVO) => {
|
||||
router.push({
|
||||
path: '/repair/complainMain',
|
||||
query: {
|
||||
@@ -152,43 +143,6 @@ const handleUpdate = async (row?: ComplaintVO) => {
|
||||
});
|
||||
};
|
||||
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
complaintFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
await updateComplaint(form.value).finally(() => (buttonLoading.value = false));
|
||||
} else {
|
||||
await addComplaint(form.value).finally(() => (buttonLoading.value = false));
|
||||
}
|
||||
proxy?.$modal.msgSuccess('操作成功');
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: ComplaintVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('该信息删除后无法恢复,确定要删除吗?').finally(() => (loading.value = false));
|
||||
await delComplaint(_ids);
|
||||
proxy?.$modal.msgSuccess('删除成功');
|
||||
await getList();
|
||||
};
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download(
|
||||
'complaint/complaint/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`complaint_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
@@ -20,31 +20,12 @@
|
||||
<el-card shadow="never" class="flex-1">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['complaintType:complaintType:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['complaintType:complaintType:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete()"
|
||||
v-hasPermi="['complaintType:complaintType:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
:show-add="checkPermi(['complaintType:complaintType:add'])"
|
||||
:show-edit="checkPermi(['complaintType:complaintType:edit'])"
|
||||
:show-delete="checkPermi(['complaintType:complaintType:remove'])"
|
||||
:show-edit="false"
|
||||
:show-delete="false"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -73,8 +54,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['complaintType:complaintType:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['complaintType:complaintType:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['complaintType:complaintType:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['complaintType:complaintType:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -85,7 +66,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="ComplaintType" lang="ts">
|
||||
import { listComplaintType, getComplaintType, delComplaintType, addComplaintType, updateComplaintType } from '@/api/system/ComplainType/index';
|
||||
import { listComplaintType, delComplaintType } from '@/api/system/ComplainType/index';
|
||||
import { ComplaintTypeVO, ComplaintTypeQuery, ComplaintTypeForm } from '@/api/system/ComplainType/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -57,7 +57,6 @@ import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addDecoration, getDecoration, updateDecoration } from '@/api/system/Decoration';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { CascaderValue } from 'element-plus';
|
||||
import { getHousePathById } from '@/utils/house';
|
||||
|
||||
const houseStore = useHouseStore();
|
||||
|
||||
@@ -25,20 +25,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['repair:add:decoration']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['repair:edit:decoration']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['decoration:decoration:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -74,14 +60,14 @@
|
||||
type="primary"
|
||||
v-if="scope.row.inspectionResult !== '1'"
|
||||
@click="handleInspection(scope.row, 0, '验收')"
|
||||
v-hasPermi="['repair:edit:decoration']"
|
||||
v-has-permi="['repair:edit:decoration']"
|
||||
>验收</el-button
|
||||
>
|
||||
<el-button link type="primary" v-else @click="handleInspection(scope.row, 1, '详情')" v-hasPermi="['decoration:decoration:query']"
|
||||
<el-button link type="primary" v-else @click="handleInspection(scope.row, 1, '详情')" v-has-permi="['decoration:decoration:query']"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['decoration:decoration:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['decoration:decoration:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['decoration:decoration:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['decoration:decoration:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import editor from '@/components/Editor/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addHandleLog, getHandleLog, updateHandleLog, uploadAttachments } from '@/api/system/HandleLog';
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="200" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['handleLog:handleLog:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['handleLog:handleLog:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['handleLog:handleLog:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['handleLog:handleLog:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -83,7 +83,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="HandleLog" lang="ts">
|
||||
import { listHandleLog, getHandleLog, delHandleLog, addHandleLog, updateHandleLog } from '@/api/system/HandleLog/index';
|
||||
import { listHandleLog, delHandleLog } from '@/api/system/HandleLog/index';
|
||||
import { HandleLogVO, HandleLogQuery, HandleLogForm } from '@/api/system/HandleLog/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -20,37 +20,12 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['houseFacilities:houseFacilities:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate()"
|
||||
v-hasPermi="['houseFacilities:houseFacilities:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete()"
|
||||
v-hasPermi="['houseFacilities:houseFacilities:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
:show-add="checkPermi(['houseFacilities:houseFacilities:add'])"
|
||||
:show-edit="checkPermi(['houseFacilities:houseFacilities:edit'])"
|
||||
:show-delete="checkPermi(['houseFacilities:houseFacilities:remove'])"
|
||||
:show-edit="false"
|
||||
:show-delete="false"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -68,8 +43,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['houseFacilities:houseFacilities:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['houseFacilities:houseFacilities:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['houseFacilities:houseFacilities:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['houseFacilities:houseFacilities:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -80,13 +55,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="HouseFacilities" lang="ts">
|
||||
import {
|
||||
listHouseFacilities,
|
||||
getHouseFacilities,
|
||||
delHouseFacilities,
|
||||
addHouseFacilities,
|
||||
updateHouseFacilities
|
||||
} from '@/api/system/HouseFacilities/index';
|
||||
import { listHouseFacilities, delHouseFacilities } from '@/api/system/HouseFacilities';
|
||||
import { HouseFacilitiesVO, HouseFacilitiesQuery, HouseFacilitiesForm } from '@/api/system/HouseFacilities/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import LicensePlateInput from '@/components/LicensePlateInput/index.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addMonthCard, getMonthCard, updateMonthCard } from '@/api/system/MonthCard';
|
||||
import { LicensePlateValidator, validator } from '@/utils/Reg';
|
||||
|
||||
@@ -26,15 +26,15 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['carArea:add:monthcard']">新增</el-button>
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-has-permi="['carArea:add:monthcard']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['carArea:edit:monthcard']"
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-has-permi="['carArea:edit:monthcard']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['monthCard:monthCard:remove']"
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-has-permi="['monthCard:monthCard:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
@@ -79,8 +79,8 @@
|
||||
<el-table-column label="备注" show-overflow-tooltip align="center" prop="remark"></el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['monthCard:monthCard:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['monthCard:monthCard:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['monthCard:monthCard:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['monthCard:monthCard:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -138,7 +138,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="MonthCard" lang="ts">
|
||||
import { listMonthCard, getMonthCard, delMonthCard, addMonthCard, updateMonthCard } from '@/api/system/MonthCard/index';
|
||||
import { listMonthCard, delMonthCard, addMonthCard, updateMonthCard } from '@/api/system/MonthCard/index';
|
||||
import { MonthCardVO, MonthCardQuery, MonthCardForm } from '@/api/system/MonthCard/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
import { diffDays } from '@/utils/time';
|
||||
|
||||
@@ -65,9 +65,10 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import editor from '@/components/Editor/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addNotice, getNotice } from '@/api/system/NoticePc/index';
|
||||
import { addNotice, getNotice } from '@/api/system/NoticePc';
|
||||
import { updateNotice } from '@/api/system/NoticePc';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_noticepc_level } = toRefs<any>(proxy?.useDict('com_noticepc_level'));
|
||||
|
||||
@@ -21,15 +21,15 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['repair:add:noticepc']">新增</el-button>
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-has-permi="['repair:add:noticepc']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['repair:edit:noticepc']"
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-has-permi="['repair:edit:noticepc']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['notice:notice:remove']"
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-has-permi="['notice:notice:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
@@ -70,8 +70,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="220" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['notice:notice:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['notice:notice:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['notice:notice:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['notice:notice:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -82,7 +82,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Notice" lang="ts">
|
||||
import { listNotice, getNotice, delNotice, addNotice, updateNotice } from '@/api/system/NoticePc/index';
|
||||
import { listNotice, delNotice } from '@/api/system/NoticePc/index';
|
||||
import { NoticeVO, NoticeQuery, NoticeForm } from '@/api/system/NoticePc/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<Pageheader></Pageheader>
|
||||
<div class="NotificationBody">
|
||||
<ul class="lefttabs">
|
||||
<div style="height: 50px"></div>
|
||||
<li style="height: 50px"></li>
|
||||
<li
|
||||
:class="{
|
||||
active: activeTabs === 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<pageheader title="停车缴费管理"></pageheader>
|
||||
<pageHeader title="停车缴费管理"></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -23,19 +23,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['carArea:add:parkingcost']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['carArea:edit:parkingcost']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['parkingCost:parkingCost:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -83,21 +70,22 @@
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['parkingCost:parkingCost:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['parkingCost:parkingCost:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['parkingCost:parkingCost:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['parkingCost:parkingCost:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
<Pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="ParkingCost" lang="ts">
|
||||
import { listArea } from '@/api/system/carArea';
|
||||
import { listParking } from '@/api/system/parking';
|
||||
import { listParkingCost, getParkingCost, delParkingCost, addParkingCost, updateParkingCost } from '@/api/system/ParkingCost';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import RightToolbar from '@/components/RightToolbar/index.vue';
|
||||
import { listParkingCost, delParkingCost } from '@/api/system/ParkingCost';
|
||||
import { ParkingCostVO, ParkingCostQuery, ParkingCostForm } from '@/api/system/ParkingCost/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
import { formatTimeDiff } from '@/utils/time';
|
||||
|
||||
@@ -115,8 +115,7 @@ init();
|
||||
.container_box {
|
||||
background-color: white;
|
||||
font-size: 16px;
|
||||
padding: 20px;
|
||||
padding-bottom: 60px;
|
||||
padding: 20px 20px 60px;
|
||||
}
|
||||
.contentBox {
|
||||
width: 1200px;
|
||||
|
||||
@@ -64,8 +64,7 @@ import Holder from '@/components/Holder/index.vue';
|
||||
import QuestionnaireEdit from './components/QuestionnaireEdit.vue';
|
||||
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { Delete, DocumentAdd } from '@element-plus/icons-vue';
|
||||
import { QuestionComponentnaireForm, QuestionnaireForm, QuestionnaireVO } from '@/api/system/Questionnaire/type';
|
||||
import { QuestionComponentnaireForm } from '@/api/system/Questionnaire/type';
|
||||
import { addQuestionnaire, getQuestionnaire, updateQuestionnaire } from '@/api/system/Questionnaire';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@@ -74,7 +73,6 @@ const { com_questionnaire_scope } = toRefs<any>(proxy?.useDict('com_questionnair
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { listResident } from '@/api/system/resident';
|
||||
|
||||
const form = ref({
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
|
||||
<script setup lang="ts" name="QuestionnaireEdit">
|
||||
import draggable from 'vuedraggable';
|
||||
import { Plus, Delete, Rank, Tickets, Document, Edit } from '@element-plus/icons-vue';
|
||||
import { Delete, Rank, Tickets, Document, Edit } from '@element-plus/icons-vue';
|
||||
import { ComponentItem, QuestionComponentItem, QuestionComponentnaireForm } from '@/api/system/Questionnaire/type';
|
||||
import { ElMessage } from 'element-plus'; // 👈 补充引入
|
||||
// ==================== Props & Emit ====================
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="flex flex-col h-full p-2">
|
||||
<Pageheader></Pageheader>
|
||||
<pageHeader></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -19,29 +19,9 @@
|
||||
</el-card>
|
||||
</div>
|
||||
</transition>
|
||||
<!-- TODO 删除问题 -->
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['repair:add:questionnaire']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['repair:edit:questionnaire']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete()"
|
||||
v-hasPermi="['questionnaire:questionnaire:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -72,20 +52,24 @@
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" fixed="right" width="200">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleView(scope.row)" v-hasPermi="['questionnaire:questionnaire:query']">查看</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['questionnaire:questionnaire:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['questionnaire:questionnaire:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleView(scope.row)" v-has-permi="['questionnaire:questionnaire:query']">查看</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['questionnaire:questionnaire:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['questionnaire:questionnaire:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
<Pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Questionnaire" lang="ts">
|
||||
import { listQuestionnaire, getQuestionnaire, delQuestionnaire, addQuestionnaire, updateQuestionnaire } from '@/api/system/Questionnaire/index';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import RightToolbar from '@/components/RightToolbar/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { listQuestionnaire, delQuestionnaire, addQuestionnaire, updateQuestionnaire } from '@/api/system/Questionnaire';
|
||||
import { QuestionnaireVO, QuestionnaireQuery, QuestionnaireForm } from '@/api/system/Questionnaire/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -106,13 +106,14 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { convertBuildingToTree, hasFormData } from '@/utils/house';
|
||||
import { hasFormData } from '@/utils/house';
|
||||
import Holder from '@/components/Holder/index.vue';
|
||||
import { UploadProps, UploadUserFile } from 'element-plus';
|
||||
import { addRepair, getRepair, updateRepair, uploadRepairImages } from '@/api/system/Repair';
|
||||
import { gettreelistRepairProject } from '@/api/system/RepairProject';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { validator } from '@/utils/Reg';
|
||||
import { Plus } from '@element-plus/icons-vue';
|
||||
|
||||
const houseStore = useHouseStore();
|
||||
const { treedata } = storeToRefs(houseStore);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="h-full flex flex-col p-2">
|
||||
<Pageheader title="报修管理"></Pageheader>
|
||||
<pageHeader title="报修管理"></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -32,19 +32,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['repair:add:repair']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['repair:edit:repair']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['repair:repair:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -78,11 +65,11 @@
|
||||
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleShare(scope.row)" v-hasPermi="['repair:repair:query']">{{
|
||||
<el-button link type="primary" @click="handleShare(scope.row)" v-has-permi="['repair:repair:query']">{{
|
||||
scope.row.problemStatus === '0' ? '分配' : '详情'
|
||||
}}</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['repair:repair:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['repair:repair:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['repair:repair:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['repair:repair:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -93,7 +80,11 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Repair" lang="ts">
|
||||
import { listRepair, delRepair } from '@/api/system/Repair/index';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import RightToolbar from '@/components/RightToolbar/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { listRepair, delRepair } from '@/api/system/Repair';
|
||||
import { RepairVO, RepairQuery, RepairForm } from '@/api/system/Repair/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ import repairUser from '@/components/Holder/repairUser.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getRepair, updateRepair } from '@/api/system/Repair';
|
||||
import { RepairVO } from '@/api/system/Repair/type';
|
||||
import { getRepairProcess, listRepairProcess, updateRepairProcess } from '@/api/system/repairProcess';
|
||||
import { listRepairProcess, updateRepairProcess } from '@/api/system/repairProcess';
|
||||
import { splitImages } from '@/utils';
|
||||
|
||||
const route = useRoute();
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-button style="width: 100px" type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['repairProject:repairProject:add']"
|
||||
<!-- <el-button style="width: 100px" type="primary" plain icon="Plus" @click="handleAdd" v-has-permi="['repairProject:repairProject:add']"
|
||||
>新增维修类</el-button
|
||||
>
|
||||
<el-button
|
||||
@@ -29,7 +29,7 @@
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete()"
|
||||
v-hasPermi="['repairProject:repairProject:remove']"
|
||||
v-has-permi="['repairProject:repairProject:remove']"
|
||||
>删除</el-button
|
||||
> -->
|
||||
<right-toolbar
|
||||
@@ -37,7 +37,7 @@
|
||||
:disable-edit="single"
|
||||
:show-add="checkPermi(['repairProject:repairProject:add'])"
|
||||
:show-edit="false"
|
||||
:show-delete="checkPermi(['repairProject:repairProject:remove'])"
|
||||
:show-delete="false"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -97,8 +97,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="350" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['repairProject:repairProject:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['repairProject:repairProject:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['repairProject:repairProject:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['repairProject:repairProject:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -146,14 +146,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="RepairProject" lang="ts">
|
||||
import {
|
||||
listRepairProject,
|
||||
getRepairProject,
|
||||
delRepairProject,
|
||||
addRepairProject,
|
||||
updateRepairProject,
|
||||
gettreelistRepairProject
|
||||
} from '@/api/system/RepairProject/index';
|
||||
import { listRepairProject, delRepairProject, addRepairProject, updateRepairProject } from '@/api/system/RepairProject';
|
||||
import { RepairProjectVO, RepairProjectQuery, RepairProjectForm } from '@/api/system/RepairProject/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="flex flex-col h-full p-2">
|
||||
<pageheader></pageheader>
|
||||
<pageHeader></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -81,8 +81,8 @@
|
||||
<el-table-column label="备注" show-overflow-tooltip align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['chargeItem:chargeItem:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['chargeItem:chargeItem:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['chargeItem:chargeItem:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['chargeItem:chargeItem:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -93,7 +93,10 @@
|
||||
</template>
|
||||
|
||||
<script setup name="ChargeItem" lang="ts">
|
||||
import { listChargeItem, getChargeItem, delChargeItem, addChargeItem, updateChargeItem, changChargeItem } from '@/api/system/SdbChargeItem';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { listChargeItem, delChargeItem, updateChargeItem } from '@/api/system/SdbChargeItem';
|
||||
import { ChargeItemVO, ChargeItemQuery, ChargeItemForm } from '@/api/system/SdbChargeItem/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<pageheader></pageheader>
|
||||
<PageHeader></PageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -20,25 +20,12 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['chargeType:chargeType:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['chargeType:chargeType:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['chargeType:chargeType:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
:show-add="checkPermi(['chargeType:chargeType:add'])"
|
||||
:show-edit="checkPermi(['chargeType:chargeType:edit'])"
|
||||
:show-delete="checkPermi(['chargeType:chargeType:remove'])"
|
||||
:show-edit="false"
|
||||
:show-delete="false"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -61,8 +48,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['chargeType:chargeType:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['chargeType:chargeType:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['chargeType:chargeType:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['chargeType:chargeType:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -87,8 +74,10 @@
|
||||
</template>
|
||||
|
||||
<script setup name="ChargeType" lang="ts">
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import { listChargeType, getChargeType, delChargeType, addChargeType, updateChargeType } from '@/api/system/ChargeType';
|
||||
import { ChargeTypeVO, ChargeTypeQuery, ChargeTypeForm, ChargeType2Query } from '@/api/system/ChargeType/type';
|
||||
import { ChargeTypeVO, ChargeTypeForm, ChargeType2Query } from '@/api/system/ChargeType/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['electricityRecord:electricityRecord:add']">新增</el-button>
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-has-permi="['electricityRecord:electricityRecord:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
@@ -47,7 +47,7 @@
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate()"
|
||||
v-hasPermi="['electricityRecord:electricityRecord:edit']"
|
||||
v-has-permi="['electricityRecord:electricityRecord:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
@@ -58,12 +58,12 @@
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete()"
|
||||
v-hasPermi="['electricityRecord:electricityRecord:remove']"
|
||||
v-has-permi="['electricityRecord:electricityRecord:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['electricityRecord:electricityRecord:export']"
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-has-permi="['electricityRecord:electricityRecord:export']"
|
||||
>导出</el-button
|
||||
>
|
||||
</el-col>
|
||||
@@ -94,7 +94,7 @@
|
||||
type="primary"
|
||||
icon="Edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['electricityRecord:electricityRecord:edit']"
|
||||
v-has-permi="['electricityRecord:electricityRecord:edit']"
|
||||
></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
@@ -103,7 +103,7 @@
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['electricityRecord:electricityRecord:remove']"
|
||||
v-has-permi="['electricityRecord:electricityRecord:remove']"
|
||||
></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
@@ -149,13 +149,14 @@
|
||||
</template>
|
||||
|
||||
<script setup name="ElectricityRecord" lang="ts">
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import {
|
||||
listElectricityRecord,
|
||||
getElectricityRecord,
|
||||
delElectricityRecord,
|
||||
addElectricityRecord,
|
||||
updateElectricityRecord
|
||||
} from '@/api/system/SdbElectricityMeterReading/index';
|
||||
} from '@/api/system/SdbElectricityMeterReading';
|
||||
import { ElectricityRecordVO, ElectricityRecordQuery, ElectricityRecordForm } from '@/api/system/SdbElectricityMeterReading/type';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="h-full flex flex-col p-2">
|
||||
<pageheader></pageheader>
|
||||
<PageHeader></PageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -20,20 +20,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['payRecordList:payRecordList:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete()"
|
||||
v-hasPermi="['payRecordList:payRecordList:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:show-edit="false"
|
||||
@@ -79,8 +65,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-hasPermi="['sdb:main:payrecord']">明细</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['payRecord:payRecord:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-has-permi="['sdb:main:payrecord']">明细</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['payRecord:payRecord:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -166,8 +152,11 @@
|
||||
</template>
|
||||
|
||||
<script setup name="PayRecord" lang="ts">
|
||||
import { listPayRecord, getPayRecord, delPayRecord, addPayRecord, updatePayRecord } from '@/api/system/SdbPayRecord';
|
||||
import { PayRecordVO, PayRecordQuery, PayRecordForm } from '@/api/system/SdbPayRecord/type';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { listPayRecord, delPayRecord } from '@/api/system/SdbPayRecord';
|
||||
import { PayRecordVO, PayRecordQuery } from '@/api/system/SdbPayRecord/type';
|
||||
import { PayRecordListForm } from '@/api/system/SdbPayRecordMain/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="PayRecordList" lang="ts">
|
||||
import { listPayRecordList, getPayRecordList, delPayRecordList, addPayRecordList, updatePayRecordList } from '@/api/system/SdbPayRecordMain/index';
|
||||
import { listPayRecordList, getPayRecordList, addPayRecordList, updatePayRecordList } from '@/api/system/SdbPayRecordMain/index';
|
||||
import { PayRecordListVO, PayRecordListQuery, PayRecordListForm } from '@/api/system/SdbPayRecordMain/type';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
@@ -131,7 +131,7 @@ import CarUser from '@/components/Holder/CarUser.vue';
|
||||
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { listChargeItem } from '@/api/system/SdbChargeItem';
|
||||
import { getBill, updateBill, addBill, BillHouse, listBillHouse, queryResidentList_holder } from '@/api/system/SdbBill';
|
||||
import { getBill, updateBill, addBill } from '@/api/system/SdbBill';
|
||||
import type { DatePickerType } from 'element-plus';
|
||||
import { formatDate2 } from '@/utils';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<pageheader></pageheader>
|
||||
<PageHeader></PageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -33,10 +33,10 @@
|
||||
<el-table-column label="收费范围" align="center" prop="chargeScope" width="100">
|
||||
<template #default="scope">
|
||||
<template v-if="ShowHouselist.includes(scope.row.chargeTypeId)">
|
||||
<dict-tag :options="com_bill_charge_scope_house" :value="scope.row.chargeScope"></dict-tag>
|
||||
<DictTag :options="com_bill_charge_scope_house" :value="scope.row.chargeScope"></DictTag>
|
||||
</template>
|
||||
<template v-else>
|
||||
<dict-tag :options="com_questionnaire_scope" :value="scope.row.chargeScope"></dict-tag>
|
||||
<DictTag :options="com_questionnaire_scope" :value="scope.row.chargeScope"></DictTag>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -51,15 +51,15 @@
|
||||
<template #default="scope">
|
||||
<div class="flex justify-center" v-if="scope.row.unit">
|
||||
<span>{{ scope.row.fixedPrice }}</span> /
|
||||
<dict-tag :options="com_charge_item_unit" :value="scope.row.unit"></dict-tag>
|
||||
<DictTag :options="com_charge_item_unit" :value="scope.row.unit"></DictTag>
|
||||
</div>
|
||||
<span v-else>---</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="120" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['bill:bill:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-hasPermi="['bill:bill:query']">详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['bill:bill:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-has-permi="['bill:bill:query']">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -69,7 +69,10 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Bill" lang="ts">
|
||||
import { listBill, getBill, delBill, addBill, updateBill } from '@/api/system/SdbBill/index';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { listBill } from '@/api/system/SdbBill';
|
||||
import { BillVO, BillQuery, BillForm } from '@/api/system/SdbBill/type';
|
||||
import { listChargeItem } from '@/api/system/SdbChargeItem';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
@@ -164,7 +167,7 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: BillVO) => {
|
||||
const handleUpdate = (row?: BillVO) => {
|
||||
router.push({
|
||||
path: '/sdb/editSdbbill',
|
||||
query: {
|
||||
@@ -182,7 +185,6 @@ function handleMain(row) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
@@ -59,13 +59,11 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import Holder from '@/components/Holder/index.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { listChargeItem } from '@/api/system/SdbChargeItem';
|
||||
import { getBill, updateBill, addBill, listBillHouse } from '@/api/system/SdbBill';
|
||||
import { getBill, listBillHouse } from '@/api/system/SdbBill';
|
||||
import type { DatePickerType } from 'element-plus';
|
||||
import { formatDate, formatDate2 } from '@/utils';
|
||||
import { Delete } from '@element-plus/icons-vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_questionnaire_scope } = toRefs<any>(proxy?.useDict('com_questionnaire_scope'));
|
||||
|
||||
@@ -108,6 +108,8 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import { billlistType, billQuery, billEdit } from '@/api/system/SdbCashier';
|
||||
import { moneyAdd } from '@/utils/money';
|
||||
|
||||
@@ -114,6 +114,8 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import { billlistType, billPrint, BillPrintType, billQuery } from '@/api/system/SdbCashier';
|
||||
import { printTicketDiv } from '@/utils/print';
|
||||
|
||||
@@ -114,10 +114,10 @@
|
||||
<el-table-column label="缴费时间" align="center" prop="" />
|
||||
<el-table-column label="操作" width="220" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" v-if="scope.row.payStatus === '0'" @click="handleIncome(scope.row)" v-hasPermi="['bill:bill:edit']"
|
||||
<el-button link type="primary" v-if="scope.row.payStatus === '0'" @click="handleIncome(scope.row)" v-has-permi="['bill:bill:edit']"
|
||||
>收费</el-button
|
||||
>
|
||||
<el-button link type="primary" v-if="scope.row.payStatus === '1'" @click="printPIaoJuByOnly(scope.row)" v-hasPermi="['bill:bill:query']"
|
||||
<el-button link type="primary" v-if="scope.row.payStatus === '1'" @click="printPIaoJuByOnly(scope.row)" v-has-permi="['bill:bill:query']"
|
||||
>打印票据</el-button
|
||||
>
|
||||
</template>
|
||||
|
||||
@@ -76,8 +76,7 @@ function routeback() {
|
||||
background-color: white;
|
||||
.bodybox {
|
||||
width: 600px;
|
||||
margin: 0 auto;
|
||||
margin-top: 20px;
|
||||
margin: 20px auto 0;
|
||||
}
|
||||
.week-items {
|
||||
width: 90px;
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleMarkqrcode" v-hasPermi="['equipment:addqrcode:electricitydevice']"
|
||||
<el-button type="primary" plain icon="Plus" @click="handleMarkqrcode" v-has-permi="['equipment:addqrcode:electricitydevice']"
|
||||
>批量生成条形码</el-button
|
||||
>
|
||||
</el-col>
|
||||
@@ -56,7 +56,7 @@
|
||||
<span>批量下载条形码</span>
|
||||
</el-dropdown-item>
|
||||
<!-- </el-dropdown-menu> -->
|
||||
<!-- <el-dropdown-item v-hasPermi="['equipment:addqrcode:electricitydevice']">
|
||||
<!-- <el-dropdown-item v-has-permi="['equipment:addqrcode:electricitydevice']">
|
||||
<div @click="handleMarkqrcode">批量更新固件</div>
|
||||
</el-dropdown-item> -->
|
||||
</template>
|
||||
@@ -112,7 +112,7 @@
|
||||
<span>{{ scope.row.electricityRecord ? scope.row.electricityRecord.readTime : '--' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column width="150" label="启停" align="center" prop="deleted" v-hasPermi="['equipment:isUse:electricitydevice']">
|
||||
<!-- <el-table-column width="150" label="启停" align="center" prop="deleted" v-has-permi="['equipment:isUse:electricitydevice']">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
@change="(val: string) => handleChangeWater(val, scope.row)"
|
||||
@@ -127,25 +127,25 @@
|
||||
<el-table-column min-width="120" label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<div class="actions">
|
||||
<el-button link type="primary" @click="handleRecode(scope.row)" v-hasPermi="['equipment:view:electricitydevice']">充值记录</el-button>
|
||||
<el-button link type="primary" @click="handleQrCode(scope.row)" v-hasPermi="['equipment:addqrcode:electricitydevice']"
|
||||
<el-button link type="primary" @click="handleRecode(scope.row)" v-has-permi="['equipment:view:electricitydevice']">充值记录</el-button>
|
||||
<el-button link type="primary" @click="handleQrCode(scope.row)" v-has-permi="['equipment:addqrcode:electricitydevice']"
|
||||
>生成条码</el-button
|
||||
>
|
||||
<el-button link type="primary" @click="handleOpenDialog('usedWater', scope.row)" v-hasPermi="['equipment:useWater:electricitydevice']"
|
||||
<el-button link type="primary" @click="handleOpenDialog('usedWater', scope.row)" v-has-permi="['equipment:useWater:electricitydevice']"
|
||||
>用电量</el-button
|
||||
>
|
||||
<!-- <el-button
|
||||
link
|
||||
type="primary"
|
||||
@click="handleOpenDialog('Upload', scope.row)"
|
||||
v-hasPermi="['equipment:updatehardware:electricitydevice']"
|
||||
v-has-permi="['equipment:updatehardware:electricitydevice']"
|
||||
>更新固件</el-button
|
||||
> -->
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
@click="handleOpenDialog('UpdateHouse', scope.row)"
|
||||
v-hasPermi="['equipment:edithouse:electricitydevice']"
|
||||
v-has-permi="['equipment:edithouse:electricitydevice']"
|
||||
>绑定房屋</el-button
|
||||
>
|
||||
<!-- <el-dropdown style="vertical-align: text-top">
|
||||
@@ -157,13 +157,13 @@
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item>
|
||||
<div @click="handleOpenDialog('usedWater', scope.row)" v-hasPermi="['equipment:used:electricitydevice']">用电量</div>
|
||||
<div @click="handleOpenDialog('usedWater', scope.row)" v-has-permi="['equipment:used:electricitydevice']">用电量</div>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<div @click="handleOpenDialog('Upload', scope.row)" v-hasPermi="['equipment:updatehardware:electricitydevice']">更新固件</div>
|
||||
<div @click="handleOpenDialog('Upload', scope.row)" v-has-permi="['equipment:updatehardware:electricitydevice']">更新固件</div>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<div @click="handleOpenDialog('UpdateHouse', scope.row)" v-hasPermi="['equipment:edithouse:electricitydevice']">修改</div>
|
||||
<div @click="handleOpenDialog('UpdateHouse', scope.row)" v-has-permi="['equipment:edithouse:electricitydevice']">修改</div>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
@@ -267,7 +267,7 @@ import { useHouseStore } from '@/store/modules/house';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
import { Upload } from '@element-plus/icons-vue';
|
||||
import { CascaderValue, tourEmits, UploadProps, UploadRawFile } from 'element-plus';
|
||||
import { CascaderValue, UploadProps, UploadRawFile } from 'element-plus';
|
||||
import { exportImagesToZip } from '@/utils/exportZip';
|
||||
|
||||
const uploadUrl = import.meta.env.VITE_APP_BASE_API + '/electricityDevice/upload';
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<Pageheader title="电表管理"></Pageheader>
|
||||
<pageHeader title="电表管理"></pageHeader>
|
||||
<div class="flex-1 color-gray flex h-full font-size-6 flex-center">系统还在维护中,敬请期待...</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<Pageheader title="预存款管理"></Pageheader>
|
||||
<pageHeader title="预存款管理"></pageHeader>
|
||||
<div class="flex-1 color-gray flex h-full font-size-6 flex-center">系统还在维护中,敬请期待...</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<el-dropdown-item @click="handleMarkQrcodeZip">
|
||||
<span>批量下载条形码</span>
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item v-hasPermi="['equipment:updatehardware:waterdevice']">
|
||||
<!-- <el-dropdown-item v-has-permi="['equipment:updatehardware:waterdevice']">
|
||||
<div @click="handleMarkUpload">批量更新固件</div>
|
||||
</el-dropdown-item> -->
|
||||
</template>
|
||||
@@ -97,7 +97,7 @@
|
||||
<span>{{ scope.row.waterRecord ? scope.row.waterRecord.readTime : '---' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column width="150" label="启停" align="center" prop="deleted" v-hasPermi="['equipment:isUse:waterdevice']">
|
||||
<!-- <el-table-column width="150" label="启停" align="center" prop="deleted" v-has-permi="['equipment:isUse:waterdevice']">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
@change="(val: string) => handleChangeWater(val, scope.row)"
|
||||
@@ -112,24 +112,24 @@
|
||||
<el-table-column label="操作" min-width="150" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<div class="actions">
|
||||
<el-button link type="primary" @click="handleRecode(scope.row)" v-hasPermi="['equipment:view:waterdevice']">充值记录</el-button>
|
||||
<el-button link type="primary" @click="handleRecode(scope.row)" v-has-permi="['equipment:view:waterdevice']">充值记录</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
:loading="loadingQRCode.includes(scope.row.id)"
|
||||
@click="handleQrCode(scope.row)"
|
||||
v-hasPermi="['equipment:addqrcode:waterdevice']"
|
||||
v-has-permi="['equipment:addqrcode:waterdevice']"
|
||||
>生成条码</el-button
|
||||
>
|
||||
<el-button link type="primary" @click="handleOpenDialog('usedWater', scope.row)" v-hasPermi="['equipment:useWater:waterdevice']"
|
||||
<el-button link type="primary" @click="handleOpenDialog('usedWater', scope.row)" v-has-permi="['equipment:useWater:waterdevice']"
|
||||
>用水量</el-button
|
||||
>
|
||||
<el-button link type="primary" @click="handleOpenDialog('Upload', scope.row)" v-hasPermi="['equipment:updatehardware:waterdevice']"
|
||||
<el-button link type="primary" @click="handleOpenDialog('Upload', scope.row)" v-has-permi="['equipment:updatehardware:waterdevice']"
|
||||
>更新固件</el-button
|
||||
>
|
||||
<!-- <el-button link type="primary" @click="handleUpdate(scope.row.deviceCode)">最新抄表记录</el-button> -->
|
||||
|
||||
<el-button link type="primary" @click="handleOpenDialog('UpdateHouse', scope.row)" v-hasPermi="['equipment:edithouse:waterdevice']"
|
||||
<el-button link type="primary" @click="handleOpenDialog('UpdateHouse', scope.row)" v-has-permi="['equipment:edithouse:waterdevice']"
|
||||
>绑定房屋</el-button
|
||||
>
|
||||
<!-- <el-dropdown style="vertical-align: text-top">
|
||||
@@ -141,13 +141,13 @@
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item>
|
||||
<div @click="handleOpenDialog('usedWater', scope.row)" v-hasPermi="['equipment:useWater:waterdevice']">用水量</div>
|
||||
<div @click="handleOpenDialog('usedWater', scope.row)" v-has-permi="['equipment:useWater:waterdevice']">用水量</div>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<div @click="handleOpenDialog('Upload', scope.row)" v-hasPermi="['equipment:updatehardware:waterdevice']">更新固件</div>
|
||||
<div @click="handleOpenDialog('Upload', scope.row)" v-has-permi="['equipment:updatehardware:waterdevice']">更新固件</div>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<div @click="handleOpenDialog('UpdateHouse', scope.row)" v-hasPermi="['equipment:edithouse:waterdevice']">修改</div>
|
||||
<div @click="handleOpenDialog('UpdateHouse', scope.row)" v-has-permi="['equipment:edithouse:waterdevice']">修改</div>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<Pageheader title="水表管理"></Pageheader>
|
||||
<pageHeader title="水表管理"></pageHeader>
|
||||
<div class="flex-1 color-gray flex h-full font-size-6 flex-center">系统还在维护中,敬请期待...</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
||||
@@ -26,20 +26,20 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['waterRecord:waterRecord:add']">新增</el-button>
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-has-permi="['waterRecord:waterRecord:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['waterRecord:waterRecord:edit']"
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-has-permi="['waterRecord:waterRecord:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['waterRecord:waterRecord:remove']"
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-has-permi="['waterRecord:waterRecord:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['waterRecord:waterRecord:export']">导出</el-button>
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-has-permi="['waterRecord:waterRecord:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar></right-toolbar>
|
||||
</el-row>
|
||||
@@ -62,7 +62,7 @@
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['waterRecord:waterRecord:edit']"></el-button>
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-has-permi="['waterRecord:waterRecord:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button
|
||||
@@ -70,7 +70,7 @@
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['waterRecord:waterRecord:remove']"
|
||||
v-has-permi="['waterRecord:waterRecord:remove']"
|
||||
></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="flex flex-col h-full p-2">
|
||||
<pageheader></pageheader>
|
||||
<pageHeader></pageHeader>
|
||||
<el-card class="flex-1 mt-10px" shadow="never">
|
||||
<template #header>
|
||||
<div class="flex justify-between items-center">
|
||||
@@ -31,11 +31,11 @@
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="" v-hasPermi="['electricity:topupRecord:list']">
|
||||
<el-form-item label="" v-has-permi="['electricity:topupRecord:list']">
|
||||
<el-button type="primary" @click="getList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button @click="handleExport" v-hasPermi="['electricity:topupRecord:export']" type="warning">导出统计</el-button>
|
||||
<el-button @click="handleExport" v-has-permi="['electricity:topupRecord:export']" type="warning">导出统计</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<el-table v-loading="loading" border :data="topupRecordList">
|
||||
@@ -86,7 +86,9 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getElectricityTopupRecordByDate, type TopupRecordList } from '@/api/system/SdbTopupRecord/index';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import { getElectricityTopupRecordByDate, type TopupRecordList } from '@/api/system/SdbTopupRecord';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="" v-hasPermi="['water:topupRecord:list']">
|
||||
<el-form-item label="" v-has-permi="['water:topupRecord:list']">
|
||||
<el-button type="primary" @click="getList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button @click="handleExport" v-hasPermi="['water:topupRecord:export']" type="warning">导出统计</el-button>
|
||||
<el-button @click="handleExport" v-has-permi="['water:topupRecord:export']" type="warning">导出统计</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<el-table v-loading="loading" border :data="topupRecordList">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<Pageheader title="访客信息"></Pageheader>
|
||||
<PageHeader title="访客信息"></PageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -45,18 +45,21 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-hasPermi="['visitor:visitor:query']">访客详情</el-button>
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-has-permi="['visitor:visitor:query']">访客详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
<Pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Visitor" lang="ts">
|
||||
import { listVisitor } from '@/api/system/Visitor/index';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { listVisitor } from '@/api/system/Visitor';
|
||||
import { VisitorVO, VisitorQuery, VisitorForm } from '@/api/system/Visitor/type';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@@ -64,9 +67,7 @@ const { sys_user_sex } = toRefs<any>(proxy?.useDict('sys_user_sex'));
|
||||
const { com_visitor_status } = toRefs<any>(proxy?.useDict('com_visitor_status'));
|
||||
const router = useRouter();
|
||||
|
||||
// com_visitor_status
|
||||
const visitorList = ref<VisitorVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
@@ -74,7 +75,6 @@ const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const visitorFormRef = ref<ElFormInstance>();
|
||||
|
||||
const initFormData: VisitorForm = {
|
||||
id: undefined,
|
||||
@@ -113,7 +113,7 @@ const data = reactive<PageData<VisitorForm, VisitorQuery>>({
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询访客管理列表 */
|
||||
const getList = async () => {
|
||||
@@ -144,7 +144,7 @@ const handleSelectionChange = (selection: VisitorVO[]) => {
|
||||
};
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleMain = async (row?: VisitorVO) => {
|
||||
const handleMain = (row?: VisitorVO) => {
|
||||
router.push({
|
||||
path: '/repair/visitorMain',
|
||||
query: {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="AddBuildingBox">
|
||||
<PageHeader :title="parkingid ? '编辑区域信息' : '添加区域信息'"></PageHeader>
|
||||
<PageHeader :title="parking ? '编辑区域信息' : '添加区域信息'"></PageHeader>
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">基本信息</div>
|
||||
<div class="addBuildingFormBody">
|
||||
@@ -53,7 +53,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addArea, getArea, updateArea } from '@/api/system/carArea/index';
|
||||
import { addArea, getArea, updateArea } from '@/api/system/carArea';
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
@@ -71,11 +71,11 @@ const rules = ref({
|
||||
areaName: [{ required: true, message: '请输入区域名称', trigger: 'blur' }],
|
||||
areaCode: [{ required: true, message: '请输入区域编号', trigger: 'blur' }]
|
||||
});
|
||||
const parkingid = ref(null);
|
||||
const parking = ref(null);
|
||||
|
||||
if (route.query.id) {
|
||||
parkingid.value = route.query.id;
|
||||
getArea(parkingid.value).then((res) => {
|
||||
parking.value = route.query.id;
|
||||
getArea(parking.value).then((res) => {
|
||||
form.value = {
|
||||
...form.value,
|
||||
...res.data
|
||||
@@ -88,7 +88,7 @@ if (route.query.id) {
|
||||
const submitForm = () => {
|
||||
formRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
if (parkingid.value) {
|
||||
if (parking.value) {
|
||||
updateArea(form.value).then(() => {
|
||||
ElMessage.success('编辑成功');
|
||||
cancelForm();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 flex w-full h-full flex-column">
|
||||
<Pageheader title="区域管理"></Pageheader>
|
||||
<pageHeader title="区域管理"></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -23,19 +23,6 @@
|
||||
<el-card shadow="never" class="flex-1">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['area:area:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['carArea:edit:carArea']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['area:area:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -62,8 +49,8 @@
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['area:area:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['area:area:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['area:area:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['area:area:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -74,15 +61,14 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Area" lang="ts">
|
||||
import Pageheader from '@/components/Pageheader/index.vue';
|
||||
import { listArea, getArea, delArea, addArea, updateArea } from '@/api/system/carArea/index';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import { listArea, delArea } from '@/api/system/carArea';
|
||||
import { AreaVO, AreaQuery, AreaForm } from '@/api/system/carArea/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const router = useRouter();
|
||||
const areaList = ref<AreaVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
@@ -121,7 +107,7 @@ const data = reactive<PageData<AreaForm, AreaQuery>>({
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询车位区域管理列表 */
|
||||
const getList = async () => {
|
||||
@@ -163,7 +149,7 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: AreaVO) => {
|
||||
const handleUpdate = (row?: AreaVO) => {
|
||||
const _id = row ? row.id : ids.value[0];
|
||||
router.push({
|
||||
path: '/carArea/editCarArea',
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
>
|
||||
<img v-if="form.carImageUrl" :src="form.carImageUrl" class="avatar" />
|
||||
<img alt="车辆照片" v-if="form.carImageUrl" :src="form.carImageUrl" class="avatar" />
|
||||
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||
<template #tip>
|
||||
<span>支持jpg, png等格式文件上传,文件大小不超过10MB,可上传多张 </span>
|
||||
@@ -79,15 +79,15 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="持有人">
|
||||
<AppUser :isMultiple="false" ref="HolderRef" @change="handleChange">
|
||||
<AppUser returnable="*" :isMultiple="false" ref="HolderRef" @change="handleChange">
|
||||
<template #default>
|
||||
<div class="residentBox" @click="choiceResidentFun">
|
||||
<div class="defaultbox" v-if="form.residentId === ''">
|
||||
<div class="defaultbox" v-if="form.residentId === '' || form.userId === ''">
|
||||
<span>请选择</span>
|
||||
<el-icon><Search /></el-icon>
|
||||
</div>
|
||||
<div v-else class="overflow-auto overflow-hidden w-full text-ellipsis text-nowrap">
|
||||
<span>姓名:{{ form?.residentName }}</span>
|
||||
<span>姓名:{{ form.residentName && form.residentName.trim() !== '' ? form.residentName : form.userName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -120,13 +120,13 @@ import Holder from '@/components/Holder/index.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { listArea } from '@/api/system/carArea';
|
||||
import { listParking } from '@/api/system/parking';
|
||||
import { UploadFiles, UploadProps, UploadRawFile, UploadUserFile } from 'element-plus';
|
||||
import { addCar, getCar, updateCar, uploadCar } from '@/api/system/cars';
|
||||
import { UploadFiles, UploadProps, UploadRawFile } from 'element-plus';
|
||||
import { addCar, getCar, updateCar } from '@/api/system/cars';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
import AppUser from '@/components/Holder/appUser.vue';
|
||||
import { Plus } from '@element-plus/icons-vue';
|
||||
|
||||
const uploadUrl = import.meta.env.VITE_APP_BASE_API + '/car/uploadImage';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
@@ -143,6 +143,8 @@ const form = ref({
|
||||
carModel: '', //车辆型号
|
||||
carColor: '', //车身颜色
|
||||
remark: '', //备注
|
||||
userId: '',
|
||||
userName: '',
|
||||
carImageUrl: '' //车辆图片url
|
||||
});
|
||||
|
||||
@@ -255,8 +257,8 @@ const cancelForm = () => {
|
||||
const holderInfo = ref(null);
|
||||
const HolderRef = ref<typeof Holder>(null);
|
||||
function choiceResidentFun() {
|
||||
if (form.value.residentId) {
|
||||
HolderRef.value.open([...form.value.residentId]);
|
||||
if (form.value.userId && form.value.userId.trim() !== '') {
|
||||
HolderRef.value.open([form.value.userId]);
|
||||
} else {
|
||||
HolderRef.value.open([]);
|
||||
}
|
||||
|
||||
@@ -26,15 +26,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['carArea:add:cars']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['carArea:edit:car']">编辑</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['car:car:remove']">删除</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -54,14 +45,14 @@
|
||||
<el-table-column label="车辆品牌" width="155" align="center" prop="carBrand" />
|
||||
<el-table-column label="车辆型号" width="155" align="center" prop="carModel" />
|
||||
<el-table-column label="车身颜色" width="125" align="center" prop="carColor" />
|
||||
<el-table-column label="持有人" width="155" align="center" prop="residentId">
|
||||
<template #default="scope"> {{ getResidentName(scope.row.residentId) }} </template>
|
||||
<el-table-column label="持有人" width="155" align="center" prop="userName">
|
||||
<template #default="scope"> {{ scope.row.userName }} </template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['car:car:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['car:car:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['car:car:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['car:car:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -73,7 +64,7 @@
|
||||
|
||||
<script setup name="Car" lang="ts">
|
||||
import Pageheader from '@/components/Pageheader/index.vue';
|
||||
import { listCar, getCar, delCar, addCar, updateCar } from '@/api/system/cars/index';
|
||||
import { listCar, delCar } from '@/api/system/cars/index';
|
||||
import { CarVO, CarQuery, CarForm } from '@/api/system/cars/type';
|
||||
import { listResident } from '@/api/system/resident';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
@@ -122,28 +113,18 @@ const data = reactive<PageData<CarForm, CarQuery>>({
|
||||
carBrand: undefined,
|
||||
carModel: undefined,
|
||||
carColor: undefined,
|
||||
carImageUrl: undefined,
|
||||
params: {}
|
||||
carImageUrl: undefined
|
||||
},
|
||||
rules: {
|
||||
id: [{ required: true, message: '车辆管理表id不能为空', trigger: 'blur' }]
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 持有人 */
|
||||
const ResidentList = ref([]);
|
||||
const getResidentName = (id: string) => {
|
||||
const find = ResidentList.value.find((item) => item.id === id);
|
||||
if (!find) return '--';
|
||||
return find.name;
|
||||
};
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询车辆管理列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
|
||||
listCar(queryParams.value)
|
||||
.then((res) => {
|
||||
carList.value = res.rows;
|
||||
@@ -152,9 +133,6 @@ const getList = async () => {
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
const res1 = await listResident();
|
||||
ResidentList.value = res1.rows;
|
||||
loading.value = false;
|
||||
};
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
|
||||
@@ -27,20 +27,20 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:client:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
<el-button v-has-permi="['system:client:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:client:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">
|
||||
<el-button v-has-permi="['system:client:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">
|
||||
修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:client:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
<el-button v-has-permi="['system:client:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:client:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||
<el-button v-has-permi="['system:client:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:show-search="showSearch" @query-table="getList"></right-toolbar>
|
||||
</el-row>
|
||||
@@ -72,10 +72,10 @@
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:client:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:client:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:client:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:client:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -145,6 +145,7 @@
|
||||
<script setup name="Client" lang="ts">
|
||||
import { listClient, getClient, delClient, addClient, updateClient, changeStatus } from '@/api/system/client';
|
||||
import { ClientVO, ClientQuery, ClientForm } from '@/api/system/client/types';
|
||||
import { QuestionFilled } from '@element-plus/icons-vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { sys_normal_disable } = toRefs<any>(proxy?.useDict('sys_normal_disable'));
|
||||
|
||||
@@ -38,23 +38,23 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
<el-button v-has-permi="['system:config:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">
|
||||
<el-button v-has-permi="['system:config:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">
|
||||
修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
<el-button v-has-permi="['system:config:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||
<el-button v-has-permi="['system:config:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:remove']" type="danger" plain @click="handleRefreshCache">刷新缓存</el-button>
|
||||
<el-button v-has-permi="['system:config:remove']" type="danger" plain @click="handleRefreshCache">刷新缓存</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:show-search="showSearch" @query-table="getList"></right-toolbar>
|
||||
</el-row>
|
||||
@@ -80,10 +80,10 @@
|
||||
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:config:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:config:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:config:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:config:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:dept:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增 </el-button>
|
||||
<el-button v-has-permi="['system:dept:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增 </el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="info" plain icon="Sort" @click="handleToggleExpandAll">展开/折叠</el-button>
|
||||
@@ -62,13 +62,13 @@
|
||||
<el-table-column fixed="right" align="center" label="操作">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:dept:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)" />
|
||||
<el-button v-has-permi="['system:dept:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="新增" placement="top">
|
||||
<el-button v-hasPermi="['system:dept:add']" link type="primary" icon="Plus" @click="handleAdd(scope.row)" />
|
||||
<el-button v-has-permi="['system:dept:add']" link type="primary" icon="Plus" @click="handleAdd(scope.row)" />
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:dept:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)" />
|
||||
<el-button v-has-permi="['system:dept:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)" />
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -38,15 +38,15 @@
|
||||
</div>
|
||||
|
||||
<div class="dict-actions">
|
||||
<el-button v-hasPermi="['system:dict:add']" type="primary" plain icon="Plus" @click="handleTypeAdd">新增</el-button>
|
||||
<el-button v-hasPermi="['system:dict:edit']" type="success" plain icon="Edit" :disabled="typeSingle" @click="handleTypeUpdate()"
|
||||
<el-button v-has-permi="['system:dict:add']" type="primary" plain icon="Plus" @click="handleTypeAdd">新增</el-button>
|
||||
<el-button v-has-permi="['system:dict:edit']" type="success" plain icon="Edit" :disabled="typeSingle" @click="handleTypeUpdate()"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button v-hasPermi="['system:dict:remove']" type="danger" plain icon="Delete" :disabled="typeMultiple" @click="handleTypeDelete()"
|
||||
<el-button v-has-permi="['system:dict:remove']" type="danger" plain icon="Delete" :disabled="typeMultiple" @click="handleTypeDelete()"
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button v-hasPermi="['system:dict:export']" type="warning" plain icon="Download" @click="handleTypeExport">导出</el-button>
|
||||
<el-button v-hasPermi="['system:dict:remove']" type="danger" plain icon="Refresh" @click="handleRefreshCache">刷新缓存</el-button>
|
||||
<el-button v-has-permi="['system:dict:export']" type="warning" plain icon="Download" @click="handleTypeExport">导出</el-button>
|
||||
<el-button v-has-permi="['system:dict:remove']" type="danger" plain icon="Refresh" @click="handleRefreshCache">刷新缓存</el-button>
|
||||
</div>
|
||||
|
||||
<div class="dict-table-wrap">
|
||||
@@ -76,10 +76,16 @@
|
||||
<el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:dict:edit']" link type="primary" icon="Edit" @click="handleTypeUpdate(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:dict:edit']" link type="primary" icon="Edit" @click="handleTypeUpdate(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:dict:remove']" link type="primary" icon="Delete" @click="handleTypeDelete(scope.row)"></el-button>
|
||||
<el-button
|
||||
v-has-permi="['system:dict:remove']"
|
||||
link
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleTypeDelete(scope.row)"
|
||||
></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -127,11 +133,11 @@
|
||||
</div>
|
||||
|
||||
<div class="dict-actions">
|
||||
<el-button v-hasPermi="['system:dict:add']" type="primary" plain icon="Plus" :disabled="!hasCurrentDict" @click="handleDataAdd"
|
||||
<el-button v-has-permi="['system:dict:add']" type="primary" plain icon="Plus" :disabled="!hasCurrentDict" @click="handleDataAdd"
|
||||
>新增</el-button
|
||||
>
|
||||
<el-button
|
||||
v-hasPermi="['system:dict:edit']"
|
||||
v-has-permi="['system:dict:edit']"
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
@@ -140,7 +146,7 @@
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
v-hasPermi="['system:dict:remove']"
|
||||
v-has-permi="['system:dict:remove']"
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
@@ -148,7 +154,7 @@
|
||||
@click="handleDataDelete()"
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button v-hasPermi="['system:dict:export']" type="warning" plain icon="Download" :disabled="!hasCurrentDict" @click="handleDataExport"
|
||||
<el-button v-has-permi="['system:dict:export']" type="warning" plain icon="Download" :disabled="!hasCurrentDict" @click="handleDataExport"
|
||||
>导出</el-button
|
||||
>
|
||||
</div>
|
||||
@@ -184,10 +190,16 @@
|
||||
<el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:dict:edit']" link type="primary" icon="Edit" @click="handleDataUpdate(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:dict:edit']" link type="primary" icon="Edit" @click="handleDataUpdate(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:dict:remove']" link type="primary" icon="Delete" @click="handleDataDelete(scope.row)"></el-button>
|
||||
<el-button
|
||||
v-has-permi="['system:dict:remove']"
|
||||
link
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleDataDelete(scope.row)"
|
||||
></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -613,6 +625,7 @@ onMounted(() => {
|
||||
<style lang="scss" scoped>
|
||||
.dict-grid {
|
||||
row-gap: 16px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.dict-card__header {
|
||||
|
||||
@@ -73,10 +73,9 @@
|
||||
import { ref } from 'vue';
|
||||
import repairUser from '@/components/Holder/repairUser.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getMaterial, updateMaterial, addMaterial } from '@/api/system/Tmaterial';
|
||||
import { listDeviceCategory } from '@/api/system/equipment/Category';
|
||||
import { addDevice, getDevice, updateDevice } from '@/api/system/equipment/archive';
|
||||
import { Delete } from '@element-plus/icons-vue';
|
||||
import { Delete, Plus } from '@element-plus/icons-vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_equipment_archive_status } = toRefs<any>(proxy?.useDict('com_equipment_archive_status'));
|
||||
|
||||
@@ -24,19 +24,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['equipment:add:archive']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['equipment:edit:archive']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:device:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -65,9 +52,9 @@
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-hasPermi="['system:device:query']">查看详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:device:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:device:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-has-permi="['system:device:query']">查看详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:device:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:device:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -78,7 +65,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Device" lang="ts">
|
||||
import { listDevice, getDevice, delDevice, addDevice, updateDevice } from '@/api/system/equipment/archive';
|
||||
import { listDevice, delDevice, addDevice, updateDevice } from '@/api/system/equipment/archive';
|
||||
import { DeviceVO, DeviceQuery, DeviceForm } from '@/api/system/equipment/archive/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -38,15 +38,14 @@
|
||||
<el-table-column label="设备分类名称" align="center" prop="categoryName" />
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<!-- TODO 设备状态开关 -->
|
||||
<el-switch :inactive-value="1" :active-value="0" v-model="scope.row.status"></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="添加时间" align="center" prop="createTime" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:deviceCategory:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:deviceCategory:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:deviceCategory:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:deviceCategory:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -79,7 +78,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="DeviceCategory" lang="ts">
|
||||
import { listDeviceCategory, getDeviceCategory, delDeviceCategory, addDeviceCategory, updateDeviceCategory } from '@/api/system/equipment/Category';
|
||||
import { listDeviceCategory, delDeviceCategory, addDeviceCategory, updateDeviceCategory } from '@/api/system/equipment/Category';
|
||||
import { DeviceCategoryVO, DeviceCategoryQuery, DeviceCategoryForm } from '@/api/system/equipment/Category/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
@@ -213,17 +212,6 @@ const handleDelete = async (row?: DeviceCategoryVO) => {
|
||||
await getList();
|
||||
};
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download(
|
||||
'system/deviceCategory/export',
|
||||
{
|
||||
...queryParams.value
|
||||
},
|
||||
`deviceCategory_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
@@ -82,7 +82,7 @@ import { ref } from 'vue';
|
||||
import repairUser from '@/components/Holder/repairUser.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { listDeviceCategory } from '@/api/system/equipment/Category';
|
||||
import { Delete } from '@element-plus/icons-vue';
|
||||
import { Delete, Plus } from '@element-plus/icons-vue';
|
||||
import { addDeviceRepair, getDeviceRepair, updateDeviceRepair } from '@/api/system/equipment/Repair';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
@@ -23,19 +23,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['equipment:add:repair']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['equipment:edit:repair']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:deviceRepair:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -70,9 +57,9 @@
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" width="160" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-hasPermi="['system:deviceRepair:query']">详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:deviceRepair:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:deviceRepair:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-has-permi="['system:deviceRepair:query']">详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:deviceRepair:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:deviceRepair:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -83,7 +70,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="DeviceRepair" lang="ts">
|
||||
import { listDeviceRepair, getDeviceRepair, delDeviceRepair, addDeviceRepair, updateDeviceRepair } from '@/api/system/equipment/Repair';
|
||||
import { listDeviceRepair, delDeviceRepair } from '@/api/system/equipment/Repair';
|
||||
import { DeviceRepairVO, DeviceRepairQuery, DeviceRepairForm } from '@/api/system/equipment/Repair/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ function goBack() {
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
&:hover {
|
||||
box-shadow: 0px 2px 6px 0px rgba(26, 117, 255, 0.1);
|
||||
box-shadow: 0 2px 6px 0 rgba(26, 117, 255, 0.1);
|
||||
}
|
||||
}
|
||||
.AddBuildingBox {
|
||||
|
||||
@@ -139,7 +139,7 @@ async function init() {
|
||||
if (route.query.id) {
|
||||
houseid.value = route.query.id;
|
||||
}
|
||||
nextTick(() => geteditinfo());
|
||||
await nextTick(() => geteditinfo());
|
||||
}
|
||||
init();
|
||||
|
||||
@@ -320,7 +320,7 @@ const cancelForm = () => {
|
||||
align-items: center;
|
||||
.el-input {
|
||||
width: 100px;
|
||||
margin-right: 0px;
|
||||
margin-right: 0;
|
||||
}
|
||||
span {
|
||||
margin: 0 20px;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">
|
||||
<span>基本信息</span>
|
||||
<el-button v-hasPermi="['system:house:edit']" type="primary" text v-if="HouseInfo.house" @click="editHouse">编辑</el-button>
|
||||
<el-button v-has-permi="['system:house:edit']" type="primary" text v-if="HouseInfo.house" @click="editHouse">编辑</el-button>
|
||||
</div>
|
||||
<div class="addBuildingFormBody" v-if="HouseInfo.house">
|
||||
<div class="descriptionsbox">
|
||||
@@ -52,7 +52,7 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">
|
||||
<span>储藏室信息 </span>
|
||||
<el-button v-hasPermi="['storeroom:storeroom:edit']" type="primary" text v-if="HouseInfo.storeroom" @click="editStoreRoom">编辑</el-button>
|
||||
<el-button v-has-permi="['storeroom:storeroom:edit']" type="primary" text v-if="HouseInfo.storeroom" @click="editStoreRoom">编辑</el-button>
|
||||
</div>
|
||||
<div class="" v-if="HouseInfo.storeroom">
|
||||
<div class="addBuildingFormBody">
|
||||
@@ -182,7 +182,7 @@
|
||||
<span>缴费账单</span>
|
||||
</div>
|
||||
<div>
|
||||
<el-table :data="HouseInfo.billResidentList" align="center" style="width: 100%">
|
||||
<el-table :data="HouseInfo.billResidentList" style="width: 100%">
|
||||
<el-table-column prop="billCode" label="账单编号" />
|
||||
<el-table-column prop="billName" label="账单名称" />
|
||||
<el-table-column prop="chargeTypeName" label="账单项目" />
|
||||
@@ -206,6 +206,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { Data, getHouseMain } from '@/api/system/house';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="buildingheader flex align-center justify-between">
|
||||
<div>楼栋</div>
|
||||
<div>
|
||||
<span class="pointer" @click="handleAddBuilding" v-hasPermi="['system:building:add']">+增加楼栋</span>
|
||||
<span class="pointer" @click="handleAddBuilding" v-has-permi="['system:building:add']">+增加楼栋</span>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="flex-1 overflow-y-auto overflow-x-hidden">
|
||||
@@ -16,8 +16,8 @@
|
||||
>
|
||||
<div class="buildingname" :title="item.buildingName ?? ''" @click="switchBuilding(item.id ?? null)">{{ item.buildingName ?? '' }}</div>
|
||||
<div class="buildactions flex align-center justify-around">
|
||||
<el-icon class="pointer hover-color-blue" @click="editBuilding(item.id)" v-hasPermi="['system:building:edit']"><Setting /></el-icon>
|
||||
<el-icon class="pointer hover-color-red" @click="deleteBuilding(item.id)" v-hasPermi="['system:building:remove']"><Delete /></el-icon>
|
||||
<el-icon class="pointer hover-color-blue" @click="editBuilding(item.id)" v-has-permi="['system:building:edit']"><Setting /></el-icon>
|
||||
<el-icon class="pointer hover-color-red" @click="deleteBuilding(item.id)" v-has-permi="['system:building:remove']"><Delete /></el-icon>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -27,6 +27,7 @@
|
||||
<script setup lang="ts">
|
||||
import { deleteBuildingApi } from '@/api/system/house';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { Delete, Setting } from '@element-plus/icons-vue';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
const houseStore = useHouseStore();
|
||||
@@ -106,8 +107,7 @@ $primary_color: #1978fe;
|
||||
.buildactions {
|
||||
width: 75px;
|
||||
font-size: 15px;
|
||||
padding: 15px 0;
|
||||
padding-right: 10px;
|
||||
padding: 15px 10px 15px 0;
|
||||
color: rgba(153, 153, 153, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
<template #header>
|
||||
<div class="flex align-center justify-center">
|
||||
<div class="houseName" :title="unit.unitNoName">{{ unit.unitNoName }}</div>
|
||||
<el-button v-hasPermi="['unitNo:unitNo:edit']" link type="primary" icon="Edit" @click="HandleEditUnit(unit)"></el-button>
|
||||
<el-button v-has-permi="['unitNo:unitNo:edit']" link type="primary" icon="Edit" @click="HandleEditUnit(unit)"></el-button>
|
||||
<el-button
|
||||
v-hasPermi="['unitNo:unitNo:remove']"
|
||||
v-has-permi="['unitNo:unitNo:remove']"
|
||||
link
|
||||
type="danger"
|
||||
icon="Delete"
|
||||
|
||||
@@ -28,10 +28,10 @@
|
||||
</span>
|
||||
</div>
|
||||
<div style="text-wrap: nowrap" class="rightActions flex flex-items-center">
|
||||
<span class="mr-20px" @click="handleAddUnit" v-hasPermi="['unitNo:unitNo:add']">+添加单元</span>
|
||||
<span class="mr-20px" @click="handleAddHouse" v-hasPermi="['system:house:add']">+增加房屋</span>
|
||||
<span class="mr-20px" @click="handleAddUnit" v-has-permi="['unitNo:unitNo:add']">+添加单元</span>
|
||||
<span class="mr-20px" @click="handleAddHouse" v-has-permi="['system:house:add']">+增加房屋</span>
|
||||
<!-- <span class="mr-20px">收费标准设置</span> -->
|
||||
<span @click="deleteAllhouse" v-hasPermi="['system:house:remove']">批量删除房屋</span>
|
||||
<span @click="deleteAllhouse" v-has-permi="['system:house:remove']">批量删除房屋</span>
|
||||
<el-select clearable @clear="handleClearUse" @change="handleChangeUse" v-model="houseUse" placeholder="筛选房屋类型" class="selectbox">
|
||||
<el-option v-for="item in houseUseTypeList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
@@ -72,9 +72,8 @@
|
||||
import { deleteHouseApi } from '@/api/system/house';
|
||||
import TableUnit from './components/table.vue';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { listHouseUseType, listHouseUseType_add_house } from '@/api/system/houseUse';
|
||||
import { listHouseUseType_add_house } from '@/api/system/houseUse';
|
||||
import { addUnitNo, delUnitNo, getUnitNo, updateUnitNo } from '@/api/system/houseUnit';
|
||||
import { UnitNoVO } from '@/api/system/houseUnit/type';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
@@ -89,7 +88,7 @@ const houseUseTypeList = ref([]);
|
||||
* 获取房屋 类型
|
||||
*/
|
||||
function init() {
|
||||
listHouseUseType_add_house().then((res) => {
|
||||
listHouseUseType_add_house({}).then((res) => {
|
||||
houseUseTypeList.value = res.data;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -178,7 +178,6 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { HouseRentalVO } from '@/api/system/houseRental/type';
|
||||
import { CascaderValue, UploadInstance, UploadProps, UploadUserFile } from 'element-plus';
|
||||
|
||||
import { getHousePathById, hasFormData, splitStringUrl } from '@/utils/house';
|
||||
@@ -186,6 +185,7 @@ import { addHouseRental, getHouseOwnUser, getHouseRental, updateHouseRental, upl
|
||||
import { validator } from '@/utils/Reg';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { listHouseFacilities } from '@/api/system/HouseFacilities';
|
||||
import { Plus } from '@element-plus/icons-vue';
|
||||
|
||||
const houseStore = useHouseStore();
|
||||
|
||||
|
||||
@@ -96,12 +96,12 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getHouseRental } from '@/api/system/houseRental';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { getHousePathById } from '@/utils/house';
|
||||
import { listHouseFacilities } from '@/api/system/HouseFacilities';
|
||||
import { splitImages } from '@/utils';
|
||||
|
||||
const houseStore = useHouseStore();
|
||||
const { treedata } = storeToRefs(houseStore);
|
||||
|
||||
@@ -27,19 +27,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['houseRental:houseRental:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['houseRental:houseRental:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['houseRental:houseRental:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -76,9 +63,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-hasPermi="['houseRental:houseRental:edit']">详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['houseRental:houseRental:query']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['houseRental:houseRental:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleMain(scope.row)" v-has-permi="['houseRental:houseRental:edit']">详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['houseRental:houseRental:query']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['houseRental:houseRental:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -26,22 +26,6 @@
|
||||
<el-card shadow="never" class="flex-1">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['unitNo:unitNo:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['unitNo:unitNo:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['unitNo:unitNo:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['unitNo:unitNo:export']">导出</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar :show-add="checkPermi(['unitNo:unitNo:add'])" @update:add="handleAdd">
|
||||
<template #dropdown>
|
||||
<el-dropdown-item :disabled="single" v-if="checkPermi(['unitNo:unitNo:edit'])" @click="handleUpdate">
|
||||
@@ -66,10 +50,10 @@
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['unitNo:unitNo:edit']"></el-button>
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-has-permi="['unitNo:unitNo:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['unitNo:unitNo:remove']"></el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-has-permi="['unitNo:unitNo:remove']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -20,18 +20,7 @@
|
||||
<el-card shadow="never" class="flex-1">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<right-toolbar :show-add="checkPermi(['houseUseType:houseUseType:add'])" @update:add="handleAdd">
|
||||
<template #dropdown>
|
||||
<el-dropdown-item :disabled="single" v-if="checkPermi(['houseUseType:houseUseType:edit'])" @click="handleUpdate">
|
||||
<div>编辑</div>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :disabled="multiple" v-if="checkPermi(['houseUseType:houseUseType:delete'])" @click="handleDelete">
|
||||
<div>批量删除</div>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="checkPermi(['houseUseType:houseUseType:export'])" @click="handleExport">
|
||||
<div>导出</div>
|
||||
</el-dropdown-item>
|
||||
</template>
|
||||
<right-toolbar :show-delete="false" :show-edit="false" :show-add="checkPermi(['houseUseType:houseUseType:add'])" @update:add="handleAdd">
|
||||
</right-toolbar>
|
||||
</el-row>
|
||||
</template>
|
||||
@@ -41,8 +30,8 @@
|
||||
<el-table-column label="用途名称" align="center" prop="name" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['houseUseType:houseUseType:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['houseUseType:houseUseType:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['houseUseType:houseUseType:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['houseUseType:houseUseType:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addMonthCard, getMonthCard, updateMonthCard } from '@/api/system/MonthCard';
|
||||
import { addItem, getItem, updateItem } from '@/api/system/InspectionItem';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="300" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:item:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:item:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:item:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:item:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -61,7 +61,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Item" lang="ts">
|
||||
import { listItem, getItem, delItem, addItem, updateItem, updateItemStatus } from '@/api/system/InspectionItem/index';
|
||||
import { listItem, delItem, addItem, updateItem, updateItemStatus } from '@/api/system/InspectionItem/index';
|
||||
import { ItemVO, ItemQuery, ItemForm } from '@/api/system/InspectionItem/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
<script setup name="Item" lang="ts">
|
||||
import EchartsCompontent from '@/components/Echarts/index.vue';
|
||||
import { listItem, type Request } from '@/api/system/Inspection/index';
|
||||
import { getNaturalDayDiff, getLast7Days, getLastNDays, diffDays, formatDate } from '@/utils/time';
|
||||
import { getNaturalDayDiff, getLastNDays, diffDays, formatDate } from '@/utils/time';
|
||||
import { EChartsOption } from 'echarts';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
@@ -360,7 +360,7 @@ onMounted(() => {
|
||||
height: 112px;
|
||||
border-radius: 10px;
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
box-shadow: 0px 2px 6px 0px rgba(26, 117, 255, 0.2);
|
||||
box-shadow: 0 2px 6px 0 rgba(26, 117, 255, 0.2);
|
||||
border: 1px solid rgba(26, 117, 255, 0.2);
|
||||
|
||||
.overviewitem_name {
|
||||
@@ -392,12 +392,12 @@ onMounted(() => {
|
||||
border-left: none;
|
||||
cursor: pointer;
|
||||
&:first-of-type {
|
||||
border-radius: 4px 0px 0px 0px;
|
||||
border-radius: 4px 0 0 0;
|
||||
border-left: 1px solid rgba(220, 223, 230, 1);
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
border-radius: 0px 4px 0px 0px;
|
||||
border-radius: 0 4px 0 0;
|
||||
}
|
||||
&.active {
|
||||
color: #fff;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="任务时间">
|
||||
<div flex flex-wrap>
|
||||
<div class="flex flex-wrap">
|
||||
<div
|
||||
class="week-items"
|
||||
@click="checkoutWeekFun(item)"
|
||||
@@ -33,7 +33,7 @@
|
||||
<!-- <el-select v-model="form.taskTime" placeholder="选择任务时间段" style="width: 100%">
|
||||
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select> -->
|
||||
<div v-for="(item, index) in taskTime" :key="index" style="display: flex; align-items: center; margin-top: 10px">
|
||||
<div v-for="(_, index) in taskTime" :key="index" style="display: flex; align-items: center; margin-top: 10px">
|
||||
<el-time-picker
|
||||
v-model="taskTime[index]"
|
||||
is-range
|
||||
@@ -62,13 +62,13 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="计划路线">
|
||||
<el-select @change="handlChangeMap" v-model="form.routeIds" placeholder="请选择" style="width: 100%">
|
||||
<el-option v-for="item in planlist" :key="item.value" :label="item.routeName" :value="item.id" />
|
||||
<el-option v-for="item in playlist" :key="item.value" :label="item.routeName" :value="item.id" />
|
||||
</el-select>
|
||||
<div class="mapbox" id="PlanMapBox"></div>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submit">提交</el-button>
|
||||
<el-button @click="routeback">返回</el-button>
|
||||
<el-button @click="outback">返回</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
@@ -77,13 +77,13 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
// TODO 巡检计划 添加
|
||||
import { listRoute } from '@/api/system/InspectionRoute';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { numToWeek } from '@/utils/time';
|
||||
import { ref } from 'vue';
|
||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||
import { addPlan, getPlan, updatePlan } from '@/api/system/InspectionPlan';
|
||||
import { Check } from '@element-plus/icons-vue';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_inspection_remind_tiime } = toRefs<any>(proxy?.useDict('com_inspection_remind_tiime'));
|
||||
|
||||
@@ -126,10 +126,10 @@ const editid = ref(null);
|
||||
|
||||
// 初始化
|
||||
// 路线列表
|
||||
const planlist = ref([]);
|
||||
const playlist = ref([]);
|
||||
async function init() {
|
||||
const res = await listRoute();
|
||||
planlist.value = res.rows;
|
||||
playlist.value = res.rows;
|
||||
if (route.query.id) {
|
||||
editid.value = route.query.id;
|
||||
getPlan(editid.value).then((res) => {
|
||||
@@ -173,7 +173,7 @@ async function init() {
|
||||
init();
|
||||
|
||||
// 返回
|
||||
function routeback() {
|
||||
function outback() {
|
||||
router.back();
|
||||
}
|
||||
|
||||
@@ -182,16 +182,16 @@ const map = ref(null);
|
||||
const mapReady = ref(false);
|
||||
|
||||
const markerlist = [];
|
||||
function handlChangeMap(val) {
|
||||
function handlChangeMap(val: string) {
|
||||
map.value.remove(markerlist);
|
||||
if (val) {
|
||||
const find = planlist.value.find((item) => item.id === val);
|
||||
const find = playlist.value.find((item) => item.id === val);
|
||||
if (find) {
|
||||
if (find.points && find.points.length > 0) {
|
||||
find.points.forEach((item, index) => {
|
||||
const lnglat = item.location.split(',').map(Number);
|
||||
find.points.forEach((item: { location: string; pointName: any }, index: number) => {
|
||||
const angular = item.location.split(',').map(Number);
|
||||
const marker = new AMapLib.value.Marker({
|
||||
position: new AMapLib.value.LngLat(lnglat[0], lnglat[1]), //经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
|
||||
position: new AMapLib.value.LngLat(angular[0], angular[1]), //经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
|
||||
title: item.pointName,
|
||||
content: `
|
||||
<div style="display:flex;align-items:center;justify-content:center;width:30px;height:30px;line-height:18px;border-radius:50%;background-color:rgba(26,117,255,0.3);">
|
||||
@@ -228,14 +228,14 @@ function handlChangeMap(val) {
|
||||
}
|
||||
}
|
||||
}
|
||||
const aloaderkey = import.meta.env.VITE_GCJ02_KEY_GD;
|
||||
const autoloader = import.meta.env.VITE_GCJ02_KEY_GD;
|
||||
const VITE_GCJ02_JS_CODE_GD = import.meta.env.VITE_GCJ02_JS_CODE_GD;
|
||||
|
||||
onMounted(async () => {
|
||||
await nextTick();
|
||||
window._AMapSecurityConfig = { securityJsCode: VITE_GCJ02_JS_CODE_GD };
|
||||
AMapLoader.load({
|
||||
key: aloaderkey,
|
||||
key: autoloader,
|
||||
version: '2.0',
|
||||
plugins: ['AMap.Scale', 'AMap.Marker']
|
||||
}).then(async (AMap) => {
|
||||
@@ -261,12 +261,12 @@ function submit() {
|
||||
if (editid.value) {
|
||||
updatePlan(form.value).then(() => {
|
||||
ElMessage.success('编辑成功');
|
||||
routeback();
|
||||
outback();
|
||||
});
|
||||
} else {
|
||||
addPlan(form.value).then(() => {
|
||||
ElMessage.success('添加成功');
|
||||
routeback();
|
||||
outback();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -281,8 +281,7 @@ function submit() {
|
||||
background-color: white;
|
||||
.bodybox {
|
||||
width: 600px;
|
||||
margin: 0 auto;
|
||||
margin-top: 20px;
|
||||
margin: 20px auto 0;
|
||||
}
|
||||
.inspectorIdsBox {
|
||||
display: flex;
|
||||
|
||||
@@ -20,17 +20,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:plan:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['system:plan:edit']">编辑</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:plan:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -68,8 +57,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="110" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:plan:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:plan:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:plan:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:plan:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -80,7 +69,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Plan" lang="ts">
|
||||
import { listPlan, getPlan, delPlan, addPlan, updatePlan, changePlanStatus } from '@/api/system/InspectionPlan/index';
|
||||
import { listPlan, delPlan, changePlanStatus } from '@/api/system/InspectionPlan/index';
|
||||
import { PlanVO, PlanQuery, PlanForm } from '@/api/system/InspectionPlan/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
import { numToWeek } from '@/utils/time';
|
||||
@@ -205,9 +194,8 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: PlanVO) => {
|
||||
const handleUpdate = (row?: PlanVO) => {
|
||||
const _ids = row?.id || ids.value[0];
|
||||
|
||||
router.push({
|
||||
path: '/inspection/editPlan',
|
||||
query: {
|
||||
|
||||
@@ -65,6 +65,7 @@ import { listItem } from '@/api/system/InspectionItem';
|
||||
import { onMounted, onUnmounted } from 'vue';
|
||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||
import { getVillageByIdAPI } from '@/api/system/community';
|
||||
import { Check } from '@element-plus/icons-vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
// const { com_inspection_point_checkmode } = toRefs<any>(proxy?.useDict('com_inspection_point_checkmode'));
|
||||
|
||||
@@ -20,17 +20,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:point:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['system:point:edit']">编辑</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:point:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -67,8 +56,8 @@
|
||||
<el-table-column label="添加时间" align="center" prop="createTime" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:point:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:point:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:point:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:point:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -80,7 +69,7 @@
|
||||
|
||||
<script setup name="Point" lang="ts">
|
||||
import Pageheader from '@/components/Pageheader/index.vue';
|
||||
import { listPoint, getPoint, delPoint, addPoint, updatePoint, changePointStatus } from '@/api/system/InspectionPoint/index';
|
||||
import { listPoint, delPoint, changePointStatus } from '@/api/system/InspectionPoint/index';
|
||||
import { PointVO, PointQuery, PointForm } from '@/api/system/InspectionPoint/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<el-table-column label="关联计划" align="center" prop="planName" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['inspection:main:record']">查看详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['inspection:main:record']">查看详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -65,6 +65,7 @@ import { onMounted, onUnmounted } from 'vue';
|
||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||
import { addRoute, getRoute, updateRoute } from '@/api/system/InspectionRoute';
|
||||
import { getVillageByIdAPI } from '@/api/system/community';
|
||||
import { Check } from '@element-plus/icons-vue';
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
@@ -189,7 +190,6 @@ function init() {
|
||||
});
|
||||
}
|
||||
}
|
||||
// TODO 巡检路线开关
|
||||
// ! map
|
||||
const mapReady = ref(false);
|
||||
const AMapLib = ref(null);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<Pageheader></Pageheader>
|
||||
<pageHeader></pageHeader>
|
||||
<div class="flex-1 color-gray flex h-full font-size-6 flex-center">系统还在维护中,敬请期待...</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
||||
@@ -20,17 +20,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:route:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['system:route:edit']">编辑</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:route:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -68,8 +57,8 @@
|
||||
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:route:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:route:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:route:edit']">修改</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:route:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -80,7 +69,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Route" lang="ts">
|
||||
import { listRoute, getRoute, delRoute, addRoute, updateRoute, changeStatusRoute } from '@/api/system/InspectionRoute/index';
|
||||
import { listRoute, delRoute, changeStatusRoute } from '@/api/system/InspectionRoute/index';
|
||||
import { RouteVO, RouteQuery, RouteForm } from '@/api/system/InspectionRoute/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -79,12 +79,12 @@
|
||||
<script setup lang="ts">
|
||||
import RepairUser from '@/components/Holder/repairUser.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { Delete } from '@element-plus/icons-vue';
|
||||
import { Delete, Plus } from '@element-plus/icons-vue';
|
||||
import { ref } from 'vue';
|
||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||
import { addPlan, getPlan, listPlan, updatePlan } from '@/api/system/InspectionPlan';
|
||||
import { listPlan } from '@/api/system/InspectionPlan';
|
||||
import { addTask, getTask, updateTask } from '@/api/system/InspectionTask';
|
||||
import { getRoute, listRoute } from '@/api/system/InspectionRoute';
|
||||
import { getRoute } from '@/api/system/InspectionRoute';
|
||||
import { RouteVO } from '@/api/system/InspectionRoute/type';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@@ -300,8 +300,7 @@ function submit() {
|
||||
background-color: white;
|
||||
.bodybox {
|
||||
width: 600px;
|
||||
margin: 0 auto;
|
||||
margin-top: 20px;
|
||||
margin: 20px auto 0;
|
||||
}
|
||||
.inspectorIdsBox {
|
||||
display: flex;
|
||||
|
||||
@@ -34,17 +34,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:task:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['system:task:edit']">编辑</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:task:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -76,8 +65,8 @@
|
||||
<el-table-column label="关联巡检计划" align="center" prop="planName" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['system:task:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['system:task:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['system:task:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['system:task:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -88,7 +77,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Task" lang="ts">
|
||||
import { listTask, getTask, delTask, addTask, updateTask } from '@/api/system/InspectionTask/index';
|
||||
import { listTask, delTask } from '@/api/system/InspectionTask/index';
|
||||
import { TaskVO, TaskQuery, TaskForm } from '@/api/system/InspectionTask/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
|
||||
@@ -26,10 +26,10 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:menu:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增</el-button>
|
||||
<el-button v-has-permi="['system:menu:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:menu:remove']" type="danger" plain icon="Delete" @click="handleCascadeDelete" :loading="deleteLoading"
|
||||
<el-button v-has-permi="['system:menu:remove']" type="danger" plain icon="Delete" @click="handleCascadeDelete" :loading="deleteLoading"
|
||||
>级联删除</el-button
|
||||
>
|
||||
</el-col>
|
||||
@@ -69,9 +69,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" label="操作" width="180">
|
||||
<template #default="scope">
|
||||
<el-button v-hasPermi="['system:menu:edit']" link type="primary" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-hasPermi="['system:menu:add']" link type="primary" @click="handleAdd(scope.row)">新增</el-button>
|
||||
<el-button v-hasPermi="['system:menu:remove']" link type="primary" @click="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button v-has-permi="['system:menu:edit']" link type="primary" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-has-permi="['system:menu:add']" link type="primary" @click="handleAdd(scope.row)">新增</el-button>
|
||||
<el-button v-has-permi="['system:menu:remove']" link type="primary" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -299,6 +299,7 @@
|
||||
import { addMenu, cascadeDelMenu, delMenu, getMenu, listMenu, updateMenu } from '@/api/system/menu';
|
||||
import { MenuForm, MenuQuery, MenuVO } from '@/api/system/menu/types';
|
||||
import { MenuTypeEnum } from '@/enums/MenuTypeEnum';
|
||||
import { QuestionFilled } from '@element-plus/icons-vue';
|
||||
|
||||
interface MenuOptionsType {
|
||||
menuId: number;
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
:show-add="checkPermi(['system:notice:add'])"
|
||||
:show-edit="checkPermi(['system:notice:edit'])"
|
||||
:show-delete="checkPermi(['system:notice:remove'])"
|
||||
:show-edit="false"
|
||||
:show-delete="false"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -66,7 +66,6 @@
|
||||
<dict-tag :options="sys_notice_status" :value="scope.row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="创建者" align="center" prop="createByName" width="100" /> -->
|
||||
<el-table-column label="创建时间" sortable align="center" prop="createTime" width="180">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.createTime }}</span>
|
||||
@@ -74,8 +73,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="400" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button v-hasPermi="['system:notice:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-hasPermi="['system:notice:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button v-has-permi="['system:notice:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-has-permi="['system:notice:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -129,7 +128,6 @@ import { checkPermi } from '@/utils/permission';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { sys_notice_status, sys_notice_type } = toRefs<any>(proxy?.useDict('sys_notice_status', 'sys_notice_type'));
|
||||
|
||||
const noticeList = ref<NoticeVO[]>([]);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<pageheader></pageheader>
|
||||
|
||||
<pageHeader></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -31,15 +30,15 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:ossConfig:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
<el-button v-has-permi="['system:ossConfig:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:ossConfig:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
<el-button v-has-permi="['system:ossConfig:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:ossConfig:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
<el-button v-has-permi="['system:ossConfig:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
@@ -71,10 +70,10 @@
|
||||
<el-table-column label="操作" fixed="right" align="center" width="150" class-name="small-padding">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:ossConfig:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:ossConfig:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:ossConfig:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:ossConfig:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -144,6 +143,9 @@
|
||||
</template>
|
||||
|
||||
<script setup name="OssConfig" lang="ts">
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import rightToolbar from '@/components/RightToolbar/index.vue';
|
||||
import { listOssConfig, getOssConfig, delOssConfig, addOssConfig, updateOssConfig, changeOssConfigStatus } from '@/api/system/ossConfig';
|
||||
import { OssConfigForm, OssConfigQuery, OssConfigVO } from '@/api/system/ossConfig/types';
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<pageheader></pageheader>
|
||||
|
||||
<pageHeader></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -42,19 +41,19 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:oss:upload']" type="primary" plain icon="Upload" @click="handleFile">上传文件</el-button>
|
||||
<el-button v-has-permi="['system:oss:upload']" type="primary" plain icon="Upload" @click="handleFile">上传文件</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:oss:upload']" type="primary" plain icon="Upload" @click="handleImage">上传图片</el-button>
|
||||
<el-button v-has-permi="['system:oss:upload']" type="primary" plain icon="Upload" @click="handleImage">上传图片</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:oss:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
<el-button v-has-permi="['system:oss:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
v-hasPermi="['system:oss:edit']"
|
||||
v-has-permi="['system:oss:edit']"
|
||||
:type="previewListResource ? 'danger' : 'warning'"
|
||||
plain
|
||||
@click="handlePreviewListResource(!previewListResource)"
|
||||
@@ -62,7 +61,7 @@
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:ossConfig:list']" type="info" plain icon="Operation" @click="handleOssConfig">配置管理</el-button>
|
||||
<el-button v-has-permi="['system:ossConfig:list']" type="info" plain icon="Operation" @click="handleOssConfig">配置管理</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
@@ -103,10 +102,10 @@
|
||||
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="下载" placement="top">
|
||||
<el-button v-hasPermi="['system:oss:download']" link type="primary" icon="Download" @click="handleDownload(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:oss:download']" link type="primary" icon="Download" @click="handleDownload(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:oss:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:oss:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -133,10 +132,11 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Oss" lang="ts">
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import { listOss, delOss } from '@/api/system/oss';
|
||||
import ImagePreview from '@/components/ImagePreview/index.vue';
|
||||
import { OssForm, OssQuery, OssVO } from '@/api/system/oss/types';
|
||||
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ const rules = ref({
|
||||
areaId: [{ required: true, message: '请选择车位区域', trigger: 'blur' }],
|
||||
type: [{ required: true, message: '请选择车位类型', trigger: 'blur' }],
|
||||
parkingCode: [{ required: true, message: '请输入车位编号', trigger: 'blur' }],
|
||||
residentId: [{ required: true, message: '请选择持有人', trigger: 'blur' }],
|
||||
residentId: [{ required: false, message: '请选择持有人', trigger: 'blur' }],
|
||||
contactPhone: [
|
||||
{ required: true, message: '请输入联系人电话', trigger: 'blur' },
|
||||
{
|
||||
@@ -172,6 +172,10 @@ if (route.query.id) {
|
||||
...form.value,
|
||||
...res.data
|
||||
};
|
||||
// 有联系人姓名,电话 就是非业主
|
||||
if (form.value.contactName && form.value.contactPhone) {
|
||||
form.value.contactType = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
// ! 获取区域==================================================================================
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="h-full flex flex-col p-2">
|
||||
<Pageheader title="车位管理"></Pageheader>
|
||||
<pageHeader title="车位管理"></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -30,19 +30,6 @@
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['carArea:add:parking']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['carArea:edit:parking']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['parking:parking:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -74,38 +61,46 @@
|
||||
<dict-tag :options="com_parking_type" :value="scope.row.type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="持有人" align="center" prop="residentName" />
|
||||
<el-table-column label="持有人" align="center" prop="residentName">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.residentName ?? scope.row.contactName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核状态" align="center" prop="checkStatus">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_review" :value="scope.row.checkStatus ?? '0'" />
|
||||
<dict-tag v-if="scope.row.checkStatus" :options="com_review" :value="scope.row.checkStatus" />
|
||||
<span v-else>---</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="180" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<!-- 待审核 审核不通过 -->
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
v-if="scope.row.checkStatus === '0'"
|
||||
v-if="scope.row.checkStatus === '0' || scope.row.checkStatus === '2'"
|
||||
@click="handleReview(scope.row)"
|
||||
v-hasPermi="['parking:parking:query']"
|
||||
v-has-permi="['parking:parking:query']"
|
||||
>审核</el-button
|
||||
>
|
||||
<el-button link type="primary" v-else @click="handleMain(scope.row)">详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['parking:parking:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['parking:parking:remove']">删除</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['parking:parking:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['parking:parking:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
<Pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Parking" lang="ts">
|
||||
import Pageheader from '@/components/Pageheader/index.vue';
|
||||
import { listParking, delParking } from '@/api/system/parking/index';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import RightToolbar from '@/components/RightToolbar/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { listParking, delParking } from '@/api/system/parking';
|
||||
import { ParkingVO, ParkingQuery, ParkingForm } from '@/api/system/parking/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
|
||||
@@ -159,8 +154,7 @@ const data = reactive<PageData<ParkingForm, ParkingQuery>>({
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
const AreaList = ref([]);
|
||||
const { queryParams } = toRefs(data);
|
||||
/** 查询车位管理列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
@@ -201,7 +195,7 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: ParkingVO) => {
|
||||
const handleUpdate = (row?: ParkingVO) => {
|
||||
const _id = row ? row.id : ids.value[0];
|
||||
router.push({
|
||||
path: '/carArea/editParking',
|
||||
@@ -211,7 +205,7 @@ const handleUpdate = async (row?: ParkingVO) => {
|
||||
});
|
||||
};
|
||||
/** 审核按钮操作 */
|
||||
const handleReview = async (row?: ParkingVO) => {
|
||||
const handleReview = (row?: ParkingVO) => {
|
||||
router.push({
|
||||
path: '/carArea/parkingReview',
|
||||
query: {
|
||||
@@ -220,7 +214,7 @@ const handleReview = async (row?: ParkingVO) => {
|
||||
});
|
||||
};
|
||||
/** 车位审核 */
|
||||
const handleMain = async (row?: ParkingVO) => {
|
||||
const handleMain = (row?: ParkingVO) => {
|
||||
router.push({
|
||||
path: '/carArea/parkMain',
|
||||
query: {
|
||||
|
||||
@@ -12,55 +12,61 @@
|
||||
<span>车位信息</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full CarinfoBox gridbox">
|
||||
<div class="carinfo_item">
|
||||
<div class="w-full h-full CarInfoBox gridBox">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">区域:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.areaName }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.areaName }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位编号:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.parkingCode }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.parkingCode }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位面积:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.parkingArea }} ㎡</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.parkingArea }} ㎡</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">楼层:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.parkingFloor }} 层</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.parkingFloor }} 层</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位类型:</div>
|
||||
<div class="main">
|
||||
<dict-tag :options="com_parking_type" :value="parkingReviewinfo.parking.type" />
|
||||
<dict-tag :options="com_parking_type" :value="parkingReviewInfo.parking.type" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位状态:</div>
|
||||
<div class="main">
|
||||
<DictTag :options="com_parking_status" :value="parkingReviewinfo.parking.parkingStatus"></DictTag>
|
||||
<DictTag :options="com_parking_status" :value="parkingReviewInfo.parking.parkingStatus"></DictTag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="label">持有人:</div>
|
||||
<div class="carInfo_item">
|
||||
<div class="label">添加时间:</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.createTime }}</div>
|
||||
</div>
|
||||
<div class="carInfo_item" v-if="parkingReviewInfo.parking.residentName">
|
||||
<div class="label">业主持有人:</div>
|
||||
<div class="main">
|
||||
<span>
|
||||
{{ parkingReviewinfo.parking.residentName }}
|
||||
{{ parkingReviewInfo.parking.residentName }}
|
||||
</span>
|
||||
<el-button type="primary" link style="font-size: smaller">详情</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="label">添加时间:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.createTime }}</div>
|
||||
</div>
|
||||
<div class="CarInfoBox" style="margin-top: 20px">
|
||||
<div class="carInfo_item" v-if="parkingReviewInfo.parking.contactName">
|
||||
<div class="label">非业主联系人:</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.contactName }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="label">添加人:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.createName }}</div>
|
||||
<div class="carInfo_item" style="margin-top: 20px" v-if="parkingReviewInfo.parking.contactPhone">
|
||||
<div class="label">联系电话:</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.contactPhone }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item" style="margin-top: 20px">
|
||||
<div class="label">备注:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.remark }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.remark }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -73,22 +79,22 @@
|
||||
<span>车辆信息</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full CarinfoBox" v-if="parkingReviewinfo.car">
|
||||
<div class="w-full h-full CarInfoBox" v-if="parkingReviewInfo.car">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车牌号:</div>
|
||||
<div class="main">浙B·N6688</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车辆品牌:</div>
|
||||
<div class="main">宝马</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车辆型号</div>
|
||||
<div class="main">X5</div>
|
||||
</div>
|
||||
@@ -96,13 +102,13 @@
|
||||
</el-row>
|
||||
<el-row class="mt-30px mb-30px">
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车身颜色:</div>
|
||||
<div class="main">白色</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">备注:</div>
|
||||
<div class="main">无</div>
|
||||
</div>
|
||||
@@ -111,11 +117,11 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<div class="carinfo_item flex-items-start">
|
||||
<div class="carInfo_item flex-items-start">
|
||||
<div class="label">车辆照片:</div>
|
||||
<div class="main">
|
||||
<el-image
|
||||
class="carinfoImage"
|
||||
class="carInfoImage"
|
||||
src="https://ts1.tc.mm.bing.net/th?id=ORMS.76ee9c7ea9fe203b608f9048f54b3cbd&pid=Wdp&w=268&h=140&qlt=90&c=1&rs=1&dpr=1&p=0"
|
||||
></el-image>
|
||||
</div>
|
||||
@@ -123,7 +129,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="w-full h-full CarinfoBox flex flex-center min-h-17rem" v-else>
|
||||
<div class="w-full h-full CarInfoBox flex flex-center min-h-17rem" v-else>
|
||||
<span style="color: #999; font-weight: 500; font-size: larger; letter-spacing: 10px">暂无信息</span>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -136,33 +142,12 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getParkingReview, getParkingReviewInfo } from '@/api/system/parking';
|
||||
import { getParkingReviewInfo } from '@/api/system/parking';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_parking_status } = toRefs<any>(proxy?.useDict('com_parking_status'));
|
||||
const { com_parking_type } = toRefs<any>(proxy?.useDict('com_parking_type'));
|
||||
|
||||
/** 住户审核状态 */
|
||||
enum reviewStatus {
|
||||
/** 未提交 */
|
||||
unSubmit = '0',
|
||||
/** 已提交 */
|
||||
Submited = '1',
|
||||
/** 待认证 */
|
||||
awaitReview = '2',
|
||||
/** 认证不通过 */
|
||||
unReviewPass = '3',
|
||||
/** 认证通过 */
|
||||
ReviewPass = '4',
|
||||
/** 未认证 */
|
||||
uncertification = '5',
|
||||
/** 已认证 */
|
||||
Certification = '6'
|
||||
}
|
||||
|
||||
const active = ref(0);
|
||||
const activeStop = ref(0);
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const id = ref('');
|
||||
|
||||
@@ -171,6 +156,8 @@ type parkingReviewType = {
|
||||
id: string;
|
||||
areaId: string;
|
||||
areaName: string;
|
||||
contactName: string;
|
||||
contactPhone: string;
|
||||
villageId: string;
|
||||
villageName: string;
|
||||
parkingCode: string;
|
||||
@@ -197,11 +184,13 @@ type parkingReviewType = {
|
||||
};
|
||||
};
|
||||
|
||||
const parkingReviewinfo = ref<parkingReviewType>({
|
||||
const parkingReviewInfo = ref<parkingReviewType>({
|
||||
parking: {
|
||||
'id': '',
|
||||
'areaId': '',
|
||||
'areaName': '',
|
||||
'contactName': '',
|
||||
'contactPhone': '',
|
||||
'villageId': '',
|
||||
'villageName': '',
|
||||
'parkingCode': '',
|
||||
@@ -228,68 +217,17 @@ const parkingReviewinfo = ref<parkingReviewType>({
|
||||
}
|
||||
});
|
||||
|
||||
const form = ref({
|
||||
propertyReviewFeedback: '',
|
||||
propertyStatus: '0'
|
||||
});
|
||||
function getInfo() {
|
||||
if (route.query.id) {
|
||||
id.value = route.query.id as string;
|
||||
getParkingReviewInfo(id.value).then((res) => {
|
||||
parkingReviewinfo.value = res.data;
|
||||
handleActivestaus(res.data.parkingReviewProcess);
|
||||
parkingReviewInfo.value = res.data;
|
||||
});
|
||||
}
|
||||
}
|
||||
getInfo();
|
||||
|
||||
function handleActivestaus(rews) {
|
||||
if (!rews) {
|
||||
activeStop.value = 0;
|
||||
active.value = 0;
|
||||
return;
|
||||
}
|
||||
// 提交
|
||||
if (rews.submitStatus === reviewStatus.unSubmit) {
|
||||
activeStop.value = 0;
|
||||
active.value = 0;
|
||||
} else if (rews.submitStatus === reviewStatus.Submited) {
|
||||
active.value = 1;
|
||||
activeStop.value = 1;
|
||||
// 待认证
|
||||
if (rews.propertyStatus === 0) {
|
||||
active.value = 2;
|
||||
} else if (rews.propertyStatus === 1) {
|
||||
active.value = 3;
|
||||
} else if (rews.propertyStatus === 2) {
|
||||
active.value = 4;
|
||||
activeStop.value = 2;
|
||||
|
||||
// 审核
|
||||
if (rews.certificationStatus === 0) {
|
||||
active.value = 5;
|
||||
} else if (rews.certificationStatus === 1) {
|
||||
active.value = 6;
|
||||
activeStop.value = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 审核状态
|
||||
// 物业审核状态 0 待审核 1审核通过 2审核未通过
|
||||
function handlePreivew(status: number) {
|
||||
getParkingReview({
|
||||
...form.value,
|
||||
propertyStatus: status,
|
||||
id: id.value
|
||||
}).then((res) => {
|
||||
console.log(res);
|
||||
});
|
||||
}
|
||||
function handlBacK() {
|
||||
router.back();
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@@ -299,15 +237,15 @@ function handlBacK() {
|
||||
.ResidentMainBody {
|
||||
flex: 1;
|
||||
margin-top: 20px;
|
||||
.CarinfoBox {
|
||||
&.gridbox {
|
||||
.CarInfoBox {
|
||||
&.gridBox {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(4, 1fr);
|
||||
grid-template-rows: repeat(3, 1fr);
|
||||
gap: 20px;
|
||||
row-gap: 40px;
|
||||
}
|
||||
.carinfo_item {
|
||||
.carInfo_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
@@ -317,7 +255,7 @@ function handlBacK() {
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.carinfoImage {
|
||||
.carInfoImage {
|
||||
width: 200px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
@@ -12,55 +12,55 @@
|
||||
<span>车位信息</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full CarinfoBox gridbox">
|
||||
<div class="carinfo_item">
|
||||
<div class="w-full h-full CarInfoBox gridBox">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">区域:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.areaName }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.areaName }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位编号:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.parkingCode }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.parkingCode }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位面积:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.parkingArea }} ㎡</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.parkingArea }} ㎡</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">楼层:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.parkingFloor }} 层</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.parkingFloor }} 层</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位类型:</div>
|
||||
<div class="main">
|
||||
<dict-tag :options="com_parking_type" :value="parkingReviewinfo.parking.type" />
|
||||
<dict-tag :options="com_parking_type" :value="parkingReviewInfo.parking.type" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车位状态:</div>
|
||||
<div class="main">
|
||||
<DictTag :options="com_parking_status" :value="parkingReviewinfo.parking.parkingStatus"></DictTag>
|
||||
<DictTag :options="com_parking_status" :value="parkingReviewInfo.parking.parkingStatus"></DictTag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">持有人:</div>
|
||||
<div class="main">
|
||||
<span>
|
||||
{{ parkingReviewinfo.parking.residentName }}
|
||||
{{ parkingReviewInfo.parking.residentName }}
|
||||
</span>
|
||||
<el-button type="primary" link style="font-size: smaller">详情</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">添加时间:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.createTime }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.createTime }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">添加人:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.createName }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.createName }}</div>
|
||||
</div>
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">备注:</div>
|
||||
<div class="main">{{ parkingReviewinfo.parking.remark }}</div>
|
||||
<div class="main">{{ parkingReviewInfo.parking.remark }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -73,22 +73,22 @@
|
||||
<span>车辆信息</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full CarinfoBox" v-if="parkingReviewinfo.car">
|
||||
<div class="w-full h-full CarInfoBox" v-if="parkingReviewInfo.car">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车牌号:</div>
|
||||
<div class="main">浙B·N6688</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车辆品牌:</div>
|
||||
<div class="main">宝马</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车辆型号</div>
|
||||
<div class="main">X5</div>
|
||||
</div>
|
||||
@@ -96,13 +96,13 @@
|
||||
</el-row>
|
||||
<el-row class="mt-30px mb-30px">
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">车身颜色:</div>
|
||||
<div class="main">白色</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="carinfo_item">
|
||||
<div class="carInfo_item">
|
||||
<div class="label">备注:</div>
|
||||
<div class="main">无</div>
|
||||
</div>
|
||||
@@ -111,11 +111,11 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<div class="carinfo_item flex-items-start">
|
||||
<div class="carInfo_item flex-items-start">
|
||||
<div class="label">车辆照片:</div>
|
||||
<div class="main">
|
||||
<el-image
|
||||
class="carinfoImage"
|
||||
class="carInfoImage"
|
||||
src="https://ts1.tc.mm.bing.net/th?id=ORMS.76ee9c7ea9fe203b608f9048f54b3cbd&pid=Wdp&w=268&h=140&qlt=90&c=1&rs=1&dpr=1&p=0"
|
||||
></el-image>
|
||||
</div>
|
||||
@@ -123,7 +123,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="w-full h-full CarinfoBox flex flex-center min-h-17rem" v-else>
|
||||
<div class="w-full h-full CarInfoBox flex flex-center min-h-17rem" v-else>
|
||||
<span style="color: #999; font-weight: 500; font-size: larger; letter-spacing: 10px">暂无信息</span>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -140,13 +140,11 @@
|
||||
<div class="preivewBodybox flex-1 ml-5">
|
||||
<el-input v-model="form.propertyReviewFeedback" type="textarea" :rows="5"></el-input>
|
||||
<div class="actions mt-5">
|
||||
<el-button :disabled="!Boolean(parkingReviewinfo.car && parkingReviewinfo.parking.id)" type="primary" @click="handlePreivew(1)"
|
||||
>审核通过</el-button
|
||||
>
|
||||
<el-button :disabled="!Boolean(parkingReviewinfo.car && parkingReviewinfo.parking.id)" type="danger" @click="handlePreivew(0)"
|
||||
<el-button :disabled="parkingReviewInfo.parking.checkStatus === '1'" type="primary" @click="handlePreview(1)">审核通过</el-button>
|
||||
<el-button :disabled="parkingReviewInfo.parking.checkStatus === '1'" type="danger" @click="handlePreview(2)"
|
||||
>审核不通过</el-button
|
||||
>
|
||||
<el-button @click="handlBacK">返回</el-button>
|
||||
<el-button @click="handleBack">返回</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -165,20 +163,20 @@
|
||||
</template>
|
||||
<div class="w-full h-50%">
|
||||
<el-steps space="200px" direction="vertical" :active="activeStop">
|
||||
<el-step :description="parkingReviewinfo.parkingReviewProcess.submitTime">
|
||||
<el-step :description="parkingReviewInfo.parkingReviewProcess.submitTime">
|
||||
<template #title>
|
||||
<span v-if="active === 0">未提交信息</span>
|
||||
<span v-if="active >= 1">已提交信息</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step :description="parkingReviewinfo.parkingReviewProcess.propertyTime">
|
||||
<el-step :description="parkingReviewInfo.parkingReviewProcess.propertyTime">
|
||||
<template #title>
|
||||
<span v-if="active <= 2">待审核</span>
|
||||
<span v-if="active === 3">物业审核不通过</span>
|
||||
<span v-if="active >= 4">物业审核通过</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step :description="parkingReviewinfo.parkingReviewProcess.certificationTime">
|
||||
<el-step :description="parkingReviewInfo.parkingReviewProcess.certificationTime">
|
||||
<template #title>
|
||||
<span v-if="active <= 5">未认证</span>
|
||||
<span v-if="active === 6">已认证</span>
|
||||
@@ -207,22 +205,30 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_parking_status } = toRefs<any>(proxy?.useDict('com_parking_status'));
|
||||
const { com_parking_type } = toRefs<any>(proxy?.useDict('com_parking_type'));
|
||||
|
||||
/** 住户审核状态 */
|
||||
enum reviewStatus {
|
||||
/** 住户 提交状态 */
|
||||
enum submitStatus {
|
||||
/** 未提交 */
|
||||
unSubmit = '0',
|
||||
/** 已提交 */
|
||||
Submited = '1',
|
||||
/** 待认证 */
|
||||
awaitReview = '2',
|
||||
/** 认证不通过 */
|
||||
unReviewPass = '3',
|
||||
/** 认证通过 */
|
||||
ReviewPass = '4',
|
||||
Submitted = '1'
|
||||
}
|
||||
/** 审核状态 */
|
||||
enum ReviewStatus {
|
||||
/** 待审核 */
|
||||
awaitReview = '0',
|
||||
/** 审核不通过 */
|
||||
unReviewPass = '2',
|
||||
/** 审核通过 */
|
||||
ReviewPass = '1'
|
||||
}
|
||||
/** 认证状态 */
|
||||
enum certificationStatus {
|
||||
/** 未认证 */
|
||||
uncertification = '5',
|
||||
uncertification = '0',
|
||||
/** 认证失败 */
|
||||
uncertificationPass = '2',
|
||||
/** 已认证 */
|
||||
Certification = '6'
|
||||
Certification = '1'
|
||||
}
|
||||
|
||||
const active = ref(0);
|
||||
@@ -232,37 +238,41 @@ const route = useRoute();
|
||||
const id = ref('');
|
||||
|
||||
type parkingReviewType = {
|
||||
parking: {
|
||||
id: string;
|
||||
areaId: string;
|
||||
areaName: string;
|
||||
villageId: string;
|
||||
villageName: string;
|
||||
parkingCode: string;
|
||||
parkingArea: any;
|
||||
parkingStatus: string;
|
||||
type: string;
|
||||
residentId: any;
|
||||
residentName: any;
|
||||
parkingFloor: string;
|
||||
createName: string;
|
||||
checkStatus: string;
|
||||
remark: string;
|
||||
createTime: string;
|
||||
delFlag: any;
|
||||
};
|
||||
parking: parkingType;
|
||||
car: any;
|
||||
parkingReviewProcess: {
|
||||
submitStatus: null;
|
||||
propertyStatus: null;
|
||||
certificationStatus: null;
|
||||
submitTime: string;
|
||||
propertyTime: string;
|
||||
certificationTime: string;
|
||||
};
|
||||
parkingReviewProcess: parkingReviewProcess;
|
||||
};
|
||||
|
||||
const parkingReviewinfo = ref<parkingReviewType>({
|
||||
type parkingType = {
|
||||
id: string;
|
||||
areaId: string;
|
||||
areaName: string;
|
||||
villageId: string;
|
||||
villageName: string;
|
||||
parkingCode: string;
|
||||
parkingArea: any;
|
||||
parkingStatus: string;
|
||||
type: string;
|
||||
residentId: string;
|
||||
residentName: string;
|
||||
parkingFloor: string;
|
||||
createName: string;
|
||||
checkStatus: string;
|
||||
remark: string;
|
||||
createTime: string;
|
||||
};
|
||||
|
||||
type parkingReviewProcess = {
|
||||
id: string;
|
||||
submitStatus: string;
|
||||
propertyStatus: string;
|
||||
certificationStatus: string;
|
||||
submitTime: string;
|
||||
propertyTime: string;
|
||||
certificationTime: string;
|
||||
};
|
||||
|
||||
const parkingReviewInfo = ref<parkingReviewType>({
|
||||
parking: {
|
||||
'id': '',
|
||||
'areaId': '',
|
||||
@@ -279,11 +289,11 @@ const parkingReviewinfo = ref<parkingReviewType>({
|
||||
'createName': '',
|
||||
'checkStatus': '',
|
||||
'remark': '',
|
||||
'createTime': '',
|
||||
'delFlag': null
|
||||
'createTime': ''
|
||||
},
|
||||
car: null,
|
||||
parkingReviewProcess: {
|
||||
id: null,
|
||||
submitStatus: null,
|
||||
propertyStatus: null,
|
||||
certificationStatus: null,
|
||||
@@ -297,44 +307,50 @@ const form = ref({
|
||||
propertyReviewFeedback: '',
|
||||
propertyStatus: '0'
|
||||
});
|
||||
|
||||
function getInfo() {
|
||||
if (route.query.id) {
|
||||
id.value = route.query.id as string;
|
||||
getParkingReviewInfo(id.value).then((res) => {
|
||||
parkingReviewinfo.value = res.data;
|
||||
handleActivestaus(res.data.parkingReviewProcess);
|
||||
parkingReviewInfo.value = res.data;
|
||||
handleActiveStaus(res.data.parkingReviewProcess);
|
||||
});
|
||||
}
|
||||
}
|
||||
getInfo();
|
||||
|
||||
function handleActivestaus(rews) {
|
||||
if (!rews) {
|
||||
// 处理审核进度
|
||||
function handleActiveStaus(rows: parkingReviewProcess) {
|
||||
if (!rows) {
|
||||
activeStop.value = 0;
|
||||
active.value = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
// 提交
|
||||
if (rews.submitStatus === reviewStatus.unSubmit) {
|
||||
if (rows.submitStatus === submitStatus.unSubmit) {
|
||||
activeStop.value = 0;
|
||||
active.value = 0;
|
||||
} else if (rews.submitStatus === reviewStatus.Submited) {
|
||||
active.value = 1;
|
||||
active.value = 0; // 未提交信息
|
||||
} else if (rows.submitStatus === submitStatus.Submitted) {
|
||||
active.value = 1; // 提交信息
|
||||
activeStop.value = 1;
|
||||
// 待认证
|
||||
if (rews.propertyStatus === 0) {
|
||||
active.value = 2;
|
||||
} else if (rews.propertyStatus === 1) {
|
||||
active.value = 3;
|
||||
} else if (rews.propertyStatus === 2) {
|
||||
active.value = 4;
|
||||
|
||||
// 审核
|
||||
if (rows.propertyStatus === ReviewStatus.awaitReview) {
|
||||
active.value = 2; // 待审核
|
||||
} else if (rows.propertyStatus === ReviewStatus.unReviewPass) {
|
||||
active.value = 3; // 审核不通过
|
||||
} else if (rows.propertyStatus === ReviewStatus.ReviewPass) {
|
||||
active.value = 4; // 审核通过
|
||||
activeStop.value = 2;
|
||||
|
||||
// 审核
|
||||
if (rews.certificationStatus === 0) {
|
||||
active.value = 5;
|
||||
} else if (rews.certificationStatus === 1) {
|
||||
active.value = 6;
|
||||
// 认证
|
||||
if (rows.certificationStatus === certificationStatus.uncertification) {
|
||||
active.value = 5; // 未认证
|
||||
} else if (rows.certificationStatus === certificationStatus.uncertificationPass) {
|
||||
active.value = 5; // 未认证
|
||||
} else if (rows.certificationStatus === certificationStatus.Certification) {
|
||||
active.value = 6; // 已认证
|
||||
activeStop.value = 4;
|
||||
}
|
||||
}
|
||||
@@ -343,16 +359,19 @@ function handleActivestaus(rews) {
|
||||
|
||||
// 审核状态
|
||||
// 物业审核状态 0 待审核 1审核通过 2审核未通过
|
||||
function handlePreivew(status: number) {
|
||||
function handlePreview(status: number) {
|
||||
getParkingReview({
|
||||
...form.value,
|
||||
propertyStatus: status,
|
||||
id: id.value
|
||||
}).then((res) => {
|
||||
console.log(res);
|
||||
id: parkingReviewInfo.value.parkingReviewProcess.id
|
||||
}).then(() => {
|
||||
ElMessage.success('操作成功');
|
||||
handleBack();
|
||||
});
|
||||
}
|
||||
function handlBacK() {
|
||||
|
||||
// 返回
|
||||
function handleBack() {
|
||||
router.back();
|
||||
}
|
||||
</script>
|
||||
@@ -364,15 +383,15 @@ function handlBacK() {
|
||||
.ResidentMainBody {
|
||||
flex: 1;
|
||||
margin-top: 20px;
|
||||
.CarinfoBox {
|
||||
&.gridbox {
|
||||
.CarInfoBox {
|
||||
&.gridBox {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(4, 1fr);
|
||||
gap: 20px;
|
||||
row-gap: 40px;
|
||||
}
|
||||
.carinfo_item {
|
||||
.carInfo_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
@@ -382,7 +401,7 @@ function handlBacK() {
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.carinfoImage {
|
||||
.carInfoImage {
|
||||
width: 200px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
@@ -66,20 +66,20 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:post:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
<el-button v-has-permi="['system:post:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:post:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
<el-button v-has-permi="['system:post:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:post:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
<el-button v-has-permi="['system:post:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:post:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||
<el-button v-has-permi="['system:post:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:show-search="showSearch" @query-table="getList"></right-toolbar>
|
||||
</el-row>
|
||||
@@ -105,10 +105,10 @@
|
||||
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:post:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:post:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:post:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:post:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -331,7 +331,7 @@ function backRoute() {
|
||||
|
||||
.cardSubtitle {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
left: 0;
|
||||
top: 28px;
|
||||
width: 100px;
|
||||
background: #fff;
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
:on-error="handleError"
|
||||
:limit="1"
|
||||
>
|
||||
<img v-if="form.cardImageFront" :src="form.cardImageFront" class="avatar" />
|
||||
<img alt="身份证正面照" v-if="form.cardImageFront" :src="form.cardImageFront" class="avatar" />
|
||||
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
@@ -82,7 +82,7 @@
|
||||
:on-success="handleAvatar2Success"
|
||||
:on-error="handleError2"
|
||||
>
|
||||
<img v-if="form.cardImageBack" :src="form.cardImageBack" class="avatar" />
|
||||
<img alt="身份证背面照" v-if="form.cardImageBack" :src="form.cardImageBack" class="avatar" />
|
||||
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
@@ -111,6 +111,7 @@ import { genFileId } from 'element-plus';
|
||||
import { addResident, getResident, updateResident } from '@/api/system/resident';
|
||||
import { validator } from '@/utils/Reg';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
import { Plus } from '@element-plus/icons-vue';
|
||||
|
||||
const houseStore = useHouseStore();
|
||||
const uploadUrl = import.meta.env.VITE_APP_BASE_API + '/resident/uploadImage';
|
||||
@@ -351,7 +352,7 @@ const cancelForm = () => {
|
||||
align-items: center;
|
||||
.el-input {
|
||||
width: 100px;
|
||||
margin-right: 0px;
|
||||
margin-right: 0;
|
||||
}
|
||||
span {
|
||||
margin: 0 20px;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 h-full flex flex-col">
|
||||
<Pageheader title="住户管理"></Pageheader>
|
||||
<pageHeader title="住户管理"></pageHeader>
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
@@ -30,24 +30,11 @@
|
||||
<div class="treeTitlebox">{{ currentVilageInfo.villageName ?? '--' }}</div>
|
||||
<div class="treeboxbody">
|
||||
<!-- 树状+ -->
|
||||
<el-tree :highlight-current="true" style="max-width: 600px" :data="treedata" :props="defaultProps" @node-click="handleNodeClick" />
|
||||
<el-tree :highlight-current="true" style="max-width: 600px" :data="treated" :props="defaultProps" @node-click="handleNodeClick" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-1 h-full">
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['resident:resident:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['resident:resident:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['resident:resident:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -83,15 +70,15 @@
|
||||
<el-table-column label="房间" min-width="120" align="center" prop="houseAddress" />
|
||||
<el-table-column label="操作" align="center" min-width="120" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.status !== '1'" link type="primary" @click="handleMain(scope.row)" v-hasPermi="['resident:resident:edit']"
|
||||
<el-button v-if="scope.row.status !== '1'" link type="primary" @click="handleMain(scope.row)" v-has-permi="['resident:resident:edit']"
|
||||
>审核</el-button
|
||||
>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['resident:resident:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['resident:resident:remove']">删除 </el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-has-permi="['resident:resident:edit']">编辑</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-has-permi="['resident:resident:remove']">删除 </el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
<Pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
@@ -104,9 +91,12 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup name="Resident" lang="ts">
|
||||
import Pageheader from '@/components/Pageheader/index.vue';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import RightToolbar from '@/components/RightToolbar/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
|
||||
import { listResident, delResident } from '@/api/system/resident/index';
|
||||
import { listResident, delResident } from '@/api/system/resident';
|
||||
import { ResidentVO, ResidentQuery, ResidentForm } from '@/api/system/resident/type';
|
||||
import { getHousePathById } from '@/utils/house';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
@@ -188,7 +178,7 @@ const data = reactive<PageData<ResidentForm, ResidentQuery>>({
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form } = toRefs(data);
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
// ! 树形------------------------------------------------------------------------
|
||||
interface Tree {
|
||||
@@ -222,15 +212,15 @@ const defaultProps = {
|
||||
label: 'label'
|
||||
};
|
||||
// ! 树形------------------------------------------------------------------------
|
||||
const treedata = ref([]);
|
||||
function gettree() {
|
||||
treedata.value = [];
|
||||
const treated = ref([]);
|
||||
function better() {
|
||||
treated.value = [];
|
||||
houseStore.getCurrentVilageTreeHouse().then((res) => {
|
||||
treedata.value = res;
|
||||
treated.value = res;
|
||||
});
|
||||
}
|
||||
|
||||
gettree();
|
||||
better();
|
||||
|
||||
/** 查询住户管理列表 */
|
||||
const getList = async () => {
|
||||
@@ -240,7 +230,7 @@ const getList = async () => {
|
||||
.then((res) => {
|
||||
residentList.value = res.rows;
|
||||
residentList.value.forEach((item) => {
|
||||
const arr = getHousePathById(treedata.value, item.houseId, 'label');
|
||||
const arr = getHousePathById(treated.value, item.houseId, 'label');
|
||||
item.houseAddress = arr.join(' ');
|
||||
});
|
||||
total.value = res.total;
|
||||
@@ -295,7 +285,7 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: ResidentVO) => {
|
||||
const handleUpdate = (row?: ResidentVO) => {
|
||||
const _id = row?.id || ids.value[0];
|
||||
router.push({
|
||||
path: '/house/editResident',
|
||||
|
||||
@@ -62,6 +62,7 @@ import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { roleMenuTreeselect, treeselect as menuTreeselect } from '@/api/system/menu/index';
|
||||
import { addRole, getRole, updateRole } from '@/api/system/role';
|
||||
import { MenuTreeOption, RoleMenuTree } from '@/api/system/menu/types';
|
||||
import { QuestionFilled } from '@element-plus/icons-vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { sys_normal_disable } = toRefs<any>(proxy?.useDict('sys_normal_disable'));
|
||||
@@ -110,7 +111,7 @@ async function init() {
|
||||
});
|
||||
});
|
||||
} else {
|
||||
getMenuTreeselect();
|
||||
await getMenuTreeselect();
|
||||
}
|
||||
}
|
||||
/** 查询菜单树结构 */
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:add']" type="primary" plain icon="Plus" @click="openSelectUser">添加用户</el-button>
|
||||
<el-button v-has-permi="['system:role:add']" type="primary" plain icon="Plus" @click="openSelectUser">添加用户</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:remove']" type="danger" plain icon="CircleClose" :disabled="multiple" @click="cancelAuthUserAll">
|
||||
<el-button v-has-permi="['system:role:remove']" type="danger" plain icon="CircleClose" :disabled="multiple" @click="cancelAuthUserAll">
|
||||
批量取消授权
|
||||
</el-button>
|
||||
</el-col>
|
||||
@@ -51,7 +51,7 @@
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="取消授权" placement="top">
|
||||
<el-button v-hasPermi="['system:role:remove']" link type="primary" icon="CircleClose" @click="cancelAuthUser(scope.row)"> </el-button>
|
||||
<el-button v-has-permi="['system:role:remove']" link type="primary" icon="CircleClose" @click="cancelAuthUser(scope.row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -64,6 +64,8 @@
|
||||
</template>
|
||||
|
||||
<script setup name="AuthUser" lang="ts">
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import { allocatedUserList, authUserCancel, authUserCancelAll } from '@/api/system/role';
|
||||
import { UserQuery } from '@/api/system/user/types';
|
||||
import { UserVO } from '@/api/system/user/types';
|
||||
|
||||
@@ -40,18 +40,6 @@
|
||||
<el-card class="flex-1" shadow="hover">
|
||||
<template #header>
|
||||
<el-row :gutter="10">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:edit']" type="success" plain :disabled="single" icon="Edit" @click="handleUpdate()">编辑</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:remove']" type="danger" plain :disabled="ids.length === 0" @click="handleDelete()">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
@@ -61,11 +49,6 @@
|
||||
@update:add="handleAdd"
|
||||
@update:delete="handleDelete()"
|
||||
>
|
||||
<template #dropdown>
|
||||
<el-dropdown-item v-if="checkPermi(['system:role:export'])" @click="handleExport">
|
||||
<div>导出</div>
|
||||
</el-dropdown-item>
|
||||
</template>
|
||||
</right-toolbar>
|
||||
</el-row>
|
||||
</template>
|
||||
@@ -89,16 +72,16 @@
|
||||
<el-table-column fixed="right" label="操作" width="200">
|
||||
<template #default="scope">
|
||||
<el-tooltip v-if="scope.row.roleId !== 1" content="修改" placement="top">
|
||||
<el-button v-hasPermi="['system:role:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:role:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip v-if="scope.row.roleId !== 1" content="删除" placement="top">
|
||||
<el-button v-hasPermi="['system:role:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:role:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip v-if="scope.row.roleId !== 1" content="数据权限" placement="top">
|
||||
<el-button v-hasPermi="['system:role:edit']" link type="primary" icon="CircleCheck" @click="handleDataScope(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:role:edit']" link type="primary" icon="CircleCheck" @click="handleDataScope(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip v-if="scope.row.roleId !== 1" content="分配用户" placement="top">
|
||||
<el-button v-hasPermi="['system:role:edit']" link type="primary" icon="User" @click="handleAuthUser(scope.row)"></el-button>
|
||||
<el-button v-has-permi="['system:role:edit']" link type="primary" icon="User" @click="handleAuthUser(scope.row)"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -213,6 +196,7 @@ import { roleMenuTreeselect, treeselect as menuTreeselect } from '@/api/system/m
|
||||
import { RoleVO, RoleForm, RoleQuery, DeptTreeOption } from '@/api/system/role/types';
|
||||
import { MenuTreeOption, RoleMenuTree } from '@/api/system/menu/types';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
import { QuestionFilled } from '@element-plus/icons-vue';
|
||||
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@@ -388,10 +372,6 @@ const handleAdd = () => {
|
||||
path: '/system/addRole'
|
||||
});
|
||||
return;
|
||||
reset();
|
||||
getMenuTreeselect();
|
||||
dialog.visible = true;
|
||||
dialog.title = '添加角色';
|
||||
};
|
||||
/** 修改角色 */
|
||||
const handleUpdate = async (row?: RoleVO) => {
|
||||
@@ -403,19 +383,6 @@ const handleUpdate = async (row?: RoleVO) => {
|
||||
}
|
||||
});
|
||||
return;
|
||||
reset();
|
||||
const roleId = row?.roleId || ids.value[0];
|
||||
const { data } = await getRole(roleId);
|
||||
Object.assign(form.value, data);
|
||||
form.value.roleSort = Number(form.value.roleSort);
|
||||
const res = await getRoleMenuTreeselect(roleId);
|
||||
dialog.title = '修改角色';
|
||||
dialog.visible = true;
|
||||
res.checkedKeys.forEach((v) => {
|
||||
nextTick(() => {
|
||||
menuRef.value?.setChecked(v, true, false);
|
||||
});
|
||||
});
|
||||
};
|
||||
/** 根据角色ID查询菜单树结构 */
|
||||
const getRoleMenuTreeselect = (roleId: string | number) => {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user