Compare commits

...

2 Commits

11 changed files with 681 additions and 441 deletions

View File

@ -21,7 +21,7 @@
<el-form-item label="赋能领域:" prop="unit">
<el-select v-model="dataForm.applicationArea" placeholder="请选择">
<el-option v-for="item in sceneAreas" :key="item.data" :label="item.dict_label"
:value="item.dict_value"></el-option>
:value="item.dict_label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="场景名称:" prop="name">

View File

@ -36,7 +36,7 @@
<el-form-item label="赋能领域:" prop="unit">
<el-select v-model="dataForm.applicationArea" placeholder="请选择">
<el-option v-for="item in sceneAreas" :key="item.data" :label="item.dict_label"
:value="item.dict_value"></el-option>
:value="item.dict_label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="场景名称:" prop="name">

View File

@ -588,3 +588,11 @@ export function sysnoticemanagement(params) {
params,
})
}
//
export function getRegion(params) {
return request({
url: '/sys/region/list/',
method: 'get',
params,
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -667,12 +667,23 @@
</script>
<style>
.ant-modal-footer {
display: block;
}
</style>
<style lang="less" scoped>
:deep(.ant-table-tbody > tr.ant-table-row-selected > td){
background: #e6eefb;
}
:deep(.ant-checkbox-checked .ant-checkbox-inner){
background-color: #0058e1;
}
:deep(.ant-checkbox-indeterminate .ant-checkbox-inner::after){
background-color: #0058e1;
}
.bg {
background: #fff;
height: 100vh;
@ -884,6 +895,7 @@
.modal-box {
height: 650px;
width: 800px;
}
.add-img {

View File

@ -84,9 +84,9 @@ watch(
.caseBox {
width: 3.5rem;
height: 3rem;
box-shadow: 1px 1px 5px 5px rgba(222, 222, 222, 0.152);
border: 1px solid #ebecef;
box-shadow: 1px 1px 5px 5px rgb(222 222 222 / 15%);
background: #ffffff;
border-radius: 0.05rem;
padding: 0.2rem;
margin-bottom: 0.2rem;
cursor: pointer;

View File

@ -189,6 +189,9 @@
}else if(newValue=='/demandDetails'){
select.value='demandCenter'
}
else if(newValue=='/integrationServicesDetails'){
select.value='integrationServices'
}
},
{ immediate: true }

View File

@ -969,6 +969,7 @@
// margin: 11px 0 20px;
// background: #e5f2ff;
// padding-left: 20px;
padding-top:10px;
display: flex;
align-items: center;
position: relative;

View File

@ -408,18 +408,23 @@
:wrapper-col="{ span: 14, offset: 4 }"
style="text-align: center; margin-top: 0.4rem"
>
<a-button @click="appointmentRoom = false" type="primary" danger>
取消
</a-button>
<a-button
style="margin-left: 10px"
type="primary"
class="tijiao"
@click="onSubmit"
>
提交
</a-button>
<a-button class="quxiao" @click="appointmentRoom = false" >
取消
</a-button>
</a-form-item>
</a-form>
</a-modal>
</div>
<div v-if="room">
@ -1210,7 +1215,7 @@
if (item && item.status != 1) {
return
// return message.warning('线, ')
}
}handleChose
console.log('打开视频', id)
const param = {
key: id,
@ -2515,6 +2520,38 @@
})
</script>
<style lang="less" scoped>
.quxiao{
margin-right:12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #ffffff;
color:#0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
.quxiao:hover{
background: #fff;
color: #0558e1;
opacity: 0.8;
}
.tijiao{
margin-right:12px;
cursor: pointer;
width: 90px;
height: 32px;
background: #0058e1;
color:#ffffff;
border-radius: 2px;
border: 1px #0058e1 solid;
margin-left:20px;
}
.tijiao:hover{
background: #0558e1;
color: #fff;
opacity: 0.8;
}
.queding {
margin-left: 16px;
cursor: pointer;
@ -2862,10 +2899,20 @@
// }
}
:deep(.ant-table-thead > tr > th) {
color: #5580f7 !important;
color: #0058e1 !important;
font-size: 16px !important;
font-weight: 600 !important;
}
:deep(.ant-table-tbody > tr.ant-table-row-selected > td){
background: #e6eefb;
}
:deep(.ant-checkbox-checked .ant-checkbox-inner){
background-color: #0058e1;
}
:deep(.ant-checkbox-indeterminate .ant-checkbox-inner::after){
background-color: #0058e1;
}
</style>
<style lang="less">
.eia-dropdown-class {
@ -2897,16 +2944,19 @@
.appModal {
.ant-modal-body {
height: 4.8rem !important;
height: 3.8rem !important;
overflow-y: scroll !important;
}
.ant-modal-title {
font-weight: 600;
color:#fff;
}
.ant-modal-content {
.ant-modal-header {
background: #0058e1;
margin-bottom: 16px;
border-bottom: 0 !important;
}
}

View File

@ -1,90 +1,92 @@
<template>
<!-- 青岛 -->
<div class="details-pageconetent">
<home-header></home-header>
<div class="top">
<div class="top-title">
全部
<div
v-for="item in titleName"
:key="item.index"
class="tabAll"
@click="changeCards(item.index)"
:class="{ sel: item.index === number }"
>
<div v-for="item in titleName" :key="item.index" class="tabAll" @click="changeCards(item.index)"
:class="{ sel: item.index === number }">
<span>
{{ item.name === '赋能场景' ? '典型赋能场景' : '打包模式' }}
</span>
</div>
</div>
<div class="resultListSearchInput-father" v-if="number === 0">
<div class="resultListSearchInput-son">
模糊搜索
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getIntegrationList"
@change="onSearch"
class="resultListSearchInput"
/>
<i class="searchImg" aria-hidden="true"></i>
<button class="button-reset" @click="resetAction()">重置</button>
<div class="details-pageconetent">
<home-header></home-header>
<div class="top">
<div class="hengxian"></div>
<div class="resultListSearchInput-father" v-if="number === 0">
<div class="second-title">
<div :class="[cityOrArea === 0 ? 'departmentStyle' : 'departmentStyle1']" @click="handleChose(0)">
<img src="~@/assets/home/city.png" /> 市级领域场景
<div :class="cityOrArea === 0 ? 'sanjiao' : ''"></div>
</div>
<div :class="[cityOrArea === 1 ? 'departmentStyle' : 'departmentStyle1']" @click="handleChose(1)">
<img src="~@/assets/home/area.png" /> 基层场景
<div :class="cityOrArea === 1 ? 'sanjiao' : ''"></div>
</div>
</div>
<div class="resultListSearchInput-son">
<div class="son-input">
<a-input-search v-model:value="searchValue" placeholder="请输入关键字" enter-button="搜索" size="large"
@search="getIntegrationList" @change="onSearch" class="resultListSearchInput" />
<i class="searchImg" aria-hidden="true"></i>
<!-- <button class="button-reset" @click="resetAction()">重置</button> -->
</div>
<div>
<div class="all">全部</div>
<div class="choose-tab" v-if="cityOrArea === 0">
<span v-for="item in senses" :key="item.data" @click="tabSensesClick(item.dict_label)" :class="
clickSensesList.indexOf(item.dict_label) != -1
? 'down'
: ''
">
{{ item.dict_label }}
</span>
</div>
<div v-else class="choose-tab">
<span v-for="item in areas" :key="item.data" @click="tabAreasClick(item.name)" :class="
clickAreasList.indexOf(item.name) != -1
? 'down'
: ''
">
{{ item.name }}
</span>
</div>
</div>
<div v-if="number === 0" class="checkResult">检测结果: <span>{{resourceTotal}}</span></div>
</div>
</div>
<div style="background:#fff;margin-left:16px;margin-right:16px;">
<div v-if="number === 0" class="checkResult">检测结果: <span>{{ resourceTotal }}</span></div>
<div v-loading="loadingData">
<searchResultList
v-if="number === 1"
v-show="resourceList.data && resourceList.data.length > 0"
:resourceList="resourceList"
:resourceTotal="resourceTotal"
@saveSearchCodition="saveSearchCodition"
ref="searchResultListDom"
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'"
/>
<CanAssignCase
v-else
v-show="resourceList.data && resourceList.data.length > 0"
:resourceList="resourceList"
@saveSearchCodition="saveSearchCodition"
:resourceTotal="resourceTotal"
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'"
/>
<searchResultList v-if="number === 1" v-show="resourceList.data && resourceList.data.length > 0"
:resourceList="resourceList" :resourceTotal="resourceTotal" @saveSearchCodition="saveSearchCodition"
ref="searchResultListDom" :selectCardsname="number == 0 ? '融合服务' : '赋能场景'" />
<CanAssignCase v-else v-show="resourceList.data && resourceList.data.length > 0" :resourceList="resourceList"
@saveSearchCodition="saveSearchCodition" :resourceTotal="resourceTotal"
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'" />
<div class="pagination">
<a-pagination
v-if="resourceList.data && resourceList.data.length > 0"
v-model:current="currentPage"
v-model:pageSize="currentPageSize"
show-size-changer
show-less-items
show-quick-jumper
:total="resourceTotal"
:page-size-options="pageSizeOptions"
@change="pageChange"
@showSizeChange="onShowSizeChange"
/>
<a-pagination v-if="resourceList.data && resourceList.data.length > 0" v-model:current="currentPage"
v-model:pageSize="currentPageSize" show-size-changer show-less-items show-quick-jumper
:total="resourceTotal" :page-size-options="pageSizeOptions" @change="pageChange"
@showSizeChange="onShowSizeChange" />
</div>
<div
v-if="resourceList.data && resourceList.data.length <= 0"
style="margin-top: 2rem"
>
<div v-if="resourceList.data && resourceList.data.length <= 0" style="margin-top: 2rem">
<a-empty />
</div>
</div>
</div>
</div>
</div>
<home-footer></home-footer>
</template>
<script>
import HomeFooter from '@/views/newHome/components/Footer'
import mybus from '@/myplugins/mybus'
import qs from 'qs'
import {
defineComponent,
reactive,
@ -93,14 +95,14 @@
onMounted,
nextTick,
} from 'vue'
import { getIntegrationServicesList } from '@/api/home.js'
import { useRouter } from 'vue-router'
import HomeHeader from '@/views/home/components/header'
import searchResultList from '@/views/home/components/searchResultList.vue'
import CanAssignCase from '@/views/home/components/CanAssignCase.vue'
import { message } from 'ant-design-vue'
import { getIntegrationServicesList, getRegion, selectDicStoreAll } from '@/api/home.js'
import { useRouter } from 'vue-router'
import HomeHeader from '@/views/home/components/header'
import searchResultList from '@/views/home/components/searchResultList.vue'
import CanAssignCase from '@/views/home/components/CanAssignCase.vue'
import { message } from 'ant-design-vue'
export default defineComponent({
export default defineComponent({
beforeRouteLeave(to, from, next) {
console.log('to---integrationServices--beforeRouteLeave------->', to)
console.log('from---integrationServices--beforeRouteLeave------->', from)
@ -147,7 +149,15 @@
name: searchValue.value,
orderField: 'create_date',
orderType: 'DESC', // ASC DESC
areas:[],
senses:[],
district: 1,//01
}
let cityOrArea = ref(0)//0 1
let senses = ref([])//
let areas = ref([])//
let clickSensesList = ref([])//
let clickAreasList = ref([])//
const searchResultListDom = ref(null)
const storageSearchInfo = JSON.parse(
localStorage.getItem('integrationServices')
@ -180,12 +190,34 @@
}
const changeCards = (val) => {
//
number.value = val
paramsGetResources.type = titleName.value[number.value].name
resetAction()
}
//
const handleChose = (index) => {
cityOrArea.value = index;
getIntegrationList()
}
//
const tabAreasClick = (name) => {
if (clickAreasList.value.indexOf(name) == -1) {
clickAreasList.value.push(name);
} else {
clickAreasList.value.splice(clickAreasList.value.indexOf(name), 1)
}
getIntegrationList()
}
//
const tabSensesClick = (name) => {
if (clickSensesList.value.indexOf(name) == -1) {
clickSensesList.value.push(name);
} else {
clickSensesList.value.splice(clickSensesList.value.indexOf(name), 1)
}
getIntegrationList()
}
//
const onSearch = () => {
currentPage.value = 1
@ -203,21 +235,48 @@
paramsGetResources.limit = 10
paramsGetResources.orderField = 'create_date'
paramsGetResources.orderType = 'DESC'
mybus.emit('resetAction', {
type: titleName.value[number.value].name,
})
getIntegrationList()
}
//
const searchAreas = () => {
const params = {
topCategoryName: '应用资源'
}
selectDicStoreAll(params).then(
(res) => {
senses.value = res.data.data[0].typeList
console.log("==================== senses.value", senses.value)
})
const params1 = {
pid: '250000'
}
getRegion(params1).then(
(res) => {
areas.value = res.data.data
})
}
//
const getIntegrationList = () => {
loadingData.value = true
paramsGetResources.name = searchValue.value
console.log(
'paramsGetResources------参数下发------>',
paramsGetResources
)
if(number.value==1){
paramsGetResources.district=''
}else{
if(cityOrArea.value==0){//
paramsGetResources.district=0
paramsGetResources.areas=[]
paramsGetResources.senses=JSON.stringify(clickSensesList.value)
}else{//
paramsGetResources.district=1
paramsGetResources.senses=[]
paramsGetResources.areas=JSON.stringify(clickAreasList.value)
}
}
getIntegrationServicesList(paramsGetResources).then(
(res) => {
loadingData.value = false
@ -291,17 +350,20 @@
}
onMounted(() => {
if(returnType=='典型赋能场景'){
searchAreas()
if (returnType == '典型赋能场景') {
changeCards(0)
}else if(returnType=='打包模式'){
} else if (returnType == '打包模式') {
changeCards(1)
}else{
} else {
if (storageSearchInfo) {
handleSetSearchData()
} else {
getIntegrationList()
}
}
// if (storageSearchInfo) {
// handleSetSearchData()
// } else {
@ -310,6 +372,9 @@
})
return {
tabSensesClick,
tabAreasClick,
searchValue,
currentPage,
resourceList,
@ -327,9 +392,16 @@
returnType,
number,
loadingData,
cityOrArea,
onShowSizeChange,
saveSearchCodition,
handleChose,
searchAreas,
senses,
areas,
searchResultListDom,
clickSensesList,
clickAreasList,
}
},
components: {
@ -344,29 +416,142 @@
mybus.off('refresh')
mybus.off('changePage')
},
})
})
</script>
<style lang="less" scoped>
.checkResult{
margin-left: 0.2rem;
font-size: 14px;
font-weight: 500;
.top-title {
display: flex;
font-size: 20px;
margin-top: 65px;
background: #e5eefc;
opacity: 0.8;
height: 72px;
.tabAll {
color: #212121;
margin-top: 10px;
margin-right: 35px;
cursor: pointer;
margin-top: 24px;
text-align: center;
width: 240px;
padding-top: 8px;
}
.tabAll:nth-child(1) {
margin-left: 720px;
}
.sel {
border-top: 2px solid #0058e1;
height: 48px;
background: #fff;
width: 240px;
span {
font-size: 18px;
color: #0087ff;
font-weight: bold;
}
}
}
.resultListSearchInput-father {
.checkResult {
margin-left: 16px;
font-size: 14px;
font-weight: 500;
color: #212121;
margin-top: 16px;
margin-bottom: 16px;
span {
font-size: 18px;
color: #0058e1;
}
}
.resultListSearchInput-father {
background: #f3f5f9;
padding: 0rem 0.2rem;
margin-bottom:24px;
.sanjiao {
background: url('~@/assets/home/sanjiao.png');
background-repeat: no-repeat;
height: 10px;
width: 10px;
margin-left: 80px;
position: absolute;
}
.second-title {
padding-top: 16px;
margin-bottom: 16px;
font-size: 18px;
cursor: pointer;
text-align: center;
vertical-align: bottom;
background: #fff;
height: 53px;
border-bottom: 1px solid #d9d9d9;
}
.departmentStyle {
float: left;
width: 180px;
// color: #0058e1;
background-color: #fff;
border-bottom: 3px solid #0058e1;
}
.departmentStyle1 {
float: left;
width: 180px;
}
.resultListSearchInput-son {
background: #fff;
padding: 0.2rem 0.2rem 0rem 0.3rem;
.son-input {
margin: 24px 0px 12px 340px;
}
// background: #fff;
//padding: 0.2rem 0.2rem 0rem 0.3rem;
.all {
float: left;
display: inline;
width: 42px;
margin-top: 12px;
margin-left: 100px;
font-size: 14px;
font-weight: bold;
}
.choose-tab {
float: left;
display: inline;
width: 940px;
span {
display: inline-block;
height: 28px;
font-size: 14px;
width: 90px;
line-height: 28px;
border-radius: 1px;
margin-left: 14px;
text-align: center;
color: #212121;
background: #e8e9eb;
cursor: pointer;
margin-top: 12px;
}
.down {
background: #0058e1;
color: #ffffff;
}
}
.hengxian {
width: 100%;
@ -374,29 +559,30 @@
background: rgba(150, 144, 144, 0.3);
margin-top: 0.2rem;
}
.searchImg{
.searchImg {
width: 17px;
height: 17px;
background: url('~@/assets/home/searchInner.png');
position: absolute;
top: 119px;
left: 500px;
}
top: 85px;
left: 668px;
}
}
}
.resultListSearchInput {
.resultListSearchInput {
margin-left: 0.1rem;
:deep(.ant-input) {
width: 4rem;
width: 340px;
height: 0.32rem;
background: #fff;
border-radius: 0.02rem;
}
:deep(.ant-input-search-button) {
width: 0.8rem;
// width: 56px;
height: 0.32rem;
background: #0558e1;
border-radius: 0.02rem !important;
@ -410,12 +596,12 @@
:deep(.ant-input-group-addon) {
left: 0 !important;
}
}
}
.button-reset {
.button-reset {
border: 0;
outline: none;
width: 0.8rem;
width: 56px;
height: 0.32rem;
//background: #e1edfa;
background: #0558e1;
@ -427,15 +613,15 @@
line-height: 0.32rem;
margin-left: 2.5rem;
cursor: pointer;
}
}
.details-pageconetent {
.details-pageconetent {
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
margin-top: 0.67rem;
//margin-top: 0.67rem;
position: relative;
background: rgba(245, 243, 243, 0.3);
@ -454,7 +640,7 @@
position: relative;
width: 11.5rem;
display: flex;
padding-top: 0.2rem;
// padding-top: 0.2rem;
flex-direction: column;
font-size: 0.16rem;
justify-content: left;
@ -462,39 +648,19 @@
.pagination {
background: #f3f5f9;
padding-bottom: 0.6rem;
padding-top: 10px;
padding-bottom: 23px;
}
.top-title {
padding: 0.2rem;
display: flex;
font-size: 18px;
.tabAll {
font-size: 18px;
color: #000000;
margin-right: 35px;
cursor: pointer;
}
}
.tabAll:nth-child(1) {
margin-left: 20px;
}
.sel {
font-weight: 600;
color: #0087ff;
border-bottom: 0.02rem solid #0087ff;
}
}
}
}
:deep(.ant-card-grid) {
:deep(.ant-card-grid) {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-webkit-line-clamp: 1;
word-break: break-all;
}
}
</style>