物业之前,新工作台

This commit is contained in:
Zy
2026-04-16 21:03:35 +08:00
parent cf9a1f1585
commit 4184f1c55d
91 changed files with 1781 additions and 588 deletions

View File

@@ -162,7 +162,6 @@ function init() {
};
})
.filter((item) => item);
console.log(fileList.value);
});
}
});
@@ -186,7 +185,6 @@ const handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => {
// !== 选择报修人 ====================================================================
function handleChangeResident(val: string | number) {
console.log(val);
form.value.residentId = val;
}
@@ -199,7 +197,6 @@ function handleChangehouse(val: (string | number)[]) {
}
}
function handleChangemaintenanceItem(val: (string | number)[]) {
console.log(val);
if (val.length >= 2) {
form.value.maintenanceItemId = val.pop() as number;
} else {
@@ -249,15 +246,14 @@ const submitForm = () => {
const sendForm = (str: string) => {
form.value.problemImageUrl = str;
form.value.villageId = Number(localStorage.getItem('villageid'));
if (userid.value) {
updateRepair(form.value).then((res) => {
console.log(res);
ElMessage.success('编辑成功');
cancelForm();
});
} else {
addRepair(form.value).then((res) => {
console.log(res);
ElMessage.success('添加成功');
cancelForm();

View File

@@ -14,7 +14,7 @@
<el-col :span="2"></el-col>
<el-col :span="11">
<el-form-item label="项目类型" prop="projectType">
<el-radio-group v-model="form.projectType">
<el-radio-group :disabled="form.projectLevel === '1'" v-model="form.projectType">
<el-radio v-for="item in com_repair_project_types" :key="item.id" :value="item.value">{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
@@ -40,7 +40,7 @@
<el-row v-if="form.projectLevel === '1'">
<el-col :span="11">
<el-form-item label="隶属父级" prop="email">
<el-select v-model="form.parentId" placeholder="请选择隶属父级" style="width: 240px">
<el-select @change="handleChange" v-model="form.parentId" placeholder="请选择隶属父级" style="width: 240px">
<el-option v-for="item in options" :key="item.id" :label="item.projectName" :value="item.id" />
</el-select>
</el-form-item>
@@ -60,7 +60,6 @@
import { ref } from 'vue';
import PageHeader from '@/components/Pageheader/index.vue';
import { addRepairProject, listRepairProject, updateRepairProject } from '@/api/system/RepairProject';
import { buildTreeByLevel } from '@/utils';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { com_repair_project_types } = toRefs<any>(proxy?.useDict('com_repair_project_types'));
const { com_repair_project_status } = toRefs<any>(proxy?.useDict('com_repair_project_status'));
@@ -87,10 +86,17 @@ const rules = ref({
});
const userid = ref(null);
const options = ref([]);
function handleChange(val) {
const find = options.value.find((item) => item.id === val);
if (find) {
form.value.projectType = find.projectType;
}
}
// != ==========================================
function init() {
listRepairProject({ pageSize: 999999999, pageNum: 1 }).then((res) => {
listRepairProject().then((res) => {
const arr = res.rows.filter((ite) => ite.projectLevel === 0);
options.value = arr;
if (route.query.id) {
@@ -112,7 +118,7 @@ init();
const submitForm = () => {
formRef.value?.validate(async (valid: boolean) => {
if (valid) {
console.log(form.value);
form.value.villageId = Number(localStorage.getItem('villageid'));
if (!userid.value) {
addRepairProject(form.value).then(() => {
ElMessage.success('添加成功');

View File

@@ -51,8 +51,8 @@
<el-table v-loading="loading" border :data="repairList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="报修房屋" align="center" prop="name" />
<el-table-column label="维修项目" align="center" prop="maintenanceItemPath" />
<el-table-column label="报修房屋" align="center" prop="houseName" />
<el-table-column label="维修项目" align="center" prop="maintenanceItemName" />
<el-table-column label="问题描述" align="center" prop="problem" />
<el-table-column label="报修人" align="center" prop="residentName" />
<el-table-column label="预约日期" align="center" prop="orderDate" width="180">
@@ -127,6 +127,7 @@ const data = reactive<PageData<RepairForm, RepairQuery>>({
queryParams: {
pageNum: 1,
pageSize: 10,
villageId: Number(localStorage.getItem('villageid')),
houseId: undefined,
maintenanceItemId: undefined,
problem: undefined,
@@ -147,19 +148,6 @@ const data = reactive<PageData<RepairForm, RepairQuery>>({
const { queryParams, form, rules } = toRefs(data);
// != 维修项目u ===========================================================================
const RepariPorjectlist = ref([]);
const residentlist = ref([]);
function init() {
listRepairProject().then((res) => {
RepariPorjectlist.value = res.rows;
});
listResident().then((res) => {
residentlist.value = res.rows;
});
}
init();
// != 维修项目u ===========================================================================
/** 查询报修管理列表 */
@@ -167,24 +155,6 @@ const getList = async () => {
loading.value = true;
const res = await listRepair(queryParams.value);
repairList.value = res.rows;
repairList.value.forEach((item2) => {
// 维修项目
const find = RepariPorjectlist.value.find((item) => item.id === item2.maintenanceItemId);
item2.maintenanceItemPath = '';
if (find) {
item2.maintenanceItemPath = find.projectName;
if (find.parentId) {
const find2 = RepariPorjectlist.value.find((item3) => item3.id === find.parentId);
console.log(find2);
item2.maintenanceItemPath = find2.projectName + ' - ' + item2.maintenanceItemPath;
}
}
// 住户
const find2 = residentlist.value.find((item) => item.id === item2.residentId);
if (find2) {
item2.residentName = find2.name;
}
});
total.value = res.total;
loading.value = false;
};

View File

@@ -90,12 +90,10 @@
<span>分配工单</span>
</div>
</template>
<div class="w-full h-full flex mt-2">
<div class="preivewBody w-full h-full flex flex-items-start mt-2">
<div class="title">维修师傅</div>
<div class="preivewBodybox flex-1 ml-5">
<div class="">
<repairUser :userid="form.repairId" @change="handleChange"></repairUser>
</div>
<repairUser :userid="form.repairId" @change="handleChange"></repairUser>
<div class="actions mt-5">
<el-button @click="handleSend" type="primary">确定派单</el-button>
<el-button @click="backRouter">返回</el-button>
@@ -343,6 +341,9 @@ function handleEdit() {
.subtitle {
font-size: 15px;
}
.preivewBody {
font-size: 16px;
}
.repairBox {
width: 350px;
height: 35px;

View File

@@ -20,26 +20,23 @@
<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="['repairProject:repairProject:add']">新增维修类</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete()"
v-hasPermi="['repairProject:repairProject:remove']"
>删除</el-button
>
</el-col>
<el-button style="width: 100px" type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['repairProject:repairProject:add']"
>新增维修类</el-button
>
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete()"
v-hasPermi="['repairProject:repairProject:remove']"
>删除</el-button
>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<el-table
class="h-full"
:tree-props="{ children: 'children' }"
v-loading="loading"
border
@@ -89,32 +86,15 @@
<dict-tag :options="com_repair_project_status" :value="scope.row.status || ''"></dict-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<el-table-column label="操作" width="350" align="center" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="add" @click="handleUpdate(scope.row)"></el-button>
<el-tooltip content="修改" placement="top">
<el-button
link
type="primary"
icon="Edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['repairProject:repairProject:edit']"
></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button
link
type="primary"
icon="Delete"
@click="handleDelete(scope.row)"
v-hasPermi="['repairProject:repairProject:remove']"
></el-button>
</el-tooltip>
<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>
</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>
<!-- 添加或修改报修维修项目管理对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
@@ -206,19 +186,15 @@ const initFormData: RepairProjectForm = {
const data = reactive<PageData<RepairProjectForm, RepairProjectQuery>>({
form: { ...initFormData },
queryParams: {
pageNum: 1,
pageSize: 10,
villageId: Number(localStorage.getItem('villageid')),
projectName: undefined,
parentId: undefined,
projectType: undefined,
projectLevel: undefined,
sortOrder: undefined,
status: undefined,
params: {}
status: undefined
},
rules: {
id: [{ required: true, message: '维修项目表id不能为空', trigger: 'blur' }]
}
rules: {}
});
const { queryParams, form, rules } = toRefs(data);
@@ -327,3 +303,9 @@ onMounted(() => {
getList();
});
</script>
<style lang="scss" scoped>
.el-table {
height: calc(100% - 80px);
}
</style>