This commit is contained in:
Zy
2026-04-08 14:30:29 +08:00
parent dc3080db32
commit cd292d5bf4
21 changed files with 188 additions and 62 deletions

View File

@@ -9,13 +9,13 @@
</div>
</div>
<el-form-item prop="username">
<el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" :placeholder="proxy.$t('login.username')">
<el-input v-model.trim="loginForm.username" type="text" size="large" auto-complete="off" :placeholder="proxy.$t('login.username')">
<template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
v-model="loginForm.password"
v-model.trim="loginForm.password"
type="password"
size="large"
auto-complete="off"
@@ -98,6 +98,7 @@ const handleLogin = () => {
loginRef.value?.validate(async (valid: boolean, fields: any) => {
if (valid) {
loading.value = true;
console.log(loginForm.value);
// 勾选了需要记住密码设置在 localStorage 中设置记住用户名和密码
if (loginForm.value.rememberMe) {
localStorage.setItem('tenantId', String(loginForm.value.tenantId));
@@ -114,15 +115,12 @@ const handleLogin = () => {
// 调用action的登录方法
const [err] = await to(userStore.login(loginForm.value));
if (!err) {
console.log('登录成功');
const redirectUrl = redirect.value || '/';
await router.push(redirectUrl);
loading.value = false;
} else {
loading.value = false;
// 重新获取验证码
if (captchaEnabled.value) {
await getCode();
}
}
} else {
}
@@ -200,7 +198,7 @@ onMounted(() => {
justify-content: center;
align-items: center;
height: 100%;
background-image: url('../assets/images/login-background.jpg');
background-image: url('../assets/images/login-background.png');
background-size: cover;
background-position: center;
}

View File

@@ -6,22 +6,22 @@
<div class="addBuildingFormBody">
<el-form class="formBody" ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-form-item label="楼栋名称" prop="buildingName">
<el-input v-model="form.buildingName" placeholder="请输入楼栋名称" />
<el-input v-model.trim="form.buildingName" placeholder="请输入楼栋名称" />
</el-form-item>
<el-form-item label="楼栋朝向" prop="buildingCode">
<el-input v-model="form.buildingCode" placeholder="请输入楼栋朝向" />
<el-form-item label="楼栋朝向" prop="buildToward">
<el-input v-model.trim="form.buildToward" placeholder="请输入楼栋朝向" />
</el-form-item>
<el-form-item label="楼高(m)" prop="buildingType">
<el-input v-model="form.buildingType" placeholder="请输入楼高(m)" />
<el-form-item label="楼高(m)" prop="buildTail">
<el-input v-model.trim="form.buildTail" placeholder="请输入楼高(m)" />
</el-form-item>
<el-form-item label="楼栋结构" prop="buildingArea">
<el-input v-model="form.buildingArea" placeholder="请输入楼栋结构" />
<el-form-item label="楼栋结构" prop="buildStructure">
<el-input v-model.trim="form.buildStructure" placeholder="请输入楼栋结构" />
</el-form-item>
<el-form-item label="单元数" prop="buildingAddress">
<el-input-number :min="1" v-model="form.buildingAddress" placeholder="单元数" />
<el-form-item label="单元数" prop="unitCount">
<el-input-number :min="1" v-model.trim="form.unitCount" placeholder="单元数" />
</el-form-item>
<el-form-item label="楼层" prop="buildingDescription">
<el-input-number :min="1" v-model="form.buildingDescription" placeholder="楼层数" />
<el-form-item label="楼层" prop="floorCount">
<el-input-number :min="1" v-model.trim="form.floorCount" placeholder="楼层数" />
</el-form-item>
<el-form-item style="margin-top: 30px">
<el-button type="primary" @click="submitForm">确定</el-button>
@@ -36,30 +36,52 @@
<script setup lang="ts">
import { ref } from 'vue';
import PageHeader from '@/components/Pageheader/index.vue';
import { getCommunitylistAPI } from '@/api/system/community';
import { addBuildingApi } from '@/api/system/house';
const formRef = ref();
const form = ref({
buildingName: '',
buildingCode: '',
buildingType: '',
buildingArea: '',
buildingAddress: null,
buildingDescription: null
buildToward: '',
buildTail: '',
buildStructure: '',
unitCount: null,
floorCount: null
});
const rules = ref({
buildingName: [{ required: true, message: '请输入楼栋名称', trigger: 'blur' }],
buildingAddress: [{ required: true, message: '请输入单元数', trigger: 'blur' }],
buildingDescription: [{ required: true, message: '请输入楼层', trigger: 'blur' }]
unitCount: [{ required: true, message: '请输入单元数', trigger: 'blur' }],
floorCount: [{ required: true, message: '请输入楼层', trigger: 'blur' }]
});
// 获取当前小区信息
const currentVilageinfo = ref();
function getVilageFun() {
getCommunitylistAPI().then((res) => {
currentVilageinfo.value = res.rows.find((item) => item.choiceStatus === 0);
});
}
// getVilageFun();
const submitForm = () => {
formRef.value?.validate(async (valid: boolean) => {
if (valid) {
console.log(form.value);
addBuildingApi({
...form.value,
villageId: currentVilageinfo.value.id
})
.then((res) => {
console.log(res);
ElMessage.success('添加成功');
})
.catch((err) => {
console.log(err);
ElMessage.error('添加失败');
});
}
});
};
const cancelForm = () => {
console.log('取消');
formRef.value?.resetFields();
};
</script>

View File

@@ -15,7 +15,7 @@
:key="index"
@click="switchBuilding(item.id)"
>
<div class="buildingname">{{ item.villageName ?? '未知' }}</div>
<div class="buildingname">{{ item.buildingName ?? '测试数据' }}</div>
<div class="buildactions flex align-center justify-around">
<el-icon class="pointer hover-color-blue"><Setting /></el-icon>
<el-icon class="pointer hover-color-red"><Delete /></el-icon>
@@ -26,13 +26,12 @@
</template>
<script setup lang="ts">
import { ref } from 'vue';
import { useHouseStore } from '@/store/modules/house';
const houseStore = useHouseStore();
const { switchBuilding } = houseStore; // 方法
const { currentBuildingInfoList, currentBuildingInfo } = storeToRefs(houseStore); // 数据
const router = useRouter();
console.log(currentBuildingInfoList);
const handleAddBuilding = () => {
router.push({
path: '/house/addbuilding'

View File

@@ -25,8 +25,8 @@ const checked = ref<string[]>([]);
// 菜单ref
const contextMenu = ref();
// 点击事件
const handleSelect = (val: string) => {
emit('contextmenufun', val);
const handleSelect = (data: { type: string; value: string }) => {
emit('contextmenufun', data);
};
function handleClick(house: HouseType) {
checked.value = checked.value.includes(house.houseId)
@@ -37,7 +37,7 @@ function handleClick(house: HouseType) {
const emit = defineEmits<{
change: [value: string[]];
contextmenufun: [value: string];
contextmenufun: [value: { type: string; value: string }];
}>();
</script>

View File

@@ -15,7 +15,13 @@
:key="index"
>
<template #default="{ row }">
<houseItem :menu-list="menutlist" :unit="units.floors_Json" :f-idx="row"></houseItem>
<houseItem
@contextmenufun="contextMenuFun"
@change="handleChange"
:menu-list="menutlist"
:unit="units.floors_Json"
:f-idx="row"
></houseItem>
</template>
</el-table-column>
</el-table>
@@ -33,6 +39,26 @@ const menutlist = [
{ label: '详情', value: 'main' },
{ label: '删除', value: 'delete' }
];
function contextMenuFun(val: { type: string; value: string }) {
switch (val.type) {
case 'edit':
console.log('你选择了:', val);
break;
case 'money':
console.log('你选择了:', val);
break;
case 'main':
console.log('你选择了:', val);
break;
case 'delete':
console.log('你选择了:', val);
houseStore.deleteHouseFun(val.value);
break;
}
}
function handleChange(data: string[]) {
houseStore.checkoutHousesFun(data);
}
</script>
<style scoped lang="scss">