Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
housing-estate
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
物业总平台
housing-estate
Commits
2c47334f
提交
2c47334f
authored
8月 16, 2023
作者:
宋雄
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
解决bug
上级
d818f5c3
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
572 行增加
和
377 行删除
+572
-377
.env.development
.env.development
+1
-1
api.js
src/api/api.js
+13
-3
static.js
src/assets/static.js
+23
-0
advertisement.vue
src/views/property/advertisement/advertisement.vue
+1
-1
living-detail.vue
src/views/property/living/living-detail.vue
+0
-6
living.vue
src/views/property/living/living.vue
+3
-14
NoticeForm.vue
src/views/property/living/modules/NoticeForm.vue
+11
-13
NoticeForm.vue
src/views/property/propertyfee/modules/NoticeForm.vue
+38
-19
propertyfee-detail.vue
src/views/property/propertyfee/propertyfee-detail.vue
+4
-6
propertyfee.vue
src/views/property/propertyfee/propertyfee.vue
+4
-15
NoticeForm.vue
src/views/property/receipt/modules/NoticeForm.vue
+9
-5
receipt.vue
src/views/property/receipt/receipt.vue
+11
-9
templateModal.vue
src/views/property/receipt/templateModal.vue
+142
-47
RecordDetails.vue
src/views/property/record/RecordDetails.vue
+255
-123
RecordList.vue
src/views/property/record/RecordList.vue
+57
-115
没有找到文件。
.env.development
浏览文件 @
2c47334f
NODE_ENV=development
# VUE_APP_API_BASE_URL='http://192.168.0.11
9
:9999'
# VUE_APP_API_BASE_URL='http://192.168.0.11
3
:9999'
# VUE_APP_API_BASE_URL='http://192.168.0.101:9999'
VUE_APP_API_BASE_URL='http://220.203.25.212:9999'
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
...
...
src/api/api.js
浏览文件 @
2c47334f
...
...
@@ -69,7 +69,7 @@ const deleteLog = (params)=>deleteAction("/sys/log/delete",params);
const
deleteLogList
=
(
params
)
=>
deleteAction
(
"/sys/log/deleteBatch"
,
params
);
//收费类型列表
const
getChargeListApi
=
(
params
)
=>
getAction
(
"/property-com
munit
y/system/chargeType/chargeTypelist"
,
params
);
const
getChargeListApi
=
(
params
)
=>
getAction
(
"/property-com
pan
y/system/chargeType/chargeTypelist"
,
params
);
const
addReceiptTemplate
=
(
params
)
=>
postAction
(
"/property-community/system/receiptTemplate/add"
,
params
);
// 楼栋列表、单元列表、房间列表
const
getBuildingListApi
=
(
params
)
=>
getAction
(
"/property-community/building/communityBuilding/buildingList"
,
params
);
...
...
@@ -108,9 +108,14 @@ const auditCommunityComplaintApi = (params)=>postAction("/property-community/pro
const
auditMoveComplaintApi
=
(
params
)
=>
getAction
(
"/property-community/property/communityComplaint/moveComplaint"
,
params
);
// 对账管理
const
auditPropertyApi
=
(
params
)
=>
postAction
(
"/property-central/property/propertySettled/audit"
,
params
);
const
freezeOrPropertyApi
=
(
params
)
=>
getAction
(
`/property-central/property/propertySettled/freezeOrThaw/
${
params
.
id
}
/
${
params
.
status
}
`
,{});
const
getPropertyChargruleListApi
=
(
params
)
=>
getAction
(
"/property-central/property/propertyChargrule/propertyChargruleList"
,
params
);
const
addCommunityAccountPageApi
=
(
params
)
=>
postAction
(
"/property-community/property/communityReconciliation/add"
,
params
);
const
getDetailReconciliationApi
=
(
params
)
=>
getAction
(
"/property-community/property/communityReconciliation/queryById"
,
params
);
const
getAccountListByIdApi
=
(
params
)
=>
getAction
(
"/property-community/property/communityReconciliation/getAccountListById"
,
params
);
const
communityAuditAccountPageApi
=
(
params
)
=>
postAction
(
"/property-community/property/communityReconciliation/communityAudit"
,
params
);
const
getCommunityRecordListApi
=
(
params
)
=>
getAction
(
"/property-central/property/auditRecord/getRecordList"
,
params
);
const
communitySubCompanyApi
=
(
params
)
=>
postAction
(
"/property-community/property/communityReconciliation/communitySubCompany"
,
params
);
//数据字典
const
addDict
=
(
params
)
=>
postAction
(
"/sys/dict/add"
,
params
);
...
...
@@ -244,7 +249,12 @@ export {
auditCommunityComplaintApi
,
auditMoveComplaintApi
,
getPropertyChargruleListApi
,
auditPropertyApi
,
addCommunityAccountPageApi
,
getDetailReconciliationApi
,
getAccountListByIdApi
,
communityAuditAccountPageApi
,
getCommunityRecordListApi
,
communitySubCompanyApi
,
freezeOrPropertyApi
,
setOwnerLabelApi
,
editOwnerLabelApi
,
...
...
src/assets/static.js
浏览文件 @
2c47334f
...
...
@@ -77,6 +77,29 @@ export const OWNER_LEBEL = [
{
label
:
'残'
,
value
:
'labelDestituteCan'
}
]
// 付费周期
export
const
CHARGING_CYCLE
=
[
{
label
:
'每月'
,
value
:
'1'
},
{
label
:
'每季度'
,
value
:
'2'
},
{
label
:
'每年'
,
value
:
'3'
},
{
label
:
'一次性付清'
,
value
:
'4'
},
{
label
:
'预付'
,
value
:
'5'
}
]
// 小区对账审核状态
export
const
RECONCILIATION_STATUS
=
[
{
label
:
'小区待审核'
,
value
:
'communityWaitAudit'
},
{
label
:
'小区审核通过'
,
value
:
'communityAuditPass'
},
{
label
:
'小区审核驳回'
,
value
:
'communityRefuse'
}
]
// 物业对账审核状态
export
const
COMPANY_AUDIT_STATUS
=
[
{
label
:
'物业待审核'
,
value
:
'companyWaitAudit'
},
{
label
:
'物业审核通过'
,
value
:
'companyAuditPass'
},
{
label
:
'物业审核驳回'
,
value
:
'companyRefuse'
}
]
/**
* 翻译字段值对应的文本
* @param children
...
...
src/views/property/advertisement/advertisement.vue
浏览文件 @
2c47334f
...
...
@@ -78,7 +78,7 @@
</div>
<!-- table区域-end -->
<notice-modal
ref=
"modalForm"
@
ok=
"
modalFormOk
"
></notice-modal>
<notice-modal
ref=
"modalForm"
@
ok=
"
searchQuery
"
></notice-modal>
</a-card>
</
template
>
...
...
src/views/property/living/living-detail.vue
浏览文件 @
2c47334f
...
...
@@ -20,11 +20,6 @@
<a-input
v-model=
"model.roomAllName"
placeholder=
"请输入"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"业主"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"ownerName"
>
<a-input
v-model=
"model.ownerName"
placeholder=
"请输入"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<!--
<a-input
v-model=
"model.relationShip"
placeholder=
"请输入"
></a-input>
-->
...
...
@@ -220,7 +215,6 @@ export default {
roomId
:
''
,
roomName
:
''
,
floorSpace
:
''
,
ownerName
:
''
,
ownerPhone
:
''
,
residentName
:
''
,
residentPhone
:
''
,
...
...
src/views/property/living/living.vue
浏览文件 @
2c47334f
...
...
@@ -5,8 +5,8 @@
<a-form
layout=
"inline"
@
keyup
.
enter
.
native=
"searchQuery"
>
<a-row
:gutter=
"24"
>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-item
label=
"
业主
姓名"
>
<j-input
placeholder=
"请输入
业主姓名"
v-model=
"queryParam.owner
Name"
></j-input>
<a-form-item
label=
"
住户
姓名"
>
<j-input
placeholder=
"请输入
住户姓名"
v-model=
"queryParam.resident
Name"
></j-input>
</a-form-item>
</a-col>
...
...
@@ -62,9 +62,6 @@
onChange: onSelectChange,
getCheckboxProps: onCheckboxProps
}" class="j-table-force-nowrap" @change="handleTableChange">
<span
slot=
"ownerId"
slot-scope=
"text, record"
>
<span>
{{
record
.
ownerName
}}
,
{{
record
.
ownerPhone
}}
</span>
</span>
<span
slot=
"residentPhone"
slot-scope=
"text, record"
>
<span>
{{
record
.
residentName
}}
,
{{
record
.
residentPhone
}}
</span>
</span>
...
...
@@ -87,7 +84,7 @@
</div>
</div>
<notice-modal
ref=
"modalForm"
@
ok=
"
modalFormOk
"
></notice-modal>
<notice-modal
ref=
"modalForm"
@
ok=
"
searchQuery
"
></notice-modal>
</a-card>
</template>
...
...
@@ -111,14 +108,6 @@ const columns = [
key
:
'chargeItem'
,
align
:
'center'
,
},
{
title
:
'业主'
,
dataIndex
:
'ownerId'
,
key
:
'ownerId'
,
scopedSlots
:
{
customRender
:
'ownerId'
},
align
:
'center'
,
ellipsis
:
true
},
{
title
:
'与业主关系'
,
dataIndex
:
'relationShip'
,
...
...
src/views/property/living/modules/NoticeForm.vue
浏览文件 @
2c47334f
...
...
@@ -42,13 +42,13 @@
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
业主"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"owner
Name"
>
<a-input
v-model=
"model.
owner
Name"
placeholder=
"请输入"
disabled
></a-input>
<a-form-model-item
label=
"
住户"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"resident
Name"
>
<a-input
v-model=
"model.
resident
Name"
placeholder=
"请输入"
disabled
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
住户"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentNam
e"
>
<a-input
v-model=
"model.resident
Nam
e"
placeholder=
"请输入"
disabled
></a-input>
<a-form-model-item
label=
"
电话"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentPhon
e"
>
<a-input
v-model=
"model.resident
Phon
e"
placeholder=
"请输入"
disabled
></a-input>
</a-form-model-item>
</a-col>
...
...
@@ -143,8 +143,6 @@
roomId
:
''
,
roomName
:
''
,
floorSpace
:
''
,
ownerName
:
''
,
ownerPhone
:
''
,
residentName
:
''
,
residentPhone
:
''
,
relationShip
:
''
,
...
...
@@ -254,7 +252,7 @@
}
},
async
onqueryLastDegreesById
()
{
let
res
=
await
queryLastDegreesByIdApi
({
ownerId
:
this
.
model
.
owner
Id
,
chargeTypeId
:
this
.
model
.
chargeTypeId
})
let
res
=
await
queryLastDegreesByIdApi
({
roomId
:
this
.
model
.
room
Id
,
chargeTypeId
:
this
.
model
.
chargeTypeId
})
this
.
model
.
lastDegrees
=
res
.
result
if
(
this
.
model
.
currentDegrees
)
{
this
.
onDegreesChange
(
this
.
model
.
currentDegrees
)
...
...
@@ -263,12 +261,12 @@
async
onqueryByRoomId
()
{
let
res
=
await
queryByRoomIdApi
({
roomId
:
this
.
model
.
roomId
})
if
(
res
.
code
===
200
)
{
this
.
model
.
ownerName
=
res
.
result
.
ownerName
this
.
model
.
ownerPhone
=
res
.
result
.
ownerPhone
this
.
model
.
residentName
=
res
.
result
.
residentName
this
.
model
.
residentPhone
=
res
.
result
.
residentPhone
this
.
model
.
relationShip
=
res
.
result
.
relationShip
this
.
model
.
ownerId
=
res
.
result
.
id
let
ownerRow
=
res
.
result
.
find
(
item
=>
item
.
relationShip
===
'self'
)
if
(
!
ownerRow
)
ownerRow
=
{...
res
.
result
[
0
]}
this
.
model
.
residentName
=
ownerRow
.
residentName
this
.
model
.
residentPhone
=
ownerRow
.
residentPhone
this
.
model
.
relationShip
=
ownerRow
.
relationShip
this
.
model
.
ownerId
=
ownerRow
.
id
if
(
this
.
model
.
designFormulas
===
3
&&
this
.
model
.
chargeTypeId
)
{
this
.
onqueryLastDegreesById
()
}
...
...
src/views/property/propertyfee/modules/NoticeForm.vue
浏览文件 @
2c47334f
...
...
@@ -3,13 +3,20 @@
<j-form-container
:disabled=
"formDisabled"
>
<a-form-model
ref=
"form"
:model=
"model"
:rules=
"validatorRules"
slot=
"detail"
>
<a-row>
<a-col
:span=
"
24
"
>
<a-form-model-item
label=
"收费标准"
:labelCol=
"
{ xs: { span: 24 }, sm: { span: 2 } }
" :wrapperCol="wrapperCol" prop="chargingStandardId">
<a-select
style=
"width:50%"
v-model=
"model.chargingStandardId"
placeholder=
"请选择收费标准"
@
change=
"onStandardChange"
>
<a-col
:span=
"
12
"
>
<a-form-model-item
label=
"收费标准"
:labelCol=
"
labelCol
"
:wrapperCol=
"wrapperCol"
prop=
"chargingStandardId"
>
<a-select
v-model=
"model.chargingStandardId"
placeholder=
"请选择收费标准"
@
change=
"onStandardChange"
>
<a-select-option
v-for=
"item in ruleList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
chargeTypeCodeName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"收费周期"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"chargeCycle"
>
<a-select
v-model=
"model.chargeCycle"
placeholder=
"请选择收费周期"
disabled
>
<a-select-option
v-for=
"item in chargingCycle"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"收费类型"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"chargeTypeName"
>
<a-input
v-model=
"model.chargeTypeName"
placeholder=
"请输入"
disabled
></a-input>
...
...
@@ -42,13 +49,13 @@
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
业主"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"owner
Name"
>
<a-input
v-model=
"model.
owner
Name"
placeholder=
"请输入"
disabled
></a-input>
<a-form-model-item
label=
"
住户"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"resident
Name"
>
<a-input
v-model=
"model.
resident
Name"
placeholder=
"请输入"
disabled
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
住户"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentNam
e"
>
<a-input
v-model=
"model.resident
Nam
e"
placeholder=
"请输入"
disabled
></a-input>
<a-form-model-item
label=
"
电话"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentPhon
e"
>
<a-input
v-model=
"model.resident
Phon
e"
placeholder=
"请输入"
disabled
></a-input>
</a-form-model-item>
</a-col>
...
...
@@ -107,6 +114,7 @@
import
{
httpAction
,
getAction
}
from
'@/api/manage'
import
{
formatDate
}
from
'@/utils/util'
import
{
getBuildingListApi
,
getUnitListApi
,
getRoomListApi
,
companyPropertyChargerulesApi
,
queryByRoomIdApi
,
queryLastDegreesByIdApi
}
from
'@/api/api'
import
{
CHARGING_CYCLE
}
from
'@/assets/static.js'
export
default
{
name
:
'PropertyChargruleForm'
,
...
...
@@ -123,6 +131,7 @@
data
()
{
return
{
ruleList
:
[],
chargingCycle
:
CHARGING_CYCLE
,
treeData
:
[],
amount
:
0
,
model
:{
...
...
@@ -143,8 +152,6 @@
roomId
:
''
,
roomName
:
''
,
floorSpace
:
''
,
ownerName
:
''
,
ownerPhone
:
''
,
residentName
:
''
,
residentPhone
:
''
,
relationShip
:
''
,
...
...
@@ -219,11 +226,17 @@
this
.
model
.
designFormulas
=
row
.
designFormulas
this
.
amount
=
row
.
amount
this
.
model
.
unitPrice
=
this
.
model
.
designFormulas
===
1
?
''
:
row
.
amount
if
(
this
.
model
.
designFormulas
===
1
)
{
if
(
this
.
model
.
designFormulas
===
1
)
{
// 固定金额
this
.
model
.
totalAmount
=
this
.
amount
.
toFixed
(
2
)
}
if
(
this
.
model
.
designFormulas
===
2
&&
this
.
model
.
roomId
)
{
// 获取上期度数
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
).
toFixed
(
2
)
if
(
this
.
model
.
designFormulas
===
2
&&
this
.
model
.
roomId
)
{
// 建面 * 单价
if
(
this
.
model
.
chargeCycle
===
'2'
)
{
// 每季度
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
*
3
).
toFixed
(
2
)
}
else
if
(
this
.
model
.
chargeCycle
===
'3'
)
{
// 每年
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
*
12
).
toFixed
(
2
)
}
else
{
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
).
toFixed
(
2
)
}
}
if
(
this
.
model
.
designFormulas
===
3
&&
this
.
model
.
roomId
)
{
// 获取上期度数
this
.
onqueryLastDegreesById
()
...
...
@@ -250,7 +263,13 @@
this
.
model
.
buildingName
=
data
.
parent
.
parent
.
label
this
.
onqueryByRoomId
()
if
(
this
.
model
.
designFormulas
===
2
)
{
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
).
toFixed
(
2
)
if
(
this
.
model
.
chargeCycle
===
'2'
)
{
// 每季度
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
*
3
).
toFixed
(
2
)
}
else
if
(
this
.
model
.
chargeCycle
===
'3'
)
{
// 每年
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
*
12
).
toFixed
(
2
)
}
else
{
this
.
model
.
totalAmount
=
(
this
.
model
.
unitPrice
*
this
.
model
.
floorSpace
).
toFixed
(
2
)
}
}
},
async
onqueryLastDegreesById
()
{
...
...
@@ -263,12 +282,12 @@
async
onqueryByRoomId
()
{
let
res
=
await
queryByRoomIdApi
({
roomId
:
this
.
model
.
roomId
})
if
(
res
.
code
===
200
)
{
this
.
model
.
ownerName
=
res
.
result
.
ownerName
this
.
model
.
ownerPhone
=
res
.
result
.
ownerPhone
this
.
model
.
residentName
=
res
.
result
.
residentName
this
.
model
.
residentPhone
=
res
.
result
.
residentPhone
this
.
model
.
relationShip
=
res
.
result
.
relationShip
this
.
model
.
ownerId
=
res
.
result
.
id
let
ownerRow
=
res
.
result
.
find
(
item
=>
item
.
relationShip
===
'self'
)
if
(
!
ownerRow
)
ownerRow
=
{...
res
.
result
[
0
]}
this
.
model
.
residentName
=
ownerRow
.
residentName
this
.
model
.
residentPhone
=
ownerRow
.
residentPhone
this
.
model
.
relationShip
=
ownerRow
.
relationShip
this
.
model
.
ownerId
=
ownerRow
.
id
if
(
this
.
model
.
designFormulas
===
3
&&
this
.
model
.
chargeTypeId
)
{
this
.
onqueryLastDegreesById
()
}
...
...
src/views/property/propertyfee/propertyfee-detail.vue
浏览文件 @
2c47334f
...
...
@@ -20,11 +20,11 @@
<a-input
v-model=
"model.roomAllName"
placeholder=
"请输入"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"业主"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
owner
Name"
>
<a-input
v-model=
"model.
owner
Name"
placeholder=
"请输入"
></a-input>
<
!--
<
a-col
:span=
"12"
>
<a-form-model-item
label=
"业主"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
resident
Name"
>
<a-input
v-model=
"model.
resident
Name"
placeholder=
"请输入"
></a-input>
</a-form-model-item>
</a-col>
</a-col>
-->
<a-col
:span=
"12"
>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<!--
<a-input
v-model=
"model.relationShip"
placeholder=
"请输入"
></a-input>
-->
...
...
@@ -220,8 +220,6 @@ export default {
roomId
:
''
,
roomName
:
''
,
floorSpace
:
''
,
ownerName
:
''
,
ownerPhone
:
''
,
residentName
:
''
,
residentPhone
:
''
,
relationShip
:
''
,
...
...
src/views/property/propertyfee/propertyfee.vue
浏览文件 @
2c47334f
...
...
@@ -5,8 +5,8 @@
<a-form
layout=
"inline"
@
keyup
.
enter
.
native=
"searchQuery"
>
<a-row
:gutter=
"24"
>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-item
label=
"
业主
姓名"
>
<j-input
placeholder=
"请输入
业主姓名"
v-model=
"queryParam.owner
Name"
></j-input>
<a-form-item
label=
"
住户
姓名"
>
<j-input
placeholder=
"请输入
住户姓名"
v-model=
"queryParam.resident
Name"
></j-input>
</a-form-item>
</a-col>
...
...
@@ -62,9 +62,6 @@
onChange: onSelectChange,
getCheckboxProps: onCheckboxProps
}" class="j-table-force-nowrap" @change="handleTableChange">
<span
slot=
"ownerId"
slot-scope=
"text, record"
>
<span>
{{
record
.
ownerName
}}
,
{{
record
.
ownerPhone
}}
</span>
</span>
<span
slot=
"residentPhone"
slot-scope=
"text, record"
>
<span>
{{
record
.
residentName
}}
,
{{
record
.
residentPhone
}}
</span>
</span>
...
...
@@ -87,7 +84,7 @@
</div>
</div>
<notice-modal
ref=
"modalForm"
@
ok=
"
modalFormOk
"
></notice-modal>
<notice-modal
ref=
"modalForm"
@
ok=
"
searchQuery
"
></notice-modal>
</a-card>
</template>
...
...
@@ -113,14 +110,6 @@ const columns = [
width
:
220
,
align
:
'center'
,
},
{
title
:
'业主'
,
dataIndex
:
'ownerId'
,
key
:
'ownerId'
,
width
:
160
,
scopedSlots
:
{
customRender
:
'ownerId'
},
align
:
'center'
,
},
{
title
:
'与业主关系'
,
dataIndex
:
'relationShip'
,
...
...
@@ -199,7 +188,7 @@ const columns = [
align
:
'center'
,
width
:
150
,
fixed
:
'right'
,
}
,
}
]
export
default
{
...
...
src/views/property/receipt/modules/NoticeForm.vue
浏览文件 @
2c47334f
...
...
@@ -14,8 +14,8 @@
</a-form-model-item>
</a-col>
-->
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
业主"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"owner
Name"
>
<a-input
v-model=
"model.
ownerName"
placeholder=
"请输入业主
"
></a-input>
<a-form-model-item
label=
"
住户"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"resident
Name"
>
<a-input
v-model=
"model.
residentName"
placeholder=
"请输入住户
"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
...
...
@@ -35,7 +35,10 @@
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"缴费周期"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"chargeCycle"
>
<a-input
v-model=
"model.chargeCycle"
placeholder=
"请输入缴费周期"
></a-input>
<!--
<a-input
v-model=
"model.chargeCycle"
placeholder=
"请输入缴费周期"
></a-input>
-->
<a-select
v-model=
"model.chargeCycle"
placeholder=
"请选择缴费周期"
>
<a-select-option
v-for=
"item in chargingCycle"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
...
...
@@ -64,9 +67,9 @@
<
script
>
import
{
httpAction
,
getAction
}
from
'@/api/manage'
import
{
validateDuplicateValue
}
from
'@/utils/util'
import
{
httpAction
}
from
'@/api/manage'
import
{
ajaxGetDictItems
,
getDictItemsFromCache
}
from
'@/api/api'
import
{
CHARGING_CYCLE
}
from
'@/assets/static.js'
export
default
{
name
:
'PropertyChargruleForm'
,
...
...
@@ -82,6 +85,7 @@
},
data
()
{
return
{
chargingCycle
:
CHARGING_CYCLE
,
dictOptions
:
[],
model
:{
employeeName
:
''
,
...
...
src/views/property/receipt/receipt.vue
浏览文件 @
2c47334f
...
...
@@ -71,8 +71,8 @@
<span
slot=
"roomName"
slot-scope=
"text, record"
>
<span>
{{
record
.
buildingName
}}{{
record
.
unitName
}}{{
record
.
roomName
}}
</span>
</span>
<span
slot=
"
owner
Name"
slot-scope=
"text, record"
>
<span>
{{
record
.
ownerName
}}
,
{{
record
.
owner
Phone
}}
</span>
<span
slot=
"
resident
Name"
slot-scope=
"text, record"
>
<span>
{{
record
.
residentName
}}
,
{{
record
.
resident
Phone
}}
</span>
</span>
<span
slot=
"receiptStatus"
slot-scope=
"text, record"
>
<span
:style=
"
{'color': record.receiptStatus === '1' ? 'green' : 'red'}">
{{
record
.
receiptStatus
===
'1'
?
'是'
:
'否'
}}
</span>
...
...
@@ -80,7 +80,10 @@
<span
slot=
"action"
slot-scope=
"text, record"
>
<!--
<a
@
click=
"handleEdit(record)"
>
编辑
</a>
-->
<a
@
click=
"handleDetail(record)"
>
查看
</a>
<a
@
click=
"onIssueReceipt(record)"
style=
"margin-left: 10px;"
>
开收据
</a>
<template
v-if=
"record.receiptStatus !== '1'"
>
<a-divider
type=
"vertical"
/>
<a
@
click=
"onIssueReceipt(record)"
>
开收据
</a>
</
template
>
</span>
</a-table>
...
...
@@ -107,10 +110,10 @@
align
:
'center'
},
{
title
:
'
业主
'
,
dataIndex
:
'
owner
Name'
,
scopedSlots
:
{
customRender
:
'
owner
Name'
},
key
:
'
owner
Name'
,
title
:
'
住户
'
,
dataIndex
:
'
resident
Name'
,
scopedSlots
:
{
customRender
:
'
resident
Name'
},
key
:
'
resident
Name'
,
align
:
'center'
},
{
...
...
@@ -188,8 +191,7 @@
},
methods
:
{
onIssueReceipt
(
row
)
{
console
.
log
(
this
.
$refs
.
templateModal
)
this
.
$refs
.
templateModal
.
onLoadTemplate
()
this
.
$refs
.
templateModal
.
onLoadTemplate
(
row
)
},
handleOk
()
{},
handleCancel
()
{},
...
...
src/views/property/receipt/templateModal.vue
浏览文件 @
2c47334f
<
template
>
<j-modal
title=
"收据模板"
width=
"70%"
:visible=
"visible"
switchFullscreen
@
ok=
"handleOk"
:okButtonProps=
"
{ class:{'jee-hidden': false} }"
@cancel="handleCancel"
>
<template
slot=
"footer"
>
<a-button
key=
"back"
@
click=
"handleCancel"
>
关闭
</a-button>
</
template
>
<div>
<a-table
ref=
"table"
size=
"middle"
:scroll=
"{x:true}"
bordered
rowKey=
"id"
:columns=
"columns"
:dataSource=
"dataSource"
:pagination=
"ipagination"
:loading=
"loading"
class=
"j-table-force-nowrap"
>
<span
slot=
"receiptStatus"
slot-scope=
"text, record"
>
<span
:style=
"{'color': record.receiptStatus === '1' ? 'green' : 'red'}"
>
{{record.receiptStatus === '1' ? '是' : '否'}}
</span>
</span>
<span
slot=
"action"
slot-scope=
"text, record"
>
<!-- <a @click="handleEdit(record)">编辑</a> -->
<a
@
click=
"handleDetail(record)"
>
预览
</a>
<a
@
click=
"onIssueReceipt(record)"
style=
"margin-left: 10px;"
>
下载
</a>
</span>
</a-table>
</div>
</j-modal>
<div>
<j-modal
title=
"收据模板"
width=
"70%"
:visible=
"visible"
switchFullscreen
@
ok=
"handleOk"
:okButtonProps=
"
{ class:{'jee-hidden': false} }"
@cancel="handleCancel"
>
<template
slot=
"footer"
>
<a-button
key=
"back"
@
click=
"handleCancel"
>
关闭
</a-button>
</
template
>
<div>
<a-table
ref=
"table"
size=
"middle"
:scroll=
"{x:true}"
bordered
rowKey=
"id"
:columns=
"columns"
:dataSource=
"dataSource"
:pagination=
"ipagination"
:loading=
"loading"
class=
"j-table-force-nowrap"
>
<span
slot=
"receiptStatus"
slot-scope=
"text, record"
>
<span
:style=
"{'color': record.receiptStatus === '1' ? 'green' : 'red'}"
>
{{record.receiptStatus === '1' ? '是' : '否'}}
</span>
</span>
<span
slot=
"action"
slot-scope=
"text, record"
>
<a
@
click=
"handlePreviewPdf(record)"
>
预览
</a>
<a-divider
type=
"vertical"
/>
<a
@
click=
"handleSaveToPdf(record)"
>
下载
</a>
</span>
</a-table>
</div>
</j-modal>
<vue-html2pdf
:show-layout=
"false"
:float-layout=
"true"
:enable-download=
"true"
:preview-modal=
"false"
:html-to-pdf-options=
"pdfOptions"
:paginate-elements-by-height=
"1400"
filename=
"tempFileName"
:pdf-quality=
"2"
:manual-pagination=
"false"
pdf-format=
"a4"
pdf-orientation=
"landscape"
pdf-content-width=
"98%"
@
progress=
"onProgress"
ref=
"html2PdfDownLoad"
>
<section
slot=
"pdf-content"
>
<!-- PDF Content Here -->
<span
id=
"report"
v-html=
"content"
></span>
</section>
</vue-html2pdf>
<vue-html2pdf
:show-layout=
"false"
:float-layout=
"true"
:enable-download=
"false"
:preview-modal=
"true"
:html-to-pdf-options=
"pdfOptions"
:paginate-elements-by-height=
"1400"
filename=
"tempFileName"
:pdf-quality=
"2"
:manual-pagination=
"false"
pdf-format=
"a4"
pdf-orientation=
"landscape"
pdf-content-width=
"98%"
@
progress=
"onProgress"
ref=
"html2PdfPreview"
>
<section
slot=
"pdf-content"
>
<!-- PDF Content Here -->
<span
id=
"report"
v-html=
"content"
></span>
</section>
</vue-html2pdf>
</div>
</template>
<
script
>
import
{
JeecgListMixin
}
from
'@/mixins/JeecgListMixin'
import
VueHtml2pdf
from
"vue-html2pdf"
;
// const content = '
<
h3
style
=
"text-align: center;"
><
span
data
-
w
-
e
-
type
=
"mention"
data
-
w
-
e
-
is
-
void
=
""
data
-
w
-
e
-
is
-
inline
=
""
data
-
value
=
"收据名称"
data
-
info
=
"%7B%22id%22%3A%22a%22%7D"
>
@
收据名称
<
/span></
h3
><
p
style
=
"text-align: center;"
>
单号:
<
span
data
-
w
-
e
-
type
=
"mention"
data
-
w
-
e
-
is
-
void
=
""
data
-
w
-
e
-
is
-
inline
=
""
data
-
value
=
"单号"
data
-
info
=
"%7B%22id%22%3A%22b%22%7D"
>
@
单号
<
/span></
p
><
p
style
=
"text-align: left;"
>
业主:
<
span
data
-
w
-
e
-
type
=
"mention"
data
-
w
-
e
-
is
-
void
=
""
data
-
w
-
e
-
is
-
inline
=
""
data
-
value
=
"业主名称"
data
-
info
=
"%7B%22id%22%3A%22c%22%7D"
>
@
业主名称
<
/span> 缴费时间:<span data-w-e-type="mention" data-w-e-is-void="" data-w-e-is-inline="" data-value="缴费时间" data-info="%7B%22id%22%3A%22d%22%7D">@缴费时间</
span
><
/p><hr/
><
p
style
=
"line-height: 2.5;"
>
今收到
<
u
>
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
<
/u> 金额(大写)<u> </
u
><
span
data
-
w
-
e
-
type
=
"mention"
data
-
w
-
e
-
is
-
void
=
""
data
-
w
-
e
-
is
-
inline
=
""
data
-
value
=
"大写金额"
data
-
info
=
"%7B%22id%22%3A%22e%22%7D"
>
@
大写金额
<
/span><u> </
u
><
/p><p style="line-height: 2.5;">收款单位(盖章) ¥:<u> </
u
><
span
data
-
w
-
e
-
type
=
"mention"
data
-
w
-
e
-
is
-
void
=
""
data
-
w
-
e
-
is
-
inline
=
""
data
-
value
=
"小写金额"
data
-
info
=
"%7B%22id%22%3A%22f%22%7D"
>
@
小写金额
<
/span><u> </
u
><
/p><hr/
><
p
>
开票人:
<
span
data
-
w
-
e
-
type
=
"mention"
data
-
w
-
e
-
is
-
void
data
-
w
-
e
-
is
-
inline
data
-
value
=
"审核人"
data
-
info
=
"%7B%22id%22%3A%22g%22%7D"
>
@
审核人
<
/span> 收款人:<span data-w-e-type="mention" data-w-e-is-void data-w-e-is-inline data-value="审核人" data-info="%7B%22id%22%3A%22g%22%7D">@审核人</
span
>
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
&
nbsp
;
客户:
<
span
data
-
w
-
e
-
type
=
"mention"
data
-
w
-
e
-
is
-
void
data
-
w
-
e
-
is
-
inline
data
-
value
=
"业主名称"
data
-
info
=
"%7B%22id%22%3A%22c%22%7D"
>
@
业主名称
<
/span></
p
>
'
let receiptObj = {}
const columns = [
{
...
...
@@ -84,6 +133,9 @@
export default {
name: '
PropertySettledModal
',
mixins: [JeecgListMixin],
components: {
VueHtml2pdf
},
data () {
return {
columns: columns,
...
...
@@ -91,19 +143,21 @@
list: "/property-company/system/receiptTemplate/list"
},
visible: false,
content: '',
// previewModal: false,
pdfOptions: {
margin: [20, 10, 20, 10],
filename: ''
}
}
},
methods: {
onLoadTemplate
()
{
onLoadTemplate(receipt) {
receiptObj = {...receipt}
this.visible=true
this.loadData()
},
edit
(
record
)
{
this
.
visible
=
true
this
.
$nextTick
(()
=>
{
this
.
$refs
.
realForm
.
edit
(
record
);
})
},
close () {
this.$emit('
close
');
this.visible = false;
...
...
@@ -111,12 +165,53 @@
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback
(){
this
.
$emit
(
'ok'
);
this
.
visible
=
false
;
},
handleCancel () {
this.close()
},
onProgress(e) {
console.log(e)
},
dealBigMoney(number) {
if (!/^(0|[1-9]
\
d*)(
\
.
\
d+)?$/.test(number)) return "数据非法";
let unit = "仟佰拾亿仟佰拾万仟佰拾元角分", str = "";
let n = number + "00";
let p = n.indexOf('
.
');
if (p >= 0){
n = n.substring(0, p) + n.substr(p+1, 2);
unit = unit.substr(unit.length - n.length);
}
for (var i=0; i < n.length; i++) {
str += '
零壹贰叁肆伍陆柒捌玖
'.charAt(n.charAt(i)) + unit.charAt(i);
}
return str.replace(/零(仟|佰|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
},
handleSaveToPdf(row) {
this.pdfOptions.filename = '
收费模板
'
let content = row.templateStyle
let capitalizationAmont = this.dealBigMoney(receiptObj.totalAmount)
content = content.replace(/@收据名称/g, row.templateName)
content = content.replace(/@单号/g, receiptObj.paymentNum)
content = content.replace(/@业主名称/g, receiptObj.residentName)
content = content.replace(/@缴费时间/g, receiptObj.paymentTime)
content = content.replace(/@大写金额/g, capitalizationAmont)
content = content.replace(/@小写金额/g, receiptObj.totalAmount)
content = content.replace(/@审核人/g, receiptObj.updateBy)
this.$refs.html2PdfDownLoad.generatePdf();
},
handlePreviewPdf(row) {
let content = row.templateStyle
let capitalizationAmont = this.dealBigMoney(receiptObj.totalAmount)
content = content.replace(/@收据名称/g, row.templateName)
content = content.replace(/@单号/g, receiptObj.paymentNum)
content = content.replace(/@业主名称/g, receiptObj.residentName)
content = content.replace(/@缴费时间/g, receiptObj.paymentTime)
content = content.replace(/@大写金额/g, capitalizationAmont)
content = content.replace(/@小写金额/g, receiptObj.totalAmount)
content = content.replace(/@审核人/g, receiptObj.updateBy)
// content = content.replace(/<p style="line-height: 2.5;">/g, '
<
p
style
=
"line-height: 2.5;border-bottom:1px solid #333;"
>
')
this.content = content
this.$refs.html2PdfPreview.generatePdf()
}
}
}
...
...
src/views/property/record/RecordDetails.vue
浏览文件 @
2c47334f
...
...
@@ -10,144 +10,267 @@
</div>
</div>
<a-card
title=
"请选择对账"
v-if=
"pageType === '3'"
>
<div
class=
"table-page-search-wrapper"
>
<a-form
layout=
"inline"
@
keyup
.
enter
.
native=
"searchQuery"
>
<a-row
:gutter=
"24"
>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-item
label=
"住户"
>
<j-input
placeholder=
"请输入住户"
v-model=
"queryParam.residentName"
></j-input>
</a-form-item>
</a-col>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-model-item
label=
"收费类型"
>
<a-select
style=
"width: 100%"
v-model=
"queryParam.chargeTypeName"
placeholder=
"请选择收费类型"
>
<a-select-option
v-for=
"item in chargeTypeOptions"
:key=
"item.typeCode"
:value=
"item.typeName"
>
{{
item
.
typeName
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<span
style=
"float: left;overflow: hidden;"
class=
"table-page-search-submitButtons"
>
<a-col
:md=
"6"
:sm=
"24"
>
<a-button
type=
"primary"
@
click=
"searchQuery"
>
查询
</a-button>
<a-button
style=
"margin-left: 8px"
@
click=
"searchReset"
>
重置
</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<div
class=
"ant-alert ant-alert-info"
style=
"margin-bottom: 16px;"
>
已选择
<a
style=
"font-weight: 600"
>
{{
selectionRows
.
length
}}
</a>
个缴费单,共计
<span
style=
"color:red"
>
{{
totalMoney
}}
</span>
元
<a
style=
"margin-left: 24px"
v-if=
"selectedRowKeys.length > 0"
@
click=
"onClearSelected"
>
清空
</a>
</div>
<a-row>
<a-table
ref=
"table"
size=
"middle"
:scroll=
"
{ x: true}" bordered rowKey="id" :columns="columns"
:dataSource="dataSource" :pagination="ipagination" :loading="loading" :rowSelection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
getCheckboxProps: onCheckboxProps
}" class="j-table-force-nowrap" @change="handleTableChange">
<span
slot=
"residentPhone"
slot-scope=
"text, record"
>
<span>
{{
record
.
residentName
}}
,
{{
record
.
residentPhone
}}
</span>
</span>
<span
slot=
"roomId"
slot-scope=
"text, record"
>
<span>
{{
record
.
buildingName
}}{{
record
.
unitName
}}{{
record
.
roomName
}}
</span>
</span>
</a-table>
</a-row>
</a-card>
<j-form-container
:disabled=
"pageType !== '3'"
>
<a-form-model
ref=
"form"
:model=
"model"
:rules=
"validatorRules"
slot=
"detail"
>
<a-card
title=
"对账信息"
>
<a-form-model
ref=
"form"
:model=
"model"
slot=
"detail"
>
<a-card
title=
"对账信息"
v-if=
"pageType !== '3'"
>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"对账单号"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
propertyName
"
>
<a-input
v-model=
"model.
propertyName
"
placeholder=
"请输入对账单号"
></a-input>
<a-form-model-item
label=
"对账单号"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
id
"
>
<a-input
v-model=
"model.
id
"
placeholder=
"请输入对账单号"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"对账开始时间"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
creditCod
e"
>
<a-input
v-model=
"model.
creditCod
e"
placeholder=
"请输入对账开始时间"
></a-input>
<a-form-model-item
label=
"对账开始时间"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
reconciliationBeginDat
e"
>
<a-input
v-model=
"model.
reconciliationBeginDat
e"
placeholder=
"请输入对账开始时间"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"对账结束时间"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
legalNam
e"
>
<a-input
v-model=
"model.
legalNam
e"
placeholder=
"请输入对账结束时间"
></a-input>
<a-form-model-item
label=
"对账结束时间"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
reconciliationEndDat
e"
>
<a-input
v-model=
"model.
reconciliationEndDat
e"
placeholder=
"请输入对账结束时间"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"操作人"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
registCapital
"
>
<a-input-number
v-model=
"model.
registCapital
"
:min=
"1"
placeholder=
"请输入操作人"
style=
"width: 100%"
/>
<a-form-model-item
label=
"操作人"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"
createBy
"
>
<a-input-number
v-model=
"model.
createBy
"
:min=
"1"
placeholder=
"请输入操作人"
style=
"width: 100%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"操作日期"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"c
ontactNa
me"
>
<a-input
v-model=
"model.c
ontactNa
me"
placeholder=
"请输入操作日期"
></a-input>
<a-form-model-item
label=
"操作日期"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"c
reateTi
me"
>
<a-input
v-model=
"model.c
reateTi
me"
placeholder=
"请输入操作日期"
></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-card>
<a-card
title=
"对账明细"
>
<a-row>
<div>
<a-table
ref=
"table"
size=
"middle"
:scroll=
"
{x:true}" bordered rowKey="id" :columns="columns"
:dataSource="dataSource" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" @change="handleTableChange">
</a-table>
</div>
<!--
<a-col
:span=
"12"
>
<a-form-model-item
label=
"小区审核状态"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"communityAuditStatus"
>
<a-select
v-model=
"model.communityAuditStatus"
style=
"width:100%"
>
<a-select-option
v-for=
"item in communityAuditStatusList"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
-->
</a-row>
</a-card>
</a-form-model>
</j-form-container>
<a-card
title=
"对账明细"
v-if=
"pageType !== '3'"
>
<p>
已添加
{{
dataSource
.
length
}}
个缴费单,共计
<span
style=
"color:red"
>
{{
model
.
reconciliationAmount
}}
</span>
元
</p>
<a-row>
<div>
<a-table
ref=
"table"
size=
"middle"
:scroll=
"
{ x: true}" bordered rowKey="id" :columns="columns"
:dataSource="dataSource" :pagination="ipagination" :loading="loading" class="j-table-force-nowrap">
<span
slot=
"residentPhone"
slot-scope=
"text, record"
>
<span>
{{
record
.
residentName
}}
,
{{
record
.
residentPhone
}}
</span>
</span>
<span
slot=
"roomId"
slot-scope=
"text, record"
>
<span>
{{
record
.
buildingName
}}{{
record
.
unitName
}}{{
record
.
roomName
}}
</span>
</span>
</a-table>
</div>
</a-row>
</a-card>
<a-card
title=
"审核记录"
v-if=
"pageType === '1'"
>
<a-row>
<div>
<a-table
ref=
"table"
size=
"middle"
:scroll=
"
{ x: 600}" bordered rowKey="id" :columns="recordColumns"
:dataSource="recordList" class="j-table-force-nowrap">
</a-table>
</div>
</a-row>
</a-card>
<a-card
title=
"审核说明"
v-if=
"pageType === '2'"
>
<a-textarea
placeholder=
"请输入审核说明"
v-model=
"auditDescription"
/>
</a-card>
</a-spin>
</
template
>
<
script
>
import
{
httpAction
,
getAction
}
from
'@/api/manage'
import
{
isMobile
}
from
'@/utils/validate
'
import
{
addCommunityAccountPageApi
,
getCommunityRecordListApi
,
getDetailReconciliationApi
,
getAccountListByIdApi
,
communityAuditAccountPageApi
,
getChargeListApi
}
from
'@/api/api
'
import
{
JeecgListMixin
}
from
'@/mixins/JeecgListMixin'
import
{
PAYMENT_STATUS
,
RELATION_SHIP
,
filterDictTextByStatic
,
RECONCILIATION_STATUS
}
from
'@/assets/static.js'
const
columns
=
[
{
title
:
'所属小区'
,
dataIndex
:
'propertyName'
,
key
:
'propertyName'
,
title
:
'收费类型'
,
dataIndex
:
'chargeTypeName'
,
key
:
'chargeTypeName'
,
width
:
120
,
align
:
'center'
,
},
{
title
:
'费用项目'
,
dataIndex
:
'creditCode'
,
key
:
'creditCode'
,
align
:
'center'
,
},
{
title
:
'业主'
,
dataIndex
:
'reconciliationBeginDate'
,
key
:
'reconciliationBeginDate'
,
title
:
'收费项目'
,
dataIndex
:
'chargeItem'
,
key
:
'chargeItem'
,
width
:
220
,
align
:
'center'
,
},
{
title
:
'与业主关系'
,
dataIndex
:
'reaship'
,
key
:
'reaship'
,
dataIndex
:
'relationShip'
,
key
:
'relationShip'
,
width
:
120
,
align
:
'center'
,
customRender
:
function
(
text
)
{
return
filterDictTextByStatic
(
RELATION_SHIP
,
text
)
},
},
{
title
:
'住户'
,
dataIndex
:
'reconcilname'
,
key
:
'reconcilname'
,
dataIndex
:
'residentPhone'
,
key
:
'residentPhone'
,
width
:
160
,
scopedSlots
:
{
customRender
:
'residentPhone'
},
align
:
'center'
,
},
{
title
:
'房屋编号'
,
dataIndex
:
'reconciliationEndDate'
,
key
:
'reconciliationEndDate'
,
dataIndex
:
'roomId'
,
scopedSlots
:
{
customRender
:
'roomId'
},
key
:
'roomId'
,
width
:
140
,
align
:
'center'
,
},
{
title
:
'费用'
,
dataIndex
:
'reconciliationAmount'
,
key
:
'reconciliationAmount'
,
title
:
'金额(元)'
,
dataIndex
:
'totalAmount'
,
key
:
'totalAmount'
,
width
:
120
,
align
:
'center'
,
},
{
title
:
'缴费日期'
,
dataIndex
:
'updateTime'
,
key
:
'updateTime'
,
title
:
'本期读表时间'
,
dataIndex
:
'meterReadingTime'
,
key
:
'meterReadingTime'
,
width
:
150
,
align
:
'center'
,
},
// {
// title: '缴费状态',
// dataIndex: 'paymentStatus',
// key: 'paymentStatus',
// width: 120,
// align: 'center',
// customRender: function (text) {
// return filterDictTextByStatic(PAYMENT_STATUS, text)
// },
// },
{
title
:
'缴费单号'
,
dataIndex
:
'empowerCommunityNum'
,
key
:
'empowerCommunityNum'
,
// customRender: function (text) {
// return filterDictTextByCache('companyAuditStatus', text)
// },
dataIndex
:
'paymentNum'
,
key
:
'paymentNum'
,
width
:
120
,
align
:
'center'
,
},
{
title
:
'缴费日期'
,
dataIndex
:
'paymentTime'
,
key
:
'paymentTime'
,
width
:
150
,
align
:
'center'
,
},
{
title
:
'创建日期'
,
dataIndex
:
'createTime'
,
key
:
'createTime'
,
width
:
150
,
align
:
'center'
,
}
]
const
recordColumns
=
[
{
title
:
'审核平台'
,
dataIndex
:
'platformName'
,
key
:
'platformName'
,
width
:
100
,
align
:
'center'
,
},
{
title
:
'审核状态'
,
dataIndex
:
'auditStatus'
,
key
:
'auditStatus'
,
width
:
100
,
align
:
'center'
,
// customRender: (text)=> {
// return filterDictTextByStatic(RECONCILIATION_STATUS, text)
// },
},
{
title
:
'审核说明'
,
dataIndex
:
'refuseDesc'
,
key
:
'refuseDesc'
,
width
:
200
,
align
:
'center'
,
ellipsis
:
true
},
{
title
:
'审核人'
,
dataIndex
:
'createBy'
,
key
:
'createBy'
,
width
:
100
,
align
:
'center'
},
{
title
:
'审核时间'
,
dataIndex
:
'createTime'
,
key
:
'createTime'
,
width
:
100
,
align
:
'center'
,
}
]
export
default
{
name
:
'PropertySettledForm'
,
inject
:
[
'closeCurrent'
],
mixins
:
[
JeecgListMixin
],
data
()
{
const
validateToNextPhone
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
&&
isMobile
(
value
))
{
callback
()
}
else
{
callback
(
'请输入正确的联系人电话!'
)
}
}
return
{
communityAuditStatusList
:
RECONCILIATION_STATUS
,
title
:
''
,
pageType
:
''
,
pcaa
:
this
.
$Jpcaa
,
model
:
{
propertyName
:
'234234234'
,
creditCode
:
'2023-03-22'
,
legalName
:
'2023-06-22'
,
registCapital
:
'ADMIN'
,
contactName
:
'2023-06-23'
,
image
:
''
},
model
:
{},
labelCol
:
{
xs
:
{
span
:
24
},
sm
:
{
span
:
6
},
...
...
@@ -157,58 +280,46 @@ export default {
sm
:
{
span
:
16
},
},
confirmLoading
:
false
,
validatorRules
:
{
propertyName
:
[{
required
:
true
,
message
:
'请输入物业集团名称'
,
trigger
:
'blur'
}],
creditCode
:
[{
required
:
true
,
message
:
'请输入统一信用代码'
,
trigger
:
'blur'
}],
legalName
:
[{
required
:
true
,
message
:
'请输入法人代表'
,
trigger
:
'blur'
}],
registCapital
:
[{
required
:
true
,
message
:
'请输入注册资本'
,
trigger
:
'blur'
}],
contactName
:
[{
required
:
true
,
message
:
'请输入联系人'
,
trigger
:
'blur'
}],
contactPhone
:
[
{
required
:
true
,
message
:
'请输入联系人电话'
,
trigger
:
'blur'
},
{
validator
:
validateToNextPhone
},
],
registAdress
:
[{
required
:
true
,
message
:
'请选择注册地址'
,
trigger
:
'change'
}],
addressInfo
:
[{
required
:
true
,
message
:
'请输入详细地址'
,
trigger
:
'blur'
}],
logoUrl
:
[{
required
:
true
,
message
:
'请上传集团LOGO'
,
trigger
:
'change'
}],
empowerBeginDate
:
[{
required
:
true
,
message
:
'请选择授权开始日期'
,
trigger
:
'change'
}],
empowerEndDate
:
[{
required
:
true
,
message
:
'请选择权结束日期'
,
trigger
:
'change'
}],
empowerCommunityNum
:
[{
required
:
true
,
message
:
'请输入授权小区数量'
,
trigger
:
'blur'
}],
chargingStandardId
:
[{
required
:
true
,
message
:
'请选择收费标准'
,
trigger
:
'change'
}],
adminLoginName
:
[{
required
:
true
,
message
:
'请输入管理员账号'
,
trigger
:
'blur'
}],
adminPassword
:
[{
required
:
true
,
message
:
'请输入管理员密码'
,
trigger
:
'blur'
}],
contractUrl
:
[{
required
:
true
,
message
:
'请上传合同附件'
,
trigger
:
'change'
}],
},
url
:
{
add
:
'/property-central/property/propertySettled/add'
,
edit
:
'/property-central/property/propertySettled/edit'
,
queryById
:
'/property-central/property/propertySettled/queryById'
,
list
:
'/property-central/property/communityReconciliation/communityAccountPage'
list
:
'/property-community/property/communityReconciliation/communityAccountPage'
},
chargeTypeOptions
:
[],
auditDescription
:
''
,
columns
:
columns
,
loading
:
false
,
dataSource
:
[
{
id
:
'DSF3453534'
,
propertyName
:
'汉江之星小区'
,
creditCode
:
'物业费'
,
reconciliationBeginDate
:
'张飒,15198765634'
,
reaship
:
'租户'
,
reconcilname
:
'李白,15165245634'
,
reconciliationEndDate
:
'2栋2单元101'
,
reconciliationAmount
:
'345.23'
,
updateTime
:
'2023-04-05'
,
empowerCommunityNum
:
'LD23423843223'
,
auditStatus
:
'2023-05-06'
},
{
id
:
'DSF32342334'
,
propertyName
:
'汉江之星小区'
,
creditCode
:
'水费'
,
reconciliationBeginDate
:
'李生,1515235634'
,
reaship
:
'本人'
,
reconcilname
:
'李生,1515235634'
,
reconciliationEndDate
:
'1栋2单元301'
,
reconciliationAmount
:
'1345.45'
,
updateTime
:
'2023-05-05'
,
empowerCommunityNum
:
'DFG2342342323'
,
auditStatus
:
'2023-05-16'
},
{
id
:
'DSF23423434'
,
propertyName
:
'汉江之星小区'
,
creditCode
:
'电费'
,
reconciliationBeginDate
:
'李丽,19812348976'
,
reaship
:
'租户'
,
reconcilname
:
'张飒,15198765634'
,
reconciliationEndDate
:
'9栋1单元401'
,
reconciliationAmount
:
'34234'
,
updateTime
:
'2023-02-06'
,
empowerCommunityNum
:
'JTR323422'
,
auditStatus
:
'2023-03-06'
},
{
id
:
'DSF36783434'
,
propertyName
:
'汉江之星小区'
,
creditCode
:
'水费'
,
reconciliationBeginDate
:
'张盛,1890987567'
,
reaship
:
'本人'
,
reconcilname
:
'张盛,1890987567'
,
reconciliationEndDate
:
'4栋2单元403'
,
reconciliationAmount
:
'34'
,
updateTime
:
'2023-06-07'
,
empowerCommunityNum
:
'DFGD32423423'
,
auditStatus
:
'2023-04-23'
},
{
id
:
'DS235345534'
,
propertyName
:
'汉江之星小区'
,
creditCode
:
'燃气费'
,
reconciliationBeginDate
:
'李婷婷,18809875634'
,
reaship
:
'租户'
,
reconcilname
:
'话梅,15198765634'
,
reconciliationEndDate
:
'9栋2单元1201'
,
reconciliationAmount
:
'654'
,
updateTime
:
'2023-05-06'
,
empowerCommunityNum
:
'FDBEWRW2342342'
,
auditStatus
:
'2023-06-26'
},
]
disableMixinCreated
:
true
,
recordColumns
:
recordColumns
,
recordList
:
[]
}
},
computed
:
{
totalMoney
()
{
return
this
.
selectionRows
.
reduce
((
prev
,
cur
,
index
,
arr
)
=>
{
return
parseFloat
((
prev
+
cur
.
totalAmount
).
toFixed
(
1
))
},
0
)
}
},
methods
:
{
async
getPageDetail
()
{
// let { result } = await getPropertyDetailApi({ id: this.$route.query.id })
// this.edit(result)
// if (result.provinceName) {
// this.getLongitude(
// result.provinceName,
// result.provinceName + result.cityName + result.countyName + result.addressInfo,
// mapZoom[3]
// )
// }
onCheckboxProps
(
record
)
{
let
props
=
{
disabled
:
record
.
paymentStatus
===
'paid'
,
name
:
record
.
chargeTypeName
,
}
return
props
},
async
getCommunityReconciliation
()
{
let
formModel
=
await
getDetailReconciliationApi
({
id
:
this
.
$route
.
query
.
id
})
this
.
model
=
{...
formModel
.
result
}
let
formList
=
await
getAccountListByIdApi
({
reconciliationId
:
this
.
$route
.
query
.
id
})
this
.
dataSource
=
[...
formList
.
result
.
records
]
let
record
=
await
getCommunityRecordListApi
({
dataId
:
this
.
$route
.
query
.
id
,
auditType
:
'reconciliation'
})
this
.
recordList
=
[...
record
.
result
]
},
onCancel
()
{
this
.
closeCurrent
()
...
...
@@ -224,7 +335,28 @@ export default {
this
.
visible
=
true
},
onExamine
(
type
)
{
this
.
closeCurrent
()
if
(
type
===
3
)
{
this
.
confirmLoading
=
true
addCommunityAccountPageApi
({
// paymentIds: this.selectionRows.map(item=>item.id).join(',')
payments
:
this
.
selectionRows
}).
then
(
res
=>
{
this
.
confirmLoading
=
false
this
.
$message
.
success
(
res
.
message
)
this
.
closeCurrent
()
})
}
else
{
this
.
confirmLoading
=
true
communityAuditAccountPageApi
({
auditStatus
:
type
===
1
?
'auditPass'
:
'refuse'
,
id
:
this
.
$route
.
query
.
id
,
refuseDesc
:
this
.
auditDescription
}).
then
(
res
=>
{
this
.
confirmLoading
=
false
this
.
$message
.
success
(
`
${
type
===
1
?
'审核'
:
'驳回'
}
成功!`
)
this
.
closeCurrent
()
})
}
},
submitForm
()
{
const
that
=
this
...
...
@@ -249,7 +381,7 @@ export default {
that
.
$emit
(
'ok'
)
this
.
closeCurrent
()
}
else
{
that
.
$message
.
warning
(
res
.
message
)
that
.
$message
.
success
(
res
.
message
)
}
})
.
finally
(()
=>
{
...
...
@@ -258,8 +390,9 @@ export default {
}
})
},
loadData
()
{
console
.
log
(
'不请求'
)
async
getChargeList
()
{
let
{
result
}
=
await
getChargeListApi
()
this
.
chargeTypeOptions
=
result
}
},
mounted
()
{
...
...
@@ -268,16 +401,15 @@ export default {
this
.
pageType
=
this
.
$route
.
query
.
type
if
(
this
.
$route
.
query
.
type
==
'1'
)
{
this
.
title
=
'详情'
this
.
getCommunityReconciliation
()
}
else
if
(
this
.
$route
.
query
.
type
==
'2'
)
{
this
.
title
=
'审核'
this
.
getCommunityReconciliation
()
}
else
if
(
this
.
$route
.
query
.
type
==
'3'
)
{
this
.
title
=
'新增对账'
this
.
loadData
()
this
.
getChargeList
()
}
console
.
log
(
this
.
title
)
console
.
log
(
this
.
pageType
)
// if (this.$route.query.id) {
// this.getPageDetail()
// }
}
}
</
script
>
...
...
src/views/property/record/RecordList.vue
浏览文件 @
2c47334f
...
...
@@ -14,9 +14,14 @@
<j-input
placeholder=
"请输入小区名称"
v-model=
"queryParam.propertyName"
></j-input>
</a-form-item>
</a-col>
<a-col
:md=
"8"
:sm=
"10"
>
<a-form-item
label=
"缴费日期"
>
<a-range-picker
@
change=
"onChange"
/>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-item
label=
"缴费开始时间"
>
<a-date-picker
placeholder=
"缴费开始时间"
valueFormat=
"YYYY-MM-DD"
v-model=
"queryParam.reconciliationBeginDate"
></a-date-picker>
</a-form-item>
</a-col>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-item
label=
"缴费结束时间"
>
<a-date-picker
placeholder=
"缴费结束时间"
valueFormat=
"YYYY-MM-DD"
v-model=
"queryParam.reconciliationEndDate"
></a-date-picker>
</a-form-item>
</a-col>
<span
style=
"float: left;overflow: hidden;"
class=
"table-page-search-submitButtons"
>
...
...
@@ -33,12 +38,12 @@
<div
class=
"table-operator"
>
<a-button
@
click=
"propertyDetails(3)"
type=
"primary"
icon=
"plus"
>
新增对账
</a-button>
<!--
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button>
-->
<
!--
<
a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"
batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"
onReconciliation()"
><a-icon
type=
"audit"
/>
申请对账
</a-menu-item>
</a-menu>
<a-button
style=
"margin-left: 8px"
>
批量操作
<a-icon
type=
"down"
/></a-button>
</a-dropdown>
-->
</a-dropdown>
</div>
<!-- table区域-begin -->
...
...
@@ -49,38 +54,24 @@
<a
style=
"margin-left: 24px"
v-if=
"selectedRowKeys.length > 0"
@
click=
"onClearSelected"
>
清空
</a>
</div>
-->
<a-table
ref=
"table"
size=
"middle"
:scroll=
"
{x:true}"
bordered rowKey="id"
:columns="columns"
<a-table
ref=
"table"
size=
"middle"
:scroll=
"
{x:true}"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, getCheckboxProps: onCheckboxProps}" bordered rowKey="id"
:columns="columns"
:dataSource="dataSource" :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" @change="handleTableChange">
<span
slot=
"empowerEndDate"
slot-scope=
"text, record"
>
<span
v-if=
"record.empowerEndDate"
>
{{
record
.
empowerBeginDate
}}
至
{{
record
.
empowerEndDate
}}
</span>
</span>
<span
slot=
"propertyStatus"
slot-scope=
"text, record"
>
<span>
{{
record
.
propertyStatus
===
'normal'
?
'正常'
:
'冻结'
}}
</span>
</span>
<span
slot=
"expirationStatus"
slot-scope=
"text, record"
>
<a-tag>
{{
record
.
expirationStatus
===
'notStarted'
?
'未开始'
:
record
.
expirationStatus
===
'normal'
?
'正常'
:
record
.
expirationStatus
===
'soonExpired'
?
'即将到期'
:
record
.
expirationStatus
===
'expire'
?
'已过期'
:
''
}}
</a-tag>
</span>
<span
slot=
"action"
slot-scope=
"text, record"
>
<a
href=
"javascript:;"
@
click=
"propertyDetails(1, record.id)"
>
详情
</a>
<template
v-if=
"record.auditStatus === '待审核'"
>
<template
v-if=
"record.communityAuditStatus === 'communityWaitAudit'"
>
<a-divider
type=
"vertical"
/>
<a
href=
"javascript:;"
@
click=
"propertyDetails(2, record.id)"
>
审核
</a>
</
template
>
<!-- <a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down" />
</a>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:;" @click="propertyDetails(2, record.id)">审核</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="propertyDetails(3, record.id)">拨款</a>
</a-menu-item>
</a-menu>
</a-dropdown> -->
<
template
v-if=
"record.communityAuditStatus === 'communityRefuse' || record.companyAuditStatus === 'companyRefuse'"
>
<a-divider
type=
"vertical"
/>
<a-popconfirm
title=
"确定删除吗?"
@
confirm=
"() => handleDelete(record.id)"
placement=
"topLeft"
>
<a>
删除
</a>
</a-popconfirm>
</
template
>
<
template
v-if=
"record.communityAuditStatus === 'communityAuditPass' && !record.companyAuditStatus"
>
<a-divider
type=
"vertical"
/>
<a
href=
"javascript:;"
@
click=
"onReconciliation(record.id)"
>
申请对账
</a>
</
template
>
</span>
</a-table>
...
...
@@ -90,9 +81,9 @@
</template>
<
script
>
import
{
auditPropertyApi
,
freezeOrPropert
yApi
}
from
'@/api/api'
import
{
communitySubCompan
yApi
}
from
'@/api/api'
import
{
JeecgListMixin
}
from
'@/mixins/JeecgListMixin'
import
{
filterDictTextBy
Cache
}
from
'@/components/dict/JDictSelectUtil
'
import
{
filterDictTextBy
Static
,
RECONCILIATION_STATUS
,
COMPANY_AUDIT_STATUS
}
from
'@/assets/static.js
'
const
columns
=
[
{
...
...
@@ -121,30 +112,33 @@ const columns = [
},
{
title
:
'操作日期'
,
dataIndex
:
'
upd
ateTime'
,
key
:
'
upd
ateTime'
,
dataIndex
:
'
cre
ateTime'
,
key
:
'
cre
ateTime'
,
align
:
'center'
,
},
{
title
:
'操作人'
,
dataIndex
:
'
empowerCommunityNum
'
,
key
:
'
empowerCommunityNum
'
,
dataIndex
:
'
createBy
'
,
key
:
'
createBy
'
,
align
:
'center'
,
},
{
title
:
'审核状态'
,
dataIndex
:
'
a
uditStatus'
,
scopedSlots
:
{
customRender
:
'auditStatus'
}
,
dataIndex
:
'
communityA
uditStatus'
,
key
:
'communityAuditStatus'
,
align
:
'center'
,
customRender
:
function
(
text
)
{
return
filterDictTextByStatic
(
RECONCILIATION_STATUS
,
text
)
}
},
{
title
:
'公司审核状态'
,
dataIndex
:
'companyAuditStatus'
,
key
:
'companyAuditStatus'
,
align
:
'center'
,
//
customRender: function (text) {
// return filterDictTextByCache('companyAuditStatus'
, text)
// },
customRender
:
function
(
text
)
{
return
filterDictTextByStatic
(
COMPANY_AUDIT_STATUS
,
text
)
}
},
{
title
:
'操作'
,
...
...
@@ -163,96 +157,44 @@ export default {
return
{
// 表头
columns
:
columns
,
loading
:
false
,
url
:
{
// list: '/property-c
entral/property/communityReconciliation/list
',
list
:
'/property-community/property/communityReconciliation/
communityAccountPage
'
,
// list: '/property-c
ommunity/property/communityReconciliation/communityAccountPage
',
list
:
'/property-community/property/communityReconciliation/
list
'
,
delete
:
'/property-community/property/communityReconciliation/delete'
,
deleteBatch
:
'/property-community/property/communityReconciliation/deleteBatch'
,
},
dataSource
:
[
{
id
:
'JD239423'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2023-01-01'
,
reconciliationEndDate
:
'2023-02-03'
,
reconciliationAmount
:
'345.23'
,
updateTime
:
'2023-04-05'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'审核通过'
,
companyAuditStatus
:
'待审核'
},
{
id
:
'JD453454'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2023-04-06'
,
reconciliationEndDate
:
'2023-06-03'
,
reconciliationAmount
:
'1345.45'
,
updateTime
:
'2023-05-05'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'审核通过'
,
companyAuditStatus
:
'审核通过'
},
{
id
:
'JD567454'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2023-02-05'
,
reconciliationEndDate
:
'2023-02-23'
,
reconciliationAmount
:
'34234'
,
updateTime
:
'2023-02-06'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'待审核'
,
companyAuditStatus
:
'待审核'
},
{
id
:
'KF343455'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2022-11-01'
,
reconciliationEndDate
:
'2023-01-03'
,
reconciliationAmount
:
'34'
,
updateTime
:
'2023-06-07'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'审核通过'
,
companyAuditStatus
:
'审核通过'
},
{
id
:
'KD435345'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2022-01-21'
,
reconciliationEndDate
:
'2022-10-03'
,
reconciliationAmount
:
'654'
,
updateTime
:
'2023-05-06'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'待审核'
,
companyAuditStatus
:
'待审核'
},
{
id
:
'LG345352'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2022-01-10'
,
reconciliationEndDate
:
'2022-02-03'
,
reconciliationAmount
:
'897.98'
,
updateTime
:
'2023-05-08'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'待审核'
,
companyAuditStatus
:
'待审核'
},
{
id
:
'MG345354'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2023-01-04'
,
reconciliationEndDate
:
'2023-06-03'
,
reconciliationAmount
:
'234'
,
updateTime
:
'2023-05-05'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'审核通过'
,
companyAuditStatus
:
'待审核'
},
{
id
:
'LB345353'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2023-02-01'
,
reconciliationEndDate
:
'2023-05-03'
,
reconciliationAmount
:
'1000'
,
updateTime
:
'2023-04-04'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'审核通过'
,
companyAuditStatus
:
'待审核'
},
{
id
:
'LC234234'
,
creditCode
:
'汉江之星小区'
,
propertyName
:
'汉江之星物业集团'
,
reconciliationBeginDate
:
'2023-01-23'
,
reconciliationEndDate
:
'2023-02-03'
,
reconciliationAmount
:
'3443'
,
updateTime
:
'2023-01-02'
,
empowerCommunityNum
:
'admin'
,
auditStatus
:
'审核通过'
,
companyAuditStatus
:
'审核通过'
},
]
}
}
},
methods
:
{
propertyDetails
(
type
,
id
)
{
this
.
$router
.
push
({
path
:
'/property/RecordDetails?type='
+
type
+
'&id='
+
id
})
},
onLoadDetail
(
record
,
type
)
{
record
[
'registAdress'
]
=
[
record
.
provinceCode
,
record
.
cityCode
,
record
.
countyCode
]
if
(
type
===
'edit'
)
{
this
.
handleEdit
(
record
)
}
else
{
this
.
handleDetail
(
record
)
}
},
onChange
(
date
,
dateString
)
{
if
(
dateString
.
length
>
0
)
{
this
.
queryParam
.
createTime_begin
=
dateString
[
0
]
this
.
queryParam
.
createTime_end
=
dateString
[
1
]
}
else
{
this
.
queryParam
.
createTime_begin
=
''
this
.
queryParam
.
createTime_end
=
''
onCheckboxProps
:
record
=>
{
let
props
=
{
disabled
:
record
.
communityAuditStatus
!==
'communityAuditPass'
,
name
:
record
.
id
}
return
props
},
onExamine
(
record
)
{
let
that
=
this
this
.
$confirm
({
title
:
'确认审核此物业?'
,
closable
:
true
,
okText
:
'审核通过'
,
cancelText
:
'审核驳回'
,
onOk
()
{
return
auditPropertyApi
({
id
:
record
.
id
,
auditStatus
:
'auditPass'
,
}).
then
((
res
)
=>
{
that
.
searchQuery
()
})
},
onCancel
()
{
return
auditPropertyApi
({
id
:
record
.
id
,
auditStatus
:
'refuse'
,
}).
then
((
res
)
=>
{
that
.
searchQuery
()
})
},
propertyDetails
(
type
,
id
)
{
let
params
=
id
?
`?type=
${
type
}
&id=
${
id
}
`
:
`?type=
${
type
}
`
this
.
$router
.
push
({
path
:
'/property/RecordDetails'
+
params
})
},
onStatus
(
record
)
{
onReconciliation
(
id
)
{
let
ids
=
id
||
this
.
selectedRowKeys
.
join
(
','
)
let
that
=
this
this
.
$confirm
({
title
:
`确认
${
record
.
propertyStatus
===
'normal'
?
'冻结'
:
'解冻'
}
此物业?`
,
title
:
'确认要申请当前对账吗?'
,
closable
:
true
,
okText
:
`
${
record
.
propertyStatus
===
'normal'
?
'冻结'
:
'解冻'
}
`
,
okText
:
'确认'
,
onOk
()
{
return
freezeOrPropertyApi
({
id
:
record
.
id
,
status
:
`
${
record
.
propertyStatus
===
'normal'
?
'freeze'
:
'normal'
}
`
,
return
communitySubCompanyApi
({
id
:
ids
}).
then
((
res
)
=>
{
that
.
$message
.
success
(
'申请对账成功!'
)
that
.
searchQuery
()
})
},
onCancel
()
{},
}
})
},
handlePerssion
(
roleId
)
{
this
.
$refs
.
modalUserRole
.
show
(
roleId
)
},
loadData
()
{
console
.
log
(
'不请求'
)
}
},
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论