张雄 3 years ago
parent 555972b1f6
commit 6524c685a3

@ -59,3 +59,16 @@
.ant-menu-inline-collapsed .ant-menu-submenu-selected .ant-menu-submenu-title{
color: #1990fe !important;
}
.ant-collapse-content > .ant-collapse-content-box {
padding: 0px !important;
}
.ant-card {
padding: 8px 2.5px 8px 32px !important;
}
.ant-card-head {
font-weight: 400 !important;
font-size: 16px !important;
line-height: 22px !important;
}

@ -36,7 +36,8 @@ export default {
show: Boolean,
title: String,
id: Number,
list:Array
list:Array,
upper: Number
},
data() {
return {
@ -130,6 +131,13 @@ export default {
this.form.id = undefined
}
},
},
upper: {
handler(val) {
if(val) {
this.form.parentId = val
}
}
}
}
};

@ -10,16 +10,18 @@
:key="index"
:header="item.name"
>
<div
v-for="(rolechild, indexs) in item.childrenList"
class="role-card"
:key="indexs"
@click="rolechoose(rolechild.id)"
>
<span class="role-li">
<div v-for="(rolechild, indexs) in item.childrenList" class="role-card" :key="indexs" @click="rolechoose(rolechild.id)">
<!-- <span class="role-li">
<span>{{ rolechild.name || "无" }}</span>
<span v-show="rolechild.name"> </span>
</span>
</span> -->
<a-card style="background: rgba(32, 95, 189, 0.1)" v-if="roleId == rolechild.id" size="small">
<span slot="title" style="color: #205FBD">{{rolechild.name}}</span>
<span class="card-remark">{{rolechild.remakes}}</span>
</a-card>
<a-card v-else size="small" :title="rolechild.name">
<span class="card-remark">{{rolechild.remakes}}</span>
</a-card>
</div>
</a-collapse-panel>
</a-collapse>
@ -263,29 +265,35 @@ export default {
</script>
<style lang="less" scoped>
.role-card {
line-height: 30px;
font-size: 16px;
cursor: pointer;
border-bottom: 1px solid #d9d9d9;
margin-bottom: 10px;
display: flex;
justify-content: space-between;
}
// .role-card {
// line-height: 30px;
// font-size: 16px;
// cursor: pointer;
// border-bottom: 1px solid #d9d9d9;
// margin-bottom: 10px;
// display: flex;
// justify-content: space-between;
// }
.treebox {
padding-left: 30px;
}
.tree {
display: flex;
}
.role-card {
line-height: 30px;
font-size: 16px;
cursor: pointer;
border-bottom: 1px solid #d9d9d9;
margin-bottom: 10px;
display: flex;
justify-content: space-between;
// .role-card {
// line-height: 30px;
// font-size: 16px;
// cursor: pointer;
// border-bottom: 1px solid #d9d9d9;
// margin-bottom: 10px;
// display: flex;
// justify-content: space-between;
// }
.card-remark {
font-weight: 400;
font-size: 12px;
line-height: 17px;
color: rgba(0, 0, 0, 0.45);
}
.role-li {
display: flex;

@ -6,57 +6,56 @@
<!-- 角色列表 -->
<a-col :span="5">
<div class="cardTitle">所有角色</div>
<a-button
<!-- <a-button
class="add-btn"
style="margin: 10px"
@click="add.show = true"
@click="addRole"
>新增角色</a-button
>
> -->
<a-collapse accordion @change="rolechange">
<a-collapse-panel
v-for="(item, index) in afterroleList"
:key="index"
:header="item.name"
>
<a-button
type="link"
icon="form"
slot="extra"
@click.stop="editRole(item.id)"
>
</a-button>
<a-button
type="link"
slot="extra"
style="color: #ff4d4f"
icon="delete"
@click.stop="delRole(item.id)"
></a-button>
<div
v-for="(rolechild, indexs) in item.childrenList"
class="role-card"
:key="indexs"
@click="rolechoose(rolechild.id)"
>
<span class="role-li">
<span>{{ rolechild.name || "无" }}</span>
<span v-show="rolechild.name"
><a-button
type="link"
icon="form"
@click="editRole(rolechild.id)"
>
</a-button>
<a-button
type="link"
style="color: #ff4d4f"
icon="delete"
@click="delRole(rolechild.id)"
></a-button
></span>
</span>
<span slot="extra">
<a-button
type="link"
icon="plus"
@click.stop="addRoleInner(item)"
>
</a-button>
<a-button
type="link"
style="color: #ff4d4f"
icon="delete"
@click.stop="delRole(item.id)"
></a-button>
</span>
<div v-for="(rolechild, indexs) in item.childrenList" class="role-card" :key="indexs" @click="rolechoose(rolechild.id)">
<a-card style="background: rgba(32, 95, 189, 0.1)" v-if="searchForm.roleId == rolechild.id" size="small">
<span slot="title" style="color: #205FBD">{{rolechild.name}}</span>
<span slot="extra" v-show="rolechild.name">
<a-button type="link" icon="form" @click="editRole(rolechild.id)"></a-button>
<a-button type="link" style="color: #ff4d4f" icon="delete" @click="delRole(rolechild.id)"></a-button>
</span>
<span class="card-remark">{{rolechild.remakes}}</span>
</a-card>
<a-card v-else size="small" :title="rolechild.name">
<span slot="extra" v-show="rolechild.name">
<a-button type="link" icon="form" @click="editRole(rolechild.id)"></a-button>
<a-button type="link" style="color: #ff4d4f" icon="delete" @click="delRole(rolechild.id)"></a-button>
</span>
<span class="card-remark">{{rolechild.remakes}}</span>
</a-card>
</div>
</a-collapse-panel>
<div style="height:46px">
<div @click="addRole" style="padding: 12px 0px 0px 16px;color: #205FBD">
<a-icon type="plus" />
<a style="margin-left: 10px">新建角色组</a>
</div>
</div>
</a-collapse>
</a-col>
<!-- 人员表格 -->
@ -154,6 +153,7 @@
:list="roleList"
@close="addClose"
@success="success"
:upper="add.upperId"
:id="add.editId"
/>
</div>
@ -188,6 +188,7 @@ export default {
add: {
show: false,
title: "新增角色",
upperId: null,
editId: null,
},
tableChoosed: [],
@ -248,6 +249,7 @@ export default {
},
addClose() {
this.add.show = false;
this.add.upperId = undefined;
this.add.editId = undefined;
this.add.title = "新增角色";
},
@ -257,6 +259,18 @@ export default {
this.add.title = "修改角色";
this.add.show = true;
},
addRole() {
this.add.editId = undefined;
this.add.upperId = undefined;
this.add.title = "新增角色";
this.add.show = true;
},
addRoleInner(val) {
this.add.editId = undefined;
this.add.upperId = val.id;
this.add.title = "新增角色";
this.add.show = true;
},
//
delRole(id) {
this.$confirm({
@ -374,14 +388,20 @@ export default {
</script>
<style lang="less" scoped>
.role-card {
line-height: 30px;
font-size: 16px;
cursor: pointer;
border-bottom: 1px solid #d9d9d9;
margin-bottom: 10px;
display: flex;
justify-content: space-between;
// .role-card {
// line-height: 30px;
// font-size: 16px;
// cursor: pointer;
// border-bottom: 1px solid #d9d9d9;
// margin-bottom: 10px;
// display: flex;
// justify-content: space-between;
// }
.card-remark {
font-weight: 400;
font-size: 12px;
line-height: 17px;
color: rgba(0, 0, 0, 0.45);
}
.role-li {
display: flex;

@ -120,10 +120,10 @@ export const rules = {
{ type: "array", required: true, message: "请选择岗位", trigger: "change" },
],
entryDate: [{ required: true, message: "请选择入职时间", trigger: "change" }],
emergencyContactNumber: [
{ required: true, message: "请输入手机号", trigger: "blur" },
{ min: 11, max: 11, message: "手机号只能为11位", trigger: "blur" },
],
// emergencyContactNumber: [
// { required: true, message: "请输入手机号", trigger: "blur" },
// { min: 11, max: 11, message: "手机号只能为11位", trigger: "blur" },
// ],
};
export const options = {
sex: [

@ -12,7 +12,8 @@ export const rules = {
inspectionRouteId:[{required:true,message:'请选择路线',trigger:'change'}],
name:[{required:true,message:'请输入名称',trigger:'blur'}],
inspector:[{required:true,message:'请选择',trigger:'change'}],
planBeginDate:[{required:true,message:'请选择',trigger:'change'}],
positionId: [{required:true,message:'请选择部门',trigger:'change'}],
planBeginDate:[{required:true,message:'请选择日期',trigger:'change'}],
isSort:[{required:true,message:'请选择',trigger:'change'}],
checkRateType:[{required:true,message:'请选择',trigger:'change'}],
}

@ -12,6 +12,11 @@ export const columns = [
title: "账单名称",
dataIndex: "name",
},
{
title: "创建时间",
dataIndex: "createDate",
width: 220
},
{
title: "账单状态",
dataIndex: "status",

@ -1,6 +1,12 @@
<template>
<div>
<div class="cardTitle">账单明细</div>
<a-tabs v-model="form.status" @change="changeStatus">
<a-tab-pane :key="undefined" tab="全部"> </a-tab-pane>
<a-tab-pane :key="1" tab="未缴纳"> </a-tab-pane>
<a-tab-pane :key="3" tab="已缴纳"> </a-tab-pane>
<a-tab-pane :key="4" tab="已废除"> </a-tab-pane>
</a-tabs>
<div class="search-form">
<a-form-model style="margin-left: 32px" layout='inline'>
<a-form-model-item label="流水号">
@ -75,7 +81,7 @@
{{(offDetail.defaultAmount * 1).toFixed(2)}}
</a-descriptions-item>
<a-descriptions-item label="创建时间">
{{offDetail.createDate}}
</a-descriptions-item>
</a-descriptions>
</div>
@ -121,7 +127,8 @@ export default {
form: {
type: undefined,
estateId: undefined,
chargesIds: []
chargesIds: [],
status: undefined,
},
casVal: [],
chargesVal: undefined,
@ -231,6 +238,10 @@ export default {
this.pagination.pageSize = val.pageSize;
this.getData()
},
//
changeStatus() {
this.getData();
},
//
billPay(record) {
this.currentId = record.id

@ -1,5 +1,5 @@
<template>
<a-drawer title="添加手动生成账单" :width="820" :visible="isVisibleDrawer" :body-style="{ paddingBottom: '80px' }" @close="onClose">
<a-drawer title="添加手动生成账单" :width="920" :visible="isVisibleDrawer" :body-style="{ paddingBottom: '80px' }" @close="onClose">
<div class="drawer-content">
<div style="display: flex">
<div class="inner-content">
@ -21,20 +21,22 @@
<span style="font-weight: 600">收费标准</span>
</template>
</a-table>
<a-form-model title="基础信息" :rules="rules" :model="form" ref="ruleForm">
<a-row>
<a-form-model title="基础信息" :rules="rules" :model="form" ref="ruleForm">
<a-col :span="24">
<a-form-model-item label="账单名称" prop="name">
<a-input v-model="form.name"></a-input>
</a-form-model-item>
</a-col>
</a-form-model>
<a-form-model title="基础信息" :model="formTime" :rules="rulesTime" ref="ruleForm">
<a-col :span="24">
<a-form-model-item label="选择时间" prop="selTime">
<a-range-picker v-model="selTime" @change="timeChange" value-format="YYYY-MM-DD HH:mm:ss"></a-range-picker>
<a-range-picker v-model="formTime.selTime" @change="timeChange" value-format="YYYY-MM-DD HH:mm:ss"></a-range-picker>
</a-form-model-item>
</a-col>
</a-form-model>
</a-row>
</a-form-model>
</div>
</div>
</div>
@ -99,20 +101,43 @@ export default {
tableData: [],
columns: [
{title: "费用名称", dataIndex: "name"},
{title: "计费方式", dataIndex: "billingType"},
{title: "计量方式", dataIndex: "calculateType"},
{title: "计量单价", dataIndex: "calculateUnit",
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
{title: "计费方式", dataIndex: "billingType",
customRender: function (billingType) {
switch(billingType) {
case 1: return '单价*计量方式';
case 2: return '固定金额';
}
},
},
{title: "计量方式", dataIndex: "calculateType",
customRender: function (calculateType) {
switch(calculateType) {
case 1: return '建筑面积';
case 2: return '使用面积';
case 3: return '公摊面积';
case 5: return '仪表用量';
case 6: return '房屋数分摊';
case 7: return '房屋建筑面积分摊';
case 8: return '房屋在住人口分摊';
}
},
},
{title: "计量单价", dataIndex: "calculateUnit",
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
},
},
{title: "备注", dataIndex: "remarks"},
],
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
selTime: [{ required: true, message: "请选择时间", trigger: "blur" }],
},
selTime: []
rulesTime: {
selTime: [{ required: true, message: "请选择时间", trigger: "change" }],
},
formTime: {
selTime: []
},
}
},
methods: {
@ -150,8 +175,8 @@ export default {
this.form.chargesIds = data;
},
timeChange(val) {
this.form.billDateStart = this.selTime[0];
this.form.billDateEnd = this.selTime[1];
this.form.billDateStart = this.formTime.selTime[0];
this.form.billDateEnd = this.formTime.selTime[1];
},
success(){
this.$emit('success')
@ -166,7 +191,7 @@ export default {
billDateEnd: '',
};
this.checkedKeys = [];
this.selTime = []
this.formTime.selTime = []
},
onSubmit() {
manuallyGenerateBills(this.form).then(res => {

@ -1,5 +1,5 @@
<template>
<a-drawer title="添加自动生成账单计划" :width="820" :visible="isVisibleDrawer" :body-style="{ paddingBottom: '80px' }" @close="onClose">
<a-drawer title="添加自动生成账单计划" :width="920" :visible="isVisibleDrawer" :body-style="{ paddingBottom: '80px' }" @close="onClose">
<div class="drawer-content">
<div style="display: flex">
<div class="inner-content">
@ -35,7 +35,7 @@
</a-col>
<a-col :span="24">
<a-form-model-item prop="selTime" label="选择计划日期">
<a-range-picker v-model="selTime" @change="timeChange" value-format="YYYY-MM-DD HH:mm:ss"></a-range-picker>
<a-range-picker v-model="form.selTime" @change="timeChange" value-format="YYYY-MM-DD HH:mm:ss"></a-range-picker>
</a-form-model-item>
</a-col>
<a-col :span="8">
@ -116,6 +116,7 @@ export default {
billDateStart: 1,
billDateType: 1,
billDateNum: 0,
selTime: []
},
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
@ -133,12 +134,31 @@ export default {
tableData: [],
columns: [
{title: "费用名称", dataIndex: "name"},
{title: "计费方式", dataIndex: "billingType"},
{title: "计量方式", dataIndex: "calculateType"},
{title: "计量单价", dataIndex: "calculateUnit",
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
{title: "计费方式", dataIndex: "billingType",
customRender: function (billingType) {
switch(billingType) {
case 1: return '单价*计量方式';
case 2: return '固定金额';
}
},
},
{title: "计量方式", dataIndex: "calculateType",
customRender: function (calculateType) {
switch(calculateType) {
case 1: return '建筑面积';
case 2: return '使用面积';
case 3: return '公摊面积';
case 5: return '仪表用量';
case 6: return '房屋数分摊';
case 7: return '房屋建筑面积分摊';
case 8: return '房屋在住人口分摊';
}
},
},
{title: "计量单价", dataIndex: "calculateUnit",
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
},
},
{title: "备注", dataIndex: "remarks"},
],
@ -180,8 +200,8 @@ export default {
this.form.chargesIds = data;
},
timeChange(val) {
this.form.autoEffectiveDateStart = this.selTime[0];
this.form.autoEffectiveDateEnd = this.selTime[1];
this.form.autoEffectiveDateStart = this.form.selTime[0];
this.form.autoEffectiveDateEnd = this.form.selTime[1];
},
success(){
this.$emit('success')
@ -192,11 +212,16 @@ export default {
estateIds: [],
chargesIds: [],
name: '',
billDateStart: '',
billDateEnd: '',
isLongTermEffective: 1,
autoEffectiveDateStart: '',
autoEffectiveDateEnd: '',
billDateStart: 1,
billDateType: 1,
billDateNum: 0,
selTime: []
};
this.checkedKeys = [];
this.selTime = []
this.form.selTime = []
},
onSubmit() {
console.log(this.form)

@ -1,5 +1,5 @@
<template>
<a-drawer title="添加账单自动扣费计划" :width="820" :visible="isVisibleDrawer" :body-style="{ paddingBottom: '80px' }" @close="onClose">
<a-drawer title="添加账单自动扣费计划" :width="920" :visible="isVisibleDrawer" :body-style="{ paddingBottom: '80px' }" @close="onClose">
<div class="drawer-content">
<div style="display: flex">
<div class="inner-content">
@ -35,7 +35,7 @@
</a-col>
<a-col :span="24">
<a-form-model-item prop="selTime" label="选择计划日期">
<a-range-picker v-model="selTime" @change="timeChange" value-format="YYYY-MM-DD HH:mm:ss"></a-range-picker>
<a-range-picker v-model="form.selTime" @change="timeChange" value-format="YYYY-MM-DD HH:mm:ss"></a-range-picker>
</a-form-model-item>
</a-col>
<a-col :span="8">
@ -116,6 +116,7 @@ export default {
billDateStart: 1,
billDateType: 1,
billDateNum: 0,
selTime: []
},
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
@ -133,12 +134,31 @@ export default {
tableData: [],
columns: [
{title: "费用名称", dataIndex: "name"},
{title: "计费方式", dataIndex: "billingType"},
{title: "计量方式", dataIndex: "calculateType"},
{title: "计量单价", dataIndex: "calculateUnit",
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
{title: "计费方式", dataIndex: "billingType",
customRender: function (billingType) {
switch(billingType) {
case 1: return '单价*计量方式';
case 2: return '固定金额';
}
},
},
{title: "计量方式", dataIndex: "calculateType",
customRender: function (calculateType) {
switch(calculateType) {
case 1: return '建筑面积';
case 2: return '使用面积';
case 3: return '公摊面积';
case 5: return '仪表用量';
case 6: return '房屋数分摊';
case 7: return '房屋建筑面积分摊';
case 8: return '房屋在住人口分摊';
}
},
},
{title: "计量单价", dataIndex: "calculateUnit",
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
},
},
{title: "备注", dataIndex: "remarks"},
],
@ -180,8 +200,8 @@ export default {
this.form.chargesIds = data;
},
timeChange(val) {
this.form.autoEffectiveDateStart = this.selTime[0];
this.form.autoEffectiveDateEnd = this.selTime[1];
this.form.autoEffectiveDateStart = this.form.selTime[0];
this.form.autoEffectiveDateEnd = this.form.selTime[1];
},
success(){
this.$emit('success')
@ -192,11 +212,16 @@ export default {
estateIds: [],
chargesIds: [],
name: '',
billDateStart: '',
billDateEnd: '',
isLongTermEffective: 1,
autoEffectiveDateStart: '',
autoEffectiveDateEnd: '',
billDateStart: 1,
billDateType: 1,
billDateNum: 0,
selTime: []
};
this.checkedKeys = [];
this.selTime = []
this.form.selTime = []
},
onSubmit() {
console.log(this.form)

@ -40,7 +40,7 @@
<add-bill-drawer v-if="activeMode==1" :visible="addShow" @success="success" @onClose="addClose"></add-bill-drawer>
<auto-bill-drawer v-else-if="activeMode==2" :visible="addShow" @success="success" @onClose="addClose"></auto-bill-drawer>
<auto-bill-payment-drawer v-else-if="activeMode==3" :visible="addShow" @success="success" @onClose="addClose"></auto-bill-payment-drawer>
<a-drawer title="编辑" :width="820" :visible="editShow" :body-style="{ paddingBottom: '80px' }" @close="editClose">
<a-drawer title="编辑" :width="920" :visible="editShow" :body-style="{ paddingBottom: '80px' }" @close="editClose">
<div class="drawer-content">
<div style="display: flex">
<div class="inner-content">
@ -174,13 +174,32 @@ export default {
key: 'id'
},
editColumns: [
{title: "费用名称", dataIndex: "name",width: 100},
{title: "计费方式", dataIndex: "billingType",width: 100},
{title: "计量方式", dataIndex: "calculateType",width: 100},
{title: "计量单价", dataIndex: "calculateUnit",width: 100,
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
{title: "费用名称", dataIndex: "name"},
{title: "计费方式", dataIndex: "billingType",
customRender: function (billingType) {
switch(billingType) {
case 1: return '单价*计量方式';
case 2: return '固定金额';
}
},
},
{title: "计量方式", dataIndex: "calculateType",
customRender: function (calculateType) {
switch(calculateType) {
case 1: return '建筑面积';
case 2: return '使用面积';
case 3: return '公摊面积';
case 5: return '仪表用量';
case 6: return '房屋数分摊';
case 7: return '房屋建筑面积分摊';
case 8: return '房屋在住人口分摊';
}
},
},
{title: "计量单价", dataIndex: "calculateUnit",
customRender: function (calculateUnit) {
return (calculateUnit*1).toFixed(2)
},
},
{title: "备注", dataIndex: "remarks"},
],
@ -329,6 +348,7 @@ export default {
let obj = {billAutoId : val.id}
findByIdByBillAutoId(obj).then(res => {
let data = res.data;
this.checkedKeys = data.estateIds
this.form = data;
this.selTime = [res.data.autoEffectiveDateStart,res.data.autoEffectiveDateEnd]
})
@ -336,6 +356,7 @@ export default {
let obj = {billAutoDeductionId : val.id}
findById(obj).then(res => {
let data = res.data;
this.checkedKeys = data.estateIds
this.form = data;
this.selTime = [res.data.autoEffectiveDateStart,res.data.autoEffectiveDateEnd]
})

@ -5,9 +5,9 @@ export const columns = [
dataIndex: "status",
customRender: function (status) {
switch (status) {
case true:
return '已下架'
case false:
return '已下架'
case true:
return '上架中'
default:
break;

Loading…
Cancel
Save