8/19 report

This commit is contained in:
Zy
2026-08-20 17:03:40 +08:00
parent 3b0e3928eb
commit 7b20d3e7ef
22 changed files with 61 additions and 40 deletions

View File

@@ -9,9 +9,9 @@ VITE_APP_ENV='development'
# 开发环境 # 开发环境
VITE_APP_BASE_API='/dev-api' VITE_APP_BASE_API='/dev-api'
# # 开发环境 接口代理地址 # # 开发环境 接口代理地址
#VITE_APP_PROXY_API='http://192.168.1.222:8080' VITE_APP_PROXY_API='http://192.168.1.222:8080'
# 开发环境 接口代理地址 # 开发环境 接口代理地址
VITE_APP_PROXY_API='http://192.168.1.6:8080' #VITE_APP_PROXY_API='http://192.168.1.6:8080'
# 图片基础地址 # 图片基础地址
VITE_IMG_URL='http://192.168.1.222:8080' VITE_IMG_URL='http://192.168.1.222:8080'

View File

@@ -58,7 +58,7 @@ export interface sourceType {
'garbageFee': string; 'garbageFee': string;
'garbageFeePercent': string; 'garbageFeePercent': string;
} }
// 收入来源 --₧╬.╬ // 收入来源
export const income_scourcApi = (datetime?: string): AxiosPromise<sourceType> => { export const income_scourcApi = (datetime?: string): AxiosPromise<sourceType> => {
return request({ return request({
url: '/api/analysis/income/source', url: '/api/analysis/income/source',

View File

@@ -23,7 +23,7 @@
<div style="width: 50px; text-align: right; padding-right: 10px">单元</div> <div style="width: 50px; text-align: right; padding-right: 10px">单元</div>
<div class="flex-1"> <div class="flex-1">
<el-select @change="handleChangeUnit" clearable style="width: 120px" v-model="queryParams.unitNoId"> <el-select @change="handleChangeUnit" clearable style="width: 120px" v-model="queryParams.unitNoId">
<el-option v-for="(item, index) in unitlist" :key="index" :label="item.unitNoName" :value="item.unitNoId"></el-option> <el-option v-for="(item, index) in unitList" :key="index" :label="item.unitNoName" :value="item.unitNoId"></el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@@ -119,8 +119,6 @@ const props = defineProps({
const { titleName, returnvalue } = toRefs(props); const { titleName, returnvalue } = toRefs(props);
const showids = ref([]);
// ✅ 手动设置默认值(替代 withDefaults // ✅ 手动设置默认值(替代 withDefaults
const emit = defineEmits<{ const emit = defineEmits<{
change: [value: string | number | (string | number)[] | BillHouse | BillHouse[]]; // 支持返回数组 change: [value: string | number | (string | number)[] | BillHouse | BillHouse[]]; // 支持返回数组
@@ -201,7 +199,7 @@ function getList() {
/** 楼栋列表 */ /** 楼栋列表 */
const buildingList = ref([]); const buildingList = ref([]);
/** 房屋列表 */ /** 房屋列表 */
const unitlist = ref([]); const unitList = ref([]);
/** 获取楼栋 列表 */ /** 获取楼栋 列表 */
function handleChangeHouse() { function handleChangeHouse() {
@@ -209,6 +207,11 @@ function handleChangeHouse() {
buildingList.value = res.data; buildingList.value = res.data;
}); });
} }
function handleChangeHouseUseType() {
listHouseUseType_add_house().then((res) => {
houseUseTypeList.value = res.data;
});
}
function handleClear() { function handleClear() {
queryParams.value.residentName = ''; queryParams.value.residentName = '';
@@ -220,11 +223,11 @@ function handleHouseUseChange() {
/** 单元列表 */ /** 单元列表 */
function handleChangeBuilding(val: string) { function handleChangeBuilding(val: string) {
queryParams.value.unitNoId = null; queryParams.value.unitNoId = null;
unitlist.value = []; unitList.value = [];
if (queryParams.value.buildingId) { if (queryParams.value.buildingId) {
getHouselistAPI(val).then((res) => { getHouselistAPI(val).then((res) => {
unitlist.value = res.data.units; unitList.value = res.data.units;
getList(); getList();
}); });
} }
@@ -299,7 +302,7 @@ function conBack() {
} }
// ============================================== // ==============================================
// ✅ 核心修改:根据 returnvalue 返回对应的值 // ✅ 核心修改:根据 returnValue 返回对应的值
// ============================================== // ==============================================
function confirm() { function confirm() {
dialog.value.dialogVisible = false; dialog.value.dialogVisible = false;
@@ -331,23 +334,33 @@ function confirm() {
} }
defineExpose({ defineExpose({
open: (showidArray: string[] = []) => { /**
* @description 打开弹窗
* @param { string[] } showIdArray 显示的房屋ID数组
* @param { object } params 额外查询参数对象
* */
open: (showIdArray: string[] = [], params: object = {}) => {
multipleSelection.value = []; multipleSelection.value = [];
showids.value = showidArray; if (Object.keys(params).length > 0) {
if (showidArray && showidArray.length > 0) { queryParams.value = Object.assign({}, queryParams.value, params);
multipleSelection.value = showidArray.map( }
// 显示的房屋ID数组
if (showIdArray && showIdArray.length > 0) {
multipleSelection.value = showIdArray.map(
(id) => (id) =>
({ ({
houseId: id houseId: id
}) as BillHouse }) as BillHouse
); );
} }
// 刷新列表
getList(); getList();
dialog.value.dialogVisible = true; // 刷新房屋用途类型列表
listHouseUseType_add_house().then((res) => { handleChangeHouseUseType();
houseUseTypeList.value = res.data; // 刷新房屋用途类型列表
});
handleChangeHouse(); handleChangeHouse();
// 显示弹窗
dialog.value.dialogVisible = true;
} }
}); });
</script> </script>

View File

@@ -226,7 +226,7 @@ const handleUpdate = (row?: ActivityVO) => {
}); });
}; };
/** 提交按钮 ╬╬╬╬╬╬2╬22╬2╬«2╬2▐2╬╬╬╬╬ */ /** 提交按钮 */
const submitForm = () => { const submitForm = () => {
activityFormRef.value?.validate(async (valid: boolean) => { activityFormRef.value?.validate(async (valid: boolean) => {
if (valid) { if (valid) {

View File

@@ -70,7 +70,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="预约日期" prop="orderDate"> <el-form-item label="预约日期" prop="orderDate">
<el-date-picker v-model="form.orderDate" type="date" placeholder="年/月/日" value-format="YYYY-MM-DD" /> <el-date-picker v-model="form.orderDate" type="datetime" placeholder="年/月/日 时:分:秒" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@@ -95,7 +95,7 @@ function handleChange(val: string) {
form.value.projectType = find.projectType; form.value.projectType = find.projectType;
} }
} }
// != ==========================================8╬ // != ==========================================
async function init() { async function init() {
form.value = { form.value = {

View File

@@ -241,7 +241,7 @@ const HandleTypeId = {
/** 显示房屋 */ /** 显示房屋 */
'House': { 'House': {
/** 水费 */ /** 水费 */
'Water': '2049026484272791553', 'Water': '2064181187503652865',
/** 电费 */ /** 电费 */
'Electricity': '2049026503017136129' 'Electricity': '2049026503017136129'
}, },
@@ -260,6 +260,7 @@ function handleChange(val: string, callback: boolean = false) {
if (find) { if (find) {
form.value.chargeTypeId = find.typeId; form.value.chargeTypeId = find.typeId;
typeName.value = find.typeId; typeName.value = find.typeId;
if (callback) { if (callback) {
handleClearCheckout(); handleClearCheckout();
} }
@@ -302,7 +303,9 @@ const userRef = ref<InstanceType<typeof UserHolder>>();
const ParkingUserRef = ref<InstanceType<typeof CarUser>>(); const ParkingUserRef = ref<InstanceType<typeof CarUser>>();
function OpenUseTablesFun(val: string) { function OpenUseTablesFun(val: string) {
if (val === 'house') { if (val === 'house') {
HolderRef.value.open(checkoutHouses.value); HolderRef.value.open(checkoutHouses.value, {
chargeTypeId: form.value.chargeTypeId
});
} else if (val === 'user') { } else if (val === 'user') {
if (typeName.value === HandleTypeId.Resident.Parking) { if (typeName.value === HandleTypeId.Resident.Parking) {
ParkingUserRef.value.open(checkoutParking.value); ParkingUserRef.value.open(checkoutParking.value);

View File

@@ -143,7 +143,7 @@ const total = ref(0);
const queryFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>();
const ShowHouseList = ['2049026484272791553', '2049026503017136129']; const ShowHouseList = ['2064181187503652865', '2049026503017136129'];
const initFormData: BillForm = { const initFormData: BillForm = {
id: undefined, id: undefined,

View File

@@ -94,7 +94,7 @@ const houseStore = useHouseStore();
const formRef = ref(); const formRef = ref();
const form = ref<addHouseType>({ const form = ref<addHouseType>({
buildingId: '', buildingId: '',
houseUseTypeId: '', // 房屋用途 houseUseTypeId: '', // 房屋用途
unitNoId: '', unitNoId: '',
floorNo: '', floorNo: '',
houseNo: '', // 房 间 号 houseNo: '', // 房 间 号

View File

@@ -320,7 +320,7 @@ const rules = ref({
const userid = ref(null); const userid = ref(null);
const treeData = ref(null); const treeData = ref(null);
const houseFacilities = ref([]); const houseFacilities = ref([]);
// !== 楼栋房屋 ============================================================================= // !== 楼栋房屋 =============================================================================
async function getTreeData() { async function getTreeData() {
const resList = await listHouseFacilities(); const resList = await listHouseFacilities();
houseFacilities.value = resList.rows houseFacilities.value = resList.rows

View File

@@ -150,7 +150,6 @@ async function init() {
HouseInfo.value.houseImageUrls = HouseInfo.value.houseImageUrl.split(',').filter((item) => item); HouseInfo.value.houseImageUrls = HouseInfo.value.houseImageUrl.split(',').filter((item) => item);
}); });
} }
//.╬
init(); init();
function handlefacilities(id: string) { function handlefacilities(id: string) {

View File

@@ -294,7 +294,7 @@ const getList = async () => {
}); });
}; };
/** 取消按钮 */ /** 取消按钮 */
const cancel = () => { const cancel = () => {
reset(); reset();
dialog.visible = false; dialog.visible = false;

View File

@@ -78,7 +78,7 @@
<pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" :total="total" @pagination="getList" /> <pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" :total="total" @pagination="getList" />
</el-card> </el-card>
<!-- 添加或修改公告对话框 --> <!-- 添加或修改公告对话框 -->
<el-dialog v-model="dialog.visible" :title="dialog.title" width="780px" append-to-body> <el-dialog v-model="dialog.visible" :title="dialog.title" width="780px" append-to-body>
<el-form ref="noticeFormRef" :model="form" :rules="rules" label-width="80px"> <el-form ref="noticeFormRef" :model="form" :rules="rules" label-width="80px">
<el-row> <el-row>

View File

@@ -117,7 +117,7 @@ const data = reactive({
const { queryParams } = toRefs(data); const { queryParams } = toRefs(data);
// 查询 房屋类型╬╬╬╬╬2╬> // 查询 房屋类型
const houseUseList = ref([]); const houseUseList = ref([]);
function handleQueryHouseUse() { function handleQueryHouseUse() {
listHouseUseType().then((res) => { listHouseUseType().then((res) => {

View File

@@ -132,7 +132,7 @@ function getChartTypeList() {
}); });
} }
/** 查询电抄记录列表 ╬╬╬2╬«2╬╬╬╬22╬╬╬╬╬*/ /** 查询电抄记录列表 */
const getList = async () => { const getList = async () => {
loading.value = true; loading.value = true;
const search = { ...queryParams.value }; const search = { ...queryParams.value };

View File

@@ -57,14 +57,17 @@
<el-table-column label="现金类" align="center" prop="cashAmount"> <el-table-column label="现金类" align="center" prop="cashAmount">
<template #default> <template #default>
<el-table-column label="现金" align="center" prop="cashAmount"></el-table-column> <el-table-column label="现金" align="center" prop="cashAmount"></el-table-column>
<el-table-column label="支付宝" align="center" prop="alipayAmount"></el-table-column>
<el-table-column label="宜当付" align="center" prop="yiDangFuAmount"></el-table-column>
<el-table-column label="银联" align="center" prop="unionPayAmount"></el-table-column> <el-table-column label="银联" align="center" prop="unionPayAmount"></el-table-column>
<el-table-column label="转账" align="center" prop="transferAmount"></el-table-column> <el-table-column label="转账" align="center" prop="transferAmount"></el-table-column>
<el-table-column label="微信商户" align="center" prop="wechatAmount"></el-table-column> <el-table-column label="微信" align="center" prop="wechatAmount"></el-table-column>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="顶账类" align="center" prop="deposit"> <el-table-column label="顶账类" align="center" prop="deposit">
<template #default> <template #default>
<el-table-column label="押金抵顶" align="center" prop="depositAmount"></el-table-column> <el-table-column label="押金抵顶" align="center" prop="depositAmount"></el-table-column>
<el-table-column label="房产抵顶" align="center" prop="propertyOffsetAmount"></el-table-column>
<el-table-column label="减免优惠" align="center" prop="discountAmount"></el-table-column> <el-table-column label="减免优惠" align="center" prop="discountAmount"></el-table-column>
</template> </template>
</el-table-column> </el-table-column>
@@ -227,6 +230,8 @@ const handleExport = () => {
label: '现金类', label: '现金类',
children: [ children: [
{ label: '现金', prop: 'cashAmount' }, { label: '现金', prop: 'cashAmount' },
{ label: '支付宝', prop: 'alipayAmount' },
{ label: '宜当付', prop: 'yiDangFuAmount' },
{ label: '银联', prop: 'unionPayAmount' }, { label: '银联', prop: 'unionPayAmount' },
{ label: '转账', prop: 'transferAmount' }, { label: '转账', prop: 'transferAmount' },
{ label: '微信商户', prop: 'wechatAmount' } { label: '微信商户', prop: 'wechatAmount' }
@@ -236,6 +241,7 @@ const handleExport = () => {
label: '顶账类', label: '顶账类',
children: [ children: [
{ label: '押金抵顶', prop: 'depositAmount' }, { label: '押金抵顶', prop: 'depositAmount' },
{ label: '房产抵顶', prop: 'propertyOffsetAmount' },
{ label: '减免优惠', prop: 'discountAmount' } { label: '减免优惠', prop: 'discountAmount' }
] ]
} }

View File

@@ -157,7 +157,7 @@ function getMonthList() {
...arr ...arr
]; ];
} }
// 动态列名列表▐╬ .3╬ // 动态列名列表
const dynamicColumns = ref<string[]>([]); const dynamicColumns = ref<string[]>([]);
// 在获取数据后更新动态列 // 在获取数据后更新动态列

View File

@@ -384,7 +384,7 @@ const data = reactive({
] ]
} }
}); });
// 动态生成表单验证规则╘╬ // 动态生成表单验证规则╘╬╬╬
const { queryParams, rules } = toRefs(data); const { queryParams, rules } = toRefs(data);
// 查询房屋类型列表 // 查询房屋类型列表
@@ -406,14 +406,14 @@ const getList = async () => {
}); });
getMonthFeeReportList(search) getMonthFeeReportList(search)
.then((res) => { .then((res) => {
ArrearsDetailList.value = [...res.rows]; ArrearsDetailList.value = res.rows ?? [];
}) })
.finally(() => { .finally(() => {
loading.value = false; loading.value = false;
}); });
}; };
/** 搜索按钮操作 */ /** 搜索按钮操作8 */
const handleQuery = () => { const handleQuery = () => {
queryParams.value.pageNum = 1; queryParams.value.pageNum = 1;
getList(); getList();

View File

@@ -36,7 +36,7 @@
</div> --> </div> -->
<!-- <div class="userinfo_item"> <!-- <div class="userinfo_item">
<div class="title_item">注册时间</div> <div class="title_item">注册时间</div>
<span> {{ userInfo.name }} </span>6222 <span> {{ userInfo.name }} </span>
</div> --> </div> -->
<div class="userinfo_item img"> <div class="userinfo_item img">
<div class="title_item">身份证正面</div> <div class="title_item">身份证正面</div>

View File

@@ -158,7 +158,7 @@ const form = ref<ResidentForm>({
idCardType: '0', // 证件类型 idCardType: '0', // 证件类型
cardImageBack: '', cardImageBack: '',
age: 0, //年龄 age: 0, //年龄
remark: '' //备注╬╬▓╬▐╬╬ remark: '' //备注
}); });
const userHousePath = ref<CascaderValue>([]); const userHousePath = ref<CascaderValue>([]);
const rules = ref({ const rules = ref({

View File

@@ -372,7 +372,7 @@ const dayX = ref([]);
const inData = ref([]); const inData = ref([]);
const outData = ref([]); const outData = ref([]);
/** 近十天人员流入流出 - 平滑折线图╥╬ */ /** 近十天人员流入流出 - 平滑折线图*/
const flowLineOption = ref<EChartsOption>({ const flowLineOption = ref<EChartsOption>({
title: { title: {
text: '近七日人员流动趋势', text: '近七日人员流动趋势',

View File

@@ -124,7 +124,7 @@ const rules = ref({
} }
] ]
}); });
// 选择小区╬222╬╬╬╬╬╬n╬ // 选择小区
const checkvillage = ref([]); const checkvillage = ref([]);
// 角色列表 // 角色列表
const roleOptions = ref([]); const roleOptions = ref([]);