样品数据字典列表完成
This commit is contained in:
parent
25f46b4c97
commit
47ae62bb03
|
|
@ -71,7 +71,7 @@ module.exports = {
|
|||
* Source Maps
|
||||
*/
|
||||
|
||||
productionSourceMap: true,
|
||||
productionSourceMap: false,
|
||||
// https://webpack.js.org/configuration/devtool/#production
|
||||
devtool: '#source-map',
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,14 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 数据样品类型字典列表
|
||||
export function dictDataList(data) {
|
||||
return request({
|
||||
url: 'dict/data/page.htm',
|
||||
method: 'post',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 字典列表检索
|
||||
export function getDicList(data) {
|
||||
return request({
|
||||
|
|
|
|||
|
|
@ -484,41 +484,41 @@ export default {
|
|||
this.viewer.scene._sunBloom = false
|
||||
this.viewer.scene.globe.showGroundAtmosphere = false
|
||||
// 叠加叠加影像服务
|
||||
// const earthMap = new Cesium.WebMapTileServiceImageryProvider(
|
||||
// {
|
||||
// url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:gmrt_20231018/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
|
||||
// layer: 'ne:gmrt_20231018',
|
||||
// style: 'default',
|
||||
// tileMatrixSetID: 'EPSG:4326',
|
||||
// format: 'image/jpeg',
|
||||
// tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
// }
|
||||
// )
|
||||
// this.viewer.imageryLayers.addImageryProvider(earthMap)
|
||||
const earthMap = new Cesium.WebMapTileServiceImageryProvider(
|
||||
{
|
||||
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:gmrt_20231018/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
|
||||
layer: 'ne:gmrt_20231018',
|
||||
style: 'default',
|
||||
tileMatrixSetID: 'EPSG:4326',
|
||||
format: 'image/jpeg',
|
||||
tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
}
|
||||
)
|
||||
this.viewer.imageryLayers.addImageryProvider(earthMap)
|
||||
// 增加海岸线 /geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
|
||||
// const coastline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
// {
|
||||
// url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
// layer: 'ne:GSHHS_f_L1',
|
||||
// style: 'default',
|
||||
// tileMatrixSetID: 'EPSG:4326',
|
||||
// format: 'image/png',
|
||||
// tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
// }
|
||||
// )
|
||||
// this.viewer.imageryLayers.addImageryProvider(coastline)
|
||||
const coastline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
{
|
||||
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
layer: 'ne:GSHHS_f_L1',
|
||||
style: 'default',
|
||||
tileMatrixSetID: 'EPSG:4326',
|
||||
format: 'image/png',
|
||||
tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
}
|
||||
)
|
||||
this.viewer.imageryLayers.addImageryProvider(coastline)
|
||||
// 沉船摄影拼接图 /geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
|
||||
// const shipline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
// {
|
||||
// url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
// layer: 'ne:No1ShipWreck_UP',
|
||||
// style: 'default',
|
||||
// tileMatrixSetID: 'EPSG:4326',
|
||||
// format: 'image/png',
|
||||
// tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
// }
|
||||
// )
|
||||
// this.viewer.imageryLayers.addImageryProvider(shipline)
|
||||
const shipline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
{
|
||||
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
layer: 'ne:No1ShipWreck_UP',
|
||||
style: 'default',
|
||||
tileMatrixSetID: 'EPSG:4326',
|
||||
format: 'image/png',
|
||||
tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
}
|
||||
)
|
||||
this.viewer.imageryLayers.addImageryProvider(shipline)
|
||||
},
|
||||
/* cesium 绘制线 */
|
||||
drawLine(index, id, degreeArr) {
|
||||
|
|
|
|||
|
|
@ -10,52 +10,35 @@
|
|||
</div>
|
||||
<div class="filter-container">
|
||||
<div class="checkBtn">
|
||||
<el-button type="primary" size="medium" @click="batchImport">数据样品类型录入</el-button>
|
||||
<el-button type="primary" size="medium" @click="handleAdd">数据样品类型录入</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table ref="tableData" v-loading="loading" stripe border :data="tableData" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }" height="600px" @row-click="openModal">
|
||||
<el-table-column
|
||||
type="index"
|
||||
width="50"
|
||||
/>
|
||||
<el-table-column prop="nameZh" label="数据样品类型名称" />
|
||||
<el-table-column prop="nameEn" label="英文名称" />
|
||||
<el-table-column prop="alias" label="别名" />
|
||||
<el-table-column prop="description" label="描述" />
|
||||
<el-table-column prop="updateTime" label="创建时间">
|
||||
<template slot-scope="scope">
|
||||
{{ time(scope.row.updateTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip class="item" effect="dark" content="修改" placement="top-end">
|
||||
<el-button id="mod" size="mini" type="warning" class="el-icon-edit" />
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="删除" placement="top-end">
|
||||
<el-button id="del" size="mini" type="danger" class="el-icon-delete" style="margin-left: 0%;" />
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table ref="tableData" v-loading="loading" stripe border :data="tableData" :header-cell-style="{ background: '#dddfe6',color: '#555960',textAlign: 'center' }" :cell-style="{ textAlign: 'center' }">
|
||||
<el-table-column type="index" label="#" width="50"/>
|
||||
<el-table-column prop="data_name" label="数据样品类型类型名称" />
|
||||
<el-table-column prop="data_eng" label="英文名称" />
|
||||
<el-table-column prop="data_alias" label="别名" width="100" />
|
||||
<el-table-column prop="data_order" label="排序" width="100" />
|
||||
<el-table-column prop="data_group" label="分组" width="100" />
|
||||
<el-table-column prop="create_time" label="创建时间" width="160" />
|
||||
</el-table>
|
||||
<div class="pagination-box">
|
||||
<el-pagination
|
||||
background
|
||||
:current-page="currentPage"
|
||||
:page-sizes="[15, 30, 50]"
|
||||
:page-size="pagesize"
|
||||
:page-sizes="[10, 20, 30]"
|
||||
:page-size="params.limit"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="count"
|
||||
:total="total"
|
||||
:current-page="pageNum"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
/>
|
||||
</div>
|
||||
<div class="modal">
|
||||
<el-dialog
|
||||
:title="userStatus? '添加数据样品类型' : '修改数据样品类型'"
|
||||
:visible.sync="showUserForm"
|
||||
:title="handleType ? '添加数据样品类型' : '修改数据样品类型'"
|
||||
:visible.sync="open"
|
||||
width="30%"
|
||||
:before-close="handleClose"
|
||||
>
|
||||
<el-form ref="form" :model="form" label-width="140px" :rules="rules">
|
||||
<el-form-item label="数据样品类型名称" prop="nameZh">
|
||||
|
|
@ -73,18 +56,17 @@
|
|||
</el-form>
|
||||
<el-row type="flex" justify="center">
|
||||
<el-button
|
||||
v-loading="subLoading"
|
||||
style="width: 100px"
|
||||
type="primary"
|
||||
size="medium"
|
||||
@click="saveData"
|
||||
@click="submitForm"
|
||||
>确定</el-button>
|
||||
<el-button
|
||||
size="medium"
|
||||
style="margin-left: 10px; width: 100px"
|
||||
type="info"
|
||||
plain
|
||||
@click="showUserForm = false;clearInput();resetForm();"
|
||||
@click="cancel"
|
||||
>取消</el-button>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
|
|
@ -93,31 +75,28 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { getDicList, deleteDoc, sampleAdd, sampleUpdate
|
||||
} from '@/api/dicManage'
|
||||
import { dictDataList } from '@/api/dicManage'
|
||||
export default {
|
||||
name: 'DataSampleType',
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
subLoading: false,
|
||||
// 新建
|
||||
userStatus: true,
|
||||
// 数据model
|
||||
recordEnabled: 0,
|
||||
showUserForm: false,
|
||||
delDialogVisible: false,
|
||||
currentPage: 1,
|
||||
pagesize: 15,
|
||||
count: 0,
|
||||
form: {
|
||||
nameZh: '',
|
||||
nameEn: '',
|
||||
alias: '',
|
||||
description: '',
|
||||
typeId: '',
|
||||
id: ''
|
||||
// 分页请求参数
|
||||
params: {
|
||||
start: 0,
|
||||
limit: 10,
|
||||
group: 10
|
||||
},
|
||||
pageNum: 1,
|
||||
// 列表数据
|
||||
tableData: [],
|
||||
total: 0,
|
||||
// 弹窗参数
|
||||
handleType: 1,
|
||||
open: false,
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单规则
|
||||
rules: {
|
||||
nameZh: [
|
||||
{ required: true, message: '请输入数据样品类型名称', trigger: 'blur' }
|
||||
|
|
@ -128,211 +107,38 @@ export default {
|
|||
alias: [
|
||||
{ required: true, message: '请输入别名', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
tableData: [
|
||||
// {
|
||||
// name: '侧扫',
|
||||
// enName: 'Sidescan',
|
||||
// alias: 'VD',
|
||||
// description: '学科数据类型',
|
||||
// updateTime: '2022.3.4 12: 20: 00'
|
||||
// },
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.init()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
batchImport() {
|
||||
this.showUserForm = true
|
||||
this.userStatus = true
|
||||
},
|
||||
time(val) {
|
||||
if (!val) {
|
||||
return ''
|
||||
}
|
||||
var date = new Date(val)
|
||||
var y = date.getFullYear()
|
||||
var m = date.getMonth() + 1
|
||||
m = m < 10 ? '0' + m : m
|
||||
var d = date.getDate()
|
||||
d = d < 10 ? '0' + d : d
|
||||
var h = date.getHours()
|
||||
h = h < 10 ? '0' + h : h
|
||||
var minute = date.getMinutes()
|
||||
minute = minute < 10 ? '0' + minute : minute
|
||||
var second = date.getSeconds()
|
||||
second = second < 10 ? '0' + second : second
|
||||
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second
|
||||
},
|
||||
openModal(row, event, column) {
|
||||
// 判断操作内容
|
||||
var opType = column.target.id
|
||||
if (opType == 'del') {
|
||||
this.$confirm('确定删除选中的数据吗?此操作不可撤销!', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.deleteData(row.typeId)
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log(error)
|
||||
})
|
||||
} else if (opType == 'mod') {
|
||||
this.showUserForm = true
|
||||
this.userStatus = false
|
||||
this.form = JSON.parse(JSON.stringify(row))
|
||||
}
|
||||
},
|
||||
async deleteData(typeId) {
|
||||
this.loading = true
|
||||
const data = {
|
||||
type: 'sampleType',
|
||||
typeId
|
||||
}
|
||||
try {
|
||||
const res = await deleteDoc(data)
|
||||
if (res.code == 200) {
|
||||
this.init()
|
||||
}
|
||||
this.loading = false
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
init() {
|
||||
this.currentPage = 1
|
||||
this.getData()
|
||||
},
|
||||
// 初始页currentPage、初始每页数据数pagesize和数据data
|
||||
handleSizeChange: function(size) {
|
||||
this.pagesize = size
|
||||
this.getData()
|
||||
},
|
||||
handleCurrentChange: function(currentPage) {
|
||||
this.currentPage = currentPage
|
||||
this.getData()
|
||||
},
|
||||
async getData() {
|
||||
this.loading = true
|
||||
const data = {
|
||||
page: this.currentPage,
|
||||
size: this.pagesize,
|
||||
type: 'sampleType'
|
||||
}
|
||||
try {
|
||||
const res = await getDicList(data)
|
||||
if (res.code == 200) {
|
||||
if (res.data.content) {
|
||||
this.tableData = res.data.content
|
||||
this.count = Number(res.data.count)
|
||||
}
|
||||
}
|
||||
this.loading = false
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
saveData() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.userStatus) {
|
||||
this.addFunction()
|
||||
} else {
|
||||
this.updateFunction()
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
// 获取列表数据
|
||||
getData() {
|
||||
dictDataList(this.params).then(res => {
|
||||
this.tableData = res.page.records
|
||||
this.total = Number(res.page.total)
|
||||
})
|
||||
},
|
||||
async addFunction() {
|
||||
this.subLoading = true
|
||||
const data = {
|
||||
nameZh: this.form.nameZh,
|
||||
nameEn: this.form.nameEn,
|
||||
alias: this.form.alias,
|
||||
description: this.form.description
|
||||
}
|
||||
try {
|
||||
const res = await sampleAdd(data)
|
||||
if (res.code === 200) {
|
||||
this.$message({
|
||||
message: '添加成功!',
|
||||
type: 'success'
|
||||
})
|
||||
this.resetForm()
|
||||
this.subLoading = false
|
||||
this.showUserForm = false
|
||||
this.init()
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: 'warning'
|
||||
})
|
||||
this.subLoading = false
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
this.subLoading = false
|
||||
}
|
||||
// 新增
|
||||
handleAdd() {},
|
||||
// 编辑
|
||||
handleEdit() {},
|
||||
// 提交表单
|
||||
submitForm() {},
|
||||
// 关闭弹窗
|
||||
cancel() {},
|
||||
// 分页
|
||||
handleCurrentChange(val) {
|
||||
this.pageNum = val
|
||||
this.params.start = val * this.params.limit - this.params.limit
|
||||
this.getData()
|
||||
},
|
||||
async updateFunction() {
|
||||
this.subLoading = true
|
||||
const data = {
|
||||
nameZh: this.form.nameZh,
|
||||
nameEn: this.form.nameEn,
|
||||
alias: this.form.alias,
|
||||
description: this.form.description,
|
||||
typeId: this.form.typeId,
|
||||
id: this.form.id
|
||||
}
|
||||
try {
|
||||
const res = await sampleUpdate(data)
|
||||
if (res.code === 200) {
|
||||
this.$message({
|
||||
message: '修改成功!',
|
||||
type: 'success'
|
||||
})
|
||||
this.resetForm()
|
||||
this.subLoading = false
|
||||
this.showUserForm = false
|
||||
this.init()
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: 'warning'
|
||||
})
|
||||
this.subLoading = false
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
this.subLoading = false
|
||||
}
|
||||
handleSizeChange(val) {
|
||||
this.params.limit = val
|
||||
this.getData()
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['form'].resetFields()
|
||||
},
|
||||
handleClose(done) { // 加一个点击遮罩和关闭按钮时的回调函数
|
||||
this.clearInput()
|
||||
this.resetForm()
|
||||
done()
|
||||
},
|
||||
clearInput() {
|
||||
this.form = {
|
||||
nameZh: '',
|
||||
nameEn: '',
|
||||
alias: '',
|
||||
description: '',
|
||||
typeId: '',
|
||||
id: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -373,41 +373,41 @@ export default {
|
|||
this.viewer.scene._sunBloom = false
|
||||
this.viewer.scene.globe.showGroundAtmosphere = false
|
||||
// 叠加叠加影像服务
|
||||
// const earthMap = new Cesium.WebMapTileServiceImageryProvider(
|
||||
// {
|
||||
// url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:gmrt_20231018/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
|
||||
// layer: 'ne:gmrt_20231018',
|
||||
// style: 'default',
|
||||
// tileMatrixSetID: 'EPSG:4326',
|
||||
// format: 'image/jpeg',
|
||||
// tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
// }
|
||||
// )
|
||||
// this.viewer.imageryLayers.addImageryProvider(earthMap)
|
||||
const earthMap = new Cesium.WebMapTileServiceImageryProvider(
|
||||
{
|
||||
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:gmrt_20231018/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
|
||||
layer: 'ne:gmrt_20231018',
|
||||
style: 'default',
|
||||
tileMatrixSetID: 'EPSG:4326',
|
||||
format: 'image/jpeg',
|
||||
tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
}
|
||||
)
|
||||
this.viewer.imageryLayers.addImageryProvider(earthMap)
|
||||
// 增加海岸线 /geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
|
||||
// const coastline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
// {
|
||||
// url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
// layer: 'ne:GSHHS_f_L1',
|
||||
// style: 'default',
|
||||
// tileMatrixSetID: 'EPSG:4326',
|
||||
// format: 'image/png',
|
||||
// tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
// }
|
||||
// )
|
||||
// this.viewer.imageryLayers.addImageryProvider(coastline)
|
||||
const coastline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
{
|
||||
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
layer: 'ne:GSHHS_f_L1',
|
||||
style: 'default',
|
||||
tileMatrixSetID: 'EPSG:4326',
|
||||
format: 'image/png',
|
||||
tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
}
|
||||
)
|
||||
this.viewer.imageryLayers.addImageryProvider(coastline)
|
||||
// 沉船摄影拼接图 /geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/EPSG:4326/EPSG:4326:{z}/{y}/{x}?format=image/png
|
||||
// const shipline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
// {
|
||||
// url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
// layer: 'ne:No1ShipWreck_UP',
|
||||
// style: 'default',
|
||||
// tileMatrixSetID: 'EPSG:4326',
|
||||
// format: 'image/png',
|
||||
// tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
// }
|
||||
// )
|
||||
// this.viewer.imageryLayers.addImageryProvider(shipline)
|
||||
const shipline = new Cesium.WebMapTileServiceImageryProvider(
|
||||
{
|
||||
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:No1ShipWreck_UP/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
|
||||
layer: 'ne:No1ShipWreck_UP',
|
||||
style: 'default',
|
||||
tileMatrixSetID: 'EPSG:4326',
|
||||
format: 'image/png',
|
||||
tilingScheme: new Cesium.GeographicTilingScheme()
|
||||
}
|
||||
)
|
||||
this.viewer.imageryLayers.addImageryProvider(shipline)
|
||||
},
|
||||
/* cesium 绘制线 */
|
||||
drawLine(index, id, degreeArr) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue