物业主开发
This commit is contained in:
@@ -3,31 +3,34 @@
|
||||
<Pageheader title="收银台管理"></Pageheader>
|
||||
<div class="" v-if="isSearch">
|
||||
<p class="actionsmain">
|
||||
功能说明:可根据住户姓名、住户手机号、房屋号、车位号、车牌号,快速搜索对应的未缴费用,修改未缴费用的优惠及滞纳金金额,完成对未缴费用的收取。
|
||||
功能说明:可根据住户姓名、房屋号、手机号,快速搜索对应的未缴费用,修改未缴费用的优惠及滞纳金金额,完成对未缴费用的收取。
|
||||
</p>
|
||||
<div class="contanier flex-center">
|
||||
<div class="h-full flex-1 flex flex-items-start">
|
||||
<div class="typebox">
|
||||
<el-select v-model="searchform.type">
|
||||
<el-select v-model="searchType" @change="handleChangeSearchType">
|
||||
<el-option v-for="(item, index) in com_cashier_type" :key="index" :label="item.label" :value="item.value"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="searchBox">
|
||||
<el-input>
|
||||
<el-input v-model="searchValue" @keyup.enter="getlist">
|
||||
<template #suffix>
|
||||
<el-icon>
|
||||
<el-icon @click="getlist" class="cursor-pointer">
|
||||
<Search></Search>
|
||||
</el-icon>
|
||||
</template>
|
||||
</el-input>
|
||||
|
||||
<div class="listbox" v-show="Boolean(list.length > 0)">
|
||||
<div class="listbox" v-if="list.length">
|
||||
<div class="list_item">
|
||||
<div class="title">
|
||||
<DictTag :options="com_cashier_type" :value="searchform.type"></DictTag>
|
||||
<DictTag :options="com_cashier_type" :value="searchType"></DictTag>
|
||||
</div>
|
||||
<div class="list_body">
|
||||
<div class="list_value" @click="searchclick(item)" v-for="(item, index) in list" :key="index">
|
||||
{{ item.houseName }}-{{ item.residentName }}-{{ item.phone }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_value" v-for="(item, index) in list" :key="index">北境碧桂园小区A栋1单元101-张姗-13899999999</div>
|
||||
<div class="list_value">北境碧桂园小区A栋1单元101-张姗-13899999999</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -36,17 +39,19 @@
|
||||
</div>
|
||||
<div v-else style="margin-top: 20px; height: calc(100% - 210px)">
|
||||
<div class="tabsbox">
|
||||
<div @click="handleChecout(index)" v-for="(item, index) in tabs" :key="index" class="tabs_item" :class="{ active: checkouttabs === index }">
|
||||
<div
|
||||
@click="handleChecout(item.value)"
|
||||
v-for="(item, index) in tabs"
|
||||
:key="index"
|
||||
class="tabs_item"
|
||||
:class="{ active: checkouttabs === item.value }"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="h-full">
|
||||
<el-card style="height: 100%; margin-top: 20px" v-if="checkouttabs === 0">
|
||||
<cashier @Back="handleBack"></cashier>
|
||||
</el-card>
|
||||
<el-card style="height: 100%; margin-top: 20px" shadow="never" v-if="checkouttabs === 1">
|
||||
<history></history>
|
||||
</el-card>
|
||||
<cashier :query="checkeditem" @Back="handleBack" v-if="checkouttabs === 'cashier'"></cashier>
|
||||
<history :query="checkeditem" v-if="checkouttabs === 'history'"></history>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -59,46 +64,77 @@
|
||||
// TODO 预存
|
||||
// TODO 缴费
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import { ref } from 'vue';
|
||||
import { Component, DefineComponent, ref } from 'vue';
|
||||
|
||||
import cashier from './cashier.vue';
|
||||
import history from './history.vue';
|
||||
import { debounce } from '@/utils';
|
||||
import { cashQuery } from '@/api/system/SdbCashier';
|
||||
|
||||
const isSearch = ref(true);
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { com_cashier_type } = toRefs<any>(proxy?.useDict('com_cashier_type'));
|
||||
const searchform = ref({
|
||||
type: '0'
|
||||
});
|
||||
const list = ref([]);
|
||||
const searchform = ref();
|
||||
const searchValue = ref('');
|
||||
const searchType = ref('residentName');
|
||||
function handleChangeSearchType() {
|
||||
list.value = [];
|
||||
searchValue.value = '';
|
||||
}
|
||||
|
||||
const list = ref<querytype[]>([]);
|
||||
// ! ===================================================================================
|
||||
const checkouttabs = ref(0);
|
||||
const tabs = [
|
||||
// 先定义 Tab 项类型
|
||||
type TabValue = 'cashier' | 'history';
|
||||
interface TabItem {
|
||||
name: string;
|
||||
value: TabValue;
|
||||
component: Component;
|
||||
}
|
||||
const checkouttabs = ref<TabValue>('cashier');
|
||||
const tabs: TabItem[] = [
|
||||
{
|
||||
name: '收银台',
|
||||
value: 'cashier',
|
||||
component: cashier
|
||||
},
|
||||
{
|
||||
name: '历史缴费',
|
||||
value: 'history',
|
||||
component: history
|
||||
}
|
||||
];
|
||||
function handleChecout(index: number) {
|
||||
type querytype = {
|
||||
residentId: string;
|
||||
residentName: string;
|
||||
houseName: string;
|
||||
phone: string;
|
||||
};
|
||||
const checkeditem = ref<querytype>({
|
||||
'residentId': '',
|
||||
'residentName': '',
|
||||
'houseName': '',
|
||||
'phone': ''
|
||||
});
|
||||
const searchclick = (row: querytype) => {
|
||||
checkeditem.value = row;
|
||||
isSearch.value = false;
|
||||
handleChecout('cashier');
|
||||
};
|
||||
function handleChecout(index: TabValue) {
|
||||
checkouttabs.value = index;
|
||||
}
|
||||
// ! ===================================================================================
|
||||
|
||||
// ! ===================================================================================
|
||||
const total = ref(100);
|
||||
const queryParams = ref({
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
});
|
||||
const tableData1 = ref([]);
|
||||
const getList = () => {
|
||||
console.log('getList');
|
||||
};
|
||||
|
||||
function getlist() {
|
||||
console.log('search2');
|
||||
searchform.value = {};
|
||||
searchform.value[searchType.value] = searchValue.value;
|
||||
cashQuery(searchform.value).then((res) => {
|
||||
list.value = res.data;
|
||||
});
|
||||
}
|
||||
// ! ===================================================================================
|
||||
const handleBack = () => {
|
||||
isSearch.value = true;
|
||||
};
|
||||
@@ -133,7 +169,7 @@ const handleBack = () => {
|
||||
}
|
||||
|
||||
.actionsmain {
|
||||
font-size: 0.7rem;
|
||||
font-size: 0.9rem;
|
||||
color: #000;
|
||||
padding-left: 30px;
|
||||
}
|
||||
@@ -173,24 +209,35 @@ const handleBack = () => {
|
||||
min-height: 200px;
|
||||
font-size: 16px;
|
||||
|
||||
.title {
|
||||
color: rgba(48, 49, 51, 1);
|
||||
font-size: 1rem;
|
||||
font-weight: 450;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid rgba(204, 204, 204, 1);
|
||||
}
|
||||
.list_item {
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
.list_value {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid rgba(204, 204, 204, 1);
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
background-color: #cccccc33;
|
||||
height: 400px;
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
|
||||
flex-direction: column;
|
||||
.title {
|
||||
color: rgba(48, 49, 51, 1);
|
||||
font-size: 1rem;
|
||||
font-weight: 450;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid rgba(204, 204, 204, 1);
|
||||
}
|
||||
.list_body {
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
.list_value {
|
||||
min-height: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid rgba(204, 204, 204, 1);
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
background-color: #cccccc33;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user