Browse Source

新增迁移记录

v1.1
战立标 2 years ago
parent
commit
1ccb007ee0
  1. 178
      src/views/modules/base/migration/records/index.vue
  2. 160
      src/views/modules/base/migration/records/transferBuilding.vue
  3. 160
      src/views/modules/base/migration/records/transferCommunity.vue

178
src/views/modules/base/migration/records/index.vue

@ -0,0 +1,178 @@
<template>
<div class="g-main">
<div class="m-table">
<div class="div_btn">
<div class="div_btn_left">
<el-button class="diy-button--add" size="small"
type="primary" @click="handleAdd('community')">
迁移小区
</el-button>
<el-button class="diy-button--add" size="small"
type="primary" @click="handleAdd('building')">
迁移楼栋
</el-button>
</div>
</div>
<el-table
ref="ref_table"
v-loading="tableLoading"
:data="tableData"
:height="tableHeight"
border
class="m-table-item"
style="width: 100%"
>
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column
label="迁移主体类型"
prop="subjectType"
width="120"
>
<template slot-scope="{row}">
{{
row.subjectType === 'building' ? '楼栋' :
row.subjectType === 'quarters' ? '小区' : ''
}}
</template>
</el-table-column>
<el-table-column
label="迁移主体名称"
prop="subjectName"
width="200"
/>
<el-table-column
label="来源名称"
prop="sourceName"
width="200"
/>
<el-table-column
label="目标名称"
prop="targetName"
width="200"
/>
<el-table-column
label="状态"
prop="status"
width="100"
>
<template slot-scope="{row}">
<el-tag :type="
row.status === -1 ? 'danger' :
row.status === 0 ? 'warning' :
row.status === 1 ? 'info' :
row.status === 2 ? 'success' : ''
">
{{
row.status === -1 ? '失败' :
row.status === 0 ? '未开始' :
row.status === 1 ? '执行中' :
row.status === 2 ? '成功' : ''
}}
</el-tag>
</template>
</el-table-column>
<el-table-column
label="备注"
prop="remark"
show-overflow-tooltip
/>
</el-table>
<div>
<el-pagination
:current-page.sync="pageNo"
:page-size="parseInt(pageSize)"
:page-sizes="[20, 50, 100, 200]"
:total="total"
layout="sizes, prev, pager, next, total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
</div>
</div>
<transferBuilding v-if="transferBuildingDialog" @close="transferBuildingDialog=false" @ok="getTableData"/>
<transferCommunity v-if="transferCommunityDialog" @close="transferCommunityDialog=false" @ok="getTableData"/>
</div>
</template>
<script>
import {requestGet, requestPost} from "@/js/dai/request"
import {mapGetters} from "vuex"
import transferBuilding from "@/views/modules/base/migration/records/transferBuilding.vue";
import transferCommunity from "@/views/modules/base/migration/records/transferCommunity.vue";
export default {
name: 'records',
components: {transferBuilding, transferCommunity},
data() {
return {
pageNo: 1,
pageSize: window.localStorage.getItem("pageSize") || 20,
total: 1,
tableData: [],
tableLoading: true,
transferCommunityDialog: false,
transferBuildingDialog: false,
}
},
computed: {
...mapGetters(["clientHeight", "iframeHeight"]),
tableHeight() {
const h = this.clientHeight - 255 + this.iframeHeigh
const _h = this.clientHeight - 255
return this.$store.state.inIframe ? h : _h
}
},
mounted() {
this.getTableData()
},
methods: {
handleAdd(val) {
console.log(val, 'val')
if (val === 'community') {
this.transferCommunityDialog = true
}
if (val === 'building') {
this.transferBuildingDialog = true
}
},
handleSizeChange(val) {
console.log(`每页 ${val}`)
this.pageSize = val
window.localStorage.setItem("pageSize", val)
this.getTableData()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`)
this.pageNo = val
this.getTableData()
},
async getTableData() {
this.tableLoading = true
const url = "/actual/base/baseDataTransfer/recordList"
const {pageSize, pageNo} = this
const {data, code, msg} = await requestGet(url, {
pageSize,
pageNo,
})
this.tableLoading = false
if (code === 0) {
this.total = data.total || 0
this.tableData = data.list
}
}
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/modules/management/list-main.scss";
@import "@/assets/scss/buttonstyle.scss";
</style>

160
src/views/modules/base/migration/records/transferBuilding.vue

@ -0,0 +1,160 @@
<template>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="visible"
title="迁出楼栋"
width="400"
@close="close()"
>
<el-form ref="form" :model="form" label-width="100px">
<el-form-item label="迁出楼栋">
<el-cascader
v-model="form.subjectId"
:options="treeData"
:props="props"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="迁入小区" prop="gridId">
<el-cascader
v-model="form.targetId"
:options="treeData"
:props="props2"
style="width: 100%"
/>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="close()">取消</el-button>
<el-button type="primary" @click="submit">确定</el-button>
</div>
</el-dialog>
</template>
<script>
import {requestGet} from "@/js/dai/request";
export default {
name: "transferCommunity",
data() {
return {
visible: false,
form: {
subjectId: [],
targetId: [],
},
optionsG: [],
treeData: [],
autoOpenArr: [],
props: {
children: "children",
label: "label",
value: "id",
lazy: true,
async lazyLoad(node, resolve) {
const url = `/actual/base/communityBuilding/tree/nextTreeNode?id=${node.data.id}&level=${node.data.level}`;
const {data, code, msg} = await requestGet(url);
if (code === 0) {
data.forEach((element) => {
if (element.level === "building") {
element.leaf = true;
}
});
resolve(data);
} else {
this.$message.error(msg);
}
}
},
props2: {
children: "children",
label: "label",
value: "id",
lazy: true,
async lazyLoad(node, resolve) {
const url = `/actual/base/communityBuilding/tree/nextTreeNode?id=${node.data.id}&level=${node.data.level}`;
const {data, code, msg} = await requestGet(url);
if (code === 0) {
data.forEach((element) => {
if (element.level === "neighborHood") {
element.leaf = true;
}
});
resolve(data);
} else {
this.$message.error(msg);
}
}
}
}
},
props: {},
mounted() {
this.visible = true
this.loadTree()
},
methods: {
async loadTree(isRefresh) {
const url = "/actual/base/communityBuilding/tree/initTree";
const {data, code, msg} = await requestGet(url);
if (code === 0) {
this.treeData = [];
this.treeData.push(data);
//
this.autoOpenArr.push(data.id)
if (!isRefresh && data) {
this.selTreeObj = data;
if (!this.selTreeObj.latitude) {
this.selTreeObj.latitude = this.centerPoint[0];
}
if (!this.selTreeObj.longitude) {
this.selTreeObj.longitude = this.centerPoint[1];
}
}
} else {
this.$message.error(msg);
}
},
close() {
this.visible = false;
this.$emit('close')
},
submit() {
console.log(this.form.subjectId, 'form')
if (this.form.subjectId.length < 6) {
this.$message.error('请选择迁出楼栋')
return
}
if (this.form.targetId.length < 5) {
this.$message.error('请选择迁入小区')
return
}
let params = {
subjectId: this.form.subjectId[5],
targetId: this.form.targetId[4],
sourceId: this.form.targetId[4],
}
let url = '/actual/base/baseDataTransfer/building/submit'
this.$http.post(url, params).then(res => {
if (res.data.code == 0 && res.data.msg == 'success') {
this.$message.success('提交成功');
this.close();
this.$emit('ok');
}
})
}
}
}
</script>
<style scoped>
</style>

160
src/views/modules/base/migration/records/transferCommunity.vue

@ -0,0 +1,160 @@
<template>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="visible"
title="迁出小区"
width="400"
@close="close()"
>
<el-form ref="form" :model="form" label-width="100px">
<el-form-item label="迁出小区">
<el-cascader
v-model="form.subjectId"
:options="treeData"
:props="props"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="迁入网格" prop="gridId">
<el-cascader
v-model="form.targetId"
:options="treeData"
:props="props2"
style="width: 100%"
/>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="close()">取消</el-button>
<el-button type="primary" @click="submit">确定</el-button>
</div>
</el-dialog>
</template>
<script>
import {requestGet} from "@/js/dai/request";
export default {
name: "transferCommunity",
data() {
return {
visible: false,
form: {
subjectId: [],
targetId: [],
},
optionsG: [],
treeData: [],
autoOpenArr: [],
props: {
children: "children",
label: "label",
value: "id",
lazy: true,
async lazyLoad(node, resolve) {
const url = `/actual/base/communityBuilding/tree/nextTreeNode?id=${node.data.id}&level=${node.data.level}`;
const {data, code, msg} = await requestGet(url);
if (code === 0) {
data.forEach((element) => {
if (element.level === "neighborHood") {
element.leaf = true;
}
});
resolve(data);
} else {
this.$message.error(msg);
}
}
},
props2: {
children: "children",
label: "label",
value: "id",
lazy: true,
async lazyLoad(node, resolve) {
const url = `/actual/base/communityBuilding/tree/nextTreeNode?id=${node.data.id}&level=${node.data.level}`;
const {data, code, msg} = await requestGet(url);
if (code === 0) {
data.forEach((element) => {
if (element.level === "grid") {
element.leaf = true;
}
});
resolve(data);
} else {
this.$message.error(msg);
}
}
}
}
},
props: {},
mounted() {
this.visible = true
this.loadTree()
},
methods: {
async loadTree(isRefresh) {
const url = "/actual/base/communityBuilding/tree/initTree";
const {data, code, msg} = await requestGet(url);
if (code === 0) {
this.treeData = [];
this.treeData.push(data);
//
this.autoOpenArr.push(data.id)
if (!isRefresh && data) {
this.selTreeObj = data;
if (!this.selTreeObj.latitude) {
this.selTreeObj.latitude = this.centerPoint[0];
}
if (!this.selTreeObj.longitude) {
this.selTreeObj.longitude = this.centerPoint[1];
}
}
} else {
this.$message.error(msg);
}
},
close() {
this.visible = false;
this.$emit('close')
},
submit() {
console.log(this.form.subjectId, 'form')
if (this.form.subjectId.length < 5) {
this.$message.error('请选择迁出小区')
return
}
if (this.form.targetId.length < 4) {
this.$message.error('请选择迁入网格')
return
}
let params = {
subjectId: this.form.subjectId[4],
targetId: this.form.targetId[3],
sourceId: this.form.targetId[3],
}
let url = '/actual/base/baseDataTransfer/quarter/submit'
this.$http.post(url, params).then(res => {
if (res.data.code == 0 && res.data.msg == 'success') {
this.$message.success('提交成功');
this.close();
this.$emit('ok');
}
})
}
}
}
</script>
<style scoped>
</style>
Loading…
Cancel
Save