jiangyy 3 years ago
parent
commit
9030cd825c
  1. 176
      src/views/modules/visual/command/cpts/demandInfo.vue
  2. 177
      src/views/modules/visual/command/cpts/eventInfo.vue
  3. 223
      src/views/modules/visual/command/cpts/qsydw.vue
  4. 175
      src/views/modules/visual/command/cpts/serviceInfo.vue
  5. 140
      src/views/modules/visual/command/index.vue

176
src/views/modules/visual/command/cpts/demandInfo.vue

@ -0,0 +1,176 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>新增需求</span>
</div>
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<demand-info-origin ref="demandEditForm"
:source="'visiual'"
:formType="'add'"
@handleClose="handleClose"
@handleOk="handleOk"
@dialogOk="handleEditSuccess" />
</cpt-card>
</div>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestPost } from "@/js/dai/request";
import eventInfo from "@/views/modules/shequzhili/event/cpts/event-info";
import demandInfoOrigin from "@/views/modules/communityService/measure/info";
export default {
name: "dialogInfo",
props: {
},
components: {
cptCard,
eventInfo,
demandInfoOrigin,
},
data () {
return {
loading: false,
pageType: 'dispose',
eventId: '1529724450524061698',
eventDetailData: {},
};
},
async mounted () {
this.loading = false
await this.handleSearch()
this.loading = true
},
methods: {
async handleSearch () {
const url = "/gov/project/icEvent/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/icEvent/detail";
const { data, code, msg } = await requestPost(url, {
icEventId: this.eventId,
});
if (code === 0) {
this.eventDetailData = { ...data };
this.pageType = "dispose";
} else {
this.$message.error(msg);
}
},
handleClose () {
this.pageType = "";
this.$emit("handleClose")
// this.eventId = ""
},
handleOk () {
this.pageType = "";
// this.eventId = ""
this.pageNo = 1
},
handleEditSuccess () {
this.handleClose();
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/people.scss"
scoped
></style>
<style lang="scss" scoped>
@import "@/assets/scss/modules/visual/a_customize.scss";
.m-pop {
color: #fff;
.wrap {
.list {
display: block;
width: 60%;
.item {
display: flex;
width: 100%;
box-sizing: border-box;
margin-top: 0;
margin-bottom: 15px;
font-size: 16px;
cursor: pointer;
.item-field {
flex-shrink: 0;
}
.item-filed-height {
line-height: 30px;
}
}
.item-desc {
font-size: 16px;
color: #fff;
margin-bottom: 10px;
line-height: 24px;
}
}
}
.list-title {
width: 100%;
box-sizing: border-box;
padding: 20px 0 10px 62px;
font-size: 20px;
color: #fff;
cursor: pointer;
}
}
.list-wr {
display: flex;
padding: 0 32px;
}
.sel-service {
display: flex;
justify-content: flex-start;
}
.div_btn {
display: flex;
justify-content: center;
.item_btn {
font-size: 14px;
padding: 8px 16px;
cursor: pointer;
border: 1px dashed #0c81fe;
border-radius: 6px;
background-color: #0c81fe;
}
.mgl {
margin-left: 20px;
}
}
</style>

177
src/views/modules/visual/command/cpts/eventInfo.vue

@ -0,0 +1,177 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>需求详情</span>
</div>
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<event-info v-if="loading"
ref="eleEditForm"
:pageType="pageType"
:eventId="eventId"
:eventDetailData="eventDetailData"
:source="'visiual'"
@handleClose="handleClose"
@handleOk="handleOk"
@dialogOk="handleEditSuccess" />
</cpt-card>
</div>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestPost } from "@/js/dai/request";
import eventInfo from "@/views/modules/shequzhili/event/cpts/event-info";
export default {
name: "dialogInfo",
props: {
},
components: {
cptCard,
eventInfo,
},
data () {
return {
loading: false,
pageType: 'dispose',
eventId: '1552537796854706177',
eventDetailData: {},
};
},
async mounted () {
this.loading = false
await this.handleSearch()
this.loading = true
},
methods: {
async handleSearch () {
const url = "/gov/project/icEvent/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/icEvent/detail";
const { data, code, msg } = await requestPost(url, {
icEventId: this.eventId,
});
if (code === 0) {
this.eventDetailData = { ...data };
this.pageType = "dispose";
} else {
this.$message.error(msg);
}
},
handleClose () {
this.pageType = "";
this.$emit("handleClose")
// this.eventId = ""
},
handleOk () {
this.pageType = "";
// this.eventId = ""
this.pageNo = 1
},
handleEditSuccess () {
this.handleClose();
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/people.scss"
scoped
></style>
<style lang="scss" scoped>
@import "@/assets/scss/modules/visual/a_customize.scss";
.m-pop {
color: #fff;
.wrap {
.list {
display: block;
width: 60%;
.item {
display: flex;
width: 100%;
box-sizing: border-box;
margin-top: 0;
margin-bottom: 15px;
font-size: 16px;
cursor: pointer;
.item-field {
flex-shrink: 0;
}
.item-filed-height {
line-height: 30px;
}
}
.item-desc {
font-size: 16px;
color: #fff;
margin-bottom: 10px;
line-height: 24px;
}
}
}
.list-title {
width: 100%;
box-sizing: border-box;
padding: 20px 0 10px 62px;
font-size: 20px;
color: #fff;
cursor: pointer;
}
}
.list-wr {
display: flex;
padding: 0 32px;
}
.sel-service {
display: flex;
justify-content: flex-start;
}
.div_btn {
display: flex;
justify-content: center;
.item_btn {
font-size: 14px;
padding: 8px 16px;
cursor: pointer;
border: 1px dashed #0c81fe;
border-radius: 6px;
background-color: #0c81fe;
}
.mgl {
margin-left: 20px;
}
}
</style>

223
src/views/modules/visual/command/cpts/qsydw.vue

@ -0,0 +1,223 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>企事业单位巡查详情</span>
</div>
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<div class="list-wr">
<div class="list">
<div class="item">
<span class="item-field">场所类型</span>
<span>{{ eventDetailData.placeTypeName }}</span>
</div>
<div class="item">
<span class="item-field">场所名称</span>
<span>{{ eventDetailData.placeOrgName }}</span>
</div>
<div class="item">
<span class="item-field">规模</span>
<span>{{ eventDetailData.scaleName }}</span>
</div>
<div class="item">
<span class="item-field">联系电话</span>
<span>{{ eventDetailData.mobile }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">场所区域</span>
<span>{{ eventDetailData.agencyName+eventDetailData.gridName }}</span>
</div>
<div class="item">
<span class="item-field">场所地址</span>
<span>{{ eventDetailData.address }}</span>
</div>
<div class="item">
<span class="item-field">负责人</span>
<span>{{ eventDetailData.personInCharge }}</span>
</div>
</div>
</div>
<div class="div_record">
<record :formType="'edit'"
:source="'visiual'"
:enterpriseId="enterpriseId"
:enterpriseInfo="enterpriseInfo"></record>
</div>
<div class="div-btn "
style="padding-bottom:10px">
<el-button size="small"
@click="handleClose">关闭</el-button>
</div>
</cpt-card>
</div>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestPost } from "@/js/dai/request";
import record from "@/views/modules/shequzhili/tuceng/anquan/xuncha/cpts/record";
export default {
name: "dialogInfo",
props: {
},
components: {
cptCard,
record
},
data () {
return {
loading: false,
pageType: 'dispose',
eventDetailData: {},
enterpriseInfo: {},
enterpriseId: '1544585407179968514',
};
},
async mounted () {
this.loading = false
await this.loadInfo()
this.loading = true
},
methods: {
async loadInfo () {
const url = "/gov/org/enterprise/detail/" + this.enterpriseId;
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/icEvent/detail";
const { data, code, msg } = await requestPost(url);
if (code === 0) {
this.eventDetailData = { ...data };
} else {
this.$message.error(msg);
}
},
handleClose () {
this.pageType = "";
this.$emit("handleClose")
},
handleOk () {
this.pageType = "";
this.pageNo = 1
},
handleEditSuccess () {
this.handleClose();
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/people.scss"
scoped
></style>
<style lang="scss" scoped>
@import "@/assets/scss/modules/visual/a_customize.scss";
@import "@/assets/scss/modules/shequzhili/event-info.scss";
.m-pop {
color: #fff;
.wrap {
.list {
display: block;
width: 60%;
.item {
display: flex;
width: 100%;
box-sizing: border-box;
margin-top: 0;
margin-bottom: 15px;
font-size: 16px;
cursor: pointer;
.item-field {
flex-shrink: 0;
}
.item-filed-height {
line-height: 30px;
}
}
.item-desc {
font-size: 16px;
color: #fff;
margin-bottom: 10px;
line-height: 24px;
}
}
}
.list-title {
width: 100%;
box-sizing: border-box;
padding: 20px 0 10px 62px;
font-size: 20px;
color: #fff;
cursor: pointer;
}
}
.list-wr {
display: flex;
padding: 0 32px;
}
.div_btn {
display: flex;
justify-content: center;
.item_btn {
font-size: 14px;
padding: 8px 16px;
cursor: pointer;
border: 1px dashed #0c81fe;
border-radius: 6px;
background-color: #0c81fe;
}
.mgl {
margin-left: 20px;
}
}
.div_record {
// padding-bottom: 30px;
}
</style>

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

@ -0,0 +1,175 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>发起服务</span>
</div>
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<add-form ref="demandEditForm"
:source="'visiual'"
:formType="'add'"
@handleClose="handleClose"
@handleOk="handleOk"
@dialogOk="handleEditSuccess" />
</cpt-card>
</div>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestPost } from "@/js/dai/request";
import addForm from "@/views/modules/communityService/fuwujilu/addForm";
export default {
name: "dialogInfo",
props: {
},
components: {
cptCard,
addForm
},
data () {
return {
loading: false,
pageType: 'dispose',
eventId: '1529724450524061698',
eventDetailData: {},
};
},
async mounted () {
this.loading = false
await this.handleSearch()
this.loading = true
},
methods: {
async handleSearch () {
const url = "/gov/project/icEvent/detail";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/icEvent/detail";
const { data, code, msg } = await requestPost(url, {
icEventId: this.eventId,
});
if (code === 0) {
this.eventDetailData = { ...data };
this.pageType = "dispose";
} else {
this.$message.error(msg);
}
},
handleClose () {
this.pageType = "";
this.$emit("handleClose")
// this.eventId = ""
},
handleOk () {
this.pageType = "";
// this.eventId = ""
this.pageNo = 1
},
handleEditSuccess () {
this.handleClose();
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/people.scss"
scoped
></style>
<style lang="scss" scoped>
@import "@/assets/scss/modules/visual/a_customize.scss";
.m-pop {
color: #fff;
.wrap {
.list {
display: block;
width: 60%;
.item {
display: flex;
width: 100%;
box-sizing: border-box;
margin-top: 0;
margin-bottom: 15px;
font-size: 16px;
cursor: pointer;
.item-field {
flex-shrink: 0;
}
.item-filed-height {
line-height: 30px;
}
}
.item-desc {
font-size: 16px;
color: #fff;
margin-bottom: 10px;
line-height: 24px;
}
}
}
.list-title {
width: 100%;
box-sizing: border-box;
padding: 20px 0 10px 62px;
font-size: 20px;
color: #fff;
cursor: pointer;
}
}
.list-wr {
display: flex;
padding: 0 32px;
}
.sel-service {
display: flex;
justify-content: flex-start;
}
.div_btn {
display: flex;
justify-content: center;
.item_btn {
font-size: 14px;
padding: 8px 16px;
cursor: pointer;
border: 1px dashed #0c81fe;
border-radius: 6px;
background-color: #0c81fe;
}
.mgl {
margin-left: 20px;
}
}
</style>

140
src/views/modules/visual/command/index.vue

@ -4,24 +4,23 @@
<div class="m-crumb"> <div class="m-crumb">
<div class="router_line"></div> <div class="router_line"></div>
<div class="div_router"> <div class="div_router">
<span <span class="router_parents"
class="router_parents"
v-for="(item, index) in runAgencyArray" v-for="(item, index) in runAgencyArray"
@click="handleClickAgency(index)" @click="handleClickAgency(index)"
:key="index" :key="index">{{ item.name }}<span class="arrow">></span></span>
>{{ item.name }}<span class="arrow">></span></span
>
<span class="router_child">{{ orgData.name }}</span> <span class="router_child">{{ orgData.name }}</span>
</div> </div>
</div> </div>
<people v-if="orgLevel === 'people'" :uid="selUserId" /> <people v-if="orgLevel === 'people'"
:uid="selUserId" />
<div v-show="orgLevel !== 'people'" class="g-cnt"> <div v-show="orgLevel !== 'people'"
<div class="m-map" @click="handleClickMapBox"> class="g-cnt">
<grid-map <div class="m-map"
ref="map" @click="handleClickMapBox">
<grid-map ref="map"
v-if="orgData.id" v-if="orgData.id"
@clickAgency="clickAgencyItem" @clickAgency="clickAgencyItem"
:srcGridData="orgData" :srcGridData="orgData"
@ -30,49 +29,40 @@
:dotList2="dotList2" :dotList2="dotList2"
:dotIcoList2="dotIcoList2" :dotIcoList2="dotIcoList2"
:gridCountData="gridCountData" :gridCountData="gridCountData"
:pitch="0" :pitch="0" />
/>
<div class="m-mapmenu"> <div class="m-mapmenu">
<sidemenu-left <sidemenu-left :orgId="orgId"
:orgId="orgId" @change="handleChangeMenuLeft"></sidemenu-left>
@change="handleChangeMenuLeft"
></sidemenu-left>
</div> </div>
<div class="m-search"> <div class="m-search">
<div class="input"> <div class="input">
<img src="@/assets/img/shuju/command/search.png" /> <img src="@/assets/img/shuju/command/search.png" />
<input <input type="text"
type="text"
placeholder="请输入" placeholder="请输入"
@keyup.enter="handleSearch" @keyup.enter="handleSearch"
v-model="searchName" v-model="searchName" />
/> <div class="btn"
<div class="btn" @click="handleSearch">搜索</div> @click="handleSearch">搜索</div>
</div> </div>
<div class="result" v-if="showedSearchResult"> <div class="result"
v-if="showedSearchResult">
<template v-for="item in searchResult"> <template v-for="item in searchResult">
<div <div :key="'searchResult' + item.type"
:key="'searchResult' + item.type"
class="result-item" class="result-item"
v-show="item.list.length > 0" v-show="item.list.length > 0">
>
<div class="result-type">{{ item.title }}</div> <div class="result-type">{{ item.title }}</div>
<div <div class="result-more"
class="result-more"
@click.stop="handleClickSearchResultMore(item)" @click.stop="handleClickSearchResultMore(item)"
v-show="item.allList.length > 2" v-show="item.allList.length > 2">
>
更多 更多
</div> </div>
<div class="result-ul"> <div class="result-ul">
<div <div class="result-li z-toe"
class="result-li z-toe"
:key="item.type + 'li' + index" :key="item.type + 'li' + index"
v-for="(li, index) in item.list" v-for="(li, index) in item.list"
@click.stop="handleClickSearchLi(li, item)" @click.stop="handleClickSearchLi(li, item)">
>
<span v-if="item.type == 'position'">{{ <span v-if="item.type == 'position'">{{
li.name + " " + li.address li.name + " " + li.address
}}</span> }}</span>
@ -86,15 +76,14 @@
</div> </div>
</div> </div>
<div class="result-panel" v-show="item.showedMore"> <div class="result-panel"
v-show="item.showedMore">
<div class="result-type">{{ item.title }}</div> <div class="result-type">{{ item.title }}</div>
<div class="result-ul"> <div class="result-ul">
<div <div class="result-li z-toe"
class="result-li z-toe"
:key="item.type + 'li2_' + index" :key="item.type + 'li2_' + index"
v-for="(li, index) in item.allList" v-for="(li, index) in item.allList"
@click.stop="handleClickSearchLi(li, item)" @click.stop="handleClickSearchLi(li, item)">
>
<span v-if="item.type == 'position'">{{ <span v-if="item.type == 'position'">{{
li.name + " " + li.address li.name + " " + li.address
}}</span> }}</span>
@ -113,38 +102,37 @@
</div> </div>
</div> </div>
<div class="m-sidebar" v-show="false"> <div class="m-sidebar"
<div class="wrap" :class="[{ 'wrap-hidden': !showAgencyList }]"> v-show="false">
<div @click="hideAgencyList" class="arrow_tip"> <div class="wrap"
<img src="@/assets/img/modules/visual/popup.png" alt /> :class="[{ 'wrap-hidden': !showAgencyList }]">
<div @click="hideAgencyList"
class="arrow_tip">
<img src="@/assets/img/modules/visual/popup.png"
alt />
</div> </div>
<div class="div_agency_list"> <div class="div_agency_list">
<div class="agency_main"> <div class="agency_main">
<el-scrollbar <el-scrollbar style="height: 98%"
style="height: 98%" wrap-style="overflow-x:hidden">
wrap-style="overflow-x:hidden" <div v-if="subAgencyArray.length > 0"
> class="agency_list">
<div v-if="subAgencyArray.length > 0" class="agency_list"> <div v-for="(item, index) in subAgencyArray"
<div
v-for="(item, index) in subAgencyArray"
:key="index" :key="index"
@click="clickAgencyItem(item, index)" @click="clickAgencyItem(item, index)"
:class="[ :class="[
'agency_item', 'agency_item',
{ agency_item_on: index % 2 == 0 }, { agency_item_on: index % 2 == 0 },
]" ]">
>
<div class="agency_item_name">{{ item.name }}</div> <div class="agency_item_name">{{ item.name }}</div>
</div> </div>
</div> </div>
<div v-else> <div v-else>
<img <img src="@/assets/img/modules/visual/noData.png"
src="@/assets/img/modules/visual/noData.png"
alt="" alt=""
srcset="" srcset=""
class="no-data-img" class="no-data-img" />
/>
</div> </div>
</el-scrollbar> </el-scrollbar>
</div> </div>
@ -161,15 +149,31 @@
</div> </div>
<div class="list"> <div class="list">
<sidemenu <sidemenu :orgId="orgId"
:orgId="orgId"
@change="handleChangeMenu" @change="handleChangeMenu"
:grandIcoList="dotIcoList" :grandIcoList="dotIcoList"></sidemenu>
></sidemenu>
</div> </div>
</cpt-card> </cpt-card>
</div> </div>
</div> </div>
<event-info v-if="pageType==='watch-event'"
ref="ref_event"
@handleClose="handleClose" />
<service-info v-if="pageType==='create-service'"
ref="ref_service"
@handleClose="handleClose" />
<demand-info v-if="pageType==='create-demand'"
ref="eleEditForm"
@handleClose="handleClose" />
<qsydw v-if="pageType==='qsydw'"
ref="eleEditForm"
@handleClose="handleClose" />
</div> </div>
</template> </template>
@ -185,6 +189,11 @@ import sidemenu from "@/views/modules/visual/command/cpts/sidemenu";
import sidemenuLeft from "@/views/modules/visual/command/cpts/sidemenu-left"; import sidemenuLeft from "@/views/modules/visual/command/cpts/sidemenu-left";
import ScreenLoading from "@/views/modules/visual/cpts/loading"; import ScreenLoading from "@/views/modules/visual/cpts/loading";
import eventInfo from "@/views/modules/visual/command/cpts/eventInfo";
import serviceInfo from "@/views/modules/visual/command/cpts/serviceInfo";
import demandInfo from "@/views/modules/visual/command/cpts/demandInfo";
import qsydw from "@/views/modules/visual/command/cpts/qsydw";
let loading; // let loading; //
function iniSearchResult () { function iniSearchResult () {
@ -230,6 +239,10 @@ export default {
gridMap, gridMap,
sidemenu, sidemenu,
sidemenuLeft, sidemenuLeft,
eventInfo,
serviceInfo,
demandInfo,
qsydw
}, },
props: {}, props: {},
@ -365,6 +378,8 @@ export default {
searchName: "", searchName: "",
showedSearchResult: false, showedSearchResult: false,
searchResult: iniSearchResult(), searchResult: iniSearchResult(),
pageType:'',
}; };
}, },
@ -390,6 +405,7 @@ export default {
methods: { methods: {
handleClickDotBtn (type, info) { handleClickDotBtn (type, info) {
this.pageType = type
if (type == "create-service") { if (type == "create-service") {
// //
} else if (type == "watch-resi") { } else if (type == "watch-resi") {
@ -401,6 +417,10 @@ export default {
} }
}, },
handleClose () {
this.pageType = "";
},
handleClickMapBox () { handleClickMapBox () {
this.showedSearchResult = false; this.showedSearchResult = false;
}, },

Loading…
Cancel
Save