补充
This commit is contained in:
parent
501a6d7ded
commit
94064a5cea
@ -8,8 +8,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.http.HttpRequest;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
@ -26,7 +28,7 @@ public class DynamicDataController extends BaseController {
|
||||
|
||||
//保存数据
|
||||
@PostMapping("/saveDynamicData")
|
||||
public AjaxResult saveDynamicData(@RequestBody Map<String, Object> requestData) {
|
||||
public AjaxResult saveDynamicData(@RequestBody Map<String, Object> requestData, HttpServletRequest httpServletRequest) {
|
||||
DynamicData dynamicData = new DynamicData();
|
||||
// System.out.println(requestData.toString());
|
||||
String title = (String)requestData.get("title");
|
||||
@ -51,36 +53,42 @@ public class DynamicDataController extends BaseController {
|
||||
String formattedDate = currentDate.format(formatter);
|
||||
dynamicData.setCreateTime(formattedDate);
|
||||
dynamicData.setData(requestData);
|
||||
dynamicData.setTenantName(httpServletRequest.getHeader("Tenant"));
|
||||
mongoTemplate.save(dynamicData);
|
||||
return AjaxResult.success("保存成功");
|
||||
}
|
||||
|
||||
//查询全部数据
|
||||
@GetMapping("/selectDynamicData")
|
||||
public AjaxResult selectDynamicData() {
|
||||
List<DynamicData> dynamicData = mongoTemplate.find(new Query(), DynamicData.class);
|
||||
// for (DynamicData dynamicDatum : dynamicData) {
|
||||
// Map<String, Object> data = dynamicDatum.getData();
|
||||
// data.forEach((k,v) -> {
|
||||
// data.put(k,k);
|
||||
// });
|
||||
// }
|
||||
public AjaxResult selectDynamicData(HttpServletRequest httpServletRequest) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("tenantName").is(httpServletRequest.getHeader("Tenant")));
|
||||
List<DynamicData> dynamicData = mongoTemplate.find(query, DynamicData.class);
|
||||
for (DynamicData dynamicDatum : dynamicData) {
|
||||
Query queryByFor = new Query();
|
||||
queryByFor.addCriteria(Criteria.where("dynamicDataId").is(dynamicDatum.getId()));
|
||||
long count = mongoTemplate.count(queryByFor, DynamicForm.class);
|
||||
dynamicDatum.setCollectionQuantity(count+"");
|
||||
}
|
||||
System.out.println(dynamicData.toString());
|
||||
return AjaxResult.success(dynamicData);
|
||||
}
|
||||
//根据id查询数据
|
||||
@GetMapping("/selectDynamicDataById")
|
||||
public AjaxResult selectDynamicDataById(String id){
|
||||
DynamicData dynamicData = mongoTemplate.findById(id, DynamicData.class);
|
||||
dynamicData.setPageView(Long.parseLong(dynamicData.getPageView())+1+"");
|
||||
DynamicData save = mongoTemplate.save(dynamicData);
|
||||
// Map<String, Object> data = dynamicData.getData();
|
||||
// data.forEach((k,v) -> {
|
||||
// data.put(k,k);
|
||||
// });
|
||||
return AjaxResult.success(dynamicData);
|
||||
return AjaxResult.success(save);
|
||||
}
|
||||
|
||||
@PostMapping("/collectData")
|
||||
//采集数据
|
||||
public AjaxResult collectData(DynamicForm dynamicForm){
|
||||
public AjaxResult collectData(@RequestBody DynamicForm dynamicForm){
|
||||
mongoTemplate.save(dynamicForm);
|
||||
return AjaxResult.success("保存成功");
|
||||
}
|
||||
|
@ -1,11 +1,13 @@
|
||||
package com.ruoyi.mongodb.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Document(collection = "dynamicData")
|
||||
@Data
|
||||
public class DynamicData {
|
||||
@Id
|
||||
private String id;
|
||||
@ -18,88 +20,8 @@ public class DynamicData {
|
||||
private String createPeople;
|
||||
//创建时间
|
||||
private String createTime;
|
||||
//租户名称
|
||||
private String tenantName;
|
||||
//用户字段数据
|
||||
private Map<String, Object> data;
|
||||
|
||||
public DynamicData() {
|
||||
}
|
||||
|
||||
public DynamicData(String id, String title, String pageView, String collectionQuantity, String createPeople, String createTime, Map<String, Object> data) {
|
||||
this.id = id;
|
||||
this.title = title;
|
||||
this.pageView = pageView;
|
||||
this.collectionQuantity = collectionQuantity;
|
||||
this.createPeople = createPeople;
|
||||
this.createTime = createTime;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Map<String, Object> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(Map<String, Object> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public String getPageView() {
|
||||
return pageView;
|
||||
}
|
||||
|
||||
public void setPageView(String pageView) {
|
||||
this.pageView = pageView;
|
||||
}
|
||||
|
||||
public String getCollectionQuantity() {
|
||||
return collectionQuantity;
|
||||
}
|
||||
|
||||
public void setCollectionQuantity(String collectionQuantity) {
|
||||
this.collectionQuantity = collectionQuantity;
|
||||
}
|
||||
|
||||
public String getCreatePeople() {
|
||||
return createPeople;
|
||||
}
|
||||
|
||||
public void setCreatePeople(String createPeople) {
|
||||
this.createPeople = createPeople;
|
||||
}
|
||||
|
||||
public String getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(String createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DynamicData{" +
|
||||
"id='" + id + '\'' +
|
||||
", title='" + title + '\'' +
|
||||
", pageView='" + pageView + '\'' +
|
||||
", collectionQuantity='" + collectionQuantity + '\'' +
|
||||
", createPeople='" + createPeople + '\'' +
|
||||
", createTime=" + createTime +
|
||||
", data=" + data +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
package com.ruoyi.mongodb.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.annotation.Id;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class DynamicForm {
|
||||
@Id
|
||||
private String id;
|
||||
@ -11,47 +13,4 @@ public class DynamicForm {
|
||||
private String dynamicDataId;
|
||||
//采集数据
|
||||
private Map<String,Object> map;
|
||||
|
||||
public DynamicForm() {
|
||||
}
|
||||
|
||||
public DynamicForm(String id, String dynamicDataId, Map<String, Object> map) {
|
||||
this.id = id;
|
||||
this.dynamicDataId = dynamicDataId;
|
||||
this.map = map;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getDynamicDataId() {
|
||||
return dynamicDataId;
|
||||
}
|
||||
|
||||
public void setDynamicDataId(String dynamicDataId) {
|
||||
this.dynamicDataId = dynamicDataId;
|
||||
}
|
||||
|
||||
public Map<String, Object> getMap() {
|
||||
return map;
|
||||
}
|
||||
|
||||
public void setMap(Map<String, Object> map) {
|
||||
this.map = map;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DynamicForm{" +
|
||||
"id='" + id + '\'' +
|
||||
", dynamicDataId='" + dynamicDataId + '\'' +
|
||||
", map=" + map +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="app-container" style="display: flex;flex-wrap: wrap;justify-content: space-between">
|
||||
|
||||
<!-- <el-col :span="8" v-for="(o, index) in 1" :key="o" :offset="index > 0 ? 2 : 0">-->
|
||||
<!-- <el-col :span="8" v-for="(o, index) in 1" :key="o" :offset="index > 0 ? 2 : 0">-->
|
||||
|
||||
<el-card class="box-card">
|
||||
<div class="container">
|
||||
@ -14,45 +14,66 @@
|
||||
|
||||
<el-card class="box-card" v-for="o in cardList" :key="o" >
|
||||
<div slot="header" class="clearfix">
|
||||
<span>{{o.title}}</span>
|
||||
<span style="font-size: 23px;
|
||||
color: #000000;
|
||||
background-color:#ffffff;
|
||||
border-color: #fdfdff;">{{o.title}}</span>
|
||||
<el-button style="float: right; padding: 3px 0" type="text" @click="handelExtend(o.id)">推广</el-button>
|
||||
</div>
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<!-- <div style="width: 30%">-->
|
||||
<!-- <div>采购员</div>-->
|
||||
<!-- <p style="font-size: 25px">1</p>-->
|
||||
<!-- </div>-->
|
||||
<div style="width: 30%">
|
||||
<div>总浏览量</div>
|
||||
<p style="font-size: 25px">{{o.pageView}}</p>
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<!-- <div style="width: 30%">-->
|
||||
<!-- <div>采购员</div>-->
|
||||
<!-- <p style="font-size: 25px">1</p>-->
|
||||
<!-- </div>-->
|
||||
<div style="width: 30%">
|
||||
<div style="font-size: 18px;
|
||||
color: #999595;
|
||||
background-color:#ffffff;
|
||||
border-color: #fdfdff;">总浏览量</div>
|
||||
<p style="font-size: 25px">{{o.pageView}}</p>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="font-size: 18px;
|
||||
color: #999595;
|
||||
background-color:#ffffff;
|
||||
border-color: #fdfdff;">采集数量</div>
|
||||
<p style="font-size: 25px">{{o.collectionQuantity}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div>采集数量</div>
|
||||
<p style="font-size: 25px">{{o.collectionQuantity}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<div>
|
||||
<span>创建人:{{o.createPeople}}</span>
|
||||
<span style="font-size: 16px;
|
||||
color: #999595;
|
||||
background-color:#ffffff;
|
||||
border-color: #fdfdff;">创建人:{{o.createPeople}}</span>
|
||||
</div>
|
||||
<div>创建时间:{{o.createTime}}</div>
|
||||
<div style="font-size: 16px;
|
||||
color: #999595;
|
||||
background-color:#ffffff;
|
||||
border-color: #fdfdff;">创建时间:{{o.createTime}}</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-col>-->
|
||||
|
||||
<!-- 添加表单对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
|
||||
<div style="text-align: center">
|
||||
<!-- <el-form-item label="表单标题">-->
|
||||
<el-input v-model="addParams.title" placeholder="请输入表单标题" />
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="字段名称">-->
|
||||
<el-input v-for="(item,index) in inputarr" key="index" v-model="inputarr[index]" placeholder="请输入字段"></el-input>
|
||||
<el-button @click="adinput" style="text-align: center">添加字段</el-button>
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="表单标题">-->
|
||||
<div><span>标题</span> <el-input style="border-bottom: 1px solid skyblue;margin-bottom: 10px" v-model="addParams.title" placeholder="请输入表单标题" />
|
||||
</div>
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="字段名称">-->
|
||||
<div v-for="(item,index) in inputarr" key="index" style="margin-bottom: 10px;">
|
||||
<span>字段</span> <el-input style="border: 1px solid #DCDFE6;border-radius: 3px; " v-model="inputarr[index]" placeholder="请输入字段"></el-input>
|
||||
</div>
|
||||
<div>
|
||||
<el-button @click="adinput" style="text-align: center;width: 90%;background-color: rgb(232,244,255);color:#1890ff">添加字段</el-button>
|
||||
</div>
|
||||
|
||||
<!-- </el-form-item>-->
|
||||
</div>
|
||||
<br>
|
||||
<div class="el-input-foot">
|
||||
@ -61,124 +82,124 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 推广链接对话框-->
|
||||
<!-- 推广链接对话框-->
|
||||
<el-dialog :title="extendTitle" :visible.sync="extendOpen" width="500px" append-to-body>
|
||||
<el-input v-model="extendLink" placeholder="请输入内容" :disabled="true"></el-input>
|
||||
<el-button @click="copyAddress">复制</el-button>
|
||||
<el-button @click="copyAddress">复制</el-button>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { selectDynamicData, saveDynamicData } from "@/api/crm/intelligent";
|
||||
import VueClipboard from 'vue-clipboard2';
|
||||
import { selectDynamicData, saveDynamicData } from "@/api/crm/intelligent";
|
||||
import VueClipboard from 'vue-clipboard2';
|
||||
|
||||
export default {
|
||||
name: "Business",
|
||||
dicts: ['stage_type', 'sales_stage'],
|
||||
data() {
|
||||
return {
|
||||
inputarr:[''],
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 商机表格数据
|
||||
businessList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
//推广弹出框标题
|
||||
extendTitle: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 是否显示推广弹出层
|
||||
extendOpen: false,
|
||||
//推广链接数据
|
||||
extendLink: '',
|
||||
//下拉框客户列表
|
||||
customerList: [],
|
||||
//卡片列表
|
||||
cardList: [],
|
||||
addParams: {
|
||||
title:'',
|
||||
pageView:'',
|
||||
collectionQuantity:'',
|
||||
inputarr: []
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getIntelligentList();
|
||||
},
|
||||
methods: {
|
||||
//添加表单
|
||||
adinput(){
|
||||
this.inputarr.push('')
|
||||
console.log(this.inputarr)
|
||||
export default {
|
||||
name: "Business",
|
||||
dicts: ['stage_type', 'sales_stage'],
|
||||
data() {
|
||||
return {
|
||||
inputarr:[''],
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 商机表格数据
|
||||
businessList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
//推广弹出框标题
|
||||
extendTitle: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 是否显示推广弹出层
|
||||
extendOpen: false,
|
||||
//推广链接数据
|
||||
extendLink: '',
|
||||
//下拉框客户列表
|
||||
customerList: [],
|
||||
//卡片列表
|
||||
cardList: [],
|
||||
addParams: {
|
||||
title:'',
|
||||
pageView:'',
|
||||
collectionQuantity:'',
|
||||
inputarr: []
|
||||
}
|
||||
};
|
||||
},
|
||||
getIntelligentList() {
|
||||
this.loading = true;
|
||||
selectDynamicData().then(response => {
|
||||
this.cardList = response.data;
|
||||
// this.total = response.total;
|
||||
console.log(this.cardList,'list')
|
||||
this.loading = false;
|
||||
});
|
||||
created() {
|
||||
this.getIntelligentList();
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
},
|
||||
//提交按钮
|
||||
submitForm(){
|
||||
this.addParams.inputarr = this.inputarr
|
||||
this.addParams.pageView = '22'
|
||||
this.addParams.collectionQuantity = '33'
|
||||
saveDynamicData(this.addParams).then(response => {
|
||||
// this.cardList = response.data;
|
||||
// this.total = response.total;
|
||||
this.loading = false;
|
||||
methods: {
|
||||
//添加表单
|
||||
adinput(){
|
||||
this.inputarr.push('')
|
||||
console.log(this.inputarr)
|
||||
},
|
||||
getIntelligentList() {
|
||||
this.loading = true;
|
||||
selectDynamicData().then(response => {
|
||||
this.cardList = response.data;
|
||||
// this.total = response.total;
|
||||
console.log(this.cardList,'list')
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.getIntelligentList();
|
||||
});
|
||||
},
|
||||
//提交按钮
|
||||
submitForm(){
|
||||
this.addParams.inputarr = this.inputarr
|
||||
this.addParams.pageView = '0'
|
||||
this.addParams.collectionQuantity = '0'
|
||||
saveDynamicData(this.addParams).then(response => {
|
||||
// this.cardList = response.data;
|
||||
// this.total = response.total;
|
||||
this.loading = false;
|
||||
this.open = false;
|
||||
this.getIntelligentList();
|
||||
});
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.inputarr = []
|
||||
this.addParams = {
|
||||
title:'',
|
||||
inputarr: []
|
||||
}
|
||||
this.open = true;
|
||||
this.title = "添加表单";
|
||||
},
|
||||
//推广按钮操作
|
||||
handelExtend(id) {
|
||||
this.extendLink = 'https://127.0.0.1:8080/extendLink/id'+id
|
||||
this.extendOpen = true;
|
||||
this.extendTitle = "推广链接";
|
||||
},
|
||||
//复制按钮操作
|
||||
copyAddress() {
|
||||
const input = document.createElement('input');
|
||||
input.value = this.extendLink;
|
||||
document.body.appendChild(input);
|
||||
input.select();
|
||||
document.execCommand('copy');
|
||||
document.body.removeChild(input);
|
||||
alert('已复制到剪贴板'); },
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.inputarr = []
|
||||
this.addParams = {
|
||||
title:'',
|
||||
inputarr: []
|
||||
}
|
||||
this.open = true;
|
||||
this.title = "添加表单";
|
||||
},
|
||||
//推广按钮操作
|
||||
handelExtend(id) {
|
||||
this.extendLink = 'https://127.0.0.1:8080/extendLink/id'+id
|
||||
this.extendOpen = true;
|
||||
this.extendTitle = "推广链接";
|
||||
},
|
||||
//复制按钮操作
|
||||
copyAddress() {
|
||||
const input = document.createElement('input');
|
||||
input.value = this.extendLink;
|
||||
document.body.appendChild(input);
|
||||
input.select();
|
||||
document.execCommand('copy');
|
||||
document.body.removeChild(input);
|
||||
alert('已复制到剪贴板'); },
|
||||
},
|
||||
};
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
<style scoped>
|
||||
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
@ -190,7 +211,7 @@ export default {
|
||||
}
|
||||
|
||||
.box-card {
|
||||
width: 450px;
|
||||
width:32%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
@ -205,8 +226,14 @@ export default {
|
||||
.el-input-foot{
|
||||
padding: 20px;
|
||||
padding-top: 10px;
|
||||
text-align: right;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
::v-deep.el-input--medium{
|
||||
width: 80%;
|
||||
}
|
||||
::v-deep.el-input--medium .el-input__inner{
|
||||
border: none;
|
||||
/* border-bottom:1px solid blue; */
|
||||
}
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user