<template>
|
<FYTable @search="onSearch">
|
<template #options>
|
<FYOptionLocation
|
:allOption="true"
|
:level="4"
|
v-model:value="formSearch._locations"
|
></FYOptionLocation>
|
<FYOptionText
|
label="场景名称"
|
placeholder="输入名称关键字"
|
v-model:value="formSearch.searchText"
|
></FYOptionText>
|
<FYOptionScene
|
:allOption="true"
|
:type="2"
|
v-model:value="formSearch._scenetype"
|
></FYOptionScene>
|
<FYOptionOnlineStatus
|
:allOption="true"
|
v-model:value="formSearch.online"
|
></FYOptionOnlineStatus>
|
</template>
|
|
<template #buttons>
|
<CompSceneImport></CompSceneImport>
|
</template>
|
|
<template #table-column>
|
<el-table-column fixed="left" sortable prop="index" label="编号" width="80">
|
</el-table-column>
|
<el-table-column
|
fixed="left"
|
prop="name"
|
label="名称"
|
:show-overflow-tooltip="true"
|
width="400"
|
>
|
</el-table-column>
|
<el-table-column prop="type" label="类型" width="130" />
|
<el-table-column prop="provincename" label="省" width="90" />
|
<el-table-column prop="cityname" label="市" width="90" />
|
<el-table-column prop="districtname" label="区县" width="90" />
|
<el-table-column prop="townname" label="街道" width="110" />
|
<el-table-column prop="location" label="地址" min-width="400" />
|
<el-table-column prop="longitude" label="经度" width="110" />
|
<el-table-column prop="latitude" label="纬度" width="110" />
|
<el-table-column fixed="right" label="操作" width="160">
|
<template #default="scope">
|
<el-button
|
:loading="scope.row.loading1"
|
type="default"
|
size="small"
|
@click="itemEdit(scope)"
|
>编辑</el-button
|
>
|
<el-button
|
:loading="scope.row.loading2"
|
:type="scope.row.extension1 != '0' ? 'danger' : 'primary'"
|
size="small"
|
@click="itemActive(scope)"
|
>{{ scope.row.extension1 != '0' ? '下线' : '上线' }}</el-button
|
>
|
</template>
|
</el-table-column>
|
</template>
|
</FYTable>
|
</template>
|
|
<script>
|
import sceneApi from '@/api/fysp/sceneApi';
|
import { useLoadingStore } from '@/stores/loadingStore';
|
import { mapStores } from 'pinia';
|
import { useMessageBoxTip } from '@/composables/messageBox';
|
import CompSceneImport from './CompSceneImport.vue';
|
|
export default {
|
components: {
|
CompSceneImport
|
},
|
data() {
|
return {
|
formSearch: {
|
_locations: {},
|
searchText: '',
|
_scenetype: {},
|
online: {}
|
}
|
};
|
},
|
computed: {
|
...mapStores(useLoadingStore)
|
},
|
methods: {
|
onSearch(page, func) {
|
const f = this.formSearch;
|
const area = {};
|
// 行政区划
|
area.provincecode = f._locations.pCode;
|
area.citycode = f._locations.cCode;
|
area.districtcode = f._locations.dCode;
|
area.towncode = f._locations.tCode;
|
// 场景类型
|
area.scensetypeid = f._scenetype.value;
|
if (area.scensetypeid == '0') area.scensetypeid = null;
|
// 上下线状态
|
area.online = f.online.value;
|
// 查询关键字(场景名称)
|
area.sceneName = f.searchText;
|
|
return sceneApi.searchScene(area, page.currentPage, page.pageSize).then((res) => {
|
if (res.success) {
|
func({
|
data: res.data,
|
total: res.head.totalCount
|
});
|
}
|
});
|
},
|
itemEdit(scope) {
|
scope.row.loading1 = true;
|
this.loadingStore.pushLoading(() => (scope.row.loading1 = false));
|
this.$router.push(`sceneEdit/${scope.row.guid}`);
|
},
|
itemActive(scope) {
|
const rb = {};
|
rb.guid = scope.row.guid;
|
rb.extension1 = scope.row.extension1 != '0' ? '0' : '1';
|
const msg = scope.row.extension1 != '0' ? '下线' : '上线';
|
useMessageBoxTip({
|
confirmMsg: `确认${msg}该场景?`,
|
confirmTitle: msg,
|
onConfirm: () => {
|
scope.row.loading2 = true;
|
return sceneApi
|
.updateScene(rb)
|
.then((res) => {
|
if (res == 1) {
|
scope.row.extension1 = rb.extension1;
|
}
|
})
|
.finally(() => {
|
scope.row.loading2 = false;
|
});
|
}
|
});
|
}
|
}
|
};
|
</script>
|
|
<style></style>
|