Browse Source

添加参数周边页面

develop
caoyizhong 3 years ago
parent
commit
8cf6e00bda
  1. 2
      src/views/api/api.js
  2. 2
      src/views/banner/api/api.js
  3. 13
      src/views/banner/index.vue
  4. 58
      src/views/city/cityInterest/api/Interest.js
  5. 712
      src/views/city/cityInterest/index.vue

2
src/views/api/api.js

@ -10,4 +10,4 @@ export function uploadFile(fileObj) {
headers: {'Content-Type': 'multipart/form-data'},
data: formData
})
}
}

2
src/views/banner/api/api.js

@ -30,7 +30,7 @@ export function updateData(param) {
return request({
url: '/api/rotateImage',
method: 'put',
headers: { 'Content-Type': 'application/json' },
// headers: { 'Content-Type': 'application/json' },
data: param
})
}

13
src/views/banner/index.vue

@ -447,7 +447,15 @@ export default {
this.dialogVisible = true;
},
updateStatus(row, status) {
updateData({ id: row.id, statusCd: status }).then((res) => {
// console.log(row)
let rotate = {
id: row.id,
statusCd: status,
groupId:row.groupId,
imageName:row.imageName,
sort:row.sort
}
updateData(rotate).then((res) => {
this.onSubmit();
});
},
@ -575,6 +583,7 @@ export default {
},
//
uploadFile(file) {
console.log(file);
uploadFile(file).then((res) => {
if (res.data.success) {
this.editForm.imagePath = res.data.data.path;
@ -596,4 +605,4 @@ export default {
/deep/.el-dialog .el-form-item__content > .el-input-number {
width: 62%;
}
</style>
</style>

58
src/views/city/cityInterest/api/Interest.js

@ -0,0 +1,58 @@
import request from '@/router/axios'
//查询全部数据
export function getInterest(data) {
return request({
url: "/api/facilities/list",
method: "get",
params:data
})
}
//修改信息
export function updateInterest(data) {
return request({
url: "/api/facilities/update",
method: "put",
data:data
})
}
//根据ID查询
export function getInterestID(id) {
return request({
url: "/api/facilities/list"+id,
method: "get"
})
}
//删除数据
export function delInterest(ids) {
return request({
url: "/api/facilities/delete/"+ids,
method: "delete"
})
}
//添加数据
export function addInterest(data) {
return request({
url: "/api/facilities/add",
method: "post",
data:data
})
}
//查询周边类型
export function selectInterestType() {
return request({
url: "/api/facilities/selectTypeList",
method: "get"
})
}

712
src/views/city/cityInterest/index.vue

@ -0,0 +1,712 @@
<template>
<div class="normal_page">
<div class="page_search">
<div>
<el-form :inline="true" :model="searchForm" class="demo-form-inline">
<el-form-item label="地区名称:">
<el-input
v-model="searchForm.name"
placeholder="请输入地区名称"
></el-input>
</el-form-item>
<el-form-item label="类型:">
<el-select v-model="searchForm.typecn" placeholder="请选择类型">
<el-option
v-for="(item,index) in interestType"
:key="index"
:label="item.typecn"
:value="item.typecn"
>
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="分组:">-->
<!-- <el-select v-model="searchForm.groupId" placeholder="请选择分组">-->
<!-- <el-option-->
<!-- v-for="item in groupList"-->
<!-- :key="item.groupId"-->
<!-- :label="item.groupName"-->
<!-- :value="item.groupId"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
<el-form-item>
<el-button @click="onReset">重置</el-button>
</el-form-item>
</el-form>
</div>
</div>
<div class="page_content">
<div class="page_content_head">
<div style="display: flex; justify-content: space-between">
<div class="page_content_head_left">
<div>城市周边列表</div>
<div style="margin-left: 10px">
<img src="@public/img/land/u1343.png" />
</div>
<div style="margin-left: 10px">
<span>已选择{{ selectedData.length }}</span>
</div>
<div style="margin-left: 10px">
<el-button type="text" @click="clearSelection">清空</el-button>
</div>
</div>
<div class="page_content_head_right">
<div>
<el-button @click="multiDelete" v-show="hasSelectData"
><img
style="margin-right: 5px"
src="@public/img/land/u1340.png"
/>
</el-button>
</div>
<!-- <div style="margin-right: 30px">-->
<!-- <el-button @click="showGroup" type="primary">轮播分组</el-button>-->
<!-- </div>-->
<div style="margin-right: 30px">
<el-button @click="newItem" type="primary"
><i class="el-icon-plus"></i>新建
</el-button>
</div>
</div>
</div>
</div>
<div class="page_content_table">
<el-table
:data="tableData"
border
@selection-change="handleSelectionChange"
style="width: 100%"
ref="multipleTable"
v-loading="loading"
>
<el-table-column fixed type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="50"> </el-table-column>
<el-table-column
v-for="(item, index) in cols"
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width"
show-overflow-tooltip
>
</el-table-column>
<el-table-column fixed="right" label="操作" width="200">
<template slot-scope="scope">
<el-button type="text" size="small" @click="editItem(scope.row)"
>编辑
</el-button>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- v-if="scope.row.statusCd == 1000"-->
<!-- @click="updateStatus(scope.row, 1100)"-->
<!-- >禁用-->
<!-- </el-button>-->
<!-- <el-button-->
<!-- type="text"-->
<!-- v-else-->
<!-- size="small"-->
<!-- @click="updateStatus(scope.row, 1000)"-->
<!-- >发布-->
<!-- </el-button>-->
<el-button type="text" size="small" @click="delItem(scope.row)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<div class="page_page">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="page.currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</div>
</div>
<el-dialog :title="title" :visible.sync="dialogVisible" width="35%">
<el-form :model="editForm" :disabled="dialogReadOnly" :rules="rules" label-width="200px">
<el-form-item label="周边地区名称:" prop="name">
<el-input
v-model="editForm.name"
placeholder="请输入地区名称"
></el-input>
</el-form-item>
<el-form-item label="新类型名称:" v-if="hiedType">
<el-input
v-model="editForm.typecn"
placeholder="请输入类型名称(如学校)"
></el-input>
</el-form-item>
<el-form-item label="新类型:" v-if="hiedType">
<el-input
v-model="editForm.type"
placeholder="请输入类型(如school)"
></el-input>
</el-form-item>
<el-form-item label="已有类型:">
<el-select v-model="editForm.oldType" clearable placeholder="请选择类型(上面填写不可选择) " @change="refreshData" style="width: 60%" >
<el-option
v-for="(item,index) in interestType"
:key="index"
:label="item.typecn"
:value="item.type"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="地区经度:" prop="lon">
<el-input
v-model="editForm.lon"
placeholder="请输入地区经度"
></el-input>
</el-form-item>
<el-form-item label="地区纬度:" prop="lat">
<el-input
v-model="editForm.lat"
placeholder="请输入地区纬度"
></el-input>
</el-form-item>
<el-form-item label="备注:">
<el-input
v-model="editForm.remark"
placeholder="请输入备注"
></el-input>
</el-form-item>
<!-- <el-form-item label="排序:">-->
<!-- <el-input-number-->
<!-- controls-position="right"-->
<!-- v-model="editForm.sort"-->
<!-- placeholder="请输入排序"-->
<!-- ></el-input-number>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="上传图片:">-->
<!-- <el-upload-->
<!-- action=""-->
<!-- list-type="picture-card"-->
<!-- :limit="limit"-->
<!-- :file-list="editForm.previewUrl"-->
<!-- :http-request="uploadFile"-->
<!-- >-->
<!-- <i class="el-icon-plus avatar-uploader-icon"></i>-->
<!-- <div slot="tip" class="el-upload__tip">-->
<!-- 只能上传图片文件且不超过5Mb-->
<!-- </div>-->
<!-- </el-upload>-->
<!-- </el-form-item>-->
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancelType"> </el-button>
<el-button type="primary" @click="save"> </el-button>
</span>
</el-dialog>
<!-- <el-dialog title="轮播分组" :visible.sync="groupVisible">-->
<!-- <div style="width: 130px; float: right; margin-bottom: 10px">-->
<!-- <el-button @click="newGroupItem" type="primary">新增轮播分组</el-button>-->
<!-- </div>-->
<!-- <el-table-->
<!-- :data="groupTableList"-->
<!-- border-->
<!-- @selection-change="handleSelectionChange"-->
<!-- style="width: 100%"-->
<!-- ref="multipleTable"-->
<!-- v-loading="loading"-->
<!-- >-->
<!-- <el-table-column-->
<!-- v-for="(item, index) in groupCols"-->
<!-- :key="index"-->
<!-- :prop="item.prop"-->
<!-- :label="item.label"-->
<!-- :width="item.width"-->
<!-- show-overflow-tooltip-->
<!-- >-->
<!-- </el-table-column>-->
<!-- <el-table-column fixed="right" label="操作" width="200">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click="editGroupItem(scope.row)"-->
<!-- >编辑-->
<!-- </el-button>-->
<!-- <el-button type="text" size="small" @click="delGroupItem(scope.row)"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
<!-- <div class="page_page">-->
<!-- <el-pagination-->
<!-- @size-change="handleGroupSizeChange"-->
<!-- @current-change="handleGroupCurrentChange"-->
<!-- :current-page="groupPage.currentPage"-->
<!-- :page-sizes="[10, 20, 30, 40]"-->
<!-- :page-size="groupPage.pageSize"-->
<!-- layout="total, sizes, prev, pager, next, jumper"-->
<!-- :total="groupPage.total"-->
<!-- >-->
<!-- </el-pagination>-->
<!-- </div>-->
<!-- </el-dialog>-->
<!-- <el-dialog-->
<!-- :title="groupTitle"-->
<!-- :visible.sync="groupDialogVisible"-->
<!-- width="30%"-->
<!-- >-->
<!-- <el-form :model="editGroupForm" label-width="120px">-->
<!-- <el-form-item label="分组名称:">-->
<!-- <el-input-->
<!-- v-model="editGroupForm.groupName"-->
<!-- placeholder="请输入分组名称"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="切换时间(ms):">-->
<!-- <el-input-number-->
<!-- controls-position="right"-->
<!-- v-model="editGroupForm.time"-->
<!-- placeholder="请输入切换时间"-->
<!-- ></el-input-number>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <span slot="footer" class="dialog-footer">-->
<!-- <el-button @click="groupDialogVisible = false"> </el-button>-->
<!-- <el-button type="primary" @click="saveGroup"> </el-button>-->
<!-- </span>-->
<!-- </el-dialog>-->
</div>
</template>
<script>
import {
delData,
updateData,
queryGroupList,
addGroupData,
updateGroupData,
delGroupData,
} from "@/views/banner/api/api";
import { getInterest,addInterest, delInterest ,updateInterest ,selectInterestType } from "@/views/city/cityInterest/api/Interest";
export default {
name: "interest",
data() {
return {
limit: 1,
searchForm: {
//
name: null,
typecn: null
},
tableData: [],
//
cols: [
// {
// label: "",
// prop: "gid",
// },
{
label: "地区名称",
prop: "name",
},
{
label: "地区类型",
prop: "typecn",
},
{
label: "类型标识",
prop: "type",
},
{
label: "备注",
prop: "remark",
},
{
label: "经度",
prop: "lon",
},
{
label: "纬度",
prop: "lat",
},
],
// groupCols: [
// {
// label: "",
// prop: "groupId",
// },
// {
// label: "",
// prop: "groupName",
// },
// {
// label: "",
// prop: "time",
// },
// ],
//
loading: false,
//
selectedData: [],
page: {
total: 0, //
currentPage: 1, //
pageSize: 10, //
},
groupPage: {
total: 0, //
currentPage: 1, //
pageSize: 10, //
},
//
hiedType:true,
//
hasSelectData: false,
title: "新增轮播图",
dialogReadOnly: false,
editForm: { },
dialogVisible: false,
statusCdList: [],
groupList: [],
groupTableList: [],
groupVisible: false,
groupTitle: "新增轮播分组",
groupDialogVisible: false,
editGroupForm: {},
//
interestType:[],
rules: {
name: [
{ required: true, message: '请输入地区名称', trigger: 'blur' }
],
lon: [
{ required: true, message: '请输入经度', trigger: 'blur' }
],
lat: [
{ required: true, message: '请输入纬度', trigger: 'blur' }
]
}
};
},
mounted() {
this.onSubmit();
// getDict("land_color_type_list").then((res) => {
// this.statusCdList = res.data.data;
// //console.log(this.statusCdList)
// });
// queryGroupList({ size: 99999 }).then((res) => {
// this.groupList = res.data.data.records;
// });
},
watch: {
selectedData: {
handler(newVal, oldVal) {
this.hasSelectData = newVal.length > 0 ? true : false;
},
},
},
methods: {
//
cancelType(){
this.dialogVisible = false ;
this.hiedType = true
},
//
selectTypeLists(){
selectInterestType().then(rest => {
this.interestType = rest.data.data;
//console.log(this.interestType)
})
},
//
refreshData (val) {
this.$forceUpdate()
},
//
showGroup() {
this.groupVisible = true;
this.queryGroupList();
},
queryGroupList() {
let param = {
current: this.groupPage.currentPage,
size: this.groupPage.pageSize,
};
this.loading = true;
queryGroupList(param).then((res) => {
this.groupTableList = res.data.data.records;
this.groupPage.total = res.data.data.total;
this.loading = false;
});
},
//
clearSelection() {
this.$refs.multipleTable.clearSelection();
},
//
onSubmit() {
this.loading = true;
let param = Object.assign(
{
current: this.page.currentPage,
size: this.page.pageSize,
},
this.searchForm
);
// console.log(this.searchForm);
getInterest(param).then((response) => {
//console.log(response.data);
this.tableData = response.data.data.records;
this.page.total = response.data.data.total;
this.loading = false;
});
this.selectTypeLists();
},
//
onReset() {
for (let item in this.searchForm) {
this.searchForm[item] = "";
}
this.onSubmit();
},
handleSizeChange(val) {
this.page.pageSize = val;
this.onSubmit();
},
handleCurrentChange(val) {
this.page.currentPage = val;
this.onSubmit();
},
handleGroupSizeChange(val) {
this.groupPage.pageSize = val;
this.queryGroupList();
},
handleGroupCurrentChange(val) {
this.groupPage.currentPage = val;
this.queryGroupList();
},
//
handleSelectionChange(val) {
//console.log(val)
this.selectedData = val;
},
//
newItem() {
this.title = "新增周边设施";
this.editForm = {};
this.dialogReadOnly = false;
this.dialogVisible = true;
},
//
editItem(row) {
this.title = "编辑周边设施";
// row.previewUrl = [{ name: row.imageName, url: row.imagePath }];
this.$set(row, "oldType", row.typecn);
this.editForm = row;
this.dialogReadOnly = false;
this.dialogVisible = true;
this.hiedType = false;
},
// updateStatus(row, status) {
// // console.log(row)
// let rotate = {
// id: row.id,
// statusCd: status,
// groupId:row.groupId,
// imageName:row.imageName,
// sort:row.sort
// }
// updateData(rotate).then((res) => {
// this.onSubmit();
// });
// },
//
save() {
if (this.editForm.gid) {
console.log(this.editForm)
this.hiedType =false;
if(this.editForm.oldType === this.editForm.typecn){
this.editForm.oldType = null;
}
console.log(this.editForm)
updateInterest(this.editForm).then((res) => {
this.dialogVisible = false;
this.onSubmit();
this.hiedType =true;
});
} else {
// console.log(this.editForm.oldType)
// console.log(this.editForm.type)
if(this.editForm.oldType === undefined && this.editForm.type === undefined){
this.$message.warning("请选择重新填写类型或选择已有类型")
}
if(this.editForm.oldType === '' && this.editForm.type === undefined){
this.$message.warning("请选择重新填写类型或选择已有类型")
}
if(this.editForm.oldType === '' && this.editForm.type === ''){
this.$message.warning("请选择重新填写类型或选择已有类型")
}
if(this.editForm.oldType !== undefined && this.editForm.type !== undefined && this.editForm.typecn !== undefined){
if(this.editForm.oldType !== '' && this.editForm.type !== '' && this.editForm.typecn !== ''){
this.$message.warning("选择了已有类型不用在添加类型")
}
}
let param = Object.assign(
this.editForm);
addInterest(param).then((res) => {
this.dialogVisible = false;
this.onSubmit();
});
}
},
//
viewItem(row) {
this.title = "查看轮播图";
row.previewUrl = [{ name: row.imageName, url: row.imagePath }];
this.editForm = row;
this.dialogReadOnly = true;
this.dialogVisible = true;
},
//
delItem(row) {
let _this = this;
this.$confirm("确认删除?", "系统提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
// cancelButtonClass: "btn-custom-cancel",
type: "warning",
}).then(function () {
//console.log(row);
delInterest(row.gid).then((res) => {
if (res.data.success) {
_this.$message({
type: "success",
message: "删除成功",
});
_this.onSubmit();
} else {
_this.$message("删除失败");
}
});
})
.catch(function () {});
},
//
multiDelete() {
if (this.selectedData.length < 1) {
this.$message({
message: "未选中数据",
type: "warning",
});
return;
}
let ids = [];
for (let item of this.selectedData) {
ids.push(item["gid"]);
}
console.log(ids)
delInterest(ids).then((res) => {
if (res.data.success) {
this.$message({
type: "success",
message: "删除成功",
});
this.onSubmit();
} else {
this.$message("删除失败");
}
});
},
//
newGroupItem() {
this.groupTitle = "新增轮播图";
this.editGroupForm = {};
this.groupDialogVisible = true;
},
//
editGroupItem(row) {
this.groupTitle = "编辑轮播图";
this.editGroupForm = row;
this.groupDialogVisible = true;
},
//
saveGroup() {
if (this.editGroupForm.groupId) {
updateGroupData(this.editGroupForm).then((res) => {
this.groupDialogVisible = false;
this.queryGroupList();
});
} else {
addGroupData(this.editGroupForm).then((res) => {
this.groupDialogVisible = false;
this.queryGroupList();
});
}
},
//
delGroupItem(row) {
let _this = this;
this.$confirm("确认删除?", "系统提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "btn-custom-cancel",
type: "warning",
})
.then(function () {
delGroupData(row.groupId).then((res) => {
if (res.data.success) {
_this.$message({
type: "success",
message: "删除成功",
});
_this.queryGroupList();
} else {
_this.$message("删除失败");
}
});
})
.catch(function () {});
},
//
// uploadFile(file) {
// console.log(file);
// uploadFile(file).then((res) => {
// if (res.data.success) {
// this.editForm.imagePath = res.data.data.path;
// this.editForm.previewUrl = [
// { name: res.data.data.fileName, url: res.data.data.previewUrl },
// ];
// }
// });
// },
},
};
</script>
<style lang="scss" scoped>
//
@import "@/styles/public.scss";
/deep/.el-dialog .el-form-item__content > .el-input {
width: 62%;
}
/deep/.el-dialog .el-form-item__content > .el-input-number {
width: 62%;
}
</style>
Loading…
Cancel
Save