提交 da9cef67 authored 作者: 宋雄's avatar 宋雄

更新

上级 4b30296c
差异被折叠。
......@@ -66,6 +66,7 @@
"html-webpack-plugin": "^4.2.0",
"less": "^3.9.0",
"less-loader": "^4.1.0",
"mini-css-extract-plugin": "^2.7.6",
"vue-template-compiler": "^2.6.10"
},
"eslintConfig": {
......
......@@ -55,6 +55,7 @@ export default {
...mapActions(['changeHouse']),
clear(){
this.houseList = []
Vue.ls.remove(HOUSE_LIST)
this.visible=false
},
bizDepart(loginResult){
......
......@@ -2,12 +2,12 @@
<a-modal :title="title" width="100%" :dialog-style="{ top: '0', height: '100vh'}" :keyboard="false" :visible="visible"
:mask="false" :closable="closable" :footer="false" :maskClosable="false" @cancel="visible = false">
<div class="house-content-box">
<div class="box" :class="{'active': currentCode === item.communityCode}" v-for="item in list" :key="item.id"
<div class="box" :class="{'active': currentCode === item.communityCode}" v-for="item in houseList" :key="item.id"
@click="selectHouse(item)">
<img class="image" :src="imgUrl+'/sys/common/static/'+item.communityImage" alt="" />
<img class="image" :src="item.imgUrl" alt="" />
<div class="describe">
<p class="name">{{item.communityName}}</p>
<p class="address">{{item.communityArea}}{{item.addressInfo}}222</p>
<p class="address">{{item.communityArea}}{{item.addressInfo}}</p>
</div>
</div>
</div>
......@@ -40,17 +40,13 @@ export default {
type: Boolean,
default: false,
},
list: {
type: Array,
default: [],
},
},
data() {
return {
visible: false,
houseList: [],
currentCode: '',
imgUrl: process.env.VUE_APP_API_BASE_URL,
currentCode: ''
}
},
methods: {
......@@ -59,48 +55,17 @@ export default {
this.houseList = []
this.visible = false
},
bizDepart(loginResult) {
let multi_community = loginResult.multi_community
if (multi_community === 2) {
this.visible = true
let list = loginResult.communitys.map((item) => {
let imgList = item.communityImage.split(',')
return {
...item,
imgUrl: process.env.VUE_APP_API_BASE_URL + '/sys/common/static/' + imgList[0],
}
})
Vue.ls.set(HOUSE_LIST, list, 7 * 24 * 60 * 60 * 1000)
this.houseList = list
// }
// if( multi_community == 0 ){
// this.$notification.warn({
// message: '提示',
// description: `您尚未认证小区,请确认账号信息`,
// duration:3
// });
// } else if(multi_community === 1) {
// this.visible = false
} else {
this.visible = false
}
},
show(loginResult) {
if (loginResult) {
this.clear()
this.bizDepart(loginResult)
if (this.visible === false) {
this.$emit('success')
this.visible = true
let list = loginResult.map((item) => {
let imgList = item.communityImage.split(',')
return {
...item,
imgUrl: process.env.VUE_APP_API_BASE_URL + '/sys/common/static/' + imgList[0],
}
} else {
const list = Vue.ls.get(HOUSE_LIST)
const code = Vue.ls.get(TENANT_ID)
this.houseList = list
this.currentCode = code
this.visible = true
}
})
Vue.ls.set(HOUSE_LIST, list, 7 * 24 * 60 * 60 * 1000)
this.houseList = list
},
requestFailed(err) {
this.$notification['error']({
......
......@@ -32,7 +32,7 @@
</a>
</span> -->
<!-- <header-notice class="action"/> -->
<a-dropdown>
<a-dropdown @visibleChange="onVisibleChange">
<span class="action action-full ant-dropdown-link user-dropdown-menu">
<a-avatar class="avatar" size="small" :src="getAvatar()"/>
<span v-if="isDesktop()">欢迎您,{{ nickname() }}</span>
......@@ -54,7 +54,7 @@
<a-icon type="tool"/>
<span>系统设置</span>
</a-menu-item> -->
<a-menu-item key="5" @click="updateCurrentDepart" v-if="isShowChange">
<a-menu-item key="5" @click="updateCurrentDepart">
<a-icon type="home"/>
<span>切换小区</span>
</a-menu-item>
......@@ -89,7 +89,7 @@
<depart-select ref="departSelect" :closable="true" title="部门切换"></depart-select>
<setting-drawer ref="settingDrawer" :closable="true" title="系统设置"></setting-drawer>
<login-switch-house ref="loginSelect" :closable="true" title="小区切换" @success="loginSelectOk" :list="communityList"></login-switch-house>
<login-switch-house ref="loginSelect" :closable="true" title="小区切换" @success="loginSelectOk"></login-switch-house>
</div>
</template>
......@@ -115,8 +115,6 @@
searchMenuComp: 'span',
searchMenuVisible: false,
// update-begin author:sunjianlei date:20200219 for: 头部菜单搜索规范命名 --------------
isShowChange: true,
communityList:[]
}
},
components: {
......@@ -138,7 +136,7 @@
let lists = []
this.searchMenus(lists,this.permissionMenuList)
this.searchMenuOptions=[...lists]
this.isShowChange = Vue.ls.get(HOUSE_LIST) && Vue.ls.get(HOUSE_LIST).length > 1
// this.isShowChange = Vue.ls.get(HOUSE_LIST) && Vue.ls.get(HOUSE_LIST).length > 1
},
mounted() {
//如果是单点登录模式
......@@ -209,13 +207,9 @@
let username = this.userInfo().username
this.$refs.userPassword.show(username)
},
updateCurrentDepart(){
this.getHouse()
this.$refs.loginSelect.show()
},
async getHouse() {
async updateCurrentDepart(){
let { result } = await getAction('/property-company/community/companyCommunity/getCommunityList',{ })
this.communityList = result
this.$refs.loginSelect.show(result)
},
// systemSetting(){
// this.$refs.loginSelect.showDrawer()
......@@ -277,6 +271,9 @@
// message: '',
// description: '切换小区成功!',
// });
},
onVisibleChange(flag) {
console.log(flag)
}
}
}
......
......@@ -29,3 +29,21 @@ export function isPhone (s) {
export function isURL (s) {
return /^http[s]?:\/\/.*/.test(s)
}
/* 是否身份证号 */
export const isValidIDCard = idCard=> {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(idCard)
}
/* 是否护照 */
export const isValidPassport = passport=> {
const reg= /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/; //护照(包括香港和澳门)
return reg.test(passport)
}
/* 是否港澳通行证 */
export const isValidPermit = permit=> {
const reg = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/; //港澳通行证
return reg.test(permit)
}
......@@ -251,7 +251,7 @@ export default {
})
} else if (type == 2) {
this.$router.push({
path: '/property/living',
path: '/property/propertyfee',
})
} else if (type == 3) {
this.$router.push({
......@@ -455,7 +455,8 @@ export default {
}
}
.notice-content{
img{
word-break: break-all;
/deep/ img{
width: 100%;
height: auto;
}
......
......@@ -85,9 +85,7 @@
<script>
import { getBuildingListApi, getUnitListApi, getRoomListApi } from '@/api/api'
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import {ajaxGetDictItems,getDictItemsFromCache} from '@/api/api'
import { isMobile } from '@/utils/validate'
import { isMobile, isValidIDCard, isValidPassport, isValidPermit } from '@/utils/validate'
import {RELATION_SHIP} from '@/assets/static.js'
export default {
......@@ -146,6 +144,24 @@
{ required: true, message: '请输入业主联系方式', trigger: 'blur' },
{ validator: validateToNextPhone }
],
certificateNo: [{
trigger: 'blur',
validator: (rule, value, callback)=> {
if (value) {
if(this.model.certificateType === '1' && !isValidIDCard(value)) {
callback('请输入正确的身份证号!');
} else if(this.model.certificateType === '2' && !isValidPermit(value)) {
callback('请输入正确的港澳通行证!');
} else if(this.model.certificateType === '3' && !isValidPassport(value)) {
callback('请输入正确的护照!');
} else {
callback();
}
} else {
callback();
}
}
}],
relationShip: [{ required: true, message: '请选择与业主关系', trigger: 'change' }],
residentName: [{ required: true, message: '请输入住户姓名', trigger: 'blur' }],
residentPhone: [{ required: true, message: '请输入住户联系方式', trigger: 'blur' }]
......
......@@ -53,7 +53,7 @@
</a-col>
<a-col :span="12">
<a-form-model-item label="证件号码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="certificateNo">
<a-input v-model="model.certificateNo" placeholder="请输入证件号码"></a-input>
<a-input v-model.trim="model.certificateNo" placeholder="请输入证件号码"></a-input>
</a-form-model-item>
</a-col>
</a-row>
......@@ -96,10 +96,7 @@
<script>
import { geCommunityOwnertInfoApi, getBuildingListApi, getUnitListApi, getRoomListApi, auditCommunityOwnerApi } from '@/api/api'
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import {ajaxGetDictItems,getDictItemsFromCache} from '@/api/api'
import { isMobile } from '@/utils/validate'
import { isMobile, isValidIDCard, isValidPassport, isValidPermit } from '@/utils/validate'
import {RELATION_SHIP} from '@/assets/static.js'
export default {
......@@ -148,6 +145,18 @@
{ required: true, message: '请输入业主联系方式', trigger: 'blur' },
{ validator: validateToNextPhone }
],
certificateNo: [{
trigger: 'blur',
message: '请输入业主联系方式',
required: true
// validator: function(rule, value, callback) {
// if (value) {
// callback();
// } else {
// callback('请输入正确的联系人电话!');
// }
// }
}],
relationShip: [{ required: true, message: '请选择与业主关系', trigger: 'change' }],
residentName: [{ required: true, message: '请输入住户姓名', trigger: 'blur' }],
residentPhone: [{ required: true, message: '请输入住户联系方式', trigger: 'blur' }]
......
......@@ -124,8 +124,9 @@ export default {
this.confirmLoading = false
},
onReturn() {
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
// this.$store.dispatch('tags/delView', this.$route.path)
// this.$router.go(-1)
this.closeCurrent()
},
async onSubmit() {
let res = await auditCommunityComplaintApi({
......@@ -134,8 +135,7 @@ export default {
handleResult: this.form.handleResult,
})
this.$message.success(res.message)
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
this.closeCurrent()
},
},
}
......
......@@ -50,7 +50,7 @@
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
:scroll="{ x: 1500}"
bordered
rowKey="id"
:columns="columns"
......@@ -92,32 +92,37 @@
title: '投诉工单',
dataIndex: 'complaintNo',
key: 'complaintNo',
width: 130,
align: 'center'
align: 'center',
width: 270
},
{
title: '投诉主题',
dataIndex: 'complaintTheme',
key: 'complaintTheme',
align: 'center'
align: 'center',
width: 150,
ellipsis: true
},
{
title: '问题描述',
dataIndex: 'problemDesc',
key: 'problemDesc',
align: 'center'
align: 'center',
ellipsis: true
},
{
title: '投诉人',
dataIndex: 'userName',
key: 'userName',
align: 'center'
align: 'center',
width: 120
},
{
title: '联系方式',
dataIndex: 'userPhone',
key: 'userPhone',
align: 'center'
align: 'center',
width: 130
},
{
title: '状态',
......@@ -126,7 +131,8 @@
align: 'center',
customRender: function(text) {
return filterDictTextByStatic(COMPLAINT_STATUS, text);
}
},
width: 120
},
{
title: '操作',
......
......@@ -302,9 +302,9 @@ export default {
// this.model.useAmount = (value - Number(this.model.lastDegrees)).toFixed(2)
// this.model.totalAmount = (Number(this.model.useAmount) * this.amount).toFixed(2)
// }
//this.closeCurrent()
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
this.closeCurrent()
// this.$store.dispatch('tags/delView', this.$route.path)
// this.$router.go(-1)
},
},
}
......
......@@ -56,7 +56,7 @@
<a style="margin-left: 24px" v-if="selectedRowKeys.length > 0" @click="onClearSelected">清空</a>
</div>
<a-table ref="table" size="middle" :scroll="{ x: 1500}" bordered rowKey="id" :columns="columns"
<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,
......@@ -103,29 +103,26 @@ const columns = [
title: '收费类型',
dataIndex: 'chargeTypeName',
key: 'chargeTypeName',
width: 120,
align: 'center',
},
{
title: '收费项目',
dataIndex: 'chargeItem',
key: 'chargeItem',
width: 220,
align: 'center',
},
{
title: '业主',
dataIndex: 'ownerId',
key: 'ownerId',
width: 160,
scopedSlots: { customRender: 'ownerId' },
align: 'center',
ellipsis: true
},
{
title: '与业主关系',
dataIndex: 'relationShip',
key: 'relationShip',
width: 120,
align: 'center',
customRender: function (text) {
return filterDictTextByStatic(RELATION_SHIP, text)
......@@ -135,37 +132,33 @@ const columns = [
title: '住户',
dataIndex: 'residentPhone',
key: 'residentPhone',
width: 160,
scopedSlots: { customRender: 'residentPhone' },
align: 'center',
ellipsis: true
},
{
title: '房屋编号',
dataIndex: 'roomId',
scopedSlots: { customRender: 'roomId' },
key: 'roomId',
width: 140,
align: 'center',
},
{
title: '金额(元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
width: 120,
align: 'center',
},
{
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)
......@@ -175,21 +168,18 @@ const columns = [
title: '缴费单号',
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',
},
{
......
......@@ -155,6 +155,14 @@ export default {
sm: { span: 20 },
},
confirmLoading: false,
initiatewaitAuditList: [
{ title: '提交维修信息', time: '' },
{ title: '报单待审核', time: '' },
{ title: '待派单', time: '' },
{ title: '维修中', time: '' },
{ title: '提单待审核', time: '' },
{ title: '完成', time: '' },
]
}
},
computed: {
......@@ -174,51 +182,59 @@ export default {
this.model = { ...result }
this.confirmLoading = false
this.model.repairStatusName = filterDictTextByStatic(REPAIR_STATUS, this.model.repairStatus)
if (result.repairStatus === 'initiateWaitAudit') {
initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.auditList = [...initiatewaitAuditList]
if (result.repairStatus === 'initiateRefuse') {
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.initiatewaitAuditList[1].time = '审核驳回' + result.initiateAuditTime
this.auditList = [...this.initiatewaitAuditList]
} else if (result.repairStatus === 'waitDispatch') {
initiatewaitAuditList[0].time = '提交成功' + result.createTime
initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
this.auditList = [...initiatewaitAuditList]
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
this.auditList = [...this.initiatewaitAuditList]
this.currentStep = 2
} else if (result.repairStatus === 'waitReceive') {
initiatewaitAuditList[0].time = '提交成功' + result.createTime
initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
initiatewaitAuditList[2].time = '派单成功待接收' + result.updateTime
this.auditList = [...initiatewaitAuditList]
this.currentStep = 2
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
this.initiatewaitAuditList[2].time = '派单成功待接收' + result.updateTime
this.auditList = [...this.initiatewaitAuditList]
this.currentStep = 3
} else if (result.repairStatus === 'inRepair') {
initiatewaitAuditList[0].time = '提交成功' + result.createTime
initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
initiatewaitAuditList[2].time = '派单成功待接收' + result.updateTime
this.auditList = [...initiatewaitAuditList]
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
this.initiatewaitAuditList[2].time = '派单成功待接收' + result.updateTime
this.auditList = [...this.initiatewaitAuditList]
this.currentStep = 3
} else if (
result.repairStatus === 'finishWaitAudit' ||
result.repairStatus === 'finishRefuse' ||
result.repairStatus === 'finishAuditPass'
) {
initiatewaitAuditList[0].time = '提交成功' + result.createTime
initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
initiatewaitAuditList[2].time = '派单成功待接收' + result.updateTime
this.auditList = [...initiatewaitAuditList]
} else if (result.repairStatus === 'finishWaitAudit') {
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.initiatewaitAuditList[1].time = '审核通过'
this.initiatewaitAuditList[2].time = '派单成功' + result.dispatchTime
this.initiatewaitAuditList[3].time = `维修员'${result.updateBy}'维修成功 ${result.updateTime}`
this.auditList = [...this.initiatewaitAuditList]
this.currentStep = 4
} else if(result.repairStatus === 'finishRefuse') {
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
this.initiatewaitAuditList[2].time = '派单成功' + result.dispatchTime
this.initiatewaitAuditList[3].time = `维修员'${result.updateBy}'维修成功 ${result.updateTime}`
this.initiatewaitAuditList[4].time = '审核驳回' + result.updateTime
this.auditList = [...this.initiatewaitAuditList]
this.currentStep = 4
} else if (result.repairStatus === 'finish') {
initiatewaitAuditList[0].time = '提交成功' + result.createTime
initiatewaitAuditList[1].time = '审核通过' + result.initiateAuditTime
initiatewaitAuditList[2].time = '派单成功待接收' + result.updateTime
this.auditList = [...initiatewaitAuditList]
} else if (result.repairStatus === 'finishAuditPass') {
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.initiatewaitAuditList[1].time = '审核通过'
this.initiatewaitAuditList[2].time = '派单成功' + result.dispatchTime
this.initiatewaitAuditList[3].time = `维修员'${result.updateBy}'维修成功`
this.initiatewaitAuditList[4].time = '审核通过' + result.updateTime
this.auditList = [...this.initiatewaitAuditList]
this.currentStep = 5
} else {
initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.auditList = [...initiatewaitAuditList]
this.currentStep = 0
} else { // 提单待审核
this.initiatewaitAuditList[0].time = '提交成功' + result.createTime
this.auditList = [...this.initiatewaitAuditList]
}
},
onReturn() {
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
// this.$store.dispatch('tags/delView', this.$route.path)
// this.$router.go(-1)
this.closeCurrent()
},
async onSubmit() {
if (this.form.repairStatus) {
......
......@@ -50,7 +50,7 @@
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
:scroll="{x: 1500}"
bordered
rowKey="id"
:columns="columns"
......@@ -61,9 +61,9 @@
class="j-table-force-nowrap"
@change="handleTableChange"
>
<span slot="employeeStatus" slot-scope="text, record">
<!-- <span slot="employeeStatus" slot-scope="text, record">
<span :style="{'color': record.employeeStatus === '1' ? 'green' : 'red'}">{{record.employeeStatus === '1' ? '在职' : '离职'}}</span>
</span>
</span> -->
<span slot="action" slot-scope="text, record">
<a @click="onDetail(record.id, 'detail')">详情</a>
......@@ -120,23 +120,28 @@
dataIndex: 'repairAddress',
key: 'repairAddress',
align: 'center',
width: 170,
ellipsis: true
},
{
title: '报修物品',
dataIndex: 'repairArticle',
key: 'repairArticle',
align: 'center'
align: 'center',
width: 150,
ellipsis: true
},
{
title: '预约上门时间',
dataIndex: 'reservationTime',
key: 'reservationTime',
width: 150,
align: 'center'
},
{
title: '报修人',
dataIndex: 'ownerName',
width: 100,
scopedSlots: { customRender: 'ownerName' },
align: 'center'
},
......@@ -145,6 +150,7 @@
dataIndex: 'repairStatus',
key: 'repairStatus',
align: 'center',
width: 100,
customRender: function(text) {
return filterDictTextByStatic(REPAIR_STATUS, text);
}
......@@ -153,12 +159,14 @@
title: '报修时间',
dataIndex: 'createTime',
key: 'createTime',
width: 150,
align: 'center'
},
{
title: '维修员',
dataIndex: 'maintenanceName',
key: 'maintenanceName',
width: 100,
align: 'center'
},
{
......@@ -166,7 +174,8 @@
dataIndex: 'repairEvaluate',
key: 'repairEvaluate',
align: 'center',
width: 100
width: 200,
ellipsis: true
},
{
title: '操作',
......
......@@ -302,9 +302,9 @@ export default {
// this.model.useAmount = (value - Number(this.model.lastDegrees)).toFixed(2)
// this.model.totalAmount = (Number(this.model.useAmount) * this.amount).toFixed(2)
// }
//this.closeCurrent()
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
this.closeCurrent()
// this.$store.dispatch('tags/delView', this.$route.path)
// this.$router.go(-1)
},
},
}
......
......@@ -110,7 +110,7 @@ const columns = [
title: '收费项目',
dataIndex: 'chargeItem',
key: 'chargeItem',
width: 120,
width: 220,
align: 'center',
},
{
......
......@@ -62,12 +62,18 @@
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="pagination"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange"
>
<span slot="roomName" slot-scope="text, record">
<span>{{record.buildingName}}{{record.unitName}}{{record.roomName}}</span>
</span>
<span slot="ownerName" slot-scope="text, record">
<span>{{record.ownerName}}{{record.ownerPhone}}</span>
</span>
<span slot="receiptStatus" slot-scope="text, record">
<span :style="{'color': record.receiptStatus === '1' ? 'green' : 'red'}">{{record.receiptStatus === '1' ? '是' : '否'}}</span>
</span>
......@@ -75,24 +81,6 @@
<!-- <a @click="handleEdit(record)">编辑</a> -->
<a @click="handleDetail(record)">查看</a>
<a @click="onIssueReceipt(record)" style="margin-left: 10px;">开收据</a>
<!-- <a-divider type="vertical"/>
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:;" @click="handleDetail(record)">详情</a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)" placement="topLeft">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown> -->
</span>
</a-table>
......@@ -100,24 +88,28 @@
<!-- table区域-end -->
<notice-modal ref="modalForm" @ok="modalFormOk"></notice-modal>
<template-modal ref="templateModal"></template-modal>
</a-card>
</template>
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import NoticeModal from './modules/NoticeModal'
import templateModal from './templateModal'
import {filterDictTextByCache} from '@/components/dict/JDictSelectUtil'
const columns = [
{
title: '房屋编号',
dataIndex: 'roomName',
scopedSlots: { customRender: 'roomName' },
key: 'roomName',
align: 'center'
},
{
title: '业主',
dataIndex: 'ownerName',
scopedSlots: { customRender: 'ownerName' },
key: 'ownerName',
align: 'center'
},
......@@ -126,15 +118,11 @@
dataIndex: 'paymentNum',
key: 'paymentNum',
align: 'center',
// customRender: function(text) {
// return filterDictTextByCache('duties', text);
// }
},
{
title: '缴费类型',
dataIndex: 'chargeItem',
key: 'chargeItem',
// scopedSlots: { customRender: 'employeeStatus' },
dataIndex: 'chargeTypeName',
key: 'chargeTypeName',
align: 'center'
},
{
......@@ -167,35 +155,44 @@
dataIndex: 'action',
scopedSlots: { customRender: 'action' },
align: 'center',
width: 150
width: 150,
fixed: 'right'
}
]
export default {
name: 'PermissionListAsync',
mixins: [JeecgListMixin],
components: {NoticeModal},
components: {NoticeModal, templateModal},
data() {
return {
// 表头
columns: columns,
url: {
list: "/property-community/payment/communityPayment/queryReceiptList",
delete: '/property-community/property/communityReceipt/delete',
deleteBatch: '/property-community/property/communityReceipt/deleteBatch'
},
templateColumns: [
],
templateDta: [],
pagination: {
total: 0,
current: 1,
pageSize: 10,
showSizeChanger: true
},
url: {
list: "/property-community/payment/communityPayment/queryReceiptList",
delete: '/property-community/property/communityReceipt/delete',
deleteBatch: '/property-community/property/communityReceipt/deleteBatch'
}
}
},
methods: {
onIssueReceipt(row) {
}
console.log(this.$refs.templateModal)
this.$refs.templateModal.onLoadTemplate()
},
handleOk() {},
handleCancel() {},
}
}
</script>
......
<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>
</template>
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
const columns = [
{
title: '收据编号',
dataIndex: 'templateCode',
key: 'templateCode',
align: 'center'
},
{
title: '收据名称',
dataIndex: 'templateName',
key: 'templateName',
align: 'center'
},
{
title: '收据类型',
dataIndex: 'typeName',
key: 'typeName',
align: 'center'
},
{
title: '上传人',
dataIndex: 'createBy',
key: 'createBy',
align: 'center'
},
{
title: '上传时间',
dataIndex: 'createTime',
key: 'createTime',
align: 'center'
},
{
title: '操作',
dataIndex: 'action',
scopedSlots: { customRender: 'action' },
align: 'center',
width: 150,
fixed: 'right'
}
]
export default {
name: 'PropertySettledModal',
mixins: [JeecgListMixin],
data () {
return {
columns: columns,
url: {
list: "/property-company/system/receiptTemplate/list"
},
visible: false,
}
},
methods: {
onLoadTemplate() {
this.visible=true
this.loadData()
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>
\ No newline at end of file
......@@ -164,9 +164,10 @@ export default {
columns: columns,
loading: false,
url: {
list: '/property-central/property/communityReconciliation/list',
delete: '/property-central/property/communityReconciliation/delete',
deleteBatch: '/property-central/property/communityReconciliation/deleteBatch',
// list: '/property-central/property/communityReconciliation/list',
list: '/property-community/property/communityReconciliation/communityAccountPage',
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: '待审核'},
......@@ -248,9 +249,6 @@ export default {
},
handlePerssion(roleId) {
this.$refs.modalUserRole.show(roleId)
},
loadData() {
console.log('不请求')
}
},
}
......
......@@ -121,8 +121,9 @@ export default {
this.confirmLoading = false
},
onReturn() {
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
// this.$store.dispatch('tags/delView', this.$route.path)
// this.$router.go(-1)
this.closeCurrent()
},
async onSubmit() {
let res = await auditCommunityComplaintApi({
......@@ -131,8 +132,7 @@ export default {
handleResult: this.form.handleResult,
})
this.$message.success(res.message)
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
this.closeCurrent()
},
},
}
......
......@@ -173,7 +173,7 @@ export default {
{ item: '已缴总金额', count: result.waterFeePaidTotal || 0 },
]
this.dataSource2 = [
{ item: '未缴纳业主', count: result.electricFeeUnPaidOwnerNum || 0 },
{ item: '未缴纳业主', count: result.waterFeeUnPaidOwnerNum || 0 },
{ item: '已缴纳业主', count: result.waterFeePaidOwnerNum || 0 },
]
this.dataSource3 = [
......
......@@ -217,8 +217,7 @@ export default {
}
},
onReturn() {
this.$store.dispatch('tags/delView', this.$route.path)
this.$router.go(-1)
this.closeCurrent()
},
async onSubmit() {
if (this.form.repairStatus) {
......
......@@ -81,7 +81,7 @@
</a-radio-group>
</div>
<div>
<bar :dataSource="barData" style="padding: 0;" />
<bar :dataSource="barData" :yaxisText="yaxisText" style="padding: 0;" />
</div>
</div>
</a-col>
......@@ -123,6 +123,26 @@ export default {
created() {
this.onDetail('2')
},
computed: {
yaxisText() {
switch(this.typeCode) {
case '1':
return '已缴纳总金额'
break;
case '2':
return '未缴纳总金额'
break;
case '3':
return '已缴纳业主'
break;
case '4':
return '未缴纳业主'
break;
default:
return ''
}
}
},
methods: {
async onDetail(typeCode) {
console.log(typeCode)
......@@ -140,8 +160,9 @@ export default {
num = item.unPaidOwnerNum
}
return {
x: item.monthNum + '月',
y: num
x: item.yearNum + '年' + item.monthNum + '月',
y: num,
min: 700
}
})
this.repairData = [
......
......@@ -7,8 +7,8 @@
<!-- 搜索区域 -->
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<a-form-item label="角色名称" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}">
<a-col :md="6" :sm="8">
<a-form-item label="角色名称">
<a-input placeholder="" v-model="queryParam.roleName"></a-input>
</a-form-item>
</a-col>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论