jiangyy 3 years ago
parent
commit
f743b9b811
  1. 7
      src/assets/scss/people-info.scss
  2. 43
      src/views/modules/base/community/roomDetail.vue
  3. 57
      src/views/modules/base/community/roomForm.vue
  4. 444
      src/views/modules/base/community/roomTable.vue
  5. 440
      src/views/modules/shequ/cpts/people-more.vue
  6. 412
      src/views/modules/shequzhili/event/cpts/add.vue
  7. 175
      src/views/modules/visual/command/cpts/popup.vue
  8. 99
      src/views/modules/workSys/operAuth.vue

7
src/assets/scss/people-info.scss

@ -20,6 +20,7 @@
width: 1180px;
overflow-y: auto;
overflow-x: hidden;
position: relative;
}
.title {
@ -40,6 +41,12 @@
}
}
.div_tuomin{
position: absolute;
top:25px;
right:40px;
}
.btn-close {
position: absolute;
z-index: 2;

43
src/views/modules/base/community/roomDetail.vue

@ -1,7 +1,12 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<div class="div_tuomin">
<el-button v-if="view_real_data"
size="mini"
class="diy-button--search"
@click="handleTuomin">显示脱敏信息</el-button>
</div>
<div v-if="initLoading"
class="m-row">
<div class="m-info">
@ -51,11 +56,11 @@
</div>
<div class="info-prop">
<span class="info-title-2">联系方式</span>
<span>{{dataForm.ownerPhone?dataForm.ownerPhone:'--' }}</span>
<span>{{dataForm.showOwnerPhone?dataForm.showOwnerPhone:'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">房主身份证</span>
<span>{{dataForm.ownerIdCard?dataForm.ownerIdCard:'--' }}</span>
<span>{{dataForm.showOwnerIdCard?dataForm.showOwnerIdCard:'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">备注</span>
@ -164,6 +169,24 @@ export default {
},
async handleTuomin () {
const url = "/gov/org/ichouse/detailByType";
const { data, code, msg } = await requestPost(url, {
id: this.houseId,
type: "house",
});
if (code === 0) {
this.$set(this.dataForm, 'showOwnerPhone', data.mobile)
this.$set(this.dataForm, 'showOwnerIdCard', data.idCard)
} else {
this.$message.error(msg);
}
},
async loadHouseInfo () {
const url = "/gov/org/ichouse/" + this.houseId
@ -261,9 +284,21 @@ export default {
},
},
props: {}
props: {
view_real_data: {//
type: Boolean,
default: false,
}
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/detail-main.scss";
.div_tuomin {
position: absolute;
top: 0;
right: 40px;
z-index: 1000;
}
</style>

57
src/views/modules/base/community/roomForm.vue

@ -1,6 +1,12 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<div v-if="false"
class="div_tuomin">
<el-button size="mini"
class="diy-button--search"
@click="handleTuomin">显示脱敏信息</el-button>
</div>
<el-form ref="ref_form"
:inline="false"
:model="dataForm"
@ -39,7 +45,8 @@
v-model="dataForm.doorName">
</el-input>
</el-form-item>
<el-form-item v-if="formType != 'detail'" label="房屋编码"
<el-form-item v-if="formType != 'detail'"
label="房屋编码"
prop="coding"
label-width="150px"
style="display: block">
@ -47,12 +54,12 @@
maxlength="50"
placeholder="请输入楼栋编码"
v-model="dataForm.coding">
</el-input>
<el-button style="margin-left: 10px"
type="primary"
size="small"
@click="handleCode">生成</el-button>
type="primary"
size="small"
@click="handleCode">生成</el-button>
</el-form-item>
<div v-if="formType === 'detail'">
<el-form-item label="房屋编码"
@ -225,6 +232,7 @@ export default {
},
methods: {
async initForm (type, row, agencyObj) {
this.$refs.ref_form.resetFields();
@ -245,7 +253,7 @@ export default {
// this.rentFlag = parseInt(this.dataForm.rentFlagKey)
} else {
this.dataForm.neighborHoodId = this.agencyObj.neighborHoodId
this.dataForm.buildingId = this.agencyObj.id
}
@ -255,6 +263,24 @@ export default {
},
async handleTuomin () {
const url = "/gov/org/ichouse/detailByType";
const { data, code, msg } = await requestPost(url, {
id: this.houseId,
type: "house",
});
if (code === 0) {
this.$set(this.dataForm, 'ownerPhone', data.mobile)
this.$set(this.dataForm, 'ownerIdCard', data.idCard)
} else {
this.$message.error(msg);
}
},
async loadHouseInfo () {
const url = "/gov/org/ichouse/" + this.houseId
@ -292,15 +318,15 @@ export default {
this.$message.error(msg)
}
},
async handleCode() {
async handleCode () {
if (!this.dataForm.buildingUnitId) return this.$message.error('请选择单元')
const { data, code, msg } = await requestPost(
"/gov/org/houseInformation/getHouseCoding/" + this.dataForm.buildingUnitId);
if (msg == "success" && code == 0) {
this.dataForm.coding = data.coding
this.dataForm.sysCoding = data.sysCoding
}
}
},
async handleComfirm () {
@ -450,9 +476,20 @@ export default {
},
},
props: {}
props: {
view_real_data: {//
type: Boolean,
default: false,
}
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
.div_tuomin {
position: absolute;
top: 0;
right: 40px;
}
</style>

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

@ -1,245 +1,213 @@
<template>
<div>
<div class="div_btn">
<el-button
v-if="agencyObj.level === 'building' || source !== 'search'"
v-show="btnAuths.ic_house_add"
style="float: left"
class="diy-button--add"
size="small"
@click="handleAdd"
>新增房屋</el-button
>
<div class="btn_upload" v-if="showImportBtn">
<el-button
:headers="$getElUploadHeaders()"
v-if="btnAuths.ic_house_import"
style="float: left"
class="diy-button--export"
size="small"
@click="handleExportModule"
>下载房屋模板</el-button
>
<el-upload
ref="upload"
v-if="btnAuths.ic_house_import"
:multiple="false"
:show-file-list="false"
:before-upload="beforeUpload"
action=""
accept=".xls,.xlsx"
:limit="1"
:on-exceed="handleExceed"
:http-request="uploadFile"
>
<el-button
style="margin-left: 10px"
size="small"
class="diy-button--delete"
>导入房屋数据</el-button
>
<el-button v-if="agencyObj.level === 'building' || source !== 'search'"
v-show="btnAuths.ic_house_add"
style="float: left"
class="diy-button--add"
size="small"
@click="handleAdd">新增房屋</el-button>
<div class="btn_upload"
v-if="showImportBtn">
<el-button :headers="$getElUploadHeaders()"
v-if="btnAuths.ic_house_import"
style="float: left"
class="diy-button--export"
size="small"
@click="handleExportModule">下载房屋模板</el-button>
<el-upload ref="upload"
v-if="btnAuths.ic_house_import"
:multiple="false"
:show-file-list="false"
:before-upload="beforeUpload"
action=""
accept=".xls,.xlsx"
:limit="1"
:on-exceed="handleExceed"
:http-request="uploadFile">
<el-button style="margin-left: 10px"
size="small"
class="diy-button--delete">导入房屋数据</el-button>
</el-upload>
</div>
<el-button
style="float: left; margin-left: 10px"
v-if="btnAuths.ic_house_export"
class="diy-button--reset"
size="small"
@click="handleExport"
>导出</el-button
>
<el-button
style="float: left; margin-left: 10px"
v-if="btnAuths.ic_house_batch_del"
class="diy-button--more"
size="small"
@click="deleteBatch"
>批量删除</el-button
>
<el-button
style="margin-left: 10px"
v-if="btnAuths.ic_house_export_yhyd"
class="diy-button--export"
size="small"
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()"
>导出一户一档</el-button
>
<el-button
size="small"
class="diy-button--add"
v-if="btnAuths.ic_house_smart_import && displayedBaobiaoBtn"
@click="reportForm"
>智能填报</el-button
>
<el-button style="float: left; margin-left: 10px"
v-if="btnAuths.ic_house_export"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
<el-button style="float: left; margin-left: 10px"
v-if="btnAuths.ic_house_batch_del"
class="diy-button--more"
size="small"
@click="deleteBatch">批量删除</el-button>
<el-button style="margin-left: 10px"
v-if="btnAuths.ic_house_export_yhyd"
class="diy-button--export"
size="small"
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()">导出一户一档</el-button>
<el-button size="small"
class="diy-button--add"
v-if="btnAuths.ic_house_smart_import && displayedBaobiaoBtn"
@click="reportForm">智能填报</el-button>
</div>
<div class="div_table_item">
<el-table
ref="ref_table"
:data="tableData"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
v-loading="tableLoading"
@sort-change="handleSortOrderChange"
border
:height="tableHeight"
style="width: 100%"
@select-all="selectAll"
@selection-change="selectionChange"
>
<el-table-column type="selection" :selectable="checkSelect" width="55">
<el-table ref="ref_table"
:data="tableData"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
v-loading="tableLoading"
@sort-change="handleSortOrderChange"
border
:height="tableHeight"
style="width: 100%"
@select-all="selectAll"
@selection-change="selectionChange">
<el-table-column type="selection"
:selectable="checkSelect"
width="55">
</el-table-column>
<el-table-column
fixed="left"
width="55"
type="index"
label="序号"
:index="indexMethod"
>
<el-table-column fixed="left"
width="55"
type="index"
label="序号"
:index="indexMethod">
</el-table-column>
<el-table-column
prop="houseNameShow"
label="房屋名称"
fixed="left"
min-width="160"
>
<el-table-column prop="houseNameShow"
label="房屋名称"
fixed="left"
min-width="160">
</el-table-column>
<el-table-column
prop="neighborHoodName"
label="所属小区"
min-width="150"
>
<el-table-column prop="neighborHoodName"
label="所属小区"
min-width="150">
</el-table-column>
<el-table-column prop="buildingName" label="所属楼栋" width="80">
<el-table-column prop="buildingName"
label="所属楼栋"
width="80">
</el-table-column>
<el-table-column prop="unitNum" label="单元号" width="70">
<el-table-column prop="unitNum"
label="单元号"
width="70">
</el-table-column>
<el-table-column prop="doorName" label="门牌号" width="70">
<el-table-column prop="doorName"
label="门牌号"
width="70">
</el-table-column>
<el-table-column prop="houseType" label="类型" width="50">
<el-table-column prop="houseType"
label="类型"
width="50">
</el-table-column>
<el-table-column prop="purpose" label="用途" width="50">
<el-table-column prop="purpose"
label="用途"
width="50">
</el-table-column>
<el-table-column prop="rentFlag" label="房屋状态" width="80">
<el-table-column prop="rentFlag"
label="房屋状态"
width="80">
</el-table-column>
<el-table-column prop="ownerName" label="房主姓名" width="90">
<el-table-column prop="ownerName"
label="房主姓名"
width="90">
</el-table-column>
<el-table-column prop="ownerPhone" label="联系方式" width="110">
<el-table-column prop="ownerPhone"
label="联系方式"
width="110">
</el-table-column>
<el-table-column prop="ownerIdCard" label="身份证" width="170">
<el-table-column prop="ownerIdCard"
label="身份证"
width="170">
</el-table-column>
<el-table-column prop="remark" label="备注" width="170">
<el-table-column prop="remark"
label="备注"
width="170">
</el-table-column>
<el-table-column
prop="sort"
sortable="custom"
min-width="140"
label="排序"
>
<el-table-column prop="sort"
sortable="custom"
min-width="140"
label="排序">
<template slot-scope="scope">
<div @click="handleEditSort(scope.row)">
<span v-if="!scope.row.isChange">{{ scope.row.sort }}</span>
<el-input-number
v-else
@change="handleChangeSort(scope.row)"
v-model="scope.row.sort"
class="item_width_4"
:precision="2"
size="small"
:min="0"
:max="9999"
label="描述文字"
></el-input-number>
<el-input-number v-else
@change="handleChangeSort(scope.row)"
v-model="scope.row.sort"
class="item_width_4"
:precision="2"
size="small"
:min="0"
:max="9999"
label="描述文字"></el-input-number>
</div>
</template>
</el-table-column>
<el-table-column
label="操作"
fixed="right"
width="140"
header-align="center"
align="center"
class="operate"
>
<el-table-column label="操作"
fixed="right"
width="140"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button
type="text"
v-if="btnAuths.ic_house_view"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)"
>查看</el-button
>
<el-button
v-if="btnAuths.ic_house_update && scope.row.showBtn"
type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)"
>修改</el-button
>
<el-button
v-if="btnAuths.ic_house_del && scope.row.showBtn"
type="text"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)"
>删除</el-button
>
<el-button type="text"
v-if="btnAuths.ic_house_view"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button v-if="btnAuths.ic_house_update && scope.row.showBtn"
type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button v-if="btnAuths.ic_house_del && scope.row.showBtn"
type="text"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total"
>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
<!-- 修改弹出框 -->
<el-dialog
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="900px"
top="5vh"
class="dialog-h"
@closed="diaClose"
>
<room-form
ref="ref_form"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"
></room-form>
<el-dialog :visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="900px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<room-form ref="ref_form"
:view_real_data="btnAuths.ic_house_view_real_data"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"></room-form>
</el-dialog>
<!-- 详情弹出框 -->
<el-dialog
:visible.sync="detailShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="900px"
top="5vh"
class="dialog-h"
@closed="detailFormCancle"
>
<room-detail
ref="ref_form_detail"
:view_real_data="btnAuths.ic_house_view_real_data"
@diaDetailClose="detailFormCancle"
></room-detail>
<el-dialog :visible.sync="detailShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'查看房屋'"
width="900px"
top="5vh"
class="dialog-h"
@closed="detailFormCancle">
<room-detail ref="ref_form_detail"
:view_real_data="btnAuths.ic_house_view_real_data"
@diaDetailClose="detailFormCancle"></room-detail>
</el-dialog>
<baobiao ref="baobiao" />
@ -256,7 +224,7 @@ import baobiao from "@/views/modules/cpts/baobiao";
let loading; //
export default {
data() {
data () {
return {
source: "tree", //
importRoomLoading: false,
@ -320,7 +288,7 @@ export default {
roomForm,
roomDetail,
},
async mounted() {
async mounted () {
this.updateBtnAuths();
this.displayedBaobiaoBtn = await this.$refs.baobiao.existsTemplate({
@ -331,7 +299,7 @@ export default {
});
},
computed: {
tableHeight() {
tableHeight () {
return this.$store.state.inIframe
? this.clientHeight - 425 + this.iframeHeight
: this.clientHeight - 425;
@ -341,7 +309,7 @@ export default {
},
methods: {
//
updateBtnAuths() {
updateBtnAuths () {
let rot = this.$route;
if (Array.isArray(rot.meta.btns)) {
rot.meta.btns.forEach((item) => {
@ -350,7 +318,7 @@ export default {
}
},
reportForm() {
reportForm () {
let paramMap = {
pageSize: this.pageSize,
pageNo: this.pageNo,
@ -374,25 +342,25 @@ export default {
});
},
indexMethod(index) {
indexMethod (index) {
return index + 1;
},
handleSortOrderChange(value) {
handleSortOrderChange (value) {
this.sortType = value.order === "ascending" ? "asc" : "desc";
this.loadTable();
},
handleSortChange(value) {
handleSortChange (value) {
this.sortType = value.order === "ascending" ? "asc" : "desc";
this.loadTable();
},
handleEditSort(row) {
handleEditSort (row) {
if (!row.isChange) {
row.isChange = true;
}
},
async handleChangeSort(row, index) {
async handleChangeSort (row, index) {
// row.isChange = false
let params = {
@ -415,7 +383,7 @@ export default {
}
},
checkSelect(row, index) {
checkSelect (row, index) {
let isChecked = false;
if (row.showBtn) {
//
@ -426,9 +394,9 @@ export default {
return isChecked;
},
loadTreeFromSearch() {},
loadTreeFromSearch () { },
async loadTable(source, treeObj) {
async loadTable (source, treeObj) {
this.source = source;
this.tableLoading = true;
@ -501,12 +469,12 @@ export default {
this.tableLoading = false;
},
diaClose() {
diaClose () {
this.$refs.ref_form.resetData();
this.formShow = false;
},
handleDetail(row) {
handleDetail (row) {
// this.formTitle = "";
// this.formShow = true;
// this.$nextTick(() => {
@ -521,12 +489,12 @@ export default {
});
},
detailFormCancle() {
detailFormCancle () {
// this.$refs.ref_form_detail.diaDestroy()
this.detailShow = false;
},
handleAdd() {
handleAdd () {
this.formTitle = "新增房屋";
this.formShow = true;
this.$nextTick(() => {
@ -534,7 +502,7 @@ export default {
});
},
handleEdit(row) {
handleEdit (row) {
this.formTitle = "修改房屋";
this.formShow = true;
this.$nextTick(() => {
@ -542,15 +510,15 @@ export default {
});
},
addFormCancle() {
addFormCancle () {
this.formShow = false;
},
addFormOk() {
addFormOk () {
this.formShow = false;
this.loadTable();
},
deleteBatch() {
deleteBatch () {
if (this.selection.length > 0) {
this.$confirm("确认删除选择的房屋?", "提示", {
confirmButtonText: "确定",
@ -572,14 +540,14 @@ export default {
this.$message.warning("请先选择要删除的房屋");
}
},
selectAll(selection) {
selectAll (selection) {
this.selection = selection;
},
selectionChange(selection) {
selectionChange (selection) {
this.selection = selection;
},
async handleDelete(row) {
async handleDelete (row) {
this.$confirm("确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -598,7 +566,7 @@ export default {
});
},
async deleteCommunityBatch() {
async deleteCommunityBatch () {
let ids = [];
this.selection.forEach((element) => {
ids.push(element.houseId);
@ -633,7 +601,7 @@ export default {
}
},
async deleteRoom(row) {
async deleteRoom (row) {
const url = "/gov/org/house/housedel";
let params = {
@ -655,7 +623,7 @@ export default {
},
//
async handleExport() {
async handleExport () {
let title = this.agencyObj.label;
title = title + "—房屋列表";
@ -706,7 +674,7 @@ export default {
},
//
download(data, fileName) {
download (data, fileName) {
if (!data) {
return;
}
@ -730,7 +698,7 @@ export default {
}
},
handleExportModule() {
handleExportModule () {
let title = "";
title = "房屋模板";
@ -750,7 +718,7 @@ export default {
},
//
handleExportYihuyidang() {
handleExportYihuyidang () {
this.yihuyidangDisabled = true;
let title = this.agencyObj.label;
title = title + "-一户一档";
@ -806,7 +774,7 @@ export default {
);
},
//
beforeUpload(file) {
beforeUpload (file) {
this.files = file;
const isText = file.type === "application/vnd.ms-excel";
@ -823,11 +791,11 @@ export default {
}
},
//
handleExceed(files, fileList) {
handleExceed (files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传`);
},
async uploadFile() {
async uploadFile () {
if (this.fileName == "") {
this.$message.warning("请选择要上传的文件!");
return false;
@ -876,7 +844,7 @@ export default {
);
},
showMessage(msg) {
showMessage (msg) {
this.$alert(msg, "操作结果", {
confirmButtonText: "关闭",
callback: (action) => {
@ -886,18 +854,18 @@ export default {
});
},
handleSizeChange(val) {
handleSizeChange (val) {
this.pageSize = val;
this.pageNo = 1;
this.loadTable();
},
handleCurrentChange(val) {
handleCurrentChange (val) {
this.pageNo = val;
this.loadTable();
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -905,7 +873,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();
@ -913,7 +881,7 @@ export default {
},
},
watch: {
selection(val) {
selection (val) {
if (val.length > 0) {
this.showDeletBtn = true;
} else {

440
src/views/modules/shequ/cpts/people-more.vue

@ -1,46 +1,55 @@
<template>
<div class="m-pop">
<div class="wrap">
<div class="btn-close" @click="handleClose">
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<div class="wrap2">
<div class="title">
<span>更多信息</span>
</div>
<div v-if="view_real_data"
class="div_tuomin">
<el-button size="mini"
class="diy-button--search"
@click="handleTuomin">显示脱敏信息</el-button>
</div>
<div
:key="'fieldSubList' + index"
v-for="(fieldSubList, index) in fieldList"
>
<div :key="'fieldSubList' + index"
v-for="(fieldSubList, index) in fieldList">
<div class="list">
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属网格</span>
<span>{{ gridName }}</span>
</div>
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属小区</span>
<span>{{ xiaoquName }}</span>
</div>
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属楼栋</span>
<span>{{ louName }}-{{ danyuanName }}</span>
</div>
<div class="item" v-if="index == 0">
<div class="item"
v-if="index == 0">
<span class="item-field">所属家庭</span>
<span>{{ homeName }}</span>
</div>
<div class="item" :key="field.itemId" v-for="field in fieldSubList">
<div class="item"
:key="field.itemId"
v-for="field in fieldSubList">
<span class="item-field">{{ field.label }}</span>
<span
v-if="
<span v-if="field.columnName==='MOBILE'||field.columnName==='ID_CARD'">{{ info[field.columnName]||'--'}}</span>
<span v-else-if="
field.itemType == 'select' ||
field.itemType == 'radio' ||
field.itemType == 'checkbox' ||
field.itemType == 'cascader'
"
>{{
">{{
info[field.columnName] == null
? "--"
: getOptionLabel(
@ -48,8 +57,7 @@
info[field.columnName],
field.itemType
)
}}</span
>
}}</span>
<span v-else>{{
info[field.columnName] == null ? "--" : info[field.columnName]
@ -61,63 +69,47 @@
</div>
<div class="tabs">
<div
class="tab-btn"
@click="subStartGroupIndex"
v-if="groupList.length > 9"
>
<div class="tab-btn"
@click="subStartGroupIndex"
v-if="groupList.length > 9">
<img src="@/assets/img/shuju/people/arrow-double-left.png" />
</div>
<div
v-show="index >= startGroupIndex && index < startGroupIndex + 9"
class="tab"
:class="groupIndex % groupList.length == index ? 'z-on' : ''"
:key="'tab' + index"
@click="groupIndex = index"
v-for="(item, index) in groupList"
>
<div v-show="index >= startGroupIndex && index < startGroupIndex + 9"
class="tab"
:class="groupIndex % groupList.length == index ? 'z-on' : ''"
:key="'tab' + index"
@click="groupIndex = index"
v-for="(item, index) in groupList">
{{ item.label }}
</div>
<div
class="tab-btn"
@click="addStartGroupIndex"
v-if="groupList.length > 9"
>
<div class="tab-btn"
@click="addStartGroupIndex"
v-if="groupList.length > 9">
<img src="@/assets/img/shuju/people/arrow-double-right.png" />
</div>
</div>
<div
:key="'group' + index"
v-show="groupIndex % groupList.length == index"
v-for="(group, index) in groupList"
>
<div
v-if="
<div :key="'group' + index"
v-show="groupIndex % groupList.length == index"
v-for="(group, index) in groupList">
<div v-if="
group.tableName == 'ic_resi_demand' &&
Array.isArray(allInfo.ic_resi_demand) &&
allInfo.ic_resi_demand.length > 0
"
>
<div
class="list"
:key="'ic_resi_demand' + infoIndex"
v-for="(infoItem, infoIndex) in allInfo.ic_resi_demand"
>
<div
class="item"
:key="field.itemId"
v-for="field in group.itemList"
>
">
<div class="list"
:key="'ic_resi_demand' + infoIndex"
v-for="(infoItem, infoIndex) in allInfo.ic_resi_demand">
<div class="item"
:key="field.itemId"
v-for="field in group.itemList">
<span class="item-field">{{ field.label }}</span>
<span
v-if="
<span v-if="
field.itemType == 'select' ||
field.itemType == 'radio' ||
field.itemType == 'checkbox' ||
field.itemType == 'cascader'
"
>{{
">{{
infoItem[field.columnName] == null
? "--"
: getOptionLabel(
@ -125,8 +117,7 @@
infoItem[field.columnName],
field.itemType
)
}}</span
>
}}</span>
<span v-else>{{
infoItem[field.columnName] == null
@ -136,179 +127,136 @@
</div>
</div>
</div>
<div
v-else-if="group.tableName == 'ic_hs'"
style="margin-top: 10px; padding: 0 20px"
>
<el-table
class="table"
:data="natList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<el-table-column
prop="testTime"
header-align="center"
align="center"
label="检测时间"
width="150"
>
<div v-else-if="group.tableName == 'ic_hs'"
style="margin-top: 10px; padding: 0 20px">
<el-table class="table"
:data="natList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="testTime"
header-align="center"
align="center"
label="检测时间"
width="150">
</el-table-column>
<el-table-column
prop="address"
header-align="center"
align="center"
label="检测机构"
show-overflow-tooltip
min-width="180"
>
<el-table-column prop="address"
header-align="center"
align="center"
label="检测机构"
show-overflow-tooltip
min-width="180">
</el-table-column>
<el-table-column
prop="result"
header-align="center"
align="center"
label="检测结果"
width="240"
>
<el-table-column prop="result"
header-align="center"
align="center"
label="检测结果"
width="240">
</el-table-column>
</el-table>
</div>
<div
v-else-if="group.tableName == 'ic_xc'"
style="margin-top: 10px; padding: 0 20px"
>
<el-table
class="table"
:data="tripList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<el-table-column
prop="fromRegion"
header-align="center"
align="center"
label="来自地区"
show-overflow-tooltip
min-width="100"
>
<div v-else-if="group.tableName == 'ic_xc'"
style="margin-top: 10px; padding: 0 20px">
<el-table class="table"
:data="tripList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="fromRegion"
header-align="center"
align="center"
label="来自地区"
show-overflow-tooltip
min-width="100">
</el-table-column>
<el-table-column
prop="arrivalTime"
header-align="center"
align="center"
label="来到本地时间"
width="140"
>
<el-table-column prop="arrivalTime"
header-align="center"
align="center"
label="来到本地时间"
width="140">
</el-table-column>
<el-table-column
prop="leaveTime"
header-align="center"
align="center"
label="离开本地时间"
width="140"
>
<el-table-column prop="leaveTime"
header-align="center"
align="center"
label="离开本地时间"
width="140">
</el-table-column>
<el-table-column
prop="noticeTime"
header-align="center"
align="center"
label="最近一次通知时间"
width="140"
>
<el-table-column prop="noticeTime"
header-align="center"
align="center"
label="最近一次通知时间"
width="140">
</el-table-column>
<el-table-column
prop="remark"
header-align="center"
align="center"
label="备注"
show-overflow-tooltip
width="120"
>
<el-table-column prop="remark"
header-align="center"
align="center"
label="备注"
show-overflow-tooltip
width="120">
</el-table-column>
</el-table>
</div>
<div
v-else-if="group.tableName == 'ic_ym'"
style="margin-top: 10px; padding: 0 20px"
>
<el-table
v-if="vaccineList"
class="table"
:data="vaccineList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="50"
></el-table-column>
<el-table-column
prop="vaccinateTime"
header-align="center"
align="center"
label="接种时间"
show-overflow-tooltip
min-width="100"
>
<div v-else-if="group.tableName == 'ic_ym'"
style="margin-top: 10px; padding: 0 20px">
<el-table v-if="vaccineList"
class="table"
:data="vaccineList"
border
height="400"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="vaccinateTime"
header-align="center"
align="center"
label="接种时间"
show-overflow-tooltip
min-width="100">
</el-table-column>
<el-table-column
prop="address"
header-align="center"
align="center"
label="接种地点"
>
<el-table-column prop="address"
header-align="center"
align="center"
label="接种地点">
</el-table-column>
<el-table-column
prop="manufactor"
header-align="center"
align="center"
label="疫苗厂家"
>
<el-table-column prop="manufactor"
header-align="center"
align="center"
label="疫苗厂家">
</el-table-column>
</el-table>
</div>
<div class="list" v-else>
<div
class="item"
:class="{ 'z-long': group.itemList.length == 1 }"
:key="field.itemId"
v-for="field in group.itemList"
>
<div class="list"
v-else>
<div class="item"
:class="{ 'z-long': group.itemList.length == 1 }"
:key="field.itemId"
v-for="field in group.itemList">
<span class="item-field">{{ field.label }}</span>
<span
v-if="
<span v-if="
field.itemType == 'select' ||
field.itemType == 'radio' ||
field.itemType == 'checkbox' ||
field.itemType == 'cascader'
"
>{{
">{{
!allInfo[group.tableName] ||
allInfo[group.tableName][0][field.columnName] == null
? "--"
@ -317,8 +265,7 @@
allInfo[group.tableName][0][field.columnName],
field.itemType
)
}}</span
>
}}</span>
<span v-else>{{
!allInfo[group.tableName] ||
@ -349,13 +296,17 @@ export default {
type: String,
default: "",
},
view_real_data: {//
type: Boolean,
default: false,
}
},
components: {
cptCard,
},
data() {
data () {
return {
fieldList: [],
groupList: [],
@ -376,11 +327,11 @@ export default {
},
computed: {
isShundeju() {
isShundeju () {
return this.$store.state.user.customerId == "1550309684576591874";
},
xiaoquName() {
xiaoquName () {
const {
xiaoquList,
info: { VILLAGE_ID },
@ -393,7 +344,7 @@ export default {
}
return "";
},
louName() {
louName () {
const {
louList,
info: { BUILD_ID },
@ -406,7 +357,7 @@ export default {
}
return "";
},
danyuanName() {
danyuanName () {
const {
danyuanList,
info: { UNIT_ID },
@ -419,7 +370,7 @@ export default {
}
return "";
},
danyuanName() {
danyuanName () {
const {
danyuanList,
info: { UNIT_ID },
@ -432,7 +383,7 @@ export default {
}
return "";
},
homeName() {
homeName () {
const {
homeList,
info: { HOME_ID },
@ -448,17 +399,34 @@ export default {
},
watch: {
userId() {
userId () {
this.getApiData();
},
},
mounted() {
mounted () {
this.getApiData();
},
methods: {
addStartGroupIndex() {
async handleTuomin () {
const url = "/gov/org/ichouse/detailByType";
const { data, code, msg } = await requestPost(url, {
id: this.userId,
type: "icResiUser",
});
if (code === 0) {
this.$set(this.info, 'MOBILE', data.mobile)
this.$set(this.info, 'ID_CARD', data.idCard)
} else {
this.$message.error(msg);
}
},
addStartGroupIndex () {
const { startGroupIndex, groupList } = this;
if (startGroupIndex < groupList.length - 9) {
this.startGroupIndex = startGroupIndex + 1;
@ -466,7 +434,7 @@ export default {
this.startGroupIndex = groupList.length - 9;
}
},
subStartGroupIndex() {
subStartGroupIndex () {
const { startGroupIndex, groupList } = this;
if (startGroupIndex > 0) {
this.startGroupIndex = startGroupIndex - 1;
@ -474,11 +442,11 @@ export default {
this.startGroupIndex = 0;
}
},
handleClose() {
handleClose () {
this.$emit("close");
},
async getApiData() {
async getApiData () {
await this.getField();
await this.getInfo();
this.getDetailList();
@ -488,7 +456,7 @@ export default {
this.getHomeList();
},
getOptionLabel(options, value, type = "") {
getOptionLabel (options, value, type = "") {
if (Array.isArray(options)) {
let valueArr = value.split(",");
if (type == "cascader") {
@ -510,7 +478,7 @@ export default {
return "--";
},
getNodePath(node, val, path) {
getNodePath (node, val, path) {
// node:val:id, path:id
for (let i = 0; i < node.length; i++) {
const ele = node[i];
@ -530,7 +498,7 @@ export default {
},
//
async getField() {
async getField () {
const url = "/oper/customize/icform/getcustomerform";
const { data, code, msg } = await requestPost(url, {
@ -570,7 +538,7 @@ export default {
},
//
async getInfo() {
async getInfo () {
const url = "/epmetuser/icresiuser/detail";
const { data, code, msg } = await requestPost(url, {
@ -651,7 +619,7 @@ export default {
},
//
async getOptions(url) {
async getOptions (url) {
if (!url) return [];
const { data, code, msg } = await requestPost(url, {});
@ -663,7 +631,7 @@ export default {
}
},
async getXiaoquList() {
async getXiaoquList () {
const url = "/gov/org/icneighborhood/neighborhoodoption";
const { data, code, msg } = await requestPost(url, {
@ -677,7 +645,7 @@ export default {
this.$message.error(msg);
}
},
async getLouList() {
async getLouList () {
const url = "/gov/org/icbuilding/buildingoption";
const { data, code, msg } = await requestPost(url, {
@ -690,7 +658,7 @@ export default {
this.$message.error(msg);
}
},
async getDanyuanList() {
async getDanyuanList () {
const url = "/gov/org/icbuildingunit/unitoption";
const { data, code, msg } = await requestPost(url, {
@ -703,7 +671,7 @@ export default {
this.$message.error(msg);
}
},
async getHomeList() {
async getHomeList () {
const url = "/gov/org/ichouse/houseoption";
const { data, code, msg } = await requestPost(url, {
@ -716,7 +684,7 @@ export default {
this.$message.error(msg);
}
},
async getDetailList() {
async getDetailList () {
const url = "/epmetuser/epidemicPrevention/info";
let params = {
id: this.userId,

412
src/views/modules/shequzhili/event/cpts/add.vue

@ -2,202 +2,160 @@
<div class="g-add">
<div class="g-add-page">
<div class="g-left">
<el-form
ref="ref_form1"
:inline="true"
:model="formData"
:rules="dataRule"
class="form"
>
<el-form-item
label="所属网格 "
prop="gridId"
label-width="150px"
style="display: block"
>
<el-select
v-model.trim="formData.gridId"
placeholder="请选择"
clearable
class="cell-width-1"
>
<el-option
v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form ref="ref_form1"
:inline="true"
:model="formData"
:rules="dataRule"
class="form">
<el-form-item label="所属网格 "
prop="gridId"
label-width="150px"
style="display: block">
<el-select v-model.trim="formData.gridId"
placeholder="请选择"
clearable
class="cell-width-1">
<el-option v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="报事人"
prop="name"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-1"
maxlength="10"
placeholder="请输入报事人姓名"
v-model="formData.name"
>
<el-form-item label="报事人"
prop="name"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
maxlength="10"
placeholder="请输入报事人姓名"
v-model="formData.name">
</el-input>
<div>
<el-button
style="margin-top: 10px"
type="primary"
size="mini"
@click="handleShowPersonList"
>居民信息中选择</el-button
>
<el-button style="margin-top: 10px"
type="primary"
size="mini"
@click="handleShowPersonList">居民信息中选择</el-button>
</div>
</el-form-item>
<el-form-item
label="手机号"
prop="mobile"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-1"
maxlength="30"
placeholder="请输入手机号 "
v-model="formData.mobile"
>
<el-form-item label="手机号"
prop="mobile"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
maxlength="30"
placeholder="请输入手机号 "
v-model="formData.mobile">
</el-input>
</el-form-item>
<el-form-item
label="身份证号"
prop="idCard"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-1"
maxlength="30"
placeholder="请输入身份证号"
v-model="formData.idCard"
></el-input>
<el-form-item label="身份证号"
prop="idCard"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
maxlength="30"
placeholder="请输入身份证号"
v-model="formData.idCard"></el-input>
</el-form-item>
<el-form-item label="反应渠道" label-width="150px" prop="sourceType">
<el-select
v-model="formData.sourceType"
placeholder="请选择"
size="small"
clearable
class="cell-width-1"
>
<el-option
v-for="item in qudaoArray"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form-item label="反应渠道"
label-width="150px"
prop="sourceType">
<el-select v-model="formData.sourceType"
placeholder="请选择"
size="small"
clearable
class="cell-width-1">
<el-option v-for="item in qudaoArray"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="发生时间"
prop="happenTime"
label-width="150px"
style="display: block"
>
<el-date-picker
v-model="formData.happenTime"
class="cell-width-1"
type="datetime"
placeholder="发生时间"
value-format="yyyy-MM-dd hh:mm:ss"
>
<el-form-item label="发生时间"
prop="happenTime"
label-width="150px"
style="display: block">
<el-date-picker v-model="formData.happenTime"
class="cell-width-1"
type="datetime"
placeholder="发生时间"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-form-item
label="事件内容"
prop="eventContent"
label-width="150px"
style="display: block"
>
<el-input
class="cell-width-2"
type="textarea"
maxlength="500"
show-word-limit
:rows="5"
placeholder="请输入事件内容,不超过500字"
v-model="formData.eventContent"
></el-input>
<el-form-item label="事件内容"
prop="eventContent"
label-width="150px"
style="display: block">
<el-input class="cell-width-2"
type="textarea"
maxlength="500"
show-word-limit
:rows="5"
placeholder="请输入事件内容,不超过500字"
v-model="formData.eventContent"></el-input>
</el-form-item>
</el-form>
</div>
<div class="g-right">
<el-form
ref="ref_form2"
:inline="true"
:model="formData"
:rules="dataRule"
class="form"
>
<el-form-item label="图片" label-width="150px" style="display: block">
<el-upload
:headers="$getElUploadHeaders()"
:class="['avatar-uploader', { hide: hideUploadBtn }]"
ref="uploadPic"
:action="uploadUlr"
list-type="picture-card"
:on-exceed="exceedPic"
:on-remove="removePic"
:file-list="replayImgList"
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="3"
>
<el-form ref="ref_form2"
:inline="true"
:model="formData"
:rules="dataRule"
class="form">
<el-form-item label="图片"
label-width="150px"
style="display: block">
<el-upload :headers="$getElUploadHeaders()"
:class="['avatar-uploader', { hide: hideUploadBtn }]"
ref="uploadPic"
:action="uploadUlr"
list-type="picture-card"
:on-exceed="exceedPic"
:on-remove="removePic"
:file-list="replayImgList"
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="3">
<span class="font-14">选择图片</span>
<div slot="tip" class="upload_tip">
<div slot="tip"
class="upload_tip">
最多上传3张图片图片支持jpgjpegbmpgit或png格式
</div>
</el-upload>
</el-form-item>
<el-form-item
label="地理位置"
prop="address"
label-width="150px"
style="display: block"
>
<el-input class="cell-width-1" v-model="formData.address">
<el-form-item label="地理位置"
prop="address"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
v-model="formData.address">
</el-input>
</el-form-item>
<el-form-item
label="位置坐标"
prop="longitude"
label-width="150px"
style="display: block"
>
<el-form-item label="位置坐标"
prop="longitude"
label-width="150px"
style="display: block">
<div style="width: 500px">
<div class="div_map">
<div id="app"></div>
<div class="div_searchmap">
<el-input
class="cell-width-map"
maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords"
>
<el-input class="cell-width-map"
maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords">
</el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap"
>查询</el-button
>
<el-button style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap">查询</el-button>
</div>
</div>
@ -222,62 +180,54 @@
</div>
<!-- 新增弹出框 -->
<el-dialog
:visible.sync="personTableShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:destroy-on-close="true"
title="选择居民"
width="550px"
top="5vh"
class="dialog-h"
@closed="diaClose"
>
<el-dialog :visible.sync="personTableShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:destroy-on-close="true"
title="选择居民"
width="550px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<div style="padding: 10px 30px">
<el-form :inline="false" ref="ref_formSearch" :label-width="'90px'">
<el-form-item label="所属网格" label-width="150px">
<el-select
class="cell-width-1"
v-model.trim="selGridId"
placeholder="请选择"
clearable
>
<el-option
v-for="item in gridList"
@click.native="handleChangeGrid"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form :inline="false"
ref="ref_formSearch"
:label-width="'90px'">
<el-form-item label="所属网格"
label-width="150px">
<el-select class="cell-width-1"
v-model.trim="selGridId"
placeholder="请选择"
clearable>
<el-option v-for="item in gridList"
@click.native="handleChangeGrid"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="居民" label-width="150px" prop="selPersonIndex">
<el-select
v-model="selPersonIndex"
class="cell-width-1"
filterable
placeholder="请选择"
clearable
>
<el-option
v-for="(item, index) in demandUserList"
:key="item.demandUserId"
:label="item.label"
:value="index"
>
<el-form-item label="居民"
label-width="150px"
prop="selPersonIndex">
<el-select v-model="selPersonIndex"
class="cell-width-1"
filterable
placeholder="请选择"
clearable>
<el-option v-for="(item, index) in demandUserList"
:key="item.demandUserId"
:label="item.label"
:value="index">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div class="div-btn">
<el-button
style="margin-left: 20px"
type="primary"
size="small"
@click="handleComfirmSelPerson"
>确定</el-button
>
<el-button style="margin-left: 20px"
type="primary"
size="small"
@click="handleComfirmSelPerson">确定</el-button>
</div>
</div>
</el-dialog>
@ -298,7 +248,7 @@ var markers;
var infoWindowList;
var geocoder; //
function iniFmData() {
function iniFmData () {
return {
gridId: "", //
reportUserId: "", // ID
@ -320,7 +270,7 @@ function iniFmData() {
}
export default {
data() {
data () {
return {
formType: "add", // addeditdetail
@ -376,7 +326,7 @@ export default {
},
components: {},
computed: {
dataRule() {
dataRule () {
let checkIdCard = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入身份证"));
@ -435,7 +385,7 @@ export default {
},
},
async mounted() {
async mounted () {
const { user } = this.$store.state;
this.agencyId = user.agencyId;
let { latitude, longitude } = this.$store.state.user;
@ -453,7 +403,7 @@ export default {
},
methods: {
async handleShowPersonList() {
async handleShowPersonList () {
if (this.formData.gridId) {
await this.handleChangeGrid();
this.personTableShow = true;
@ -461,10 +411,10 @@ export default {
this.$message.info("请先选择网格");
}
},
diaClose() {
diaClose () {
this.personTableShow = false;
},
handleComfirmSelPerson() {
handleComfirmSelPerson () {
if (this.selPersonIndex === 0 || this.selPersonIndex) {
let selPerson = this.demandUserList[this.selPersonIndex];
this.formData.name = selPerson.demandUserName;
@ -478,7 +428,7 @@ export default {
}
},
async handleChangeGrid() {
async handleChangeGrid () {
const url = "/epmetuser/icresiuser/demandusers";
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/epidemicPrevention/page"
let params = {
@ -497,7 +447,7 @@ export default {
this.tableLoading = false;
},
async loadGrid() {
async loadGrid () {
const url = "/gov/org/customergrid/gridoption";
let params = {
@ -513,7 +463,7 @@ export default {
this.$message.error(msg);
}
},
async getCategoryList() {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list";
let params = {};
@ -535,7 +485,7 @@ export default {
},
//
filterTree(arr) {
filterTree (arr) {
let childs = arr;
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
@ -549,12 +499,12 @@ export default {
return arr;
},
handleChangeAgency(value) {
handleChangeAgency (value) {
// this.agencyName = this.$refs["myCascader"].getCheckedNodes()[0].label
// this.orgId = this.selCategoryArray.length > 0 ? this.selCategoryArray[this.selCategoryArray.length - 1] : ''
},
async getEventInfo() {
async getEventInfo () {
this.okflag = false;
this.$refs["ref_form1"].validate((valid, messageObj) => {
if (!valid) {
@ -592,7 +542,7 @@ export default {
});
},
removePic(file, fileList) {
removePic (file, fileList) {
this.formData.imageList.splice(
this.formData.imageList.findIndex((item) => item === file.url),
1
@ -604,19 +554,19 @@ export default {
this.hideUploadBtn = fileList.length >= 3;
},
// 3
handleEditChange(file, fileList) {
handleEditChange (file, fileList) {
this.hideUploadBtn = fileList.length >= 3;
},
exceedPic() {
exceedPic () {
this.$message.warning("最多上传3张预览图片");
},
handleSuccess(response, file, fileList) {
handleSuccess (response, file, fileList) {
this.replayImgList.push(file);
this.formData.imageList.push(response.data.url);
},
// init
initMap() {
initMap () {
//
var center = new window.TMap.LatLng(
this.formData.latitude,
@ -648,7 +598,7 @@ export default {
// this.convert()
},
setMarker(lat, lng) {
setMarker (lat, lng) {
markers.setGeometries([]);
markers.add([
{
@ -662,7 +612,7 @@ export default {
]);
},
handleSearchMap() {
handleSearchMap () {
infoWindowList.forEach((infoWindow) => {
infoWindow.close();
});
@ -694,7 +644,7 @@ export default {
});
},
handleMoveCenter() {
handleMoveCenter () {
//
const center = map.getCenter();
const lat = center.getLat();
@ -705,7 +655,7 @@ export default {
this.convert(lat, lng);
},
convert(lat, lng) {
convert (lat, lng) {
markers.setGeometries([]);
// var input = document.getElementById('location').value.split(',');
let location;
@ -739,12 +689,12 @@ export default {
});
},
resetData() {
resetData () {
this.formData = iniFmData();
this.replayImgList = [];
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -752,7 +702,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();

175
src/views/modules/visual/command/cpts/popup.vue

@ -1,13 +1,14 @@
<template>
<div class="m-pop" ref="pop" @mousewheel="handleWheel" v-show="!hidden">
<div class="m-pop"
ref="pop"
@mousewheel="handleWheel"
v-show="!hidden">
<div class="info">
<div
v-if="
<div v-if="
placeType === 'resi' ||
placeType === 'special_resi' ||
placeType === 'volunteer'
"
>
">
<div class="info-title">居民信息</div>
<div class="item">
姓名
@ -52,25 +53,22 @@
<span>{{ info.resiCategoryNames || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-resi')" class="more-btn">更多</div>
<div @click="handleClickBtn('watch-resi')"
class="more-btn">更多</div>
<div class="operate">
<div
@click="handleClickBtn('create-demand')"
v-if="info.agencyId == $store.state.user.agencyId"
class="btn z-blue"
>
<div @click="handleClickBtn('create-demand')"
v-if="info.agencyId == $store.state.user.agencyId"
class="btn z-blue">
发布需求
</div>
<div
v-if="
<div v-if="
info.agencyId == $store.state.user.agencyId &&
placeType === 'volunteer'
"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
@click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -112,13 +110,11 @@
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'public_service' ||
placeType === 'city_management' ||
placeType === 'superior_resource'
"
>
">
<div class="info-title">场所信息</div>
<div class="item">
场所名称
@ -150,11 +146,9 @@
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'nucleic_point'
"
>
">
<div class="info-title">核酸检测点信息</div>
<div class="item">
检测点名称
@ -177,11 +171,9 @@
<span>{{ info.address || "--" }}</span>
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'vaccine_point'
"
>
">
<div class="info-title">疫苗接种点信息</div>
<div class="item">
接种点名称
@ -221,35 +213,27 @@
<span>{{ info.eventContent || "--" }}</span>
</div>
<div
v-if="info.imageList && info.imageList.length > 0"
class="info-prop"
>
<div v-if="info.imageList && info.imageList.length > 0"
class="info-prop">
<span>图片</span>
<div class="item-pics">
<img
:src="src"
:key="src"
style="width: 100px; height: 100px; padding-right: 10px"
v-for="src in info.imageList"
@click="watchImg(src)"
/>
<img :src="src"
:key="src"
style="width: 100px; height: 100px; padding-right: 10px"
v-for="src in info.imageList"
@click="watchImg(src)" />
</div>
</div>
<div
v-if="info.voiceList && info.voiceList.length > 0"
class="info-prop"
>
<div v-if="info.voiceList && info.voiceList.length > 0"
class="info-prop">
<span>音频</span>
<div class="item-pics">
<audio controls>
<source
:src="item.url"
type=""
:key="item.url"
v-for="item in info.voiceList"
/>
<source :src="item.url"
type=""
:key="item.url"
v-for="item in info.voiceList" />
</audio>
</div>
</div>
@ -270,12 +254,13 @@
手机号
<span>{{ info.mobile || "--" }}</span>
</div>
<div class="item">
<!-- <div class="item">
身份证号
<span>{{ info.idCard || "--" }}</span>
</div>
</div> -->
<div @click="handleClickBtn('watch-event')" class="more-btn">更多</div>
<div @click="handleClickBtn('watch-event')"
class="more-btn">更多</div>
</div>
<div v-if="placeType === 'community_org'">
@ -313,11 +298,9 @@
<span>{{ info.organizationCreatedTime || "--" }}</span>
</div>
<div
v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
<div v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -354,12 +337,10 @@
</div>
</div>
<div
v-if="
<div v-if="
placeType === 'enterprise_patrol' ||
placeType === 'enterprise_patrol_unqualified'
"
>
">
<div class="info-title">企事业信息</div>
<div class="item">
场所类型
@ -390,7 +371,8 @@
<span>{{ info.mobile || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-xuncha')" class="more-btn">更多</div>
<div @click="handleClickBtn('watch-xuncha')"
class="more-btn">更多</div>
</div>
<div v-if="placeType === 'party_unit'">
@ -428,11 +410,9 @@
<span>{{ info.address || "--" }}</span>
</div>
<div
v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
<div v-if="info.agencyId == $store.state.user.agencyId"
@click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -460,7 +440,8 @@
<span>{{ info.centerAddress || "--" }}</span>
</div>
<div class="operate">
<div @click="handleClickBtn('create-service')" class="btn z-yellow">
<div @click="handleClickBtn('create-service')"
class="btn z-yellow">
发起服务
</div>
</div>
@ -469,18 +450,14 @@
<div v-if="placeType === 'list'">
<div class="info-title">列表</div>
<div class="list">
<div
class="item"
@click="handleClickListItem(item)"
:key="'list' + item.id"
v-for="(item, index) in list"
>
<div class="item"
@click="handleClickListItem(item)"
:key="'list' + item.id"
v-for="(item, index) in list">
<div class="item-cnt">{{ index + 1 }}{{ item.content }}</div>
<img
src="@/assets/img/shuju/command/arrow-right-green.png"
alt=""
class="i-arrow"
/>
<img src="@/assets/img/shuju/command/arrow-right-green.png"
alt=""
class="i-arrow" />
</div>
</div>
</div>
@ -501,7 +478,7 @@ export default {
},
},
data() {
data () {
return {
hidden: true,
placeType: "",
@ -514,16 +491,16 @@ export default {
computed: {},
watch: {},
mounted() {},
mounted () { },
methods: {
handleWheel(e) {
handleWheel (e) {
if (this.$refs.pop.clientHeight >= 321) {
e.stopPropagation();
}
},
handleClickBtn(type) {
handleClickBtn (type) {
this.$emit("operate", type, {
placeType: this.placeType,
id: this.srcItem.id,
@ -531,12 +508,12 @@ export default {
});
},
handleClickListItem(item) {
handleClickListItem (item) {
console.log("handleClickListItem", item);
this.$emit("clickListItem", item);
},
async show(item) {
async show (item) {
console.log("-----------------show:", item);
const { placeType, latitude, longitude } = item;
if (!placeType) {
@ -620,7 +597,7 @@ export default {
return true;
},
async loadResi(info) {
async loadResi (info) {
const url = "/epmetuser/icresiuser/resi-brief/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/distribution"
@ -675,7 +652,7 @@ export default {
}
},
async loadPublicService(info) {
async loadPublicService (info) {
const url = "/gov/org/icPublicService/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icPublicService/detail"
@ -700,7 +677,7 @@ export default {
}
},
async loadEvent(info) {
async loadEvent (info) {
const url = "/gov/project/icEvent/detail";
//const url = "http://yapi.elinkservice.cn/mock/245/api/gov/project/icEvent/processAnalysis/eventDetail/" + this.eventId;
@ -715,7 +692,7 @@ export default {
}
},
async loadDangerousChemicals(info) {
async loadDangerousChemicals (info) {
const url = "/gov/org/icDangerousChemicals/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icDangerousChemicals/detail"
@ -743,7 +720,7 @@ export default {
}
},
async loadCityManagement(info) {
async loadCityManagement (info) {
const url = "/gov/org/icCityManagement/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icCityManagement/detail"
@ -768,7 +745,7 @@ export default {
}
},
async loadCommunityOrg(info) {
async loadCommunityOrg (info) {
// const url = "/gov/org/icCityManagement/detail"
const url =
"/heart/iccommunityselforganization/community-self-org-detail/" +
@ -794,7 +771,7 @@ export default {
}
},
async loadGridInfo(info) {
async loadGridInfo (info) {
const url = "/gov/org/icSuperiorResource/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icSuperiorResource/detail"
@ -819,7 +796,7 @@ export default {
}
},
async loadEnterprisePartrol(info) {
async loadEnterprisePartrol (info) {
const url = "/gov/org/enterprise/detail/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/enterprise/detail"
@ -833,7 +810,7 @@ export default {
this.$message.error(msg);
}
},
async loadVaccinePoint(info) {
async loadVaccinePoint (info) {
const url = "/epmetuser/icPointVaccinesInoculation/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/enterprise/detail"
@ -847,7 +824,7 @@ export default {
this.$message.error(msg);
}
},
async loadHesuanPoint(info) {
async loadHesuanPoint (info) {
const url = "/epmetuser/icPointNucleicMonitoring/" + info.id;
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/enterprise/detail"
@ -861,7 +838,7 @@ export default {
this.$message.error(msg);
}
},
async loadGroupRent(info) {
async loadGroupRent (info) {
const url = "/gov/org/ichouse/" + info.id;
const { data, code, msg } = await requestGet(url);
@ -874,7 +851,7 @@ export default {
this.$message.error(msg);
}
},
async loadPartyUnit(info) {
async loadPartyUnit (info) {
const url = "/heart/icpartyunit/detail";
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/detail'
let params = {
@ -896,7 +873,7 @@ export default {
}
},
async loadGridInfo(info) {
async loadGridInfo (info) {
const url = "/gov/org/grid/griddetail";
let params = {
@ -920,7 +897,7 @@ export default {
}
},
async requestList() {
async requestList () {
const url = "/data/aggregator/coverage/analysis/resourceCategories";
let params = {
agencyId: this.orgId,

99
src/views/modules/workSys/operAuth.vue

@ -23,45 +23,45 @@
</el-form-item>
<div>
<el-form-item label="姓名"
prop="name">
<el-input v-model="formData.name"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="手机"
prop="mobile">
<el-input v-model="formData.mobile"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入手机号">
</el-input>
</el-form-item>
<el-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
<el-form-item label="姓名"
prop="operatorName">
<el-input v-model="formData.operatorName"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="手机"
prop="operatorMobile">
<el-input v-model="formData.operatorMobile"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入手机号">
</el-input>
</el-form-item>
<el-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<div class="div_btn">
<el-button style="float:left;margin-left:10px"
<el-button v-if="false"
style="float:left;margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
@ -81,26 +81,26 @@
type="index"
width="50"></el-table-column>
<el-table-column prop="name"
<el-table-column prop="operatorName"
header-align="center"
align="center"
label="姓名"
min-width="100">
</el-table-column>
<el-table-column prop="mobile"
<el-table-column prop="operatorMobile"
header-align="center"
align="center"
label="手机号"
min-width="110">
</el-table-column>
<el-table-column prop="natTime"
<el-table-column prop="content"
header-align="center"
align="center"
label="操作事项"
min-width="230">
</el-table-column>
<el-table-column prop="natAddress"
<el-table-column prop="operateTime"
header-align="center"
align="center"
show-overflow-tooltip
@ -160,20 +160,16 @@ export default {
pageNo: 0,
tableLoading: false,
agencyId: '',
timeRange: [],
formData: {
name: '',//
mobile: '',//
idCard: '',//
category: 'data_tm',
operatorName: '',//
operatorMobile: '',//
startTime: '',//yyyy-MM-dd HH:mm
endTime: '',//yyyy-MM-dd HH:mm
},
tableData: [],
@ -206,7 +202,6 @@ export default {
methods: {
async handleSearch () {
this.isResiUser = this.formData.orgType === 'current'
await this.loadTable()
@ -219,7 +214,8 @@ export default {
async loadTable () {
this.tableLoading = true
const url = "/epmetuser/icNat/natlist"
const url = "/sys/log/operation/page"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/natlist"
let params = {
pageSize: this.pageSize,
@ -272,10 +268,9 @@ export default {
//
resetSearch () {
this.formData = {
orgType: 'current',//:current all
name: '',//
mobile: '',//
idCard: '',//
category: 'data_tm',
operatorName: '',//
operatorMobile: '',//
startTime: '',//yyyy-MM-dd HH:mm
endTime: '',//yyyy-MM-dd HH:mm
}
@ -297,7 +292,7 @@ export default {
//
async handleExport () {
let title = '核酸检测信息'
let title = '操作记录'
const url = "/epmetuser/icNat/export"
@ -361,7 +356,7 @@ export default {
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 420 + this.iframeHeight : this.clientHeight - 420
return this.$store.state.inIframe ? this.clientHeight - 330 + this.iframeHeight : this.clientHeight - 330
},

Loading…
Cancel
Save