Browse Source

Merge branch 'dev-baobiao-temp'

feature
dai 3 years ago
parent
commit
cd3f7f84d2
  1. 35
      src/views/modules/base/community/buildTable.vue
  2. 72
      src/views/modules/base/community/communityTable.vue
  3. 761
      src/views/modules/base/community/roomTable.vue
  4. 32
      src/views/modules/base/resi.vue
  5. 151
      src/views/modules/communityParty/calendar/cpts/calendar.vue
  6. 187
      src/views/modules/cpts/baobiao/index.vue

35
src/views/modules/base/community/buildTable.vue

@ -57,6 +57,9 @@
size="small"
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()">导出一户一档</el-button>
<el-button size="small" v-if="displayedBaobiaoBtn"
class="diy-button--add"
@click="reportForm">智能填报</el-button>
</div>
<div class="div_table_item">
@ -194,6 +197,7 @@
@dialogOk="addFormOk"></build-form>
</el-dialog>
<baobiao ref="baobiao" />
</div>
</template>
@ -204,6 +208,7 @@ import BuildForm from './buildForm'
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
import baobiao from "@/views/modules/cpts/baobiao";
let loading //
export default {
@ -230,13 +235,19 @@ export default {
yihuyidangDisabled: false,
displayedBaobiaoBtn: false,
}
},
components: {
baobiao,
BuildForm
},
async mounted() {
console.log('building11111111111111111111111111')
this.displayedBaobiaoBtn = await this.$refs.baobiao.existsTemplate({
elseParams: {
categoryKeys:['house_info'], categoryKey: 'house_info',
}
});
},
computed: {
tableHeight () {
@ -248,6 +259,28 @@ export default {
...mapGetters(['clientHeight', 'iframeHeight'])
},
methods: {
reportForm(){
let paramMap = {
pageSize: this.pageSize,
pageNo: this.pageNo,
level: this.agencyObj.level,
id: this.agencyObj.id,
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
rentFlag: this.rentFlag,
purpose: this.purpose,
remark: this.remark,
sortType: this.sortType,
updateStartDate: this.updateStartDate,
updateEndDate: this.updateEndDate,
};
this.$refs.baobiao.init({
elseParams: {
categoryKeys:['house_info'], categoryKey: 'house_info', paramMap
}
})
},
indexMethod (index) {
return index + 1;
},

72
src/views/modules/base/community/communityTable.vue

@ -8,12 +8,6 @@
size="small"
:loading="yhymLoading"
@click="handleYhymInfo">补全一房一码信息</el-button>
<el-button v-if="showYhymInfo"
style=""
class="diy-button--export"
size="small"
:loading="yhymLoading"
@click="createBatchNeiQrUrl">补全小程序小区码</el-button>
<el-button style=""
class="diy-button--add"
size="small"
@ -94,6 +88,9 @@
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()">导出一户一档</el-button> -->
<el-button size="small" v-if="displayedBaobiaoBtn"
class="diy-button--add"
@click="reportForm">智能填报</el-button>
</div>
<div class="div_table_item">
@ -220,6 +217,7 @@
</span>
</el-dialog>
<baobiao ref="baobiao" />
</div>
</template>
@ -231,6 +229,7 @@ import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
import axios from 'axios'
import baobiao from "@/views/modules/cpts/baobiao";
let loading //
export default {
@ -267,14 +266,21 @@ export default {
yihuyidangDisabled: false,
yihuyimaDisabled: false,
exportBtn: false,
dialogVisible: false //
dialogVisible: false, //
displayedBaobiaoBtn: false,
}
},
components: {
baobiao,
CommunityForm
},
async mounted() {
this.displayedBaobiaoBtn = await this.$refs.baobiao.existsTemplate({
elseParams: {
categoryKeys:['house_info'], categoryKey: 'house_info',
}
});
},
computed: {
tableHeight () {
@ -285,7 +291,27 @@ export default {
...mapGetters(['clientHeight', 'iframeHeight'])
},
methods: {
reportForm(){
let paramMap = {
pageSize: this.pageSize,
pageNo: this.pageNo,
level: this.agencyObj.level,
id: this.agencyObj.id,
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
rentFlag: this.rentFlag,
purpose: this.purpose,
remark: this.remark,
sortType: this.sortType,
updateStartDate: this.updateStartDate,
updateEndDate: this.updateEndDate,
};
this.$refs.baobiao.init({
elseParams: {
categoryKeys:['house_info'], categoryKey: 'house_info', paramMap
}
})
},
async loadTable (fromTree, treeObj) {
console.log(111, this.staffAgencyId)
//
@ -418,34 +444,6 @@ export default {
}
},
//
async createBatchNeiQrUrl () {
this.yhymLoading = true
const url = "/gov/org/neighborhood/createBatchNeiQrUrl"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.yhymLoading = false
this.$message({
type: "success",
message: "批量生成成功"
});
} else if (code > 8000) {
this.yhymLoading = false
this.$message({
showClose: true,
message: msg,
duration: 0
})
} else {
this.yhymLoading = false
this.$message.error(msg)
}
},
async handleEdit (row) {
this.formTitle = '修改小区'
this.formShow = true

761
src/views/modules/base/community/roomTable.vue

File diff suppressed because it is too large

32
src/views/modules/base/resi.vue

@ -77,6 +77,9 @@
@click="deleteBatch">批量删除</el-button>
<!-- <el-button type="primary" size="small">下载人口模板</el-button> -->
<el-button size="small" v-if="displayedBaobiaoBtn"
class="diy-button--add"
@click="reportForm">智能填报</el-button>
</div>
<el-table ref="ref_table"
:data="tableData"
@ -315,7 +318,7 @@
:userId="lookInfo.userId"
:gridName="lookInfo.gridName"
@close="handleCancleLook" />
<baobiao ref="baobiao" />
</div>
</template>
@ -329,11 +332,13 @@ import { mapGetters } from 'vuex'
import resiTransfer from '../../components/resiTransfer.vue'
import resiChangeRecord from '../../components/resiChangeRecord.vue'
import peopleMore from "@/views/modules/shequ/cpts/people-more";
import baobiao from "@/views/modules/cpts/baobiao";
import diyInfo from './diyInfo.vue'
import { requestPost } from "@/js/dai/request";
export default {
components: {
baobiao,
resiSearch,
resiForm,
editResi,
@ -394,7 +399,9 @@ export default {
lookInfo: {
userId: '',
gridName: ''
}
},
displayedBaobiaoBtn: false,
}
},
props: {
@ -441,14 +448,33 @@ export default {
console.log('resiSearch', this.$refs.resiSearch.$el.offsetHeight)
},
mounted () {
async mounted () {
// this.$nextTick(() => {
// this.tableHeight = document.documentElement.clientHeight - this.$refs.resiSearch.$el.offsetHeight - 280 + 'px'
// })
console.log('document.documentElement.clientWidth', document.documentElement.clientHeight)
this.displayedBaobiaoBtn = await this.$refs.baobiao.existsTemplate({
elseParams: {
categoryKeys:['resi_info'], categoryKey: 'resi_info'
}
});
},
methods: {
reportForm(){
this.$refs.baobiao.init({
elseParams: {
categoryKeys:['resi_info'], categoryKey: 'resi_info', paramMap:{
searchForm:{
formCode: 'resi_base_info',
pageNo: this.currentPage,
pageSize: this.pageSize,
conditions: this.conditions
}
}
}
})
},
checkSelect (row, index) {
return row.isChecked

151
src/views/modules/communityParty/calendar/cpts/calendar.vue

@ -0,0 +1,151 @@
<template>
<div>
<el-row>
<el-col>
<div class="top-con">
<div class="top" v-for="item in top" :key="item">{{ item }}</div>
</div>
<!-- 日历号 -->
<div class="date-con">
<div
class="date"
:class="[item.thisMonth, item.isToday, item.afterToday]"
v-for="(item, index) in visibleCalendar"
:key="index"
>
<div>{{ item.day }}</div>
<div class="morning">张三李四</div>
<div class="evening">王五赵六</div>
</div>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
props: {
time: {
type: Object,
default: () => {
return {
year: new Date().getFullYear(),
month: new Date().getMonth(),
};
},
},
},
data() {
return {
top: ["一", "二", "三", "四", "五", "六", "日"],
};
},
created() {
console.log("123", this.time);
},
methods: {
//
},
computed: {
// ,42
visibleCalendar() {
//
const today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
today.setMilliseconds(0);
const calendarArr = [];
//
const currentFirstDay = new Date(this.time.year, this.time.month, 1);
//
const weekDay = currentFirstDay.getDay();
//
const startDay = currentFirstDay - (weekDay - 1) * 24 * 3600 * 1000;
// 42
for (let i = 0; i < 42; i++) {
const date = new Date(startDay + i * 24 * 3600 * 1000);
calendarArr.push({
date: new Date(startDay + i * 24 * 3600 * 1000),
year: date.getFullYear(),
month: date.getMonth(),
day: date.getDate(),
//
thisMonth:
date.getFullYear() === today.getFullYear() &&
date.getMonth() === today.getMonth()
? "thisMonth"
: "",
//
isToday:
date.getFullYear() === today.getFullYear() &&
date.getMonth() === today.getMonth() &&
date.getDate() === today.getDate()
? "isToday"
: "",
//
afterToday: date.getTime() >= today.getTime() ? "afterToday" : "",
});
}
return calendarArr;
},
},
};
</script>
<style lang="scss" scoped>
.top-con {
display: flex;
align-items: center;
.top {
width: 14.285%;
background-color: rgb(242, 242, 242);
padding: 10px 0;
margin: 5px;
text-align: center;
}
}
.date-con {
display: flex;
flex-wrap: wrap;
.date {
width: 14.285%;
text-align: center;
padding: 5px;
.morning {
padding: 10px 0;
background-color: rgba(220, 245, 253, 0.3);
}
.evening {
padding: 10px 0;
background-color: rgba(220, 244, 209, 0.3);
}
}
.thisMonth {
.morning {
background-color: rgb(220, 245, 253);
}
.evening {
background-color: rgb(220, 244, 209);
}
}
.isToday {
font-weight: 700;
.morning {
background-color: rgb(169, 225, 243);
}
.evening {
background-color: rgb(193, 233, 175);
}
}
}
.tip-con {
margin-top: 51px;
.tip {
margin-top: 21px;
width: 100%;
}
}
</style>

187
src/views/modules/cpts/baobiao/index.vue

@ -0,0 +1,187 @@
<template>
<el-dialog
:visible.sync="visible"
:title="'智能填表'"
:close-on-click-modal="true"
:close-on-press-escape="true"
width="850px"
:top="diaTop"
>
<el-table
v-loading="loading"
:data="list"
row-key="id"
border
:height="tableHeight"
style="width: 100%"
>
<el-table-column type="index" label="序号" width="50" />
<el-table-column
prop="reportName"
label="模板名称"
header-align="center"
min-width="150"
></el-table-column>
<el-table-column
label="操作"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope">
<el-button type="text" size="small" @click="fillIn(scope.row)"
>填写</el-button
>
</template>
</el-table-column>
</el-table>
</el-dialog>
</template>
<script>
import { Loading } from "element-ui"; // Loading
import { requestPost, requestGet } from "@/js/dai/request";
import { mapGetters } from "vuex";
import axios from "axios";
export default {
data() {
return {
loading: false,
visible: false,
list: [], //
elseParams: {},
};
},
computed: {
tableHeight() {
// return this.resolution === 'small' ? this.clientHeight - 210 : this.clientHeight - 220
return this.clientHeight - 300;
},
diaWidth() {
return this.resolution === "small" ? 60 : 50;
},
diaHeight() {
return this.resolution === "small" ? 350 : 600;
},
diaTop() {
return this.resolution === "small" ? "30px" : "100px";
},
...mapGetters(["clientHeight", "resolution"]),
},
mounted() {},
methods: {
async existsTemplate(row) {
console.log("baobiao----------existsTemplate", row);
const { elseParams } = row;
this.list = [];
this.elseParams = { ...elseParams };
await this.getList();
return this.list.length > 0;
},
async init(row) {
console.log("baobiao----------init", row);
const { elseParams } = row;
this.visible = true;
this.elseParams = { ...elseParams };
this.list = [];
await this.getList();
},
//
async getList() {
this.loading = true;
const { elseParams } = this;
const { data, code, msg } = await requestPost(
"/oper/customize/icCustomerReport/report-list",
{
...elseParams,
}
);
this.loading = false;
if (code === 0) {
this.list = data.map((item) => {
return item;
});
} else {
this.$message.error(msg);
}
},
async fillIn(item) {
const { reportId, reportName } = item;
const url = "/oper/customize/icCustomerReport/preview";
const parmas = {
...this.elseParams,
reportId,
};
const { data, code, msg } = await requestPost(url, parmas);
if (code === 0) {
let token = localStorage.getItem("token");
let prefix = window.SITE_CONFIG["apiURL"].slice(0, -4);
if (item.isList) {
this.exportAll(reportId, data.paramKey, reportName);
} else {
window.open(
`${prefix}/jmreport/view/${reportId}?token=${token}&paramKey=${data.paramKey}`
);
}
// this.visible = false;
this.$emit("afterFillIn");
} else {
this.$message.error(msg);
}
},
async exportAll(reportId, paramKey, reportName) {
const url = "/oper/customize/icCustomerReport/batch-export";
axios({
url: window.SITE_CONFIG["apiURL"] + url,
method: "post",
data: {
reportId,
paramKey,
},
responseType: "blob",
})
.then((res) => {
console.log("批量导出接口返回", res);
// let fileName = window.decodeURI(
// res.headers["content-disposition"].split(";")[1].split("=")[1]
// );
let fileName = reportName;
console.log("filename", fileName);
let blob = new Blob([res.data], { type: "application/zip" });
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
})
.catch((err) => {
console.log("批量导出失败", err);
return this.$message.error("网络错误");
});
},
},
};
</script>
<style lang="scss" scoped></style>
Loading…
Cancel
Save