8/31 dev 权限,sse,账单,bug
This commit is contained in:
@@ -153,7 +153,8 @@
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="招募要求" prop="requirements">
|
||||
<editor v-model="form.requirements" :file-size="5" :height="200" :min-height="200" :read-only="false" :type="'url'" />
|
||||
<!-- <editor v-model="form.requirements" :file-size="5" :height="200" :min-height="200" :read-only="false" :type="'url'" /> -->
|
||||
<el-input v-model="form.requirements" :rows="5" maxlength="400" show-word-limit type="textarea"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -367,7 +368,6 @@ const activityTime = ref([]);
|
||||
const upload = ref<UploadInstance>();
|
||||
// 上传成功
|
||||
const handleAvatarSuccess: UploadProps['onSuccess'] = (response) => {
|
||||
console.log(response);
|
||||
if (response.data && response.data.url) {
|
||||
form.value.coverImage = response.data.url;
|
||||
} else {
|
||||
@@ -422,7 +422,6 @@ async function initSignMap() {
|
||||
try {
|
||||
mapReady.value = true;
|
||||
window._AMapSecurityConfig = { securityJsCode: VITE_GCJ02_JS_CODE_GD };
|
||||
console.log('开始执行 AMapLoader.load');
|
||||
const AMap = await AMapLoader.load({
|
||||
key: aloaderkey,
|
||||
version: '2.0',
|
||||
@@ -509,8 +508,6 @@ const stopDrawCircle = () => {
|
||||
if (circle) {
|
||||
const center = circle.getCenter();
|
||||
const radius = circle.getRadius();
|
||||
console.log('中心点:', [center.lng, center.lat]);
|
||||
console.log('半径:', radius, typeof radius);
|
||||
// form.value.SignInfo.lat = center.lat;
|
||||
// form.value.SignInfo.lng = center.lng;
|
||||
// form.value.SignInfo.radius = center.radius;
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="房屋" prop="houseId">
|
||||
<el-cascader @change="handleChange" v-model="userHousepath" :options="treedata" />
|
||||
<el-cascader v-model="userHousepath" :options="treedata" @change="handleChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请人" prop="applyName">
|
||||
<el-input maxlength="20" v-model.trim="form.applyName" placeholder="请输入申请人" />
|
||||
<el-input v-model.trim="form.applyName" maxlength="20" placeholder="请输入申请人" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -25,19 +25,19 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="装修公司" prop="decorationCompany">
|
||||
<el-input maxlength="20" v-model.trim="form.decorationCompany" placeholder="请输入装修公司" />
|
||||
<el-input v-model.trim="form.decorationCompany" maxlength="20" placeholder="请输入装修公司" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="装修内容" prop="decorationContent">
|
||||
<el-input maxlength="200" show-word-limit type="textarea" v-model.trim="form.decorationContent" placeholder="请输入装修内容" />
|
||||
<el-input v-model.trim="form.decorationContent" maxlength="200" placeholder="请输入装修内容" show-word-limit type="textarea" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="装修押金(元)" prop="decorationDeposit">
|
||||
<el-input maxlength="8" placeholder="请输入装修押金,最多保留2位小数" v-model.number.trim="form.decorationDeposit" />
|
||||
<el-input v-model.number.trim="form.decorationDeposit" maxlength="8" placeholder="请输入装修押金,最多保留2位小数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addDecoration, getDecoration, updateDecoration } from '@/api/system/Decoration';
|
||||
@@ -109,7 +109,6 @@ const rules = {
|
||||
return callback(new Error('请输入装修押金'));
|
||||
}
|
||||
const num = Number(val);
|
||||
console.log(val);
|
||||
if (Number.isNaN(num)) {
|
||||
return callback(new Error('请输入装修押金'));
|
||||
}
|
||||
@@ -195,7 +194,7 @@ function handleBack() {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.ResidentMainBox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
<el-col>
|
||||
<el-form-item label="办事内容" prop="content">
|
||||
<editor
|
||||
@update:model-value="handleContent"
|
||||
:model-value="form.content"
|
||||
:file-size="5"
|
||||
:height="500"
|
||||
:min-height="300"
|
||||
:model-value="form.content"
|
||||
:read-only="false"
|
||||
:file-size="5"
|
||||
@update:model-value="handleContent"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -26,12 +26,12 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="求助人姓名" prop="seekName">
|
||||
<el-input maxlength="20" v-model.trim="form.seekName" placeholder="请输入求助人姓名" />
|
||||
<el-input v-model.trim="form.seekName" maxlength="20" placeholder="请输入求助人姓名" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系方式" prop="phone">
|
||||
<el-input maxlength="50" show-word-limit v-model.trim="form.phone" placeholder="请输入联系方式" />
|
||||
<el-input v-model.trim="form.phone" maxlength="50" placeholder="请输入联系方式" show-word-limit />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -39,23 +39,23 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="办事时间" prop="handleTime">
|
||||
<el-date-picker
|
||||
format="YYYY-MM-DD HH:mm"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
v-model="form.handleTime"
|
||||
type="datetime"
|
||||
format="YYYY-MM-DD HH:mm"
|
||||
placeholder="请选择"
|
||||
type="datetime"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="办事地点" prop="handlePosition">
|
||||
<el-input
|
||||
maxlength="200"
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
show-word-limit
|
||||
v-model.trim="form.handlePosition"
|
||||
:rows="3"
|
||||
maxlength="200"
|
||||
placeholder="请输入办事地点"
|
||||
show-word-limit
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -64,21 +64,21 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="附属材料">
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
:file-list="fileList"
|
||||
:action="uploadUrl"
|
||||
:multiple="true"
|
||||
:auto-upload="false"
|
||||
:limit="9"
|
||||
ref="uploadRef"
|
||||
:show-file-list="true"
|
||||
name="files"
|
||||
:on-exceed="handleExceed"
|
||||
:headers="headerToken()"
|
||||
:on-remove="handleAvatarRemove"
|
||||
:on-change="handleProgress"
|
||||
:action="uploadUrl"
|
||||
:auto-upload="false"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:file-list="fileList"
|
||||
:headers="headerToken()"
|
||||
:limit="9"
|
||||
:multiple="true"
|
||||
:on-change="handleProgress"
|
||||
:on-exceed="handleExceed"
|
||||
:on-remove="handleAvatarRemove"
|
||||
:show-file-list="true"
|
||||
accept=".doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.bmp,.webp,.zip"
|
||||
class="upload-demo"
|
||||
name="files"
|
||||
>
|
||||
<div class="uploadBtn flex flex-items-center">
|
||||
<el-icon><Upload /></el-icon>
|
||||
@@ -104,7 +104,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import editor from '@/components/Editor/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
@@ -282,7 +282,6 @@ const beforeAvatarUpload = (rawFile: UploadUserFile) => {
|
||||
|
||||
// ! 初始 ====================================================================================================
|
||||
function init() {
|
||||
console.log('init');
|
||||
getHandleLog(userid.value).then((res) => {
|
||||
form.value = {
|
||||
...form.value,
|
||||
@@ -317,7 +316,6 @@ const submitForm = async () => {
|
||||
};
|
||||
});
|
||||
const files = [...oldFiles];
|
||||
console.log('oldFiles', files);
|
||||
if (newFiles.length > 0) {
|
||||
const formData = new FormData();
|
||||
newFiles.forEach((item) => {
|
||||
@@ -371,7 +369,7 @@ function handleBack() {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.ResidentMainBox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
<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">
|
||||
<el-form ref="queryFormRef" :model="queryParams" @submit.prevent="handleQuery" :inline="true">
|
||||
<el-form ref="queryFormRef" :inline="true" :model="queryParams" @submit.prevent="handleQuery">
|
||||
<el-form-item label="月卡编号" prop="cardCode">
|
||||
<el-input maxlength="12" v-model="queryParams.cardCode" placeholder="请输入月卡编号" clearable @keyup.enter="handleQuery" />
|
||||
<el-input v-model="queryParams.cardCode" clearable maxlength="12" placeholder="请输入月卡编号" @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleQuery">搜索</el-button>
|
||||
@@ -24,8 +24,8 @@
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
:show-add="checkPermi(['monthCard:monthCard:add'])"
|
||||
:show-edit="checkPermi(['monthCard:monthCard:edit'])"
|
||||
:show-delete="checkPermi(['monthCard:monthCard:remove'])"
|
||||
:show-edit="checkPermi(['monthCard:monthCard:edit'])"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -33,42 +33,42 @@
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="monthCardList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="月卡编号" align="center" prop="cardCode" v-if="true" />
|
||||
<el-table-column label="办理时间" align="center" prop="handleTime" width="150">
|
||||
<el-table v-loading="loading" :data="monthCardList" border @selection-change="handleSelectionChange">
|
||||
<el-table-column align="center" type="selection" width="55" />
|
||||
<el-table-column v-if="true" align="center" label="月卡编号" prop="cardCode" />
|
||||
<el-table-column align="center" label="办理时间" prop="handleTime" width="150">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.handleTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="业主" align="center" prop="cardName" width="150" />
|
||||
<el-table-column label="绑定车牌号" align="center" prop="carNum" width="150" />
|
||||
<el-table-column label="剩余有效天数" align="center" prop="handleName" width="120">
|
||||
<el-table-column align="center" label="业主" prop="cardName" width="150" />
|
||||
<el-table-column align="center" label="绑定车牌号" prop="carNum" width="150" />
|
||||
<el-table-column align="center" label="剩余有效天数" prop="handleName" width="120">
|
||||
<template #default="scope">
|
||||
{{ diffDays(scope.row.startTime, scope.row.endTime) }}
|
||||
{{ formatTimeDiff(scope.row.endTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支付方式" align="center" prop="payMethod" width="150">
|
||||
<el-table-column align="center" label="支付方式" prop="payMethod" width="150">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_pay_method" :value="scope.row.payMethod" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" show-overflow-tooltip align="center" prop="remark"></el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column align="center" label="备注" prop="remark" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" class-name="small-padding fixed-width" label="操作">
|
||||
<template #default="scope">
|
||||
<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>
|
||||
<el-button v-has-permi="['monthCard:monthCard:edit']" link type="primary" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-has-permi="['monthCard:monthCard:remove']" link type="primary" @click="handleDelete(scope.row)">删除</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" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改月卡管理对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-dialog v-model="dialog.visible" :title="dialog.title" append-to-body width="500px">
|
||||
<el-form ref="monthCardFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="办理时间" prop="handleTime">
|
||||
<el-date-picker clearable v-model="form.handleTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择办理时间">
|
||||
<el-date-picker v-model="form.handleTime" clearable placeholder="请选择办理时间" type="datetime" value-format="YYYY-MM-DD HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="持卡人姓名" prop="cardName">
|
||||
@@ -96,11 +96,11 @@
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="开始日期" prop="startTime">
|
||||
<el-date-picker clearable v-model="form.startTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始日期">
|
||||
<el-date-picker v-model="form.startTime" clearable placeholder="请选择开始日期" type="datetime" value-format="YYYY-MM-DD HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期" prop="endTime">
|
||||
<el-date-picker clearable v-model="form.endTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束日期">
|
||||
<el-date-picker v-model="form.endTime" clearable placeholder="请选择结束日期" type="datetime" value-format="YYYY-MM-DD HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -114,11 +114,11 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="MonthCard" lang="ts">
|
||||
<script lang="ts" name="MonthCard" setup>
|
||||
import { listMonthCard, delMonthCard, addMonthCard, updateMonthCard } from '@/api/system/MonthCard';
|
||||
import { MonthCardVO, MonthCardQuery, MonthCardForm } from '@/api/system/MonthCard/type';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
import { diffDays } from '@/utils/time';
|
||||
import { diffDays, formatTimeDiff } from '@/utils/time';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_pay_method } = toRefs<any>(proxy?.useDict('com_pay_method'));
|
||||
|
||||
@@ -94,7 +94,6 @@ const rules = {
|
||||
const userid = ref();
|
||||
// ! 富文本 =============================================================================================================
|
||||
function handleContent(val: string) {
|
||||
console.log(val);
|
||||
form.value.noticeContent = val.trim();
|
||||
}
|
||||
// ! 富文本 =============================================================================================================
|
||||
|
||||
@@ -246,7 +246,6 @@ function handleGetMain(id: string) {
|
||||
});
|
||||
dialog.visible = true;
|
||||
dialog.title = '问卷调查回答详情';
|
||||
console.log(form.value);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
<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">
|
||||
<el-form ref="queryFormRef" :rules="rules" :model="queryParams" :inline="true" @submit.prevent="handleQuery">
|
||||
<el-form ref="queryFormRef" :inline="true" :model="queryParams" :rules="rules" @submit.prevent="handleQuery">
|
||||
<el-form-item label="项目名称" prop="itemName">
|
||||
<el-input
|
||||
maxlength="20"
|
||||
v-model.trim="queryParams.itemName"
|
||||
placeholder="请输入项目名称"
|
||||
clearable
|
||||
maxlength="20"
|
||||
placeholder="请输入项目名称"
|
||||
@keyup.enter.prevent="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
@@ -29,9 +29,9 @@
|
||||
<right-toolbar
|
||||
:disable-delete="multiple"
|
||||
:disable-edit="single"
|
||||
:show-edit="checkPermi(['chargeItem:chargeItem:edit'])"
|
||||
:show-add="checkPermi(['chargeItem:chargeItem:add'])"
|
||||
:show-delete="checkPermi(['chargeItem:chargeItem:remove'])"
|
||||
:show-edit="checkPermi(['chargeItem:chargeItem:edit'])"
|
||||
@update:add="handleAdd"
|
||||
@update:edit="handleUpdate()"
|
||||
@update:delete="handleDelete()"
|
||||
@@ -39,65 +39,65 @@
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="chargeItemList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="项目名称" align="center" prop="itemName" />
|
||||
<el-table-column label="计费方式" width="100" align="center" prop="billingType">
|
||||
<el-table v-loading="loading" :data="chargeItemList" border @selection-change="handleSelectionChange">
|
||||
<el-table-column align="center" type="selection" width="55" />
|
||||
<el-table-column align="center" label="项目名称" prop="itemName" />
|
||||
<el-table-column align="center" label="计费方式" prop="billingType" width="100">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_charge_item_method" :value="scope.row.billingType"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计算公式" width="100" align="center" prop="formula">
|
||||
<el-table-column align="center" label="计算公式" prop="formula" width="100">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_charge_item_formula" :value="scope.row.formula"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单价" width="100" align="center" prop="fixedPrice">
|
||||
<el-table-column align="center" label="单价" prop="fixedPrice" width="100">
|
||||
<template #default="scope">
|
||||
{{ scope.row.fixedPrice ?? '---' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计量单位" width="100" align="center" prop="unit">
|
||||
<el-table-column align="center" label="计量单位" prop="unit" width="100">
|
||||
<template #default="scope">
|
||||
<dict-tag v-if="scope.row.unit" :options="com_charge_item_unit" :value="scope.row.unit"></dict-tag>
|
||||
<span v-else>---</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计算精度" width="120" align="center" prop="accuracy">
|
||||
<el-table-column align="center" label="计算精度" prop="accuracy" width="120">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_charge_item_precision" :value="scope.row.accuracy"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进位方式" width="100" align="center" prop="carryMethod">
|
||||
<el-table-column align="center" label="进位方式" prop="carryMethod" width="100">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_charge_item_carry_method" :value="scope.row.carryMethod"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" width="100" align="center" prop="status">
|
||||
<el-table-column align="center" label="状态" prop="status" width="100">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
@change="(val: string) => handleSwitch(val, scope.row)"
|
||||
inactive-value="1"
|
||||
active-value="0"
|
||||
v-model="scope.row.status"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
@change="(val: string) => handleSwitch(val, scope.row)"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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">
|
||||
<el-table-column align="center" label="备注" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column align="center" class-name="small-padding fixed-width" fixed="right" label="操作">
|
||||
<template #default="scope">
|
||||
<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>
|
||||
<el-button v-has-permi="['chargeItem:chargeItem:edit']" link type="primary" @click="handleUpdate(scope.row)">编辑</el-button>
|
||||
<el-button v-has-permi="['chargeItem:chargeItem:remove']" link type="primary" @click="handleDelete(scope.row)">删除</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" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="ChargeItem" lang="ts">
|
||||
<script lang="ts" name="ChargeItem" setup>
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import Pagination from '@/components/Pagination/index.vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
@@ -176,7 +176,6 @@ const getList = async () => {
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryFormRef.value.validate((valid: boolean) => {
|
||||
console.log(valid);
|
||||
if (valid) {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
|
||||
@@ -281,7 +281,6 @@ async function init() {
|
||||
form.value.startDate = res.data.startDate;
|
||||
form.value.endDate = res.data.endDate;
|
||||
StartEndDate.value = [form.value.startDate, form.value.endDate];
|
||||
console.log(form.value);
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -328,7 +327,6 @@ function handleSelect(val: string[]) {
|
||||
const checkoutUser = ref([]);
|
||||
/** 添加 业主 */
|
||||
function handleCheckUser(val: string[]) {
|
||||
console.log(val);
|
||||
checkoutUser.value = val;
|
||||
form.value.residentIds = val;
|
||||
}
|
||||
@@ -336,7 +334,6 @@ const checkoutParking = ref([]);
|
||||
/** 添加 车位业主 */
|
||||
function handleCheckParking(val: string[]) {
|
||||
checkoutParking.value = val;
|
||||
console.log(val);
|
||||
form.value.parkingIds = val;
|
||||
}
|
||||
|
||||
@@ -433,7 +430,6 @@ const submitForm = () => {
|
||||
const endData = new Date(form.value.endDate);
|
||||
|
||||
const diff = endData.getTime() - startData.getTime();
|
||||
console.log(diff);
|
||||
if (diff <= 60 * 60 * 24 * 1000 * 2) {
|
||||
ElMessage.warning('起止日期不足1年');
|
||||
return;
|
||||
|
||||
@@ -182,7 +182,15 @@
|
||||
<span style="padding: 0 10px">优惠:{{ totalAll.totalDiscountAmount }}元</span>
|
||||
<span style="padding: 0 10px">未收:{{ totalAll.TotalUnPaymentAmount }}元</span>
|
||||
</div>
|
||||
<pagination v-show="total > 0" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
v-model:page="queryParams.pageNum"
|
||||
:pageSizes="[10, 20, 30, 50, 100, 200, 300]"
|
||||
:total="total"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-dialog v-model="dialog.visible" :title="dialog.title" append-to-body width="650px">
|
||||
@@ -611,7 +619,6 @@ function getList() {
|
||||
|
||||
function getAllBillAmount() {
|
||||
getAllAccount(queryParams.value).then((res) => {
|
||||
console.log(res);
|
||||
totalAll.value = {
|
||||
totalDiscountAmount: res.data.discountAmount, // 总优惠金额
|
||||
TotalPaymentAmount: res.data.receivedAmount, // 总实收金额
|
||||
@@ -892,7 +899,6 @@ const submitForm = () => {
|
||||
}
|
||||
buttonLoading.value = true;
|
||||
// 部分缴纳时 判断 支付金额 和 预计支付金额 是否相等 ,相等 则 可选择 部分缴纳 方式
|
||||
console.log(totalPayAmount.value, payListAllAmount.value, eqMoney(totalPayAmount.value, payListAllAmount.value), inComeFrom.value.payStatus);
|
||||
if (inComeFrom.value.payStatus === '3') {
|
||||
if (eqMoney(totalPayAmount.value, payListAllAmount.value)) {
|
||||
buttonLoading.value = false;
|
||||
@@ -930,10 +936,6 @@ const submitForm = () => {
|
||||
const router = useRouter();
|
||||
function handleRoute(row: billlistType) {
|
||||
const villageId = localStorage.getItem('villageid');
|
||||
console.log(row);
|
||||
console.log(row.villageId);
|
||||
console.log(row.detailsType);
|
||||
console.log(row.unitNoId);
|
||||
if (row.villageId !== villageId) {
|
||||
ElMessage.warning('非本小区房屋/车位/车辆');
|
||||
return;
|
||||
|
||||
@@ -616,7 +616,6 @@ const handleChangeWater = (val: string, row: WaterDeviceVO) => {};
|
||||
|
||||
function handleUpdate(id: string) {
|
||||
latestRecord(id).then((res) => {
|
||||
console.log('设备最新抄表记录', res);
|
||||
deviceLastRecordform.value = {
|
||||
id: '',
|
||||
deviceCode: '',
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">基本信息</div>
|
||||
<div class="addBuildingFormBody">
|
||||
<el-form class="formBody" ref="formRef" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" class="formBody" label-width="100px">
|
||||
<el-form-item label="楼栋名称" prop="buildingName">
|
||||
<el-input maxlength="6" show-word-limit v-model.trim="form.buildingName" placeholder="请输入楼栋名称">
|
||||
<el-input v-model.trim="form.buildingName" maxlength="6" placeholder="请输入楼栋名称" show-word-limit>
|
||||
<template #append>
|
||||
<span>栋</span>
|
||||
</template>
|
||||
@@ -22,13 +22,13 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="楼高(m)" prop="buildTall">
|
||||
<el-input maxlength="4" v-model.trim="form.buildTall" placeholder="请输入楼高(m)" />
|
||||
<el-input v-model.trim="form.buildTall" maxlength="4" placeholder="请输入楼高(m)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="楼栋结构" prop="buildStructure">
|
||||
<el-input maxlength="30" v-model.trim="form.buildStructure" placeholder="请输入楼栋结构" />
|
||||
<el-input v-model.trim="form.buildStructure" maxlength="30" placeholder="请输入楼栋结构" />
|
||||
</el-form-item>
|
||||
<el-form-item label="楼层" prop="floorCount">
|
||||
<el-input-number :max="200" :min="1" v-model.trim="form.floorCount" placeholder="楼层数" />
|
||||
<el-input-number v-model.trim="form.floorCount" :max="200" :min="1" placeholder="楼层数" />
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-top: 30px">
|
||||
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||
@@ -40,7 +40,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { addBuildingApi, editBuildingApi } from '@/api/system/house';
|
||||
@@ -76,7 +76,6 @@ const rules = ref({
|
||||
{ required: false, message: '请输入楼高', trigger: 'blur' },
|
||||
{
|
||||
validator: (_: any, val: string | number, callback: (arg0?: Error) => void) => {
|
||||
console.log('val', val);
|
||||
if (val === '') {
|
||||
return callback();
|
||||
}
|
||||
@@ -102,7 +101,6 @@ if (buildingId) {
|
||||
function getBuildingById() {
|
||||
houseStore.currentBuildingInfoList.forEach((item) => {
|
||||
if (item.id == buildingId) {
|
||||
console.log(item);
|
||||
form.value.buildingName = item.buildingName;
|
||||
form.value.buildToward = item.buildToward;
|
||||
// form.value.buildingUse = item.buildingUse;
|
||||
@@ -155,7 +153,7 @@ function goBack() {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.BackBox {
|
||||
width: 100px;
|
||||
height: 45px;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">基本信息</div>
|
||||
<div class="addBuildingFormBody">
|
||||
<el-form class="formBody" label-position="right" ref="formRef" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" class="formBody" label-position="right" label-width="100px">
|
||||
<el-form-item label="楼栋" prop="buildingId">
|
||||
<el-select @change="handlechangeBuild" v-model="form.buildingId" placeholder="请选择">
|
||||
<el-select v-model="form.buildingId" placeholder="请选择" @change="handleChangeBuild">
|
||||
<el-option v-for="item in houseStore.currentBuildingInfoList" :key="item.id" :label="item.buildingName" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -16,7 +16,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单元" prop="unitNoId">
|
||||
<el-select @change="changeUnitNo" v-model="form.unitNoId" placeholder="请选择">
|
||||
<el-select v-model="form.unitNoId" placeholder="请选择" @change="changeUnitNo">
|
||||
<el-option v-for="item in units" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -26,44 +26,44 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="房间号" prop="houseNo">
|
||||
<el-input maxlength="15" v-model.trim="form.houseNo" placeholder="请输入房间号" />
|
||||
<el-input v-model.trim="form.houseNo" maxlength="15" placeholder="请输入房间号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="建筑面积" prop="houseArea">
|
||||
<div class="unitBox flex align-center">
|
||||
<el-input maxlength="8" v-model.trim.number="form.houseArea" placeholder="请输入建筑面积" />
|
||||
<el-input v-model.trim.number="form.houseArea" maxlength="8" placeholder="请输入建筑面积" />
|
||||
<span>㎡</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="套内面积" prop="internalArea">
|
||||
<div class="unitBox flex align-center">
|
||||
<el-input maxlength="8" v-model.trim.number="form.internalArea" placeholder="请输入套内面积" />
|
||||
<el-input v-model.trim.number="form.internalArea" maxlength="8" placeholder="请输入套内面积" />
|
||||
<span>㎡</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="公摊面积" prop="shareArea">
|
||||
<div class="unitBox flex align-center">
|
||||
<el-input maxlength="8" v-model.trim.number="form.shareArea" placeholder="请输入公摊面积" />
|
||||
<el-input v-model.trim.number="form.shareArea" maxlength="8" placeholder="请输入公摊面积" />
|
||||
<span>㎡</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="房屋户型">
|
||||
<div class="houseTypebox">
|
||||
<el-input maxlength="3" v-model.trim="housetype[0]" placeholder="房间" @change="changeHouseType($event, 0)" />
|
||||
<el-input v-model.trim="houseType[0]" maxlength="3" placeholder="房间" @change="changeHouseType($event, 0)" />
|
||||
<span>室</span>
|
||||
<el-input maxlength="3" v-model.trim="housetype[1]" placeholder="客厅" @change="changeHouseType($event, 1)" />
|
||||
<el-input v-model.trim="houseType[1]" maxlength="3" placeholder="客厅" @change="changeHouseType($event, 1)" />
|
||||
<span>厅</span>
|
||||
<el-input maxlength="3" v-model.trim="housetype[2]" placeholder="卫生间" @change="changeHouseType($event, 2)" />
|
||||
<el-input v-model.trim="houseType[2]" maxlength="3" placeholder="卫生间" @change="changeHouseType($event, 2)" />
|
||||
<span>卫</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="车位号" prop="parkingIds">
|
||||
<el-select multiple v-model="form.parkingIds" class="m-2" placeholder="请选择车位号">
|
||||
<el-option v-for="(item, index) in parkinglist" :key="index" :label="item.parkingName" :value="item.id" />
|
||||
<el-select v-model="form.parkingIds" class="m-2" multiple placeholder="请选择车位号">
|
||||
<el-option v-for="(item, index) in parkingList" :key="index" :label="item.parkingName" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="储藏室" prop="storeroomId">
|
||||
<el-select v-model="form.storeroomId" class="m-2" placeholder="请选择储藏室">
|
||||
<el-option v-for="(item, index) in storeRoomlist" :key="index" :label="item.storeroomName" :value="item.id" />
|
||||
<el-option v-for="(item, index) in storeRoomList" :key="index" :label="item.storeroomName" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-top: 30px">
|
||||
@@ -76,7 +76,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { useHouseStore } from '@/store/modules/house';
|
||||
@@ -194,51 +194,51 @@ const rules = ref({
|
||||
}
|
||||
]
|
||||
});
|
||||
const housetype = ref([]);
|
||||
const houseType = ref([]);
|
||||
const units = ref([]);
|
||||
const floors = ref([]);
|
||||
|
||||
const houseid = ref(null);
|
||||
const houseId = ref(null);
|
||||
|
||||
// 车位列表
|
||||
const parkinglist = ref([]);
|
||||
const parkingList = ref([]);
|
||||
// 储藏室列表
|
||||
const storeRoomlist = ref([]);
|
||||
const storeRoomList = ref([]);
|
||||
|
||||
const queryChangestore = ref({
|
||||
const queryChangeStore = ref({
|
||||
// buildingId
|
||||
buildingId: null,
|
||||
// unitno,
|
||||
// unitNo,
|
||||
unitNoId: null
|
||||
});
|
||||
const villageid = localStorage.getItem('villageid');
|
||||
async function init() {
|
||||
if (route.query.id) {
|
||||
houseid.value = route.query.id;
|
||||
houseId.value = route.query.id;
|
||||
}
|
||||
await nextTick(() => geteditinfo());
|
||||
await nextTick(() => getEditInfo());
|
||||
}
|
||||
init();
|
||||
|
||||
const houseUseTypeList = ref([]);
|
||||
async function geteditinfo() {
|
||||
async function getEditInfo() {
|
||||
listHouseUseType_add_house().then((res) => {
|
||||
houseUseTypeList.value = res.data;
|
||||
});
|
||||
// 车位列表 = 当前房屋绑定车位 + 无人绑定车位
|
||||
GetVillageListParking(villageid, houseid.value).then((res) => {
|
||||
parkinglist.value = res.data;
|
||||
GetVillageListParking(villageid, houseId.value).then((res) => {
|
||||
parkingList.value = res.data;
|
||||
});
|
||||
GetVillagelistStoreroom({
|
||||
...queryChangestore.value,
|
||||
...queryChangeStore.value,
|
||||
villageid: villageid,
|
||||
houseId: houseid.value
|
||||
houseId: houseId.value
|
||||
}).then((res) => {
|
||||
storeRoomlist.value = res.data.filter((item) => item);
|
||||
storeRoomList.value = res.data.filter((item) => item);
|
||||
});
|
||||
|
||||
if (route.query.id) {
|
||||
getHouseApi(houseid.value).then((res) => {
|
||||
getHouseApi(houseId.value).then((res) => {
|
||||
form.value = {
|
||||
...form.value,
|
||||
buildingId: res.data.buildingId, // 楼栋id
|
||||
@@ -253,19 +253,19 @@ async function geteditinfo() {
|
||||
houseUseTypeId: res.data.houseUseTypeId,
|
||||
shareArea: res.data.shareArea // 公摊面积
|
||||
};
|
||||
housetype.value = res.data.houseType ? res.data.houseType.split('') : [];
|
||||
queryChangestore.value.buildingId = form.value.buildingId;
|
||||
houseType.value = res.data.houseType ? res.data.houseType.split('') : [];
|
||||
queryChangeStore.value.buildingId = form.value.buildingId;
|
||||
changeBuild(res.data.buildingId);
|
||||
});
|
||||
}
|
||||
}
|
||||
// 选择楼栋
|
||||
function handlechangeBuild(id: string) {
|
||||
queryChangestore.value.buildingId = id;
|
||||
function handleChangeBuild(id: string) {
|
||||
queryChangeStore.value.buildingId = id;
|
||||
form.value.unitNoId = '';
|
||||
form.value.floorNo = '';
|
||||
changeBuild(id);
|
||||
getStoreRoomlist();
|
||||
getStoreRoomList();
|
||||
}
|
||||
|
||||
function changeBuild(id: string) {
|
||||
@@ -291,20 +291,20 @@ function changeBuild(id: string) {
|
||||
function changeUnitNo(id: string) {
|
||||
form.value.unitNoId = '';
|
||||
form.value.unitNoId = id;
|
||||
queryChangestore.value.unitNoId = id;
|
||||
queryChangeStore.value.unitNoId = id;
|
||||
form.value.floorNo = '';
|
||||
getStoreRoomlist();
|
||||
getStoreRoomList();
|
||||
}
|
||||
|
||||
// 查询储藏室列表
|
||||
function getStoreRoomlist() {
|
||||
function getStoreRoomList() {
|
||||
GetVillagelistStoreroom({
|
||||
...queryChangestore.value,
|
||||
...queryChangeStore.value,
|
||||
villageid: villageid
|
||||
}).then((res) => {
|
||||
form.value.storeroomId = '';
|
||||
storeRoomlist.value = [];
|
||||
storeRoomlist.value = res.data;
|
||||
storeRoomList.value = [];
|
||||
storeRoomList.value = res.data;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -312,21 +312,34 @@ function getStoreRoomlist() {
|
||||
function changeHouseType(val: string, index: number) {
|
||||
const num = Number(val);
|
||||
if (Number.isNaN(num)) {
|
||||
housetype.value[index] = '0';
|
||||
houseType.value[index] = '0';
|
||||
} else {
|
||||
housetype.value[index] = num.toFixed(0);
|
||||
houseType.value[index] = num.toFixed(0);
|
||||
}
|
||||
}
|
||||
|
||||
const submitForm = () => {
|
||||
const houseArea = Number(form.value.houseArea) ?? 0;
|
||||
if (houseArea <= 0) {
|
||||
ElMessage.warning('建筑面积不能为0');
|
||||
return;
|
||||
}
|
||||
const shareArea = Number(form.value.shareArea) ?? 0;
|
||||
const internalArea = Number(form.value.internalArea) ?? 0;
|
||||
// 有 公摊面积 / 房屋面积
|
||||
if (shareArea || internalArea) {
|
||||
if (shareArea + internalArea !== Number(form.value.houseArea)) {
|
||||
return ElMessage.warning('您填写的【套内面积】+【公摊面积】计算结果,和【建筑面积】不相等');
|
||||
}
|
||||
}
|
||||
formRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
const data = {
|
||||
...form.value,
|
||||
houseType: housetype.value.join(''),
|
||||
houseType: houseType.value.join(''),
|
||||
villageId: houseStore.currentBuildingInfo.villageId
|
||||
};
|
||||
if (houseid.value) {
|
||||
if (houseId.value) {
|
||||
EditHouseApi(data).then(() => {
|
||||
ElMessage.success('修改成功');
|
||||
houseStore.updateCureentBuilding();
|
||||
@@ -353,7 +366,7 @@ const cancelForm = () => {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.AddBuildingBox {
|
||||
padding: 15px;
|
||||
height: 100%;
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">
|
||||
<span>基本信息</span>
|
||||
<el-button v-has-permi="['system:house:edit']" type="primary" text v-if="HouseInfo.house" @click="editHouse">编辑</el-button>
|
||||
<el-button v-if="HouseInfo.house" v-has-permi="['system:house:edit']" text type="primary" @click="editHouse">编辑</el-button>
|
||||
</div>
|
||||
<div class="addBuildingFormBody" v-if="HouseInfo.house">
|
||||
<div v-if="HouseInfo.house" class="addBuildingFormBody">
|
||||
<div class="descriptionsbox">
|
||||
<div class="label">房号:</div>
|
||||
<div class="value">{{ HouseInfo.house?.houseNo ?? '--' }}</div>
|
||||
<div class="value">{{ HouseInfo.house?.buildingName }}-{{ HouseInfo.house?.unitNoName }}-{{ HouseInfo.house?.houseNo ?? '--' }}</div>
|
||||
</div>
|
||||
<div class="descriptionsbox">
|
||||
<div class="label">所属小区:</div>
|
||||
@@ -31,6 +31,10 @@
|
||||
<div class="label">建筑面积:</div>
|
||||
<div class="value">{{ HouseInfo.house?.houseArea ? `${HouseInfo.house?.houseArea} ㎡` : '--' }}</div>
|
||||
</div>
|
||||
<div class="descriptionsbox">
|
||||
<div class="label">套内面积:</div>
|
||||
<div class="value">{{ HouseInfo.house?.internalArea ? `${HouseInfo.house?.internalArea} ㎡` : '--' }}</div>
|
||||
</div>
|
||||
<div class="descriptionsbox">
|
||||
<div class="label">公摊面积:</div>
|
||||
<div class="value">{{ HouseInfo.house?.shareArea ? `${HouseInfo.house?.shareArea} ㎡` : '--' }}</div>
|
||||
@@ -52,9 +56,9 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">
|
||||
<span>储藏室信息 </span>
|
||||
<el-button v-has-permi="['storeroom:storeroom:edit']" type="primary" text v-if="HouseInfo.storeroom" @click="editStoreRoom">编辑</el-button>
|
||||
<el-button v-if="HouseInfo.storeroom" v-has-permi="['storeroom:storeroom:edit']" text type="primary" @click="editStoreRoom">编辑</el-button>
|
||||
</div>
|
||||
<div class="" v-if="HouseInfo.storeroom">
|
||||
<div v-if="HouseInfo.storeroom" class="">
|
||||
<div class="addBuildingFormBody">
|
||||
<div class="descriptionsbox">
|
||||
<div class="label">楼栋:</div>
|
||||
@@ -95,32 +99,32 @@
|
||||
<div class="title">
|
||||
<span>车位信息</span>
|
||||
</div>
|
||||
<div class="" v-if="HouseInfo.parkingList.length > 0">
|
||||
<div v-if="HouseInfo.parkingList.length > 0" class="">
|
||||
<el-table :data="HouseInfo.parkingList">
|
||||
<el-table-column align="center" prop="areaName" label="区域" />
|
||||
<el-table-column align="center" prop="parkingCode" label="车位编号" />
|
||||
<el-table-column align="center" width="100" prop="parkingArea" label="车位面积">
|
||||
<el-table-column align="center" label="区域" prop="areaName" />
|
||||
<el-table-column align="center" label="车位编号" prop="parkingCode" />
|
||||
<el-table-column align="center" label="车位面积" prop="parkingArea" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.parkingArea ?? '--' }} /㎡</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" width="50" prop="parkingFloor" label="楼层" />
|
||||
<el-table-column align="center" width="100" prop="type" label="车位类型">
|
||||
<el-table-column align="center" label="楼层" prop="parkingFloor" width="50" />
|
||||
<el-table-column align="center" label="车位类型" prop="type" width="100">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_parking_type" :value="scope.row.type"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" width="100" prop="parkingStatus" label="车位状态">
|
||||
<el-table-column align="center" label="车位状态" prop="parkingStatus" width="100">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_parking_status" :value="scope.row.parkingStatus"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="residentName" label="持有人">
|
||||
<el-table-column align="center" label="持有人" prop="residentName">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleEditUser(scope.row.residentId)">{{ scope.row.residentName }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" show-overflow-tooltip prop="remark" label="备注" />
|
||||
<el-table-column align="center" label="备注" prop="remark" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else class="w-full h-full flex flex-center min-h-4rem">
|
||||
@@ -134,25 +138,24 @@
|
||||
</div>
|
||||
<div>
|
||||
<el-table :data="HouseInfo.chargeItemList" style="width: 100%">
|
||||
<el-table-column prop="itemName" label="收费项目" />
|
||||
<el-table-column prop="name" label="收费标准">
|
||||
<el-table-column label="收费项目" prop="itemName" />
|
||||
<el-table-column label="收费标准" prop="name">
|
||||
<template #default="scope">
|
||||
<div class="flex">
|
||||
<span>{{ scope.row.fixedPrice }}</span>
|
||||
<span v-if="scope.row.fixedPrice && scope.row.unit">/</span>
|
||||
<span v-else>---</span>
|
||||
|
||||
<dict-tag :options="com_charge_item_unit" :value="scope.row.unit"></dict-tag>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="开始时间" />
|
||||
<el-table-column prop="name" label="结束时间">
|
||||
<el-table-column label="开始时间" prop="createTime" />
|
||||
<el-table-column label="结束时间" prop="name">
|
||||
<template #default>
|
||||
<span>---</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注" />
|
||||
<el-table-column label="备注" prop="remark" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -163,19 +166,19 @@
|
||||
</div>
|
||||
<div>
|
||||
<el-table :data="HouseInfo.residentList" style="width: 100%">
|
||||
<el-table-column prop="residentName" label="姓名" />
|
||||
<el-table-column prop="gender" label="性别">
|
||||
<el-table-column label="姓名" prop="residentName" />
|
||||
<el-table-column label="性别" prop="gender">
|
||||
<template #default="scope">
|
||||
<DictTag :options="sys_user_sex" :value="scope.row.gender"></DictTag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="phone" label="联系电话" />
|
||||
<el-table-column prop="ownerRelationship" label="身份">
|
||||
<el-table-column label="联系电话" prop="phone" />
|
||||
<el-table-column label="身份" prop="ownerRelationship">
|
||||
<template #default="scope">
|
||||
<DictTag :options="com_resident_relationship" :value="scope.row.ownerRelationship"></DictTag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="备注" />
|
||||
<el-table-column label="备注" prop="name" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -186,19 +189,19 @@
|
||||
</div>
|
||||
<div>
|
||||
<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="账单项目" />
|
||||
<el-table-column prop="money" label="金额">
|
||||
<el-table-column label="账单编号" prop="billCode" />
|
||||
<el-table-column label="账单名称" prop="billName" />
|
||||
<el-table-column label="账单项目" prop="chargeTypeName" />
|
||||
<el-table-column label="金额" prop="money">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.chargeTypeName === '水费' || scope.row.chargeTypeName === '电费'">--</span>
|
||||
<span v-else>{{ scope.row.money }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="payStatus" label="支付状态">
|
||||
<el-table-column label="支付状态" prop="payStatus">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.chargeTypeName === '水费' || scope.row.chargeTypeName === '电费'">--</span>
|
||||
<DictTag :options="com_pay_status" :value="scope.row.payStatus"></DictTag>
|
||||
<DictTag :options="com_pay_status" :value="scope.row.payStatus ?? 0"></DictTag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -207,7 +210,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import DictTag from '@/components/DictTag/index.vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
@@ -251,7 +254,8 @@ function editStoreRoom() {
|
||||
|
||||
function handleEditUser(id: string) {
|
||||
router.push({
|
||||
path: '/house/editResident',
|
||||
// path: '/house/editResident',
|
||||
path: '/house/ResidentMain',
|
||||
query: {
|
||||
id: id
|
||||
}
|
||||
@@ -268,7 +272,7 @@ function init() {
|
||||
init();
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.AddBuildingBox {
|
||||
padding: 15px;
|
||||
height: 100%;
|
||||
|
||||
@@ -358,9 +358,13 @@ function handleChange(val: CascaderValue) {
|
||||
form.value.houseId = val[2];
|
||||
if (val[2]) {
|
||||
getHouseOwnUser(val[2]).then((res) => {
|
||||
if (res.msg && res.msg.trim()) {
|
||||
form.value.rentalName = res.msg.trim();
|
||||
if (res.data) {
|
||||
form.value.rentalName = res.data.ownerName ?? '';
|
||||
form.value.houseArea = res.data.houseArea;
|
||||
form.value.floorNo = res.data.floorNo;
|
||||
} else {
|
||||
form.value.floorNo = undefined;
|
||||
form.value.houseArea = undefined;
|
||||
form.value.rentalName = undefined;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -424,7 +424,6 @@ function sign(row: HouseRentalVO) {
|
||||
const list = row.signingList[0].contractUrl ? row.signingList[0].contractUrl.split(',') : [];
|
||||
if (list.length > 0) {
|
||||
showImgList.value = list.map((item, index) => {
|
||||
console.log(names[index]);
|
||||
return {
|
||||
uid: index,
|
||||
name: names[index] || (item ? item.split('.com/')[1].split('/')[3] : ''),
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
<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">
|
||||
<el-form ref="queryFormRef" :model="queryParams" @submit.prevent="handleQuery" :inline="true">
|
||||
<el-form ref="queryFormRef" :inline="true" :model="queryParams" @submit.prevent="handleQuery">
|
||||
<el-form-item label="选择日期" prop="statDate">
|
||||
<el-date-picker
|
||||
v-model="starDate"
|
||||
type="daterange"
|
||||
unlink-panels
|
||||
range-separator="到"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
format="YYYY/MM/DD"
|
||||
range-separator="到"
|
||||
start-placeholder="开始日期"
|
||||
type="daterange"
|
||||
unlink-panels
|
||||
value-format="YYYY/MM/DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
@@ -40,22 +40,22 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-table v-loading="loading" border row-key="id" :data="itemList" @selectionChange="handleChange">
|
||||
<el-table v-loading="loading" :data="itemList" border row-key="id" @selectionChange="handleChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="日期" width="100" align="center" prop="statDate" />
|
||||
<el-table-column label="计划巡检任务" width="120" align="center" prop="totalPlans" />
|
||||
<el-table-column label="按时完成" align="center" prop="completedTasks" />
|
||||
<el-table-column label="超时完成" align="center" prop="outCompletedTasks" />
|
||||
<el-table-column label="超时未完成" align="center" prop="outUncompletedTasks" />
|
||||
<el-table-column label="进行中" align="center" prop="activeTask" />
|
||||
<el-table-column label="未开始" align="center" prop="pendingTask" />
|
||||
<el-table-column align="center" label="日期" prop="statDate" width="100" />
|
||||
<el-table-column align="center" label="计划巡检任务" prop="totalPlans" width="120" />
|
||||
<el-table-column align="center" label="按时完成" prop="completedTasks" />
|
||||
<el-table-column align="center" label="超时完成" prop="outCompletedTasks" />
|
||||
<el-table-column align="center" label="超时未完成" prop="outUncompletedTasks" />
|
||||
<el-table-column align="center" label="进行中" prop="activeTask" />
|
||||
<el-table-column align="center" label="未开始" prop="pendingTask" />
|
||||
</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" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Item" lang="ts">
|
||||
<script lang="ts" name="Item" setup>
|
||||
import { listItem } from '@/api/system/Inspection';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@@ -135,7 +135,6 @@ function handleChange(val) {
|
||||
const exportChecked = () => {
|
||||
if (multipleSelection.value.length > 0) {
|
||||
const listValue = multipleSelection.value.map((item) => item.id);
|
||||
console.log(listValue);
|
||||
proxy?.download(
|
||||
'/inspection/data/export/selected',
|
||||
{
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
<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">
|
||||
<el-form ref="queryFormRef" :model="queryParams" @submit.prevent="handleQuery" :inline="true">
|
||||
<el-form ref="queryFormRef" :inline="true" :model="queryParams" @submit.prevent="handleQuery">
|
||||
<el-form-item label="选择日期" prop="itemName">
|
||||
<el-date-picker
|
||||
v-model="starDate"
|
||||
type="daterange"
|
||||
unlink-panels
|
||||
range-separator="到"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
format="YYYY/MM/DD"
|
||||
range-separator="到"
|
||||
start-placeholder="开始日期"
|
||||
type="daterange"
|
||||
unlink-panels
|
||||
value-format="YYYY/MM/DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
@@ -41,22 +41,22 @@
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="itemList" @selectionChange="handleChange">
|
||||
<el-table v-loading="loading" :data="itemList" border @selectionChange="handleChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="日期" width="100" align="center" prop="statDate" />
|
||||
<el-table-column label="计划巡检任务" width="120" align="center" prop="totalPlans" />
|
||||
<el-table-column label="按时完成" align="center" prop="completedTasks" />
|
||||
<el-table-column label="超时完成" align="center" prop="outCompletedTasks" />
|
||||
<el-table-column label="超时未完成" align="center" prop="outUncompletedTasks" />
|
||||
<el-table-column label="进行中" align="center" prop="activeTask" />
|
||||
<el-table-column label="未开始" align="center" prop="pendingTask" />
|
||||
<el-table-column align="center" label="日期" prop="statDate" width="100" />
|
||||
<el-table-column align="center" label="计划巡检任务" prop="totalPlans" width="120" />
|
||||
<el-table-column align="center" label="按时完成" prop="completedTasks" />
|
||||
<el-table-column align="center" label="超时完成" prop="outCompletedTasks" />
|
||||
<el-table-column align="center" label="超时未完成" prop="outUncompletedTasks" />
|
||||
<el-table-column align="center" label="进行中" prop="activeTask" />
|
||||
<el-table-column align="center" label="未开始" prop="pendingTask" />
|
||||
</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" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Item" lang="ts">
|
||||
<script lang="ts" name="Item" setup>
|
||||
import { listItem } from '@/api/system/Inspection';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const itemList = ref<any[]>([]);
|
||||
@@ -134,7 +134,6 @@ function handleChange(val) {
|
||||
const exportChecked = () => {
|
||||
if (multipleSelection.value.length > 0) {
|
||||
const listValue = multipleSelection.value.map((item) => item.id);
|
||||
console.log(listValue);
|
||||
proxy?.download(
|
||||
'/inspection/data/export/selected',
|
||||
{
|
||||
|
||||
@@ -142,9 +142,7 @@ const date = ref<string | null>(null);
|
||||
const setDefaultDate = () => {
|
||||
const today = new Date();
|
||||
today.setHours(0, 0, 0, 0);
|
||||
console.log(!form.value.taskTime);
|
||||
if (!form.value.taskTime) {
|
||||
console.log('date', formatDate(today, 'YYYY-MM-DD'));
|
||||
date.value = formatDate(today, 'YYYY-MM-DD');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
<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">
|
||||
<el-form ref="queryFormRef" :model="queryParams" @submit.prevent="handleQuery" :inline="true">
|
||||
<el-form ref="queryFormRef" :inline="true" :model="queryParams" @submit.prevent="handleQuery">
|
||||
<el-form-item label="选择日期" prop="itemName">
|
||||
<el-date-picker
|
||||
v-model="starDate"
|
||||
type="daterange"
|
||||
unlink-panels
|
||||
range-separator="到"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
format="YYYY/MM/DD"
|
||||
range-separator="到"
|
||||
start-placeholder="开始日期"
|
||||
type="daterange"
|
||||
unlink-panels
|
||||
value-format="YYYY/MM/DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
@@ -41,22 +41,22 @@
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="itemList" @selectionChange="handleChange">
|
||||
<el-table v-loading="loading" :data="itemList" border @selectionChange="handleChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="日期" width="120" align="center" prop="statDate" />
|
||||
<el-table-column label="计划巡检任务" width="120" align="center" prop="totalPlans" />
|
||||
<el-table-column label="按时完成" align="center" prop="completedTasks" />
|
||||
<el-table-column label="超时完成" align="center" prop="outCompletedTasks" />
|
||||
<el-table-column label="超时未完成" align="center" prop="outUncompletedTasks" />
|
||||
<el-table-column label="进行中" align="center" prop="activeTask" />
|
||||
<el-table-column label="未开始" align="center" prop="pendingTask" />
|
||||
<el-table-column align="center" label="日期" prop="statDate" width="120" />
|
||||
<el-table-column align="center" label="计划巡检任务" prop="totalPlans" width="120" />
|
||||
<el-table-column align="center" label="按时完成" prop="completedTasks" />
|
||||
<el-table-column align="center" label="超时完成" prop="outCompletedTasks" />
|
||||
<el-table-column align="center" label="超时未完成" prop="outUncompletedTasks" />
|
||||
<el-table-column align="center" label="进行中" prop="activeTask" />
|
||||
<el-table-column align="center" label="未开始" prop="pendingTask" />
|
||||
</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" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Item" lang="ts">
|
||||
<script lang="ts" name="Item" setup>
|
||||
import { listItem } from '@/api/system/Inspection';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@@ -139,7 +139,6 @@ function handleChange(val) {
|
||||
const exportChecked = () => {
|
||||
if (multipleSelection.value.length > 0) {
|
||||
const listValue = multipleSelection.value.map((item) => item.id);
|
||||
console.log(listValue);
|
||||
proxy?.download(
|
||||
'/inspection/data/export/selected',
|
||||
{
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">基本信息</div>
|
||||
<div class="addBuildingFormBody">
|
||||
<el-form class="formBody" label-position="left" ref="formRef" :model="form" :rules="rules" label-width="130px">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" class="formBody" label-position="left" label-width="130px">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="区域" prop="areaId">
|
||||
<el-select v-model="form.areaId" placeholder="请选择" clearable>
|
||||
<el-select v-model="form.areaId" clearable placeholder="请选择">
|
||||
<el-option v-for="dict in areaList" :key="dict.value" :label="`${dict.areaName}(${dict.areaCode})`" :value="dict.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -16,20 +16,20 @@
|
||||
<el-col :span="2"></el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="车位编号" prop="parkingCode">
|
||||
<el-input maxlength="20" v-model.trim="form.parkingCode" placeholder="请输入车位编号" />
|
||||
<el-input v-model.trim="form.parkingCode" maxlength="20" placeholder="请输入车位编号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="车位面积" prop="parkingArea">
|
||||
<el-input maxlength="8" v-model.number="form.parkingArea" placeholder="请输入车位面积" />
|
||||
<el-input v-model.number="form.parkingArea" maxlength="8" placeholder="请输入车位面积" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="2"></el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="所属楼层" prop="parkingFloor">
|
||||
<el-input maxlength="5" v-model.number="form.parkingFloor" placeholder="请输入所属楼层" />
|
||||
<el-input v-model.number="form.parkingFloor" maxlength="5" placeholder="请输入所属楼层" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -44,7 +44,7 @@
|
||||
<el-col :span="2"></el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="车位状态" prop="parkingStatus">
|
||||
<el-select v-model="form.parkingStatus" placeholder="请选择" clearable>
|
||||
<el-select v-model="form.parkingStatus" clearable placeholder="请选择">
|
||||
<el-option v-for="dict in com_parking_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -63,23 +63,23 @@
|
||||
<el-row v-if="form.contactType === 0">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="联系人名称" prop="contactName">
|
||||
<el-input maxlength="20" v-model.trim="form.contactName"></el-input>
|
||||
<el-input v-model.trim="form.contactName" maxlength="20"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="2"></el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="联系人电话" prop="contactPhone">
|
||||
<el-input maxlength="11" v-model.trim="form.contactPhone"></el-input>
|
||||
<el-input v-model.trim="form.contactPhone" maxlength="11"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-else>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="持有人" prop="residentId">
|
||||
<Holder :isMultiple="false" :userid="form.residentId ?? ''" ref="HolderRef" @change="handleChange">
|
||||
<Holder ref="HolderRef" :isMultiple="false" :userid="form.residentId ?? ''" @change="handleChange">
|
||||
<template #default>
|
||||
<div class="residentBox" @click="choiceResidentFun">
|
||||
<div class="defaultBox" v-if="form.residentId == null || form.residentId === ''">
|
||||
<div v-if="form.residentId == null || form.residentId === ''" class="defaultBox">
|
||||
<span>请选择</span>
|
||||
<el-icon><Search /></el-icon>
|
||||
</div>
|
||||
@@ -95,7 +95,7 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input type="textarea" maxlength="200" show-word-limit :rows="5" v-model.trim="form.remark" placeholder="请输入" />
|
||||
<el-input v-model.trim="form.remark" :rows="5" maxlength="200" placeholder="请输入" show-word-limit type="textarea" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -109,7 +109,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import Holder from '@/components/Holder/index.vue';
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
@@ -261,9 +261,7 @@ function handleChange(pop) {
|
||||
// !== 提交 =============================================================================
|
||||
// 提交
|
||||
const submitForm = () => {
|
||||
console.log(form.value);
|
||||
formRef.value?.validate(async (valid: boolean) => {
|
||||
console.log(valid);
|
||||
if (valid) {
|
||||
if (userid.value) {
|
||||
updateParking(form.value).then(() => {
|
||||
@@ -285,7 +283,7 @@ const cancelForm = () => {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.AddBuildingBox {
|
||||
padding: 15px;
|
||||
height: 100%;
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<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">
|
||||
<el-form ref="queryFormRef" :model="queryParams" @submit.prevent="handleQuery" :inline="true">
|
||||
<el-form ref="queryFormRef" :inline="true" :model="queryParams" @submit.prevent="handleQuery">
|
||||
<div class="flex justify-between">
|
||||
<div>
|
||||
<el-form-item label="小区" prop="villageId">
|
||||
<el-select @change="handleVillageChange" v-model="queryParams.villageId" placeholder="请选择">
|
||||
<el-select v-model="queryParams.villageId" placeholder="请选择" @change="handleVillageChange">
|
||||
<el-option v-for="item in villageList" :key="item.villageId" :label="item.villageName" :value="item.villageId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -33,15 +33,15 @@
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never" class="flex-1">
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" style="margin-bottom: 30px">
|
||||
<el-col :span="5">
|
||||
<div class="flex items-center">
|
||||
<div style="width: 200px; font-size: 15px; margin-right: 10px">应收欠费汇总列表</div>
|
||||
<el-select @change="handleViewTypeChange" v-model="queryParams.viewType" placeholder="请选择视图类型">
|
||||
<el-option label="维度1(按收费类型)" :value="1" />
|
||||
<el-option label="维度2(按房屋类型)" :value="2" />
|
||||
<el-select v-model="queryParams.viewType" placeholder="请选择视图类型" @change="handleViewTypeChange">
|
||||
<el-option :value="1" label="维度1(按收费类型)" />
|
||||
<el-option :value="2" label="维度2(按房屋类型)" />
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
@@ -54,15 +54,15 @@
|
||||
|
||||
<el-table
|
||||
:key="queryParams.viewType"
|
||||
v-loading="loading"
|
||||
:data="ArrearsList"
|
||||
:row-class-name="handleRowClass"
|
||||
:span-method="mergeSpanMethod"
|
||||
v-loading="loading"
|
||||
border
|
||||
:data="ArrearsList"
|
||||
>
|
||||
<el-table-column label="小区" align="center" prop="villageName" />
|
||||
<el-table-column align="center" label="小区" prop="villageName" />
|
||||
<template v-if="queryParams.viewType === 1">
|
||||
<el-table-column label="收费项目" align="center" prop="chargeItemName" />
|
||||
<el-table-column align="center" label="收费项目" prop="chargeItemName" />
|
||||
<el-table-column v-for="(item, index) in houseTypeKeys" :key="index" :label="item" align="center">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.houseTypeAmounts?.[item] || '---' }}</span>
|
||||
@@ -70,21 +70,21 @@
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template v-if="queryParams.viewType === 2">
|
||||
<el-table-column label="房屋类型" align="center" prop="houseTypeName" />
|
||||
<el-table-column align="center" label="房屋类型" prop="houseTypeName" />
|
||||
<el-table-column v-for="(item, index) in houseTypeKeys2" :key="index" :label="item" align="center">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.chargeItemAmounts?.[item] || '---' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<el-table-column label="金额" align="center" prop="totalAmount" />
|
||||
<el-table-column align="center" label="金额" prop="totalAmount" />
|
||||
</el-table>
|
||||
<!-- <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="Arrears" lang="ts">
|
||||
<script lang="ts" name="Arrears" setup>
|
||||
// import pagination from '@/components/Pagination/index.vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getArrearsList } from '@/api/system/report/arrears/arrears';
|
||||
@@ -312,7 +312,6 @@ const handleExport = () => {
|
||||
}
|
||||
return obj;
|
||||
});
|
||||
console.log(processedData, columns);
|
||||
const mergeSpanMethod = ({ row, columnIndex, rowIndex }) => {
|
||||
const lastRowIndex = ArrearsList.value.length - 1;
|
||||
if (rowIndex === lastRowIndex) {
|
||||
|
||||
@@ -141,7 +141,6 @@ const getList = async () => {
|
||||
});
|
||||
getPaidInExpensesList(search)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
ArrearsDetailList.value = [res.data.total, ...res.data.details];
|
||||
rowChargeTypesList.value = res.data.chargeTypes;
|
||||
})
|
||||
|
||||
@@ -5,26 +5,26 @@
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
<el-form
|
||||
:rules="formRules"
|
||||
label-width="180px"
|
||||
label-position="right"
|
||||
ref="queryFormRef"
|
||||
:model="queryParams"
|
||||
@submit.prevent="handleQuery"
|
||||
:inline="true"
|
||||
:model="queryParams"
|
||||
:rules="formRules"
|
||||
label-position="right"
|
||||
label-width="180px"
|
||||
@submit.prevent="handleQuery"
|
||||
>
|
||||
<div>
|
||||
<el-form-item label="日期" prop="payTime">
|
||||
<el-date-picker
|
||||
v-model="payTime"
|
||||
type="daterange"
|
||||
end-placeholder="结束日期"
|
||||
format="YYYY-MM-DD"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
type="daterange"
|
||||
value-format="YYYY-MM-DD"
|
||||
@clear="handleClear()"
|
||||
@update:model-value="(val: string[]) => handleUpdateLeaseDate(val)"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="户主" prop="residentName">
|
||||
@@ -37,7 +37,7 @@
|
||||
<div v-show="!isShow" class="flex justify-end">
|
||||
<el-button type="primary" @click="handleQuery">查询</el-button>
|
||||
<el-button @click="resetQuery">重置</el-button>
|
||||
<div @click="toggleShow" class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px">
|
||||
<div class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px" @click="toggleShow">
|
||||
<span>展开</span>
|
||||
<el-icon style="margin-left: 5px"><ArrowDownBold /></el-icon>
|
||||
</div>
|
||||
@@ -92,6 +92,20 @@
|
||||
<el-form-item :label="`${item.chargeTypeName} (开始时间)`">
|
||||
<el-date-picker
|
||||
v-model="queryParams.chargeTypeFilters[index].startDate"
|
||||
clearable
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
range-separator="到"
|
||||
start-placeholder="开始时间"
|
||||
type="datetimerange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
@clear="
|
||||
() => {
|
||||
queryParams.chargeTypeFilters[index].startDate = '';
|
||||
queryParams.chargeTypeFilters[index].startDateBegin = '';
|
||||
queryParams.chargeTypeFilters[index].startDateEnd = '';
|
||||
}
|
||||
"
|
||||
@update:model-value="
|
||||
(val: string[]) => {
|
||||
if (val.length === 0) {
|
||||
@@ -101,26 +115,25 @@
|
||||
queryParams.chargeTypeFilters[index].startDateEnd = val[1];
|
||||
}
|
||||
"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
clearable
|
||||
@clear="
|
||||
() => {
|
||||
queryParams.chargeTypeFilters[index].startDate = '';
|
||||
queryParams.chargeTypeFilters[index].startDateBegin = '';
|
||||
queryParams.chargeTypeFilters[index].startDateEnd = '';
|
||||
}
|
||||
"
|
||||
type="datetimerange"
|
||||
range-separator="到"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="`${item.chargeTypeName} (结束时间)`">
|
||||
<el-date-picker
|
||||
v-model="queryParams.chargeTypeFilters[index].endDate"
|
||||
clearable
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
range-separator="到"
|
||||
start-placeholder="开始时间"
|
||||
type="datetimerange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
@clear="
|
||||
() => {
|
||||
queryParams.chargeTypeFilters[index].endDate = '';
|
||||
queryParams.chargeTypeFilters[index].endDateBegin = '';
|
||||
queryParams.chargeTypeFilters[index].endDateEnd = '';
|
||||
}
|
||||
"
|
||||
@update:model-value="
|
||||
(val: string[]) => {
|
||||
if (val.length === 0) {
|
||||
@@ -130,19 +143,6 @@
|
||||
queryParams.chargeTypeFilters[index].endDateEnd = val[1];
|
||||
}
|
||||
"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
clearable
|
||||
@clear="
|
||||
() => {
|
||||
queryParams.chargeTypeFilters[index].endDate = '';
|
||||
queryParams.chargeTypeFilters[index].endDateBegin = '';
|
||||
queryParams.chargeTypeFilters[index].endDateEnd = '';
|
||||
}
|
||||
"
|
||||
range-separator="到"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -158,7 +158,7 @@
|
||||
<div v-show="isShow" class="flex justify-end">
|
||||
<el-button type="primary" @click="handleQuery">查询</el-button>
|
||||
<el-button @click="resetQuery">重置</el-button>
|
||||
<div @click="toggleShow" class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px">
|
||||
<div class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px" @click="toggleShow">
|
||||
<span>收起</span>
|
||||
<el-icon style="margin-left: 5px"><ArrowUpBold /></el-icon>
|
||||
</div>
|
||||
@@ -168,7 +168,7 @@
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never" class="flex-1">
|
||||
<el-card class="flex-1" shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="5">
|
||||
@@ -180,53 +180,53 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-table :row-class-name="handleRowClass" v-loading="loading" border :data="ArrearsDetailList">
|
||||
<el-table-column label="日期" width="100" align="center" fixed="left" prop="payTime" />
|
||||
<el-table-column label="房屋信息" align="center" fixed="left">
|
||||
<el-table v-loading="loading" :data="ArrearsDetailList" :row-class-name="handleRowClass" border>
|
||||
<el-table-column align="center" fixed="left" label="日期" prop="payTime" width="100" />
|
||||
<el-table-column align="center" fixed="left" label="房屋信息">
|
||||
<template #default>
|
||||
<el-table-column label="户主" align="center" width="100" prop="residentName"></el-table-column>
|
||||
<el-table-column label="房号" align="center" width="100" prop="houseName"></el-table-column>
|
||||
<el-table-column align="center" label="户主" prop="residentName" width="100"></el-table-column>
|
||||
<el-table-column align="center" label="房号" prop="houseName" width="100"></el-table-column>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支付方式" align="center">
|
||||
<el-table-column align="center" label="支付方式">
|
||||
<template #default>
|
||||
<el-table-column label="现金类" align="center" prop="cashAmount">
|
||||
<el-table-column align="center" label="现金类" prop="cashAmount">
|
||||
<template #default>
|
||||
<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="transferAmount"></el-table-column>
|
||||
<el-table-column label="微信" align="center" prop="wechatAmount"></el-table-column>
|
||||
<el-table-column align="center" label="现金" prop="cashAmount"></el-table-column>
|
||||
<el-table-column align="center" label="支付宝" prop="alipayAmount"></el-table-column>
|
||||
<el-table-column align="center" label="宜当付" prop="yiDangFuAmount"></el-table-column>
|
||||
<el-table-column align="center" label="银联" prop="unionPayAmount"></el-table-column>
|
||||
<el-table-column align="center" label="转账" prop="transferAmount"></el-table-column>
|
||||
<el-table-column align="center" label="微信" prop="wechatAmount"></el-table-column>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="顶账类" align="center" prop="deposit">
|
||||
<el-table-column align="center" label="顶账类" prop="deposit">
|
||||
<template #default>
|
||||
<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 align="center" label="押金抵顶" prop="depositAmount"></el-table-column>
|
||||
<el-table-column align="center" label="房产抵顶" prop="propertyOffsetAmount"></el-table-column>
|
||||
<el-table-column align="center" label="减免优惠" prop="discountAmount"></el-table-column>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="水费" align="center" prop="waterFee" />
|
||||
<el-table-column label="电费" align="center" prop="electricFee" />
|
||||
<el-table-column label="押金" align="center" prop="deposit" />
|
||||
<el-table-column label="收费项目" align="center" prop="chargeTypeAmounts">
|
||||
<el-table-column align="center" label="水费" prop="waterFee" />
|
||||
<el-table-column align="center" label="电费" prop="electricFee" />
|
||||
<el-table-column align="center" label="押金" prop="deposit" />
|
||||
<el-table-column align="center" label="收费项目" prop="chargeTypeAmounts">
|
||||
<template #default>
|
||||
<el-table-column v-for="(item, index) in rowChargeTypesList" :key="index" :label="item" align="center">
|
||||
<template #default="scope">
|
||||
<el-table-column label="金额" align="center" v-if="item !== '卡表' && item !== '其他'">
|
||||
<el-table-column v-if="item !== '卡表' && item !== '其他'" align="center" label="金额">
|
||||
<template #default="scope">
|
||||
{{ scope.row.chargeTypeAmounts[item].amount }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始时间" width="100" align="center" v-if="item !== '卡表' && item !== '其他'">
|
||||
<el-table-column v-if="item !== '卡表' && item !== '其他'" align="center" label="开始时间" width="100">
|
||||
<template #default="scope">
|
||||
{{ scope.row.chargeTypeAmounts[item].startDate }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束时间" width="100" align="center" v-if="item !== '卡表' && item !== '其他'">
|
||||
<el-table-column v-if="item !== '卡表' && item !== '其他'" align="center" label="结束时间" width="100">
|
||||
<template #default="scope">
|
||||
{{ scope.row.chargeTypeAmounts[item].endDate }}
|
||||
</template>
|
||||
@@ -239,12 +239,12 @@
|
||||
<!-- <el-table-column label="经办人" align="center" prop="handler" />-->
|
||||
<!-- <el-table-column show-overflow-tooltip width="250" label="备注" align="center" prop="remark" />-->
|
||||
</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" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getCommunitylistAPI } from '@/api/system/community';
|
||||
@@ -550,7 +550,6 @@ const handleExport = () => {
|
||||
// { label: '经办人', prop: 'inspectorName' },
|
||||
// { label: '备注', prop: 'remark' }
|
||||
];
|
||||
console.log(columns);
|
||||
exportToExcel(ArrearsDetailList.value, columns, `日报_${new Date().getTime()}`);
|
||||
} catch (error) {
|
||||
proxy?.$modal.msgError('导出失败,请重试');
|
||||
|
||||
@@ -150,7 +150,6 @@ const getList = async () => {
|
||||
});
|
||||
getPaidInExpensesList(search)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
ArrearsDetailList.value = [res.data.total, ...res.data.details];
|
||||
rowChargeTypesList.value = res.data.chargeTypes;
|
||||
})
|
||||
|
||||
@@ -150,7 +150,6 @@ const getList = async () => {
|
||||
});
|
||||
getPaidInExpensesReceivableList(search)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
ArrearsDetailList.value = [res.data.total, ...res.data.details];
|
||||
rowChargeTypesList.value = res.data.chargeTypes;
|
||||
})
|
||||
|
||||
@@ -2,109 +2,111 @@
|
||||
<div class="ResidentMainBox p-2 w-full h-full">
|
||||
<PageHeader title="住户详情"></PageHeader>
|
||||
<div class="ResidentMainBody">
|
||||
<el-row :span="24" :gutter="20">
|
||||
<el-row :gutter="20" :span="24">
|
||||
<el-col :span="16">
|
||||
<div class="userInfobox">
|
||||
<el-card>
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>基础资料</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">住户姓名:</div>
|
||||
<span> {{ userInfo.name }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">手机号码:</div>
|
||||
<span> {{ userInfo.phone }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">证件类型:</div>
|
||||
<DictTag :options="com_id_card_type" :value="userInfo.idCardType"></DictTag>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">与主业主关系:</div>
|
||||
<DictTag :options="com_resident_relationship" :value="userInfo.ownerRelationship"></DictTag>
|
||||
</div>
|
||||
<!-- <div class="userinfo_item">
|
||||
<div class="title_item">住户来源:</div>
|
||||
<span> {{ userInfo.name }} </span>
|
||||
</div> -->
|
||||
<!-- <div class="userinfo_item">
|
||||
<div class="title_item">注册时间:</div>
|
||||
<span> {{ userInfo.name }} </span>
|
||||
</div> -->
|
||||
<div class="userinfo_item img">
|
||||
<div class="title_item">身份证正面:</div>
|
||||
<div class="userinfo_itme_img">
|
||||
<el-image class="w-full h-full" fit="fill" :src="userInfo.cardImageFront"></el-image>
|
||||
<div class="h-full flex flex-col">
|
||||
<div class="userInfobox">
|
||||
<el-card class="h-full">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>基础资料</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">住户姓名:</div>
|
||||
<span> {{ userInfo.name }} </span>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">住户编号:</div>
|
||||
<span> {{ userInfo.id }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">住户性别:</div>
|
||||
<span> {{ userInfo.gender === '0' ? '男' : '女' }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">证件号码:</div>
|
||||
<span> {{ userInfo.idCard }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item img">
|
||||
<div class="title_item">身份证背面:</div>
|
||||
<div class="userinfo_itme_img">
|
||||
<el-image class="w-full h-full" fit="fill" :src="userInfo.cardImageBack"></el-image>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">手机号码:</div>
|
||||
<span> {{ userInfo.phone }} </span>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">备注:</div>
|
||||
<span> {{ userInfo.remark ?? '无' }} </span>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="previewbox">
|
||||
<el-card>
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>审核</span>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">证件类型:</div>
|
||||
<DictTag :options="com_id_card_type" :value="userInfo.idCardType"></DictTag>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">与主业主关系:</div>
|
||||
<DictTag :options="com_resident_relationship" :value="userInfo.ownerRelationship"></DictTag>
|
||||
</div>
|
||||
<!-- <div class="userinfo_item">
|
||||
<div class="title_item">住户来源:</div>
|
||||
<span> {{ userInfo.name }} </span>
|
||||
</div> -->
|
||||
<!-- <div class="userinfo_item">
|
||||
<div class="title_item">注册时间:</div>
|
||||
<span> {{ userInfo.name }} </span>
|
||||
</div> -->
|
||||
<div class="userinfo_item img">
|
||||
<div class="title_item">身份证正面:</div>
|
||||
<div class="userinfo_itme_img">
|
||||
<el-image :src="userInfo.cardImageFront" class="w-full h-full" fit="fill"></el-image>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">住户编号:</div>
|
||||
<span> {{ userInfo.id }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">住户性别:</div>
|
||||
<span> {{ userInfo.gender === '0' ? '男' : '女' }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">证件号码:</div>
|
||||
<span> {{ userInfo.idCard }} </span>
|
||||
</div>
|
||||
<div class="userinfo_item img">
|
||||
<div class="title_item">身份证背面:</div>
|
||||
<div class="userinfo_itme_img">
|
||||
<el-image :src="userInfo.cardImageBack" class="w-full h-full" fit="fill"></el-image>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div class="userinfo_item">
|
||||
<div class="title_item">备注:</div>
|
||||
<span> {{ userInfo.remark ?? '无' }} </span>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full flex mt-2">
|
||||
<div class="title">审批意见</div>
|
||||
<div class="preivewBodybox">
|
||||
<el-input
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
v-model.trim="reviewInfo.propertyReviewFeedback"
|
||||
placeholder="请输入"
|
||||
type="textarea"
|
||||
:rows="5"
|
||||
></el-input>
|
||||
<div class="actions">
|
||||
<el-button type="primary" @click="updatePass('1')">审核通过</el-button>
|
||||
<el-button type="danger" @click="updatePass('2')">审核不通过</el-button>
|
||||
<el-button @click="backRoute">返回</el-button>
|
||||
</el-card>
|
||||
</div>
|
||||
<div v-if="activeStop !== 4" class="previewbox">
|
||||
<el-card>
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>审核</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-full flex mt-2">
|
||||
<div class="title">审批意见</div>
|
||||
<div class="preivewBodybox">
|
||||
<el-input
|
||||
v-model.trim="reviewInfo.propertyReviewFeedback"
|
||||
:rows="5"
|
||||
maxlength="200"
|
||||
placeholder="请输入"
|
||||
show-word-limit
|
||||
type="textarea"
|
||||
></el-input>
|
||||
<div class="actions">
|
||||
<el-button type="primary" @click="updatePass('1')">审核通过</el-button>
|
||||
<el-button type="danger" @click="updatePass('2')">审核不通过</el-button>
|
||||
<el-button @click="backRoute">返回</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-card style="position: relative" class="h-full">
|
||||
<el-card class="h-full" style="position: relative">
|
||||
<template #header>
|
||||
<div class="asideCardHeader w-full h-full">
|
||||
<div class="cardSubtitle">
|
||||
@@ -114,7 +116,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<div class="w-full h-50%">
|
||||
<el-steps space="200px" direction="vertical" :active="activeStop">
|
||||
<el-steps :active="activeStop" direction="vertical" space="200px">
|
||||
<el-step :description="reviewInfo.submitTime">
|
||||
<template #title>
|
||||
<DictTag :options="com_sub_status" :value="reviewInfo.submitStatus || '0'"></DictTag>
|
||||
@@ -143,7 +145,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getResident, getresidentReviewlistAPI, UpdateResidentReviewAPI } from '@/api/system/residentReviewProcess/resident';
|
||||
@@ -199,12 +201,12 @@ if (route.query.id) {
|
||||
getResident(userid.value).then((res) => {
|
||||
userInfo.value = res.data;
|
||||
// 获取 审核流程
|
||||
getresidentReviewlistAPI(userid.value).then((res) => {
|
||||
if (res.rows[0]) {
|
||||
reviewInfo.value = res.rows[0];
|
||||
handleActiveStaus(reviewInfo.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
getresidentReviewlistAPI(userid.value).then((res) => {
|
||||
if (res.rows[0]) {
|
||||
reviewInfo.value = res.rows[0];
|
||||
handleActiveStaus(reviewInfo.value);
|
||||
}
|
||||
});
|
||||
}
|
||||
// 在 script setup 中添加
|
||||
@@ -282,7 +284,7 @@ function backRoute() {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.ResidentMainBox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -290,6 +292,7 @@ function backRoute() {
|
||||
flex: 1;
|
||||
margin-top: 20px;
|
||||
.userInfobox {
|
||||
flex: 1;
|
||||
.card-header {
|
||||
font-size: 18px;
|
||||
height: 60px;
|
||||
@@ -319,6 +322,7 @@ function backRoute() {
|
||||
}
|
||||
}
|
||||
.previewbox {
|
||||
height: 327px;
|
||||
margin-top: 20px;
|
||||
.card-header {
|
||||
font-size: 18px;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<el-input v-model.trim="form.roleKey" placeholder="请输入权限字符" />
|
||||
</el-form-item>
|
||||
<el-form-item label="角色顺序" prop="roleSort">
|
||||
<el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
|
||||
<el-input-number v-model="form.roleSort" :min="0" controls-position="right" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-radio-group v-model="form.status">
|
||||
@@ -42,18 +42,18 @@
|
||||
<el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
|
||||
<el-tree
|
||||
ref="menuRef"
|
||||
class="tree-border"
|
||||
:data="menuOptions"
|
||||
show-checkbox
|
||||
node-key="id"
|
||||
:check-strictly="!form.menuCheckStrictly"
|
||||
empty-text="加载中,请稍候"
|
||||
:data="menuOptions"
|
||||
:props="{ label: 'label', children: 'children' }"
|
||||
class="tree-border"
|
||||
empty-text="加载中,请稍候"
|
||||
node-key="id"
|
||||
show-checkbox
|
||||
>
|
||||
</el-tree>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注">
|
||||
<el-input maxlength="200" show-word-limit v-model.trim="form.remark" type="textarea" placeholder="请输入内容"></el-input>
|
||||
<el-input v-model.trim="form.remark" maxlength="200" placeholder="请输入内容" show-word-limit type="textarea"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="dialog-footer text-center">
|
||||
@@ -65,7 +65,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { roleMenuTreeselect, treeselect as menuTreeselect } from '@/api/system/menu/index';
|
||||
@@ -131,7 +131,6 @@ const getMenuTreeselect = async () => {
|
||||
/** 根据角色ID查询菜单树结构 */
|
||||
const getRoleMenuTreeselect = (roleId: string | number) => {
|
||||
return roleMenuTreeselect(roleId).then((res): RoleMenuTree => {
|
||||
console.log(res.data);
|
||||
menuOptions.value = res.data.menus;
|
||||
// const arr = handleHiddeMenu(res.data.menus);
|
||||
// menuOptions.value = arr;
|
||||
@@ -232,7 +231,7 @@ const cancelForm = () => {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.AddBuildingBox {
|
||||
padding: 15px;
|
||||
height: 100%;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<script name="RingProgress" setup lang="ts">
|
||||
<script lang="ts" name="RingProgress" setup>
|
||||
import { EChartsOption } from 'echarts';
|
||||
import Echarts from '@/components/Echarts/index.vue';
|
||||
|
||||
@@ -8,8 +8,6 @@ const props = defineProps<{
|
||||
color: string;
|
||||
}>();
|
||||
|
||||
console.log(props.name, props.value);
|
||||
|
||||
const options = ref<EChartsOption>({
|
||||
tooltip: {
|
||||
show: false,
|
||||
@@ -74,7 +72,7 @@ const options = ref<EChartsOption>({
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.chart-item {
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getBuildinglistAPI, getBuildinglists } from '@/api/system/house';
|
||||
import { getBuildinglistAPI } from '@/api/system/house';
|
||||
import { addStoreroom, getStoreroom, updateStoreroom } from '@/api/system/storeroom';
|
||||
import { StoreroomVO } from '@/api/system/storeroom/types';
|
||||
import { getByBUildingidtoUnitNo } from '@/api/system/houseUnit';
|
||||
@@ -187,7 +187,6 @@ function getStoreRoomInfo(id: string) {
|
||||
form.value.unitNoId = res.data.unitNoId;
|
||||
});
|
||||
}
|
||||
console.log(form.value);
|
||||
});
|
||||
}
|
||||
// 根据小区id获取楼栋单元
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="p-2 flex storeRoomBox">
|
||||
<pageHeader title="储藏室管理"></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">
|
||||
@@ -121,12 +121,16 @@ const data = reactive<PageData<StoreroomForm, StoreroomQuery>>({
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询储藏室管理列表 */
|
||||
const getList = async () => {
|
||||
const getList = () => {
|
||||
loading.value = true;
|
||||
const res = await listStoreroom(queryParams.value);
|
||||
storeroomList.value = res.rows;
|
||||
total.value = res.total;
|
||||
loading.value = false;
|
||||
listStoreroom(queryParams.value)
|
||||
.then((res) => {
|
||||
storeroomList.value = res.rows;
|
||||
total.value = res.total;
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
|
||||
@@ -4,45 +4,45 @@
|
||||
<div class="AddBuildingBody">
|
||||
<div class="title">基本信息</div>
|
||||
<div class="addBuildingFormBody">
|
||||
<el-form class="formBody" label-position="right" ref="formRef" :model="form" :rules="rules" label-width="130px">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" class="formBody" label-position="right" label-width="130px">
|
||||
<el-form-item label="员工姓名" prop="nickName">
|
||||
<el-input maxlength="30" show-word-limit v-model.trim="form.nickName" placeholder="请输入员工姓名" />
|
||||
<el-input v-model.trim="form.nickName" maxlength="30" placeholder="请输入员工姓名" show-word-limit />
|
||||
</el-form-item>
|
||||
<el-form-item label="登录账号" v-if="form.userId == undefined" prop="userName">
|
||||
<el-input maxlength="16" show-word-limit v-model.trim="form.userName" placeholder="请输入登录账号" />
|
||||
<el-form-item v-if="form.userId == undefined" label="登录账号" prop="userName">
|
||||
<el-input v-model.trim="form.userName" maxlength="16" placeholder="请输入登录账号" show-word-limit />
|
||||
</el-form-item>
|
||||
<el-form-item label="登录密码" v-if="form.userId == undefined" prop="password">
|
||||
<el-input type="password" show-password clearable v-model.trim="form.password" placeholder="请输入" />
|
||||
<el-form-item v-if="form.userId == undefined" label="登录密码" prop="password">
|
||||
<el-input v-model.trim="form.password" clearable placeholder="请输入" show-password type="password" />
|
||||
</el-form-item>
|
||||
<el-form-item label="员工性别" prop="chargeScope">
|
||||
<el-select v-model="form.sex" placeholder="请选择">
|
||||
<el-option v-for="dict in sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="员工角色" prop="roleIds" v-if="form.userId == null || form.userId != useUserStore().userId">
|
||||
<el-form-item v-if="form.userId == null || form.userId != useUserStore().userId" label="员工角色" prop="roleIds">
|
||||
<el-select v-model="form.roleIds">
|
||||
<el-option
|
||||
:disabled="item.status == '1'"
|
||||
v-for="(item, index) in roleOptions"
|
||||
:key="index"
|
||||
:value="item.roleId"
|
||||
:disabled="item.status == '1'"
|
||||
:label="item.roleName"
|
||||
:value="item.roleId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="管理小区" prop="villageIds">
|
||||
<el-select v-model="checkVillage" multiple @change="handleChangeVillage">
|
||||
<el-option v-for="(item, index) in villageList" :key="index" :value="item.villageId" :label="item.villageName"></el-option>
|
||||
<el-option v-for="(item, index) in villageList" :key="index" :label="item.villageName" :value="item.villageId"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号" prop="phonenumber">
|
||||
<el-input maxlength="11" v-model.trim="form.phonenumber" placeholder="请输入" />
|
||||
<el-input v-model.trim="form.phonenumber" maxlength="11" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input maxlength="35" v-model.trim="form.email" placeholder="请输入" />
|
||||
<el-input v-model.trim="form.email" maxlength="35" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input maxlength="200" show-word-limit type="textarea" :rows="5" v-model.trim="form.remark" placeholder="请输入" />
|
||||
<el-input v-model.trim="form.remark" :rows="5" maxlength="200" placeholder="请输入" show-word-limit type="textarea" />
|
||||
</el-form-item>
|
||||
<el-form-item style="margin-top: 30px">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
@@ -54,7 +54,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import api from '@/api/system/user';
|
||||
import { ref } from 'vue';
|
||||
import PageHeader from '@/components/Pageheader/index.vue';
|
||||
@@ -162,7 +162,6 @@ const villageList = ref([]);
|
||||
const getVillageList = async () => {
|
||||
const res = await getCommunitylistAPI();
|
||||
villageList.value = res.rows;
|
||||
console.log(villageList.value);
|
||||
};
|
||||
onMounted(() => {
|
||||
getVillageList();
|
||||
@@ -201,7 +200,7 @@ const cancelForm = () => {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.AddBuildingBox {
|
||||
padding: 15px;
|
||||
height: 100%;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<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">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
<el-form ref="queryFormRef" :inline="true" :model="queryParams">
|
||||
<el-form-item label="应用名称" prop="channel">
|
||||
<el-select v-model="queryParams.channel" placeholder="请选择">
|
||||
<el-option v-for="(item, index) in com_app_list" :key="index" :label="item.label" :value="item.value"></el-option>
|
||||
@@ -17,13 +17,13 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="版本号" prop="versionCode">
|
||||
<el-input maxlength="20" v-model.trim="queryParams.versionCode" placeholder="请输入版本号" clearable @keyup.enter="handleQuery" />
|
||||
<el-input v-model.trim="queryParams.versionCode" clearable maxlength="20" placeholder="请输入版本号" @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="版本名称" prop="versionName">
|
||||
<el-input maxlength="20" v-model.trim="queryParams.versionName" placeholder="请输入版本名称" clearable @keyup.enter="handleQuery" />
|
||||
<el-input v-model.trim="queryParams.versionName" clearable maxlength="20" placeholder="请输入版本名称" @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Search" type="primary" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -31,70 +31,70 @@
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never" class="flex-1">
|
||||
<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-has-permi="['system:version:add']">新增</el-button>
|
||||
<el-button v-has-permi="['system:version:add']" icon="Plus" plain type="primary" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table
|
||||
:default-sort="{ prop: 'versionCode', order: 'descending' }"
|
||||
v-loading="loading"
|
||||
border
|
||||
:data="versionList"
|
||||
:default-sort="{ prop: 'versionCode', order: 'descending' }"
|
||||
border
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="应用名称" sortable align="center" prop="appChannel">
|
||||
<el-table-column align="center" type="selection" width="55" />
|
||||
<el-table-column align="center" label="应用名称" prop="appChannel" sortable>
|
||||
<template #default="scope">
|
||||
<dict-tag :options="com_app_list" :value="scope.row.appChannel"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="版本类型" align="center" prop="platform">
|
||||
<el-table-column align="center" label="版本类型" prop="platform">
|
||||
<template #default="scope">
|
||||
<el-tag type="success" v-if="scope.row.platform === 'ios'">ios</el-tag>
|
||||
<el-tag type="primary" v-else>android</el-tag>
|
||||
<el-tag v-if="scope.row.platform === 'ios'" type="success">ios</el-tag>
|
||||
<el-tag v-else type="primary">android</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新渠道" sortable align="center" prop="channel" />
|
||||
<el-table-column label="版本号" sortable align="center" prop="versionCode" />
|
||||
<el-table-column label="版本名称" sortable align="center" prop="versionName" />
|
||||
<el-table-column label="最低支持版本" sortable align="center" prop="minVersionName" />
|
||||
<el-table-column label="下载地址" align="center" prop="downloadUrl" />
|
||||
<el-table-column label="更新日志" align="center" prop="releaseNotes" />
|
||||
<el-table-column label="停用/启用" align="center" prop="status">
|
||||
<el-table-column align="center" label="更新渠道" prop="channel" sortable />
|
||||
<el-table-column align="center" label="版本号" prop="versionCode" sortable />
|
||||
<el-table-column align="center" label="版本名称" prop="versionName" sortable />
|
||||
<el-table-column align="center" label="最低支持版本" prop="minVersionName" sortable />
|
||||
<el-table-column align="center" label="下载地址" prop="downloadUrl" />
|
||||
<el-table-column align="center" label="更新日志" prop="releaseNotes" />
|
||||
<el-table-column align="center" label="停用/启用" prop="status">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
@change="(val: string) => switchVersion(scope.row.id, val)"
|
||||
v-model="scope.row.status"
|
||||
active-value="1"
|
||||
inactive-value="0"
|
||||
@change="(val: string) => switchVersion(scope.row.id, val)"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="上传时间" align="center" prop="createTime" />
|
||||
<el-table-column align="center" label="上传时间" prop="createTime" />
|
||||
</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" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="650px" append-to-body>
|
||||
<el-dialog v-model="dialog.visible" :title="dialog.title" append-to-body width="650px">
|
||||
<el-form ref="versionFormRef" :model="form" :rules="rules" label-width="130px">
|
||||
<el-form-item label="App端" prop="appChannel">
|
||||
<el-select @change="handleGetVersionlast" v-model="form.appChannel" placeholder="请选择">
|
||||
<el-select v-model="form.appChannel" placeholder="请选择" @change="handleGetVersionlast">
|
||||
<el-option v-for="(item, index) in com_app_list" :key="index" :label="item.label" :value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="App类型" prop="platform">
|
||||
<el-radio-group @change="handleChangePlatform" v-model="form.platform">
|
||||
<el-radio-group v-model="form.platform" @change="handleChangePlatform">
|
||||
<el-radio :value="appType.android">Android</el-radio>
|
||||
<el-radio :value="appType.ios">ios</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="版本名称" prop="versionName">
|
||||
<el-input maxlength="20" v-model.trim="form.versionName" placeholder="请输入版本名称例如:1.2.0" />
|
||||
<el-input v-model.trim="form.versionName" maxlength="20" placeholder="请输入版本名称例如:1.2.0" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最低支持版本" prop="minVersionCode">
|
||||
<el-select v-if="getlastVersionlist.length > 0" v-model="form.minVersionCode" placeholder="请输入最低支持版本">
|
||||
@@ -105,7 +105,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="渠道" prop="channel">
|
||||
<el-radio-group @change="handleChangeChannel" v-model="form.channel">
|
||||
<el-radio-group v-model="form.channel" @change="handleChangeChannel">
|
||||
<el-radio v-if="form.platform !== appType.ios" value="huawei">华为</el-radio>
|
||||
<el-radio v-if="form.platform !== appType.ios" value="xiaomi">小米</el-radio>
|
||||
<el-radio v-if="form.platform !== appType.ios" value="oppo">oppo</el-radio>
|
||||
@@ -117,7 +117,7 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="更新日志" prop="releaseNotes">
|
||||
<el-input maxlength="200" show-word-limit :rows="5" v-model="form.releaseNotes" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.releaseNotes" :rows="5" maxlength="200" placeholder="请输入内容" show-word-limit type="textarea" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="低版本强制更新">-->
|
||||
<!-- <div>-->
|
||||
@@ -144,7 +144,7 @@
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="上传安装包地址" prop="downloadUrl">
|
||||
<el-input maxlength="20" v-model.trim="form.downloadUrl" placeholder="请输入更新地址" />
|
||||
<el-input v-model.trim="form.downloadUrl" maxlength="20" placeholder="请输入更新地址" />
|
||||
</el-form-item>
|
||||
<!-- </div>-->
|
||||
</el-form>
|
||||
@@ -158,7 +158,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Version" lang="ts">
|
||||
<script lang="ts" name="Version" setup>
|
||||
import { listVersion, addVersion, getPastVersion, switchVersion } from '@/api/system/version';
|
||||
import { VersionVO, VersionQuery, VersionForm } from '@/api/system/version/type';
|
||||
|
||||
@@ -341,7 +341,6 @@ const channelUrl = {
|
||||
'ios': 'itms-apps://apps.apple.com/cn/app/id'
|
||||
};
|
||||
function handleChangeChannel(val: string) {
|
||||
console.log(val);
|
||||
form.value.downloadUrl = channelUrl[val];
|
||||
}
|
||||
/** 提交按钮 */
|
||||
|
||||
@@ -178,8 +178,6 @@ function handleChangeitem(row: MaterialVO[]) {
|
||||
}
|
||||
})
|
||||
.filter((item) => item !== null);
|
||||
|
||||
console.log(arr);
|
||||
form.value.items = arr;
|
||||
}
|
||||
function handleDeleteRow(id: string) {
|
||||
@@ -199,7 +197,6 @@ const submitForm = () => {
|
||||
const bol = form.value.items.every((item) => {
|
||||
return item.costPrice !== 0 && item.costPrice !== null && item.outNum !== 0 && item.outNum !== null;
|
||||
});
|
||||
console.log(bol);
|
||||
if (!bol) {
|
||||
ElMessage.warning('出库数量,出库价格 不能未空或者0');
|
||||
return;
|
||||
|
||||
@@ -166,7 +166,6 @@ function handleChangeitem(row: MaterialVO[]) {
|
||||
.map((item) => {
|
||||
if (!item.id) return null;
|
||||
const find = form.value.items.find((i) => i.id === item.id);
|
||||
console.log(item, find);
|
||||
if (find || form.value.items.length <= 0) {
|
||||
return {
|
||||
...item,
|
||||
|
||||
Reference in New Issue
Block a user