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

更新

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