8 changed files with 2261 additions and 2 deletions
@ -0,0 +1,594 @@ |
|||
<template> |
|||
<div> |
|||
|
|||
<div class="dialog-h-content scroll-h"> |
|||
|
|||
<el-form ref="ref_form" :inline="true" :model="formData" :rules="dataRule" class="form"> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<el-form-item label="所属区域" prop="typeName" label-width="100px"> |
|||
<el-select v-model="formData.positionId" placeholder="请选择" clearable> |
|||
<el-option v-for="item in SiteData" :key="item.id" :label="item.name" :value="item.id"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="设备类别" label-width="100px" prop="name"> |
|||
<el-input v-model.trim="formData.name" size="small" clearable placeholder="请输入活动名称" |
|||
:disabled="showdisabled" class="u-item-width-normal"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="设备名称" prop="linkPhone" label-width="100px"> |
|||
<el-input style="width: 587px" v-model.trim="formData.linkPhone" size="small" clearable |
|||
placeholder="请输入手机号" :disabled="showdisabled" class="u-item-width-normal"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="所属单位" prop="linkPhone" label-width="100px"> |
|||
<el-input style="width: 587px" v-model.trim="formData.linkPhone" size="small" clearable |
|||
placeholder="请输入手机号" :disabled="showdisabled" class="u-item-width-normal"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="负责人名称" label-width="100px" prop="name"> |
|||
<el-input v-model.trim="formData.name" size="small" clearable placeholder="请输入活动名称" |
|||
:disabled="showdisabled" class="u-item-width-normal"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="负责人电话" label-width="100px" prop="name"> |
|||
<el-input v-model.trim="formData.name" size="small" clearable placeholder="请输入活动名称" |
|||
:disabled="showdisabled" class="u-item-width-normal"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="备注" label-width="100px" prop="name"> |
|||
<el-input style="width: 580px" v-model.trim="formData.name" size="small" clearable |
|||
placeholder="请输入活动名称" :disabled="showdisabled" class="u-item-width-normal"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="位置" prop="address" label-width="100px" style="display: block"> |
|||
<div style="width: 580px"> |
|||
<el-select v-model.trim="searchValue" filterable style="width: 580px" remote |
|||
:reserve-keyword="true" :disabled="showdisabled" placeholder="请输入关键词" |
|||
:remote-method="remoteMethod"> |
|||
<el-option v-for="(item, index) in searchOptions" |
|||
@click.native="handleClickKey(index)" :key="item.value || index" |
|||
:label="item.label" :value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
<div id="app_activity" class="div_map"></div> |
|||
</div> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row></el-form> |
|||
<div class="div_btn"> |
|||
<el-button size="small" @click="handleCancle">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="handleComfirm">确 |
|||
定</el-button> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { mapGetters } from 'vuex' |
|||
// import { Loading } from 'element-ui' // 引入Loading服务 |
|||
import { requestPost,requestGet } from '@/js/dai/request' |
|||
import Tinymce from '@c/tinymce2/index.vue' |
|||
import daiMap from "@/utils/dai-map"; |
|||
import util from '@js/util.js'; |
|||
// import UploadImage from './upload-image.vue' |
|||
import UploadImage from '@/views/modules/plugins/rent/upload-image.vue' |
|||
|
|||
var map |
|||
var search |
|||
var markers |
|||
var infoWindowList |
|||
var geocoder // 新建一个正逆地址解析类 |
|||
export default { |
|||
data() { |
|||
return { |
|||
|
|||
showdisabled:false, |
|||
searchOptions:[], |
|||
fileList:[], |
|||
searchValue:"", |
|||
Organizationaltype:[ |
|||
{ label: "社区", value: 1 }, |
|||
{ label: "企业", value: 2 }, |
|||
{ label: "学校", value: 3 }, |
|||
], |
|||
SiteData:[], |
|||
tableDate:{}, |
|||
formData: |
|||
{ |
|||
attrs:[], |
|||
positionId:"",//挂靠阵地 |
|||
address: "",//地址 |
|||
longitude: this.$store.state.user.longitude, //经度 |
|||
latitude: this.$store.state.user.latitude,//纬度 |
|||
}, |
|||
uploadUrl: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2', |
|||
customerId: localStorage.getItem('customerId'), |
|||
|
|||
} |
|||
|
|||
}, |
|||
|
|||
components: { Tinymce, UploadImage }, |
|||
mounted() { |
|||
this.getSiteTableData() |
|||
this.formData.agencyId=this.$store.state.user.agencyId |
|||
this.formData.agencyName=this.$store.state.user.agencyName |
|||
let { latitude, longitude } = this.$store.state.user; |
|||
if (!latitude || latitude == "" || latitude == "0") { |
|||
latitude = 39.9088810666821; |
|||
longitude = 116.39743841556731; |
|||
} |
|||
this.formData.latitude = latitude; |
|||
this.formData.longitude = longitude; |
|||
this.activityType() |
|||
}, |
|||
|
|||
methods: { |
|||
//获取阵地列表 |
|||
async getSiteTableData() { |
|||
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/project/project-list"; |
|||
const url = "/voluntary/position/list"; |
|||
let params = { |
|||
name: "", |
|||
type: "", |
|||
pageNo: "", |
|||
pageSize: "" |
|||
} |
|||
const { data, code, msg } = await requestGet(url, params); |
|||
if (code === 0) { |
|||
console.log("列表请求成功!!!!!!!!!!!!!!"); |
|||
// this.total = data.total || 0; |
|||
this.SiteData = data.list |
|||
} else { |
|||
} |
|||
}, |
|||
//父组件传的 |
|||
async initForm(type, unitId) { |
|||
console.log(type, unitId,"i就理解哦i"); |
|||
if(type=="info"){ |
|||
this.showdisabled=true |
|||
this.getTableDetail(unitId) |
|||
} |
|||
if (type == "edit") { |
|||
this.getTableDetail(unitId) |
|||
} |
|||
|
|||
}, |
|||
//获取详情 |
|||
getTableDetail(id) { |
|||
console.log(id,"dskljfksdljf"); |
|||
let url = `/voluntary/positionVenues/edit/${id}`; |
|||
requestGet(url).then((res) => { |
|||
console.log(res); |
|||
if (res.code == 0) { |
|||
this.formData = res.data |
|||
this.searchValue= res.data.address |
|||
this.fileList=[{fileUrl:res.data.attrs[0].url}] |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
|
|||
}) |
|||
|
|||
|
|||
}, |
|||
async activityType() { |
|||
this.$nextTick(() => { |
|||
if (!map) { |
|||
this.initMap(this.formData.latitude, this.formData.longitude); |
|||
console.log("map", map,this.formData.latitude, this.formData.longitude) |
|||
} else { |
|||
map.setCenter(this.formData.latitude, this.formData.longitude); |
|||
map.setMarker(this.formData.latitude, this.formData.longitude); |
|||
console.log("mapmapmap", map) |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
handleOnlineRegistration(value) { |
|||
// |
|||
if (value) { |
|||
this.online = true; |
|||
this.formData.online = 1; |
|||
} else { |
|||
this.online = false; |
|||
this.formData.cutOffTime = '' |
|||
this.formData.online = 0; |
|||
} |
|||
}, |
|||
onChangeFileList(e) { |
|||
console.log(e, 'sssssb'); |
|||
this.fileList = e.length > 0 ? e.map(item => ({ |
|||
fileType: '0', |
|||
type:'image', |
|||
fileType: '0', |
|||
name:item.response.data.fileName, |
|||
fileUrl: item.response.data.url, |
|||
format: item.response.data.fileName.split('.').pop(), |
|||
url: item.response.data.url |
|||
})) : []; // 当e为空时清空fileList |
|||
if (e.length > 0) { |
|||
console.log(this.fileList,"this.fileList"); |
|||
this.formData.attrs=this.fileList; |
|||
console.log(this.formData.attrs,"this.fileList"); |
|||
} else { |
|||
this.formData.coverPic = ''; |
|||
} |
|||
}, |
|||
|
|||
removedImg() { |
|||
this.formData.coverPic = '' |
|||
}, |
|||
onChangeFileList1(e) { |
|||
console.log(e, 'sssssb'); |
|||
this.fileList1 = e.length > 0 ? e.map(item => ({ |
|||
fileType: '0', |
|||
fileUrl: item.response.data.url |
|||
})) : []; // 当e为空时清空fileList |
|||
if (e.length > 0) { |
|||
this.formData.brandImg = e[0].response.data.url; |
|||
} else { |
|||
this.formData.brandImg = ''; |
|||
} |
|||
}, |
|||
|
|||
onChangeImgs(e, rowIndex = 0) { |
|||
console.log('onChangeFileList', e) |
|||
if (e.length > 0) { |
|||
this.activityImgs = [] |
|||
e.forEach(item => { |
|||
let ob = { |
|||
fileType: '0', |
|||
fileUrl: item.response.data.url |
|||
} |
|||
this.activityImgs.push(ob) |
|||
}) |
|||
} |
|||
}, |
|||
|
|||
// onChangeImgs(e) { |
|||
// this.activityImgs = []; |
|||
// if (e.length > 0) { |
|||
// e.forEach(item => { |
|||
// let ob = { |
|||
// fileType: '0', |
|||
// fileUrl: item.response.data.url |
|||
// }; |
|||
// this.activityImgs.push(ob); |
|||
// }); |
|||
// console.log('this.activityImgs',this.activityImgs) |
|||
// } |
|||
// }, |
|||
|
|||
handleChange(value) {}, |
|||
handleTimeChange(time) { |
|||
if (time) { |
|||
const startTimeArray = util.dateFormatter(time[0], 'time').split('-') |
|||
console.log(startTimeArray); |
|||
const endTimeArray = util.dateFormatter(time[1], 'time').split('-') |
|||
console.log(endTimeArray); |
|||
this.formData.startTime = startTimeArray[0] + '-' + startTimeArray[1] + '-' + startTimeArray[2] |
|||
this.formData.endTime = endTimeArray[0] + '-' + endTimeArray[1] + '-' + endTimeArray[2] |
|||
// this.startTimeShow = startTimeArray[0] + '年' + startTimeArray[1] + '月' + startTimeArray[2] + '日' |
|||
// this.endTimeShow = endTimeArray[0] + '年' + endTimeArray[1] + '月' + endTimeArray[2] + '日' |
|||
} else { |
|||
this.formData.startTime = '' |
|||
this.formData.endTime = '' |
|||
} |
|||
|
|||
}, |
|||
|
|||
|
|||
async getDemandOptions() { |
|||
this.$http |
|||
.post("/actual/base/serviceitem/listAllCategory") |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg); |
|||
} else { |
|||
console.log(res.data); |
|||
this.demandOptions = this.getFlagData( |
|||
this.getTreeData(res.data), |
|||
"usableFlag" |
|||
); |
|||
} |
|||
}) |
|||
.catch(() => { |
|||
return this.$message.error("网络错误"); |
|||
}); |
|||
}, |
|||
getFlagData(data, flag) { |
|||
if (!Array.isArray(data)) return []; |
|||
let arr1 = data.filter((item) => item[flag]); |
|||
let arr2 = arr1.map((item) => { |
|||
if (item.childCateList) |
|||
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) }; |
|||
else return item; |
|||
}); |
|||
return arr2; |
|||
}, |
|||
getTreeData(data) { |
|||
if (!Array.isArray(data)) return []; |
|||
let arr = data.map((item) => { |
|||
let _item = {}; |
|||
if (item.childCateList) { |
|||
if (item.childCateList.length === 0) |
|||
_item = { ...item, childCateList: undefined }; |
|||
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) }; |
|||
} else { |
|||
_item = { ...item }; |
|||
} |
|||
return _item; |
|||
}); |
|||
return arr; |
|||
}, |
|||
async loadGrid() { |
|||
const url = "/gov/org/customergrid/gridoption" |
|||
|
|||
let params = { |
|||
agencyId: this.agencyId |
|||
} |
|||
|
|||
const { data, code, msg } = await requestPost(url, params) |
|||
|
|||
if (code === 0) { |
|||
this.gridList = data |
|||
|
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
|
|||
}, |
|||
async handleComfirm() { |
|||
console.log(this.formData," this.formData"); |
|||
|
|||
if (!this.formData.address) { |
|||
this.$message.error('请输入具体位置'); |
|||
return; |
|||
} |
|||
|
|||
|
|||
|
|||
if (!this.formData.attrs ) { |
|||
this.$message.error('请上传图片'); |
|||
return; |
|||
} |
|||
|
|||
if (!this.formData.linkPhone) { |
|||
this.$message.error('请填写联系电话'); |
|||
return; |
|||
} |
|||
|
|||
if (!this.formData.positionId) { |
|||
this.$message.error('请选择挂靠阵地'); |
|||
return; |
|||
} |
|||
|
|||
|
|||
this.addActivity() |
|||
}, |
|||
//增加 |
|||
async addActivity() { |
|||
let url = '/voluntary/positionVenues/saveOrUpdate' |
|||
const { data, code, msg } = await requestPost(url, this.formData) |
|||
if (code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '操作成功' |
|||
}) |
|||
// this.resetData() |
|||
this.$emit('showAddClose') |
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
}, |
|||
|
|||
handleCancle() { |
|||
console.log("sdlkfjklsdf "); |
|||
this.$emit('showAddClose') |
|||
|
|||
}, |
|||
|
|||
// 地图初始化函数,本例取名为init,开发者可根据实际情况定义 |
|||
initMap(latitude, longitude) { |
|||
console.log(latitude, longitude,"564564568"); |
|||
map = new daiMap( |
|||
document.getElementById("app_activity"), |
|||
{ latitude, longitude }, |
|||
{ |
|||
zoom: 16.2, // 设置地图缩放级别 |
|||
pitch: 43.5, // 设置俯仰角 |
|||
rotation: 45, // 设置地图旋转角度 |
|||
} |
|||
); |
|||
|
|||
// 监听地图平移结束 |
|||
/* map.on("dragend", (e) => { |
|||
this.handleMoveCenter(e); |
|||
});*/ |
|||
map.on("click", (e) => { |
|||
this.handleMoveCenter(e); |
|||
}); |
|||
|
|||
map.setCenter(latitude, longitude); |
|||
map.setMarker(latitude, longitude); |
|||
|
|||
}, |
|||
|
|||
|
|||
async handleMoveCenter(e) { |
|||
//修改地图中心点 |
|||
// const { lat, lng } = map.getCenter(); |
|||
const { lat, lng } = e.latLng; |
|||
this.formData.latitude = lat; |
|||
this.formData.longitude = lng; |
|||
map.setMarker(lat, lng); |
|||
|
|||
let { msg, data } = await map.getAddress(lat, lng); |
|||
if (msg == "success") { |
|||
this.formData.address = data.address; |
|||
this.searchValue=data.address |
|||
console.log(this.formData.address," this.formData.address "); |
|||
|
|||
this.searchValue = data.address |
|||
this.searchOptions = [] |
|||
// console.log('data,this.searchValue ', this.searchValue) |
|||
|
|||
} |
|||
}, |
|||
|
|||
async remoteMethod(query) { |
|||
console.log(query, "sfsvsdv"); |
|||
if (query !== '') { |
|||
const { msg, data } = await map.searchNearby(query); |
|||
this.resultList = [] |
|||
|
|||
if (msg == "success" && data.resultList && data.resultList.length > 0) { |
|||
|
|||
if (data.resultList && data.resultList.length > 0) { |
|||
this.resultList = data.resultList |
|||
console.log(this.resultList, "this.resultList"); |
|||
this.searchOptions = this.resultList.map(item => { |
|||
return { value: `${item.id}`, label: `${item.address + item.title}` }; |
|||
|
|||
}); |
|||
console.log(this.searchOptions, "this.searchOptions"); |
|||
} |
|||
} else { |
|||
this.searchOptions = [ |
|||
{ |
|||
value: '0', |
|||
label: '未检索到结果' |
|||
} |
|||
] |
|||
} |
|||
} else { |
|||
this.searchOptions = []; |
|||
} |
|||
}, |
|||
|
|||
handleClickKey(index) { |
|||
let selPosition = this.resultList[index] |
|||
let lonlat = selPosition.lonlat.split(" ") |
|||
map.setCenter(lonlat[1], lonlat[0]); |
|||
map.setMarker(lonlat[1], lonlat[0]); |
|||
this.formData.latitude = lonlat[1]; |
|||
this.formData.longitude = lonlat[0]; |
|||
this.formData.address=selPosition.address + selPosition.nam |
|||
this.searchValue = selPosition.address + selPosition.name |
|||
console.log(this.formData.address," this.formData.address "); |
|||
|
|||
}, |
|||
|
|||
|
|||
|
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
positionId: [ |
|||
{ required: true, message: '请选择挂靠组织', trigger: 'blur' } |
|||
], |
|||
name: [ |
|||
{ required: true, message: '请填写名称', trigger: 'blur' } |
|||
], |
|||
linkPhone: [ |
|||
{ required: true, message: '电话不能为空不能为空', trigger: 'blur' }, |
|||
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码', trigger: 'blur' } |
|||
], |
|||
|
|||
fileList: [ |
|||
{ required: true, message: '请选择封面图片', trigger: 'blur' } |
|||
], |
|||
address: [ |
|||
{ required: true, message: '请选择位置', trigger: 'blur' } |
|||
], |
|||
|
|||
} |
|||
}, |
|||
|
|||
}, |
|||
props: { |
|||
|
|||
|
|||
|
|||
}, |
|||
destroyed () { |
|||
map = null |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/modules/visual/communityManageForm.scss"; |
|||
</style> |
|||
<style lang="scss" scoped> |
|||
.item_width_1 { |
|||
width: 634px; |
|||
|
|||
/deep/.tox .tox-dialog { |
|||
z-index: 20000; |
|||
} |
|||
} |
|||
.u-item-width-normal{ |
|||
width: 222px; |
|||
} |
|||
|
|||
.tinymce_view { |
|||
::v-deep .tox .tox-dialog { |
|||
z-index: 2000000000; |
|||
} |
|||
} |
|||
|
|||
.div_map { |
|||
position: relative; |
|||
} |
|||
|
|||
.div_searchmap { |
|||
z-index: 5000; |
|||
position: absolute; |
|||
top: 5px; |
|||
left: 5px; |
|||
} |
|||
|
|||
.tinymce_view { |
|||
height: 400px; |
|||
overflow: auto; |
|||
} |
|||
|
|||
.text_p { |
|||
margin: 0; |
|||
padding: 0 10px; |
|||
border: 1px solid #d9d9d9; |
|||
border-radius: 5px; |
|||
|
|||
>p { |
|||
margin: 0; |
|||
} |
|||
} |
|||
.div_btn { |
|||
height: 50px; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
text-align: center; |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,452 @@ |
|||
<template> |
|||
<div> |
|||
<div class="g-main" style="flex-direction: column"> |
|||
<div class="m-search" style="flex-direction: column"> |
|||
<section :class="boxHeight ? 'm-form-box-height' : 'm-form-box-height-auto'"> |
|||
<el-form :inline="true" class="communityHeight" ref="ref_searchform" :label-width="'100px'"> |
|||
<el-form-item label="所属区划" prop="ownerName"> |
|||
<el-input v-model.trim="ownerName" class="u-item-width-normal" size="small" clearable |
|||
placeholder="请输入内容"> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="设施类别" prop="ownerPhone"> |
|||
<el-input v-model.trim="ownerPhone" class="u-item-width-normal" size="small" clearable |
|||
placeholder="请输入联系电话"> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="设施名称" prop="ownerPhone"> |
|||
<el-input v-model.trim="ownerPhone" class="u-item-width-normal" size="small" clearable |
|||
placeholder="请输入联系电话"> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="设施地点" prop="ownerPhone"> |
|||
<el-input v-model.trim="ownerPhone" class="u-item-width-normal" size="small" clearable |
|||
placeholder="请输入联系电话"> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="所属单位" prop="ownerPhone"> |
|||
<el-input v-model.trim="ownerPhone" class="u-item-width-normal" size="small" clearable |
|||
placeholder="请输入联系电话"> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="负责人姓名" prop="ownerPhone"> |
|||
<el-input v-model.trim="ownerPhone" class="u-item-width-normal" size="small" clearable |
|||
placeholder="请输入联系电话"> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="负责人电话" prop="ownerPhone"> |
|||
<el-input v-model.trim="ownerPhone" class="u-item-width-normal" size="small" clearable |
|||
placeholder="请输入联系电话"> |
|||
</el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
</section> |
|||
<el-row> |
|||
<el-col :span="24" align="right"> |
|||
<el-button style="margin-left: 10px" size="small" type="primary" |
|||
@click="handleSearch">查询</el-button> |
|||
<el-button size="small" class="diy-button--white" @click="resetSearch">重置</el-button> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
<div class="m-table"> |
|||
<div class="u-table-btn2"> |
|||
<div class="u-table-btn2-left"> |
|||
<el-button style="" class="diy-button--blue" icon="el-icon-plus" size="small" |
|||
@click="handleAdd">新增设备</el-button> |
|||
<!-- <el-button style="margin-left:10px" class="diy-button--white" size="small" |
|||
@click="handleExport">导出</el-button> --> |
|||
<!-- <el-button style="margin-left:10px" class="diy-button--white" size="small" |
|||
@click="deleteBatch">批量删除</el-button> --> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
|
|||
<div class="m-table-item"> |
|||
<el-table :data="tableData" border :show-overflow-tooltip="true" style="width: 100%"> |
|||
<el-table-column width="55"> |
|||
</el-table-column> |
|||
<el-table-column fixed="left" width="70" type="index" label="序号" header-align="center" |
|||
align="center"> |
|||
</el-table-column> |
|||
|
|||
<el-table-column prop="buildingName" fixed="left" label="所属区划" header-align="left" align="left" |
|||
min-width="180"> |
|||
<template slot-scope="scope"> |
|||
<a class="name-a" @click="handleToNextLevel(scope.row)"> |
|||
{{ scope.row.buildingName }} |
|||
</a> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="neighborHoodName" label="" header-align="left" align="left" |
|||
min-width="160"> |
|||
</el-table-column> |
|||
<el-table-column prop="buildingType" label="设施类别" header-align="left" align="left" width="90"> |
|||
</el-table-column> |
|||
<el-table-column prop="buildingLeaderName" label="设施名称" header-align="left" align="left" |
|||
min-width="90"> |
|||
</el-table-column> |
|||
<el-table-column prop="buildingLeaderMobile" label="设施地点" header-align="left" align="left" |
|||
min-width="110"> |
|||
</el-table-column> |
|||
<el-table-column prop="totalUnitNum" header-align="left" align="left" label="所属单位"> |
|||
</el-table-column> |
|||
<el-table-column prop="totalFloorNum" header-align="left" align="left" label="负责人姓名"> |
|||
</el-table-column> |
|||
<el-table-column prop="realTotalHouseNum" header-align="left" align="left" width="90" |
|||
label="负责人电话"> |
|||
</el-table-column> |
|||
<el-table-column label="操作" fixed="right" width="220" header-align="center" align="center" |
|||
class="operate"> |
|||
<template slot-scope="scope"> |
|||
|
|||
<el-button type="text" class="div-table-button--blue" size="small" |
|||
@click="handleDetail(scope.row)">查看</el-button> |
|||
<el-button type="text" class="div-table-button--blue" size="small" |
|||
@click="handleEdit(scope.row)">编辑</el-button> |
|||
|
|||
<el-button type="text" class="div-table-button--blue" size="small" |
|||
@click="handleDelete(scope.row)">删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
> |
|||
</div> |
|||
<!-- 新增/修改弹出框 --> |
|||
<el-dialog :visible.sync="showAdd" :close-on-click-modal="false" :close-on-press-escape="false" |
|||
:title="formTitle" width="750px" top="10vh" class="dialog-h" @closed="showAddClose"> |
|||
<add ref="ref_form" v-if="showAdd" @showAddClose="showAddClose" /> |
|||
</el-dialog> |
|||
<!--查看弹出框 --> |
|||
<el-dialog :visible.sync="showinfo" :close-on-click-modal="false" :close-on-press-escape="false" |
|||
:title="formTitle" width="750px" top="10vh" class="dialog-h" @closed="showAddClose"> |
|||
<info ref="ref_form" v-if="showinfo" @showAddClose="showAddClose" /> |
|||
</el-dialog> |
|||
<!-- 导出弹出框 --> |
|||
<!-- <el-dialog :visible.sync="diyDialog" :close-on-click-modal="false" :close-on-press-escape="false" |
|||
width="1150px" title="导出模板" top="5vh" class="dialog-h"> |
|||
<community-export-info v-if="diyDialog" ref="ref_diy" :list="exportList" :search="{ |
|||
formCode: 'community_info', |
|||
pageNo: pageNo, |
|||
pageSize: pageSize, |
|||
conditions: queryConditions |
|||
}" :orgId="agencyObj.id" @close="handleDiyClose"></community-export-info> |
|||
</el-dialog> --> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</template> |
|||
<script> |
|||
import CDialog from "@c/CDialog"; |
|||
import add from "./add.vue"; |
|||
// import info from "./info.vue"; |
|||
import info from "./info.vue" |
|||
// import buildTable from "./buildTable"; |
|||
// import roomTable from "./roomTable"; |
|||
import { requestPost, requestGet } from "@/js/dai/request"; |
|||
import { mapGetters } from "vuex"; |
|||
import { Loading } from "element-ui"; // 引入Loading服务 |
|||
import nextTick from "dai-js/tools/nextTick"; |
|||
import debounce from "lodash/debounce"; |
|||
let loading; // 加载动画 |
|||
export default { |
|||
data() { |
|||
return { |
|||
showinfo:false, |
|||
pageSize:20, |
|||
pageNo:1, |
|||
total:0, |
|||
ownerName:"", |
|||
ownerPhone:"", |
|||
buildingName:"", |
|||
neighborHoodName:"", |
|||
buildingType:"", |
|||
buildingLeaderName:"", |
|||
buildingLeaderMobile:"", |
|||
totalUnitNum:"", |
|||
totalFloorNum:"", |
|||
realTotalHouseNum:"", |
|||
boxHeight: true, |
|||
showAdd:false, |
|||
formTitle:"", |
|||
tableData: [ |
|||
{ |
|||
buildingName: '区划A', |
|||
neighborHoodName: '小区1', |
|||
buildingType: '住宅', |
|||
buildingLeaderName: '张三', |
|||
buildingLeaderMobile: '13812345678', |
|||
totalUnitNum: '单位A', |
|||
totalFloorNum: '5层', |
|||
realTotalHouseNum: '123456', |
|||
}, |
|||
{ |
|||
buildingName: '区划B', |
|||
neighborHoodName: '小区2', |
|||
buildingType: '商用', |
|||
buildingLeaderName: '李四', |
|||
buildingLeaderMobile: '13898765432', |
|||
totalUnitNum: '单位B', |
|||
totalFloorNum: '8层', |
|||
realTotalHouseNum: '654321', |
|||
}, |
|||
{ |
|||
buildingName: '区划C', |
|||
neighborHoodName: '小区3', |
|||
buildingType: '住宅', |
|||
buildingLeaderName: '王五', |
|||
buildingLeaderMobile: '13812349876', |
|||
totalUnitNum: '单位C', |
|||
totalFloorNum: '3层', |
|||
realTotalHouseNum: '123789', |
|||
}, |
|||
{ |
|||
buildingName: '区划D', |
|||
neighborHoodName: '小区4', |
|||
buildingType: '工业', |
|||
buildingLeaderName: '赵六', |
|||
buildingLeaderMobile: '13867891234', |
|||
totalUnitNum: '单位D', |
|||
totalFloorNum: '12层', |
|||
realTotalHouseNum: '789123', |
|||
}, |
|||
{ |
|||
buildingName: '区划E', |
|||
neighborHoodName: '小区5', |
|||
buildingType: '住宅', |
|||
buildingLeaderName: '钱七', |
|||
buildingLeaderMobile: '13854321098', |
|||
totalUnitNum: '单位E', |
|||
totalFloorNum: '6层', |
|||
realTotalHouseNum: '987654', |
|||
} |
|||
],//表格数据 |
|||
|
|||
}; |
|||
}, |
|||
components: { |
|||
add,info |
|||
}, |
|||
async mounted() { |
|||
await this.loadOrgData(); |
|||
}, |
|||
computed: { |
|||
rowHeight() { |
|||
return this.$store.state.inIframe |
|||
? this.clientHeight - 140 + this.iframeHeight + "px" |
|||
: this.clientHeight - 140 + "px"; |
|||
}, |
|||
treeHeight() { |
|||
return this.$store.state.inIframe |
|||
? this.clientHeight - 245 + this.iframeHeight + "px" |
|||
: this.clientHeight - 245 + "px"; |
|||
}, |
|||
...mapGetters(["clientHeight", "iframeHeight"]), |
|||
showIcons() { |
|||
return function (data) { |
|||
if (data.level == "building") { |
|||
let arr = data.showNum.split("/"); |
|||
if (arr[0] !== arr[1]) { |
|||
return true; |
|||
} else { |
|||
return false; |
|||
} |
|||
} |
|||
}; |
|||
}, |
|||
}, |
|||
watch: { |
|||
|
|||
}, |
|||
methods: { |
|||
handleDetail(){ |
|||
this.formTitle = '查看' |
|||
this.showinfo = true |
|||
// this.$nextTick(() => { |
|||
// this.$refs.ref_form.initForm("info", ""); |
|||
// }); |
|||
}, |
|||
showAddClose(){ |
|||
console.log("23132132d"); |
|||
this.showAdd = false |
|||
}, |
|||
handleAdd() { |
|||
this.formTitle ='新增' |
|||
this.showAdd = true |
|||
this.$nextTick(() => { |
|||
this.$refs.ref_form.initForm("add", ""); |
|||
}); |
|||
}, |
|||
handleEdit() { |
|||
this.formTitle ='编辑' |
|||
this.showAdd = true |
|||
this.$nextTick(() => { |
|||
this.$refs.ref_form.initForm("edit", row); |
|||
}) |
|||
}, |
|||
// //加载组织数据 |
|||
async loadOrgData() { |
|||
const url = "/gov/org/agency/maporg"; |
|||
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/agency/maporg" |
|||
let params = {}; |
|||
const { data, code, msg } = await requestPost(url, params); |
|||
if (code === 0) { |
|||
this.centerPoint = []; |
|||
this.centerPoint.push(data.latitude); |
|||
this.centerPoint.push(data.longitude); |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
//搜索 |
|||
handleSearch() { |
|||
}, |
|||
//重置搜索条件 |
|||
resetSearch() { |
|||
this.ownerName = ""; |
|||
this.ownerPhone = ""; |
|||
this.rentFlag = ""; |
|||
this.purpose = ""; |
|||
this.remark = ""; |
|||
this.updateStartDate = ""; |
|||
this.updateEndDate = ""; |
|||
this.neighborHoodId = ""; |
|||
this.buildingId = ""; |
|||
this.buildingUnitId = ""; |
|||
this.houseId = ""; |
|||
this.resiNumber =""; |
|||
this.pageSize = 10; |
|||
this.pageNo = 1; |
|||
|
|||
}, |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/modules/visual/communityManage.scss"; |
|||
@import "@/assets/scss/modules/management/list-main.scss"; |
|||
</style> |
|||
<style lang="scss" scoped> |
|||
.m-search ::v-deep .el-row { |
|||
margin-right: 0; |
|||
} |
|||
.g-main { |
|||
display: flex; |
|||
} |
|||
.scrollar { |
|||
margin-top: 30px; |
|||
/deep/ .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { |
|||
background: #e6f0ff; |
|||
border-radius: 2px; |
|||
} |
|||
/deep/ .el-tree-node:focus>.el-tree-node__content { |
|||
color: #0056d6; |
|||
// background-color: #e6f0ff; |
|||
} |
|||
// /deep/ .el-tree-node__expand-icon { |
|||
// color: #0043c8; |
|||
// border: 1px solid #e1ecff; |
|||
// background-color: #e1ecff; |
|||
// padding: 0px; |
|||
// margin-right: 8px; |
|||
// font-size: 9px; |
|||
// } |
|||
/deep/.el-tree { |
|||
flex: 1; |
|||
.el-tree-node { |
|||
margin-left: 2px; |
|||
} |
|||
//原有的箭头 去掉 |
|||
// .el-icon svg { |
|||
// display: none; |
|||
// height: 0; |
|||
// width: 0; |
|||
// } |
|||
//引入图标的位置 |
|||
// .el-tree-node__expand-icon { |
|||
// // position: absolute; |
|||
// // left: 2px; |
|||
// // 图标是否旋转,如果是箭头类型的,可以设置旋转90度。 |
|||
// .expanded { |
|||
// transform: rotate(90deg); |
|||
// } |
|||
// // 未展开的节点 |
|||
// &:before { |
|||
// // content: "\008B"; |
|||
// // content: "\008B"; |
|||
// font-size: 12px; |
|||
// color: #0043c8; |
|||
// } |
|||
// } |
|||
// 叶子节点(不显示图标) |
|||
.is-leaf.el-tree-node__expand-icon::before { |
|||
// display: none; |
|||
// background: none !important; |
|||
// border: 0px; |
|||
// content: ""; |
|||
// width: 18px; |
|||
// height: 18px; |
|||
} |
|||
} |
|||
} |
|||
.div_tree { |
|||
margin: 7px 8px 7px 7px; |
|||
width: 200px; |
|||
padding: 24px 15px; |
|||
background: #ffffff; |
|||
box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08), |
|||
0px 3px 6px -4px rgba(0, 0, 0, 0.12); |
|||
// border-radius: 5px; |
|||
overflow-y: hidden; |
|||
/deep/ .el-scrollbar__wrap { |
|||
overflow-x: hidden !important; |
|||
} |
|||
/deep/ .el-scrollbar__bar { |
|||
right: -2px; |
|||
} |
|||
//搜索输入框样式 |
|||
/deep/ .el-input--medium .el-input__inner { |
|||
height: 32px; |
|||
background: rgba(0, 0, 0, 0.05); |
|||
border-radius: 4px; |
|||
} |
|||
} |
|||
.custom-tree-node { |
|||
flex: 1; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
font-size: 14px; |
|||
overflow: hidden; |
|||
} |
|||
.over-ellipsis { |
|||
display: block; |
|||
width: 140PX; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
white-space: nowrap; |
|||
-webkit-line-clamp: 1; |
|||
} |
|||
.filter_tree { |
|||
overflow-x: auto; |
|||
// background-color: #f6f6f6; |
|||
margin-top: 5px; |
|||
} |
|||
.div_left { |
|||
// flex: 1; |
|||
width: calc(100% - 200px); |
|||
} |
|||
::v-deep .el-dialog__body { |
|||
padding: 0; |
|||
} |
|||
</style> |
|||
|
@ -0,0 +1,600 @@ |
|||
<template> |
|||
<div> |
|||
|
|||
<div class="dialog-h-content scroll-h"> |
|||
|
|||
<el-form ref="ref_form" :inline="true" :model="formData" :rules="dataRule" class="form"> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<el-form-item label="所属区域" prop="typeName" label-width="100px"> |
|||
<!-- <el-select v-model="formData.positionId" placeholder="请选择" clearable> |
|||
<el-option v-for="item in SiteData" :key="item.id" :label="item.name" :value="item.id"> |
|||
</el-option> |
|||
</el-select> --> |
|||
{{ }} |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="设备类别" label-width="100px" prop="name"> |
|||
<!-- <el-input v-model.trim="formData.name" size="small" clearable placeholder="请输入活动名称" |
|||
:disabled="showdisabled" class="u-item-width-normal"></el-input> --> |
|||
{{ }} |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="设备名称" prop="linkPhone" label-width="100px"> |
|||
<!-- <el-input style="width: 587px" v-model.trim="formData.linkPhone" size="small" clearable |
|||
placeholder="请输入手机号" :disabled="showdisabled" class="u-item-width-normal"></el-input> --> |
|||
{{ }} |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="所属单位" prop="linkPhone" label-width="100px"> |
|||
<!-- <el-input style="width: 587px" v-model.trim="formData.linkPhone" size="small" clearable |
|||
placeholder="请输入手机号" :disabled="showdisabled" class="u-item-width-normal"></el-input> --> |
|||
{{ }} |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="负责人名称" label-width="100px" prop="name"> |
|||
<!-- <el-input v-model.trim="formData.name" size="small" clearable placeholder="请输入活动名称" |
|||
:disabled="showdisabled" class="u-item-width-normal"></el-input> --> |
|||
{{ }} |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="负责人电话" label-width="100px" prop="name"> |
|||
<!-- <el-input v-model.trim="formData.name" size="small" clearable placeholder="请输入活动名称" |
|||
:disabled="showdisabled" class="u-item-width-normal"></el-input> -->{{ }} |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="备注" label-width="100px" prop="name"> |
|||
<!-- <el-input style="width: 580px" v-model.trim="formData.name" size="small" clearable |
|||
placeholder="请输入活动名称" :disabled="showdisabled" class="u-item-width-normal"></el-input> --> |
|||
{{ }} |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="位置" prop="address" label-width="100px" style="display: block"> |
|||
<div style="width: 580px"> |
|||
<el-select v-model.trim="searchValue" filterable style="width: 580px" remote |
|||
:reserve-keyword="true" :disabled="showdisabled" placeholder="请输入关键词" |
|||
:remote-method="remoteMethod"> |
|||
<el-option v-for="(item, index) in searchOptions" |
|||
@click.native="handleClickKey(index)" :key="item.value || index" |
|||
:label="item.label" :value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
<div id="app_activity" class="div_map"></div> |
|||
</div> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row></el-form> |
|||
<!-- <div class="div_btn"> |
|||
<el-button size="small" @click="handleCancle">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="handleComfirm">确 |
|||
定</el-button> |
|||
</div> --> |
|||
</div> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { mapGetters } from 'vuex' |
|||
// import { Loading } from 'element-ui' // 引入Loading服务 |
|||
import { requestPost,requestGet } from '@/js/dai/request' |
|||
import Tinymce from '@c/tinymce2/index.vue' |
|||
import daiMap from "@/utils/dai-map"; |
|||
import util from '@js/util.js'; |
|||
// import UploadImage from './upload-image.vue' |
|||
import UploadImage from '@/views/modules/plugins/rent/upload-image.vue' |
|||
|
|||
var map |
|||
var search |
|||
var markers |
|||
var infoWindowList |
|||
var geocoder // 新建一个正逆地址解析类 |
|||
export default { |
|||
data() { |
|||
return { |
|||
|
|||
showdisabled:false, |
|||
searchOptions:[], |
|||
fileList:[], |
|||
searchValue:"", |
|||
Organizationaltype:[ |
|||
{ label: "社区", value: 1 }, |
|||
{ label: "企业", value: 2 }, |
|||
{ label: "学校", value: 3 }, |
|||
], |
|||
SiteData:[], |
|||
tableDate:{}, |
|||
formData: |
|||
{ |
|||
attrs:[], |
|||
positionId:"",//挂靠阵地 |
|||
address: "",//地址 |
|||
longitude: this.$store.state.user.longitude, //经度 |
|||
latitude: this.$store.state.user.latitude,//纬度 |
|||
}, |
|||
uploadUrl: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2', |
|||
customerId: localStorage.getItem('customerId'), |
|||
|
|||
} |
|||
|
|||
}, |
|||
|
|||
components: { Tinymce, UploadImage }, |
|||
mounted() { |
|||
this.getSiteTableData() |
|||
this.formData.agencyId=this.$store.state.user.agencyId |
|||
this.formData.agencyName=this.$store.state.user.agencyName |
|||
let { latitude, longitude } = this.$store.state.user; |
|||
if (!latitude || latitude == "" || latitude == "0") { |
|||
latitude = 39.9088810666821; |
|||
longitude = 116.39743841556731; |
|||
} |
|||
this.formData.latitude = latitude; |
|||
this.formData.longitude = longitude; |
|||
this.activityType() |
|||
}, |
|||
|
|||
methods: { |
|||
//获取阵地列表 |
|||
async getSiteTableData() { |
|||
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/project/project-list"; |
|||
const url = "/voluntary/position/list"; |
|||
let params = { |
|||
name: "", |
|||
type: "", |
|||
pageNo: "", |
|||
pageSize: "" |
|||
} |
|||
const { data, code, msg } = await requestGet(url, params); |
|||
if (code === 0) { |
|||
console.log("列表请求成功!!!!!!!!!!!!!!"); |
|||
// this.total = data.total || 0; |
|||
this.SiteData = data.list |
|||
} else { |
|||
} |
|||
}, |
|||
//父组件传的 |
|||
async initForm(type, unitId) { |
|||
console.log(type, unitId,"i就理解哦i"); |
|||
if(type=="info"){ |
|||
this.showdisabled=true |
|||
this.getTableDetail(unitId) |
|||
} |
|||
if (type == "edit") { |
|||
this.getTableDetail(unitId) |
|||
} |
|||
|
|||
}, |
|||
//获取详情 |
|||
getTableDetail(id) { |
|||
console.log(id,"dskljfksdljf"); |
|||
let url = `/voluntary/positionVenues/edit/${id}`; |
|||
requestGet(url).then((res) => { |
|||
console.log(res); |
|||
if (res.code == 0) { |
|||
this.formData = res.data |
|||
this.searchValue= res.data.address |
|||
this.fileList=[{fileUrl:res.data.attrs[0].url}] |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
|
|||
}) |
|||
|
|||
|
|||
}, |
|||
async activityType() { |
|||
this.$nextTick(() => { |
|||
if (!map) { |
|||
this.initMap(this.formData.latitude, this.formData.longitude); |
|||
console.log("map", map,this.formData.latitude, this.formData.longitude) |
|||
} else { |
|||
map.setCenter(this.formData.latitude, this.formData.longitude); |
|||
map.setMarker(this.formData.latitude, this.formData.longitude); |
|||
console.log("mapmapmap", map) |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
handleOnlineRegistration(value) { |
|||
// |
|||
if (value) { |
|||
this.online = true; |
|||
this.formData.online = 1; |
|||
} else { |
|||
this.online = false; |
|||
this.formData.cutOffTime = '' |
|||
this.formData.online = 0; |
|||
} |
|||
}, |
|||
onChangeFileList(e) { |
|||
console.log(e, 'sssssb'); |
|||
this.fileList = e.length > 0 ? e.map(item => ({ |
|||
fileType: '0', |
|||
type:'image', |
|||
fileType: '0', |
|||
name:item.response.data.fileName, |
|||
fileUrl: item.response.data.url, |
|||
format: item.response.data.fileName.split('.').pop(), |
|||
url: item.response.data.url |
|||
})) : []; // 当e为空时清空fileList |
|||
if (e.length > 0) { |
|||
console.log(this.fileList,"this.fileList"); |
|||
this.formData.attrs=this.fileList; |
|||
console.log(this.formData.attrs,"this.fileList"); |
|||
} else { |
|||
this.formData.coverPic = ''; |
|||
} |
|||
}, |
|||
|
|||
removedImg() { |
|||
this.formData.coverPic = '' |
|||
}, |
|||
onChangeFileList1(e) { |
|||
console.log(e, 'sssssb'); |
|||
this.fileList1 = e.length > 0 ? e.map(item => ({ |
|||
fileType: '0', |
|||
fileUrl: item.response.data.url |
|||
})) : []; // 当e为空时清空fileList |
|||
if (e.length > 0) { |
|||
this.formData.brandImg = e[0].response.data.url; |
|||
} else { |
|||
this.formData.brandImg = ''; |
|||
} |
|||
}, |
|||
|
|||
onChangeImgs(e, rowIndex = 0) { |
|||
console.log('onChangeFileList', e) |
|||
if (e.length > 0) { |
|||
this.activityImgs = [] |
|||
e.forEach(item => { |
|||
let ob = { |
|||
fileType: '0', |
|||
fileUrl: item.response.data.url |
|||
} |
|||
this.activityImgs.push(ob) |
|||
}) |
|||
} |
|||
}, |
|||
|
|||
// onChangeImgs(e) { |
|||
// this.activityImgs = []; |
|||
// if (e.length > 0) { |
|||
// e.forEach(item => { |
|||
// let ob = { |
|||
// fileType: '0', |
|||
// fileUrl: item.response.data.url |
|||
// }; |
|||
// this.activityImgs.push(ob); |
|||
// }); |
|||
// console.log('this.activityImgs',this.activityImgs) |
|||
// } |
|||
// }, |
|||
|
|||
handleChange(value) {}, |
|||
handleTimeChange(time) { |
|||
if (time) { |
|||
const startTimeArray = util.dateFormatter(time[0], 'time').split('-') |
|||
console.log(startTimeArray); |
|||
const endTimeArray = util.dateFormatter(time[1], 'time').split('-') |
|||
console.log(endTimeArray); |
|||
this.formData.startTime = startTimeArray[0] + '-' + startTimeArray[1] + '-' + startTimeArray[2] |
|||
this.formData.endTime = endTimeArray[0] + '-' + endTimeArray[1] + '-' + endTimeArray[2] |
|||
// this.startTimeShow = startTimeArray[0] + '年' + startTimeArray[1] + '月' + startTimeArray[2] + '日' |
|||
// this.endTimeShow = endTimeArray[0] + '年' + endTimeArray[1] + '月' + endTimeArray[2] + '日' |
|||
} else { |
|||
this.formData.startTime = '' |
|||
this.formData.endTime = '' |
|||
} |
|||
|
|||
}, |
|||
|
|||
|
|||
async getDemandOptions() { |
|||
this.$http |
|||
.post("/actual/base/serviceitem/listAllCategory") |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg); |
|||
} else { |
|||
console.log(res.data); |
|||
this.demandOptions = this.getFlagData( |
|||
this.getTreeData(res.data), |
|||
"usableFlag" |
|||
); |
|||
} |
|||
}) |
|||
.catch(() => { |
|||
return this.$message.error("网络错误"); |
|||
}); |
|||
}, |
|||
getFlagData(data, flag) { |
|||
if (!Array.isArray(data)) return []; |
|||
let arr1 = data.filter((item) => item[flag]); |
|||
let arr2 = arr1.map((item) => { |
|||
if (item.childCateList) |
|||
return { ...item, childCateList: this.getFlagData(item.childCateList, flag) }; |
|||
else return item; |
|||
}); |
|||
return arr2; |
|||
}, |
|||
getTreeData(data) { |
|||
if (!Array.isArray(data)) return []; |
|||
let arr = data.map((item) => { |
|||
let _item = {}; |
|||
if (item.childCateList) { |
|||
if (item.childCateList.length === 0) |
|||
_item = { ...item, childCateList: undefined }; |
|||
else _item = { ...item, childCateList: this.getTreeData(item.childCateList) }; |
|||
} else { |
|||
_item = { ...item }; |
|||
} |
|||
return _item; |
|||
}); |
|||
return arr; |
|||
}, |
|||
async loadGrid() { |
|||
const url = "/gov/org/customergrid/gridoption" |
|||
|
|||
let params = { |
|||
agencyId: this.agencyId |
|||
} |
|||
|
|||
const { data, code, msg } = await requestPost(url, params) |
|||
|
|||
if (code === 0) { |
|||
this.gridList = data |
|||
|
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
|
|||
}, |
|||
async handleComfirm() { |
|||
console.log(this.formData," this.formData"); |
|||
|
|||
if (!this.formData.address) { |
|||
this.$message.error('请输入具体位置'); |
|||
return; |
|||
} |
|||
|
|||
|
|||
|
|||
if (!this.formData.attrs ) { |
|||
this.$message.error('请上传图片'); |
|||
return; |
|||
} |
|||
|
|||
if (!this.formData.linkPhone) { |
|||
this.$message.error('请填写联系电话'); |
|||
return; |
|||
} |
|||
|
|||
if (!this.formData.positionId) { |
|||
this.$message.error('请选择挂靠阵地'); |
|||
return; |
|||
} |
|||
|
|||
|
|||
this.addActivity() |
|||
}, |
|||
//增加 |
|||
async addActivity() { |
|||
let url = '/voluntary/positionVenues/saveOrUpdate' |
|||
const { data, code, msg } = await requestPost(url, this.formData) |
|||
if (code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '操作成功' |
|||
}) |
|||
// this.resetData() |
|||
this.$emit('showAddClose') |
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
}, |
|||
|
|||
handleCancle() { |
|||
console.log("sdlkfjklsdf "); |
|||
this.$emit('showAddClose') |
|||
|
|||
}, |
|||
|
|||
// 地图初始化函数,本例取名为init,开发者可根据实际情况定义 |
|||
initMap(latitude, longitude) { |
|||
console.log(latitude, longitude,"564564568"); |
|||
map = new daiMap( |
|||
document.getElementById("app_activity"), |
|||
{ latitude, longitude }, |
|||
{ |
|||
zoom: 16.2, // 设置地图缩放级别 |
|||
pitch: 43.5, // 设置俯仰角 |
|||
rotation: 45, // 设置地图旋转角度 |
|||
} |
|||
); |
|||
|
|||
// 监听地图平移结束 |
|||
/* map.on("dragend", (e) => { |
|||
this.handleMoveCenter(e); |
|||
});*/ |
|||
map.on("click", (e) => { |
|||
this.handleMoveCenter(e); |
|||
}); |
|||
|
|||
map.setCenter(latitude, longitude); |
|||
map.setMarker(latitude, longitude); |
|||
|
|||
}, |
|||
|
|||
|
|||
async handleMoveCenter(e) { |
|||
//修改地图中心点 |
|||
// const { lat, lng } = map.getCenter(); |
|||
const { lat, lng } = e.latLng; |
|||
this.formData.latitude = lat; |
|||
this.formData.longitude = lng; |
|||
map.setMarker(lat, lng); |
|||
|
|||
let { msg, data } = await map.getAddress(lat, lng); |
|||
if (msg == "success") { |
|||
this.formData.address = data.address; |
|||
this.searchValue=data.address |
|||
console.log(this.formData.address," this.formData.address "); |
|||
|
|||
this.searchValue = data.address |
|||
this.searchOptions = [] |
|||
// console.log('data,this.searchValue ', this.searchValue) |
|||
|
|||
} |
|||
}, |
|||
|
|||
async remoteMethod(query) { |
|||
console.log(query, "sfsvsdv"); |
|||
if (query !== '') { |
|||
const { msg, data } = await map.searchNearby(query); |
|||
this.resultList = [] |
|||
|
|||
if (msg == "success" && data.resultList && data.resultList.length > 0) { |
|||
|
|||
if (data.resultList && data.resultList.length > 0) { |
|||
this.resultList = data.resultList |
|||
console.log(this.resultList, "this.resultList"); |
|||
this.searchOptions = this.resultList.map(item => { |
|||
return { value: `${item.id}`, label: `${item.address + item.title}` }; |
|||
|
|||
}); |
|||
console.log(this.searchOptions, "this.searchOptions"); |
|||
} |
|||
} else { |
|||
this.searchOptions = [ |
|||
{ |
|||
value: '0', |
|||
label: '未检索到结果' |
|||
} |
|||
] |
|||
} |
|||
} else { |
|||
this.searchOptions = []; |
|||
} |
|||
}, |
|||
|
|||
handleClickKey(index) { |
|||
let selPosition = this.resultList[index] |
|||
let lonlat = selPosition.lonlat.split(" ") |
|||
map.setCenter(lonlat[1], lonlat[0]); |
|||
map.setMarker(lonlat[1], lonlat[0]); |
|||
this.formData.latitude = lonlat[1]; |
|||
this.formData.longitude = lonlat[0]; |
|||
this.formData.address=selPosition.address + selPosition.nam |
|||
this.searchValue = selPosition.address + selPosition.name |
|||
console.log(this.formData.address," this.formData.address "); |
|||
|
|||
}, |
|||
|
|||
|
|||
|
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
positionId: [ |
|||
{ required: true, message: '请选择挂靠组织', trigger: 'blur' } |
|||
], |
|||
name: [ |
|||
{ required: true, message: '请填写名称', trigger: 'blur' } |
|||
], |
|||
linkPhone: [ |
|||
{ required: true, message: '电话不能为空不能为空', trigger: 'blur' }, |
|||
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码', trigger: 'blur' } |
|||
], |
|||
|
|||
fileList: [ |
|||
{ required: true, message: '请选择封面图片', trigger: 'blur' } |
|||
], |
|||
address: [ |
|||
{ required: true, message: '请选择位置', trigger: 'blur' } |
|||
], |
|||
|
|||
} |
|||
}, |
|||
|
|||
}, |
|||
props: { |
|||
|
|||
|
|||
|
|||
}, |
|||
destroyed () { |
|||
map = null |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/modules/visual/communityManageForm.scss"; |
|||
</style> |
|||
<style lang="scss" scoped> |
|||
.item_width_1 { |
|||
width: 634px; |
|||
|
|||
/deep/.tox .tox-dialog { |
|||
z-index: 20000; |
|||
} |
|||
} |
|||
.u-item-width-normal{ |
|||
width: 222px; |
|||
} |
|||
|
|||
.tinymce_view { |
|||
::v-deep .tox .tox-dialog { |
|||
z-index: 2000000000; |
|||
} |
|||
} |
|||
|
|||
.div_map { |
|||
position: relative; |
|||
} |
|||
|
|||
.div_searchmap { |
|||
z-index: 5000; |
|||
position: absolute; |
|||
top: 5px; |
|||
left: 5px; |
|||
} |
|||
|
|||
.tinymce_view { |
|||
height: 400px; |
|||
overflow: auto; |
|||
} |
|||
|
|||
.text_p { |
|||
margin: 0; |
|||
padding: 0 10px; |
|||
border: 1px solid #d9d9d9; |
|||
border-radius: 5px; |
|||
|
|||
>p { |
|||
margin: 0; |
|||
} |
|||
} |
|||
.div_btn { |
|||
height: 50px; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
text-align: center; |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,295 @@ |
|||
<template> |
|||
<div> |
|||
|
|||
<div> |
|||
<el-form :model="formData" ref="dataForm" :rules="dataRule" :label-width="'120px'"> |
|||
<el-form-item label="一级分类" prop="categoryName"> |
|||
<el-autocomplete v-model.trim="formData.categoryName" class="u-item-width-normal" size="small" |
|||
clearable :fetch-suggestions="querySearch" @select="handleSelect" |
|||
placeholder="请输入"></el-autocomplete> |
|||
</el-form-item> |
|||
<el-form-item label="二级分类" prop="categoryChildName"> |
|||
<el-input v-model.trim="formData.categoryChildName" class="u-item-width-normal" size="small" |
|||
clearable placeholder="请输入"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div style="display: flex; |
|||
justify-content: center;"> |
|||
<el-button @click="handleCancle">取 消</el-button> |
|||
<el-button type="primary" @click="handleComfirm">确 定</el-button> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { isMobile } from "@/utils/validate"; |
|||
import { mapGetters } from "vuex"; |
|||
import { Loading } from "element-ui"; // 引入Loading服务 |
|||
import { requestPost, requestGet } from "@/js/dai/request"; |
|||
import daiMap from "@/utils/dai-map"; |
|||
import nextTick from "dai-js/tools/nextTick"; |
|||
|
|||
let loading; // 加载动画 |
|||
let map; |
|||
var search; |
|||
var markers; |
|||
var infoWindowList; |
|||
var geocoder; // 新建一个正逆地址解析类 |
|||
|
|||
export default { |
|||
props: { |
|||
detailId: { |
|||
type: String, |
|||
default: "", |
|||
}, |
|||
|
|||
dialogVisible: { |
|||
type: Boolean, |
|||
default: "", |
|||
}, |
|||
pageType: { |
|||
type: String, |
|||
default: "", |
|||
}, |
|||
customerId:{ |
|||
type: String, |
|||
default: "", |
|||
}, |
|||
categoryOptions:{ |
|||
type:Array, |
|||
default:()=>[] |
|||
}, |
|||
levelFlag:{ |
|||
type:Boolean, |
|||
default:false |
|||
} |
|||
}, |
|||
|
|||
data() { |
|||
return { |
|||
props1: { |
|||
multiple: true, |
|||
value: "value", |
|||
label: "label", |
|||
children: "children", |
|||
}, |
|||
props2: { |
|||
value: "id", |
|||
label: "name", |
|||
children: "childrenList", |
|||
multiple: true, |
|||
}, |
|||
categoryCodeArr: {}, |
|||
demandOptions: [], |
|||
commonServiceTypeOptions: [], |
|||
index: -1, //判断这个是arr中的第几个 |
|||
arr: [ |
|||
"育龄妇女", |
|||
"老年人", |
|||
"空巢老人", |
|||
"独居老人", |
|||
"租户", |
|||
"残疾", |
|||
"大病", |
|||
"慢病", |
|||
], |
|||
btnDisable: false, |
|||
user: "", |
|||
agencyId: "", |
|||
marryList: [ |
|||
{ value: "-1", label: "不限制" }, |
|||
{ value: "0", label: "未婚" }, |
|||
{ value: "1", label: "已婚" }, |
|||
], |
|||
list: {}, |
|||
formData: { |
|||
// awardPoint: '', |
|||
categoryId: "", |
|||
categoryName: "", |
|||
// demandList1: [], |
|||
// commonServiceTypeList1: [], |
|||
// demandList: [], |
|||
// commonServiceTypeList: [], |
|||
categoryChildId: "", |
|||
categoryChildName:"" |
|||
}, |
|||
dataRule: { |
|||
categoryName: [ |
|||
{ required: true, message: "一级分类名称不能为空", trigger: "bulr" }, |
|||
|
|||
], |
|||
categoryChildName:[ |
|||
{ required: true, message: "二级分类名称不能为空", trigger: "bulr" }, |
|||
] |
|||
}, |
|||
pageSize:20, |
|||
pageNo:1, |
|||
disabled:false, |
|||
}; |
|||
}, |
|||
watch: {}, |
|||
|
|||
created() {}, |
|||
async mounted() { |
|||
this.user = this.$store.state.user; |
|||
this.agencyId = this.user.agencyId; |
|||
this.startLoading(); |
|||
if (this.pageType == "edit") { |
|||
this.getDetail(); |
|||
} |
|||
// this.getDemandOptions(); |
|||
// this.getCommonServiceTypeOptions(); |
|||
await this.endLoading(); |
|||
this.endLoading(); |
|||
}, |
|||
|
|||
methods: { |
|||
querySearch(queryString, cb) { |
|||
const results = this.categoryOptions.filter(option => |
|||
option.label.includes(queryString) |
|||
); |
|||
cb(results); |
|||
}, |
|||
handleSelect(item){ |
|||
}, |
|||
handleAreaChange1(data) { |
|||
let that = this; |
|||
let demandList = []; |
|||
const obj = this.$refs["cascaderItem1"].getCheckedNodes(); |
|||
//标签上定义的 ref值 |
|||
obj.forEach((item) => { |
|||
if (item.data.pvalue != "0") { |
|||
let obj2 = { |
|||
demandCategoryId: item.data.id, |
|||
demandCategoryCode: item.data.value, |
|||
demandParentCode: item.data.pvalue, |
|||
}; |
|||
demandList.push(obj2); |
|||
} |
|||
}); |
|||
that.formData.demandList = [...demandList]; |
|||
}, |
|||
getTreeData(data) { |
|||
if (!Array.isArray(data)) return []; |
|||
let arr = data.map((item) => { |
|||
let _item = {}; |
|||
if (item.children) { |
|||
if (item.children.length === 0) |
|||
_item = { ...item, children: undefined }; |
|||
else _item = { ...item, children: this.getTreeData(item.children) }; |
|||
} else { |
|||
_item = { ...item }; |
|||
} |
|||
return _item; |
|||
}); |
|||
return arr; |
|||
}, |
|||
|
|||
async getDemandOptions() { |
|||
const url = `/governance/icresidemanddict/demandoption`; |
|||
const { data, code, msg } = await requestPost(url); |
|||
if (code === 0) { |
|||
this.demandOptions = this.getTreeData(data); |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
|
|||
async getCommonServiceTypeOptions() { |
|||
const url = `/governance/commonServiceType/treeList`; |
|||
const { data, code, msg } = await requestGet(url); |
|||
if (code === 0) { |
|||
this.commonServiceTypeOptions = data; |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
async getDetail() { |
|||
const url = `/actual/base/serviceitem/detail/${this.detailId}`; |
|||
const { data, code, msg } = await requestPost(url); |
|||
if (code === 0) { |
|||
|
|||
this.formData = { ...data }; |
|||
if(data.categoryId && !data.categoryChildId){ |
|||
this.disabled = true; |
|||
}else if(data.categoryChildId){ |
|||
this.disabled = false; |
|||
} |
|||
this.fenxiData(); |
|||
this.index = this.arr.indexOf(this.formData.categoryName); |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
fenxiData() { |
|||
let that = this; |
|||
let commonServiceTypeList1 = []; |
|||
let demandList1 = []; |
|||
this.formData.commonServiceTypeList.forEach((item) => { |
|||
let arr = [item.commonServiceTypePid, item.commonServiceTypeId]; |
|||
commonServiceTypeList1.push(arr); |
|||
}); |
|||
this.formData.demandList.forEach((item) => { |
|||
|
|||
let arr2 = [item.demandParentCode, item.demandCategoryCode]; |
|||
demandList1.push(arr2); |
|||
}); |
|||
this.formData.commonServiceTypeList1 = [...commonServiceTypeList1]; |
|||
this.formData.demandList1 = [...demandList1]; |
|||
}, |
|||
handleComfirm() { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.save(); |
|||
}, 1000, {'leading': true, 'trailing': false}) |
|||
|
|||
}, |
|||
|
|||
async save() { |
|||
let form = this.formData; |
|||
const url = "/actual/base/serviceitem/saveorupdate"; |
|||
var params = {}; |
|||
params = { ...this.formData }; |
|||
|
|||
const { data, code, msg } = await requestPost(url, params); |
|||
if (code === 0) { |
|||
this.$message.success("操作成功"); |
|||
this.handleCancle(); |
|||
} else if (code >= 8000) { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
handleCancle() { |
|||
// this.resetData(); |
|||
this.$emit("handleClose"); |
|||
}, |
|||
resetData() { |
|||
this.$refs.form.resetFields(); |
|||
}, |
|||
// 开启加载动画 |
|||
startLoading() { |
|||
loading = Loading.service({ |
|||
lock: true, // 是否锁定 |
|||
text: "正在加载……", // 加载中需要显示的文字 |
|||
background: "rgba(0,0,0,.7)", // 背景颜色 |
|||
}); |
|||
}, |
|||
// 结束加载动画 |
|||
endLoading() { |
|||
// clearTimeout(timer); |
|||
if (loading) { |
|||
loading.close(); |
|||
} |
|||
}, // 地图初始化函数,本例取名为init,开发者可根据实际情况定义 |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/modules/management/form-main.scss"; |
|||
@import "@/assets/scss/modules/management/form.scss"; |
|||
@import "@/assets/scss/modules/visual/a_customize.scss"; |
|||
</style> |
@ -0,0 +1,240 @@ |
|||
<template> |
|||
<div class="g-main"> |
|||
<div> |
|||
<div class="m-table"> |
|||
<div class="div_btn"><el-button size="small" type="primary " |
|||
@click="handleAdd({}, 'add')">新增</el-button> |
|||
</div> |
|||
<el-table :data="tableData" v-loading="tableLoading" row-key="categoryId" border |
|||
:height="maxTableHeight" style="width: 100%"> |
|||
<el-table-column label="序号" type="index" align="center" width="50"> |
|||
<template slot-scope="scope">{{ scope.row.index }}</template> |
|||
</el-table-column> |
|||
<el-table-column v-for="item in tableHeader" :key="item.columnName" :prop="item.columnName" |
|||
:label="item.label" :align="item.align"> |
|||
<template slot-scope="scope"> |
|||
<span>{{ handleFilterSpan(scope.row, item) }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="操作" align="center" width="200"> |
|||
<template slot-scope="scope"> |
|||
<el-button @click="handleAdd(scope.row, 'edit')" type="text" size="small" |
|||
class="div-table-button--edit">修改</el-button> |
|||
<el-button @click="handleHid(scope.row)" type="text" size="small" class="">删除</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="parseInt(pageSize)" |
|||
layout="sizes, prev, pager, next, total" :total="total"></el-pagination> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<el-dialog title="新增" :visible.sync="dialogVisible" width="750px" :close-on-click-modal="false" |
|||
:before-close="handleClose"> |
|||
<addForm v-if="dialogVisible" ref="addForm" @handleClose="handleClose" /> |
|||
|
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { requestPost } from '@/js/dai/request'; |
|||
import nextTick from 'dai-js/tools/nextTick'; |
|||
import { mapGetters } from 'vuex'; |
|||
// import addForm from './serviceMattersComponents/addForm.vue'; |
|||
import addForm from './addForm'; |
|||
import axios from 'axios'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
warnFlagList: [{ value: '0', label: '否' }, { value: '1', label: '是' }], |
|||
intelligentFlagList: [{ value: '0', label: '不开启' }, { value: '1', label: '开启' }], |
|||
disabled: false, |
|||
user: '', |
|||
agencyId: '', |
|||
formData: {}, |
|||
customerId: '', |
|||
pageType: 'list', // 列表list 新增add 处理dispose 详情info |
|||
gridList: [], //所属网格list--场所区域 |
|||
placeTypeList: [], //场所类型 |
|||
tableData: [], |
|||
pageNo: 1, |
|||
pageSize: window.localStorage.getItem('pageSize') || 20, |
|||
total: 1, |
|||
detailId: '', |
|||
detailData: {}, |
|||
multipleSelection: [], |
|||
rowObj: {}, |
|||
importLoading: false, |
|||
tableHeader: [ |
|||
{ |
|||
label: '分类名称', |
|||
align: 'left', |
|||
columnName: 'categoryName' |
|||
}, { |
|||
label: '状态', |
|||
columnName: 'usableFlag', |
|||
align: 'center', |
|||
options: [{ |
|||
value: true, |
|||
label: '启用' |
|||
}, { |
|||
value: false, |
|||
label: '禁用' |
|||
}] |
|||
} |
|||
], |
|||
tableLoading: false, |
|||
categoryOptions:[],//子组件一级分类过滤用 |
|||
levelFlag:false |
|||
}; |
|||
}, |
|||
components: {addForm }, |
|||
created() { |
|||
this.user = this.$store.state.user; |
|||
this.agencyId = this.user.agencyId; |
|||
this.customerId = this.user.customerId; |
|||
this.getTableData(); |
|||
}, |
|||
computed: { |
|||
maxTableHeight() { |
|||
return this.$store.state.inIframe ? this.clientHeight - 410 + this.iframeHeigh : this.clientHeight - 410; |
|||
}, |
|||
...mapGetters(['clientHeight', 'iframeHeight']) |
|||
}, |
|||
watch: {}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
async handleDel(rowData) { |
|||
let message = '确认删除?'; |
|||
this.$confirm(message, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}) |
|||
.then(() => { |
|||
this.del(rowData.categoryId); |
|||
}) |
|||
.catch(err => { }); |
|||
}, |
|||
async del(id) { |
|||
const url = `/actual/base/serviceitem/delete/${id}`; |
|||
const { data, code, msg } = await requestPost(url); |
|||
if (code === 0) { |
|||
this.$message.success('删除成功!'); |
|||
this.getTableData(); |
|||
} else { |
|||
this.$message.error('操作失败!'); |
|||
} |
|||
}, |
|||
handleAdd(row, type) { |
|||
// if (row.categoryId) { |
|||
// this.detailId = row.categoryId; |
|||
// this.levelFlag = (row.children || []).length > 0; |
|||
// } |
|||
// this.pageType = type; |
|||
this.dialogVisible = true; |
|||
}, |
|||
async handleHid(row) { |
|||
let usableFlag = ''; |
|||
if (row.usableFlag == '1') { |
|||
usableFlag = false; |
|||
} else { |
|||
usableFlag = true; |
|||
} |
|||
const url = '/actual/base/serviceitem/updatestatus'; |
|||
const param = { |
|||
categoryId: row.categoryId, |
|||
usableFlag: usableFlag |
|||
}; |
|||
// const url = 'http://yapi.elinkservice.cn/mock/330/actual/base/enterprise/list'; |
|||
const { pageSize, pageNo, formData } = this; |
|||
const { data, code, msg } = await requestPost(url, param); |
|||
if (code === 0) { |
|||
this.$message.success('操作成功'); |
|||
this.getTableData(); |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
handleSearch(val) { |
|||
this.pageNo = 1; |
|||
this.getTableData(); |
|||
}, |
|||
handleClose() { |
|||
this.dialogVisible = false; |
|||
this.detailId = ''; |
|||
this.getTableData(); |
|||
}, |
|||
handleFilterSpan(row, item) { |
|||
let _val = '' |
|||
if (item.options && item.options.length > 0) { |
|||
item.options.forEach((n) => { |
|||
if (n.value === row[item.columnName]) _val = n.label |
|||
}) |
|||
} |
|||
return _val || row[item.columnName] |
|||
}, |
|||
async getTableData() { |
|||
this.tableLoading = true |
|||
const url = '/actual/base/serviceitem/listAllCategory'; |
|||
// const url = 'http://yapi.elinkservice.cn/mock/330/actual/base/enterprise/list'; |
|||
const { pageSize, pageNo, customerId } = this; |
|||
const { data, code, msg } = await requestPost(url, { |
|||
pageSize, |
|||
pageNo, |
|||
customerId |
|||
}); |
|||
if (code === 0) { |
|||
this.total = data.total || 0; |
|||
this.tableData = data |
|||
? data.map((item, index) => { |
|||
return { |
|||
...item, |
|||
index: index + 1, |
|||
hasBtn: true, |
|||
children: item.childCateList.map(n => { |
|||
return { |
|||
...n, |
|||
hasBtn: true |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
: []; |
|||
this.categoryOptions= this.tableData.map(item=>({label:item.categoryName,value:item.categoryName})) |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
this.tableLoading = false |
|||
}, |
|||
handleSizeChange(val) { |
|||
this.pageSize = val; |
|||
window.localStorage.setItem('pageSize', val); |
|||
this.getTableData(); |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.pageNo = val; |
|||
this.getTableData(); |
|||
}, |
|||
resetSearch() { |
|||
this.formData = { |
|||
customerId |
|||
}; |
|||
this.pageNo = 1; |
|||
this.getTableData(); |
|||
} |
|||
} |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import '@/assets/scss/modules/management/list-main.scss'; |
|||
.m-search { |
|||
.u-item-width-normal { |
|||
width: 200px; |
|||
} |
|||
} |
|||
</style> |
Loading…
Reference in new issue