当前位置: 首页 > article >正文

Vue实现动态数据透视表(交叉表)

需求:需要根据前端选择的横维度、竖维度、值去生成一个动态的表格,然后把交叉的值放入到对应的横维度和竖维度之下,其实就是excel里面的数据透视表功能,查询交叉语句为sql语句。

实现页面:

选择一下横维度、竖维度、值之后点击查询即可出现交叉结果

其余的条件都是过滤条件

后端实现:后端是用Hutool工具包连接数据库拼的sql查出来的entityList在转化成前端所需要的Map集合生成动态表头,代码如下:

获取动态表头方法:通过前端传过来的数据库字段的值,distinct查出这个字段有什么值,然后转化成对应的map集合发给前端实现动态表格

getDropdownItemForOne:

@RequestMapping("/getDropdownItemForOne")public ResultData getDropdownItemForOne(@Param("columnName") String columnName) {Map<String, List<String>> dropdownItems = new HashMap<>();List<Map<String,String>> items = new ArrayList<>();//线上String dbUrl = DatsSourceUrl;String user = DataSourceUser;String password = DataSourcePassword;try (Connection conn = DriverManager.getConnection(dbUrl, user, password);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM report_changjingku_list WHERE 1=2")) { // 只查询字段,不查询数据ResultSetMetaData metaData = rs.getMetaData();String query = "SELECT DISTINCT " + columnName + " FROM report_changjingku_list";try (ResultSet columnResultSet = stmt.executeQuery(query)) {int keyValue = 1; // 初始化键值,从1开始while (columnResultSet.next()) {String value = columnResultSet.getString(1); // 获取查询结果的值Map<String,String> itemMap = new HashMap<>();itemMap.put("name", value);itemMap.put("key", "key" + keyValue);items.add(itemMap);keyValue++; // 键值加1}}} catch (SQLException e) {e.printStackTrace();}return ResultData.success("ok",items);}

查询交叉表拼Sql方法:

test:

@PostMapping("/test")public ResultData test(@RequestAttribute Long _userId,  @RequestBody MixTable mixTable) throws SQLException {//引入hutool工具包创建数据源对象DruidDataSource ds = new DruidDataSource();String verticalDimension = "";String horizontalDimension = "";String value = "";if (mixTable.getVerticalDimension() != null){verticalDimension = mixTable.getVerticalDimension();}if (mixTable.getHorizontalDimension() != null){horizontalDimension = mixTable.getHorizontalDimension();}if (mixTable.getPrice() != null){value = mixTable.getPrice().toString();}ds.setUrl(DatsSourceUrl);ds.setUsername(DataSourceUser);ds.setPassword(DataSourcePassword);StringBuilder sqlSelect = new StringBuilder();sqlSelect.append("select tc.shuweidu, tc.hengweidu, group_concat(tc.xqsl order by tc.xh) as xqhb from (");sqlSelect.append("select @pnum:=case when ta.hengweidu=@pejcj then @pnum+1 else 1 end as xh, @pejcj:=ta.hengweidu, ta.shuweidu, ta.hengweidu, concat(ta.zhi,'(', ta.tnum, ')') as xqsl from (");sqlSelect.append("select ").append(verticalDimension).append(" as shuweidu, ").append(horizontalDimension).append(" as hengweidu, ").append(value).append(" as zhi, count(*) as tnum from report_changjingku_list where 1=1 and ").append(value).append("!=''");// 动态添加条件//年龄if (mixTable.getAge() != null) {sqlSelect.append(" and r_nl=").append("'").append(mixTable.getAge()).append("'");}//行业if (mixTable.getIndustry() != null && !mixTable.getIndustry().isEmpty() ){sqlSelect.append(" and r_hy=").append("'").append(mixTable.getIndustry()).append("'");}//性别if (mixTable.getSex() != null && !mixTable.getSex().isEmpty() ){sqlSelect.append(" and r_xb=").append("'").append(mixTable.getSex()).append("'");}//婚姻状况if (mixTable.getMaritalStatus() != null && !mixTable.getMaritalStatus().isEmpty() ){sqlSelect.append(" and r_hyzk=").append("'").append(mixTable.getMaritalStatus()).append("'");}//小孩数量if (mixTable.getChildNum() != null && !mixTable.getChildNum().isEmpty() ){sqlSelect.append(" and r_xhsl=").append("'").append(mixTable.getChildNum()).append("'");}//小孩年龄段if (mixTable.getChildAgeScope() != null && !mixTable.getChildAgeScope().isEmpty() ){sqlSelect.append(" and r_xhnld=").append("'").append(mixTable.getChildAgeScope()).append("'");}//职业属性if (mixTable.getOccupationAttribute() != null && !mixTable.getOccupationAttribute().isEmpty() ){sqlSelect.append(" and r_zysx=").append("'").append(mixTable.getOccupationAttribute()).append("'");}//家庭年收入情况(万)if (mixTable.getHomeIncome() != null && !mixTable.getHomeIncome().isEmpty() ){sqlSelect.append(" and r_jtnsrqk=").append("'").append(mixTable.getHomeIncome()).append("'");}//学历情况if (mixTable.getEducationalBack() != null && !mixTable.getEducationalBack().isEmpty() ){sqlSelect.append(" and r_xlqk=").append("'").append(mixTable.getEducationalBack()).append("'");}//车系if (mixTable.getCarSeries() != null && !mixTable.getCarSeries().isEmpty() ){sqlSelect.append(" and r_cx=").append("'").append(mixTable.getCarSeries()).append("'");}//级别if (mixTable.getCarLevel() != null && !mixTable.getCarLevel().isEmpty() ){sqlSelect.append(" and r_jb=").append("'").append(mixTable.getCarLevel()).append("'");}//车身类别if (mixTable.getCarBody() != null && !mixTable.getCarBody().isEmpty() ){sqlSelect.append(" and r_cslb=").append("'").append(mixTable.getCarBody()).append("'");}//车型级别if (mixTable.getCarModelLevel() != null && !mixTable.getCarModelLevel().isEmpty() ){sqlSelect.append(" and r_cxjl=").append("'").append(mixTable.getCarModelLevel()).append("'");}//TP价格段(万)if (mixTable.getTpPrice() != null && !mixTable.getTpPrice().isEmpty() ){sqlSelect.append(" and r_tpjgd=").append("'").append(mixTable.getTpPrice()).append("'");}//能源类型if (mixTable.getEnergyType() != null && !mixTable.getEnergyType().isEmpty() ){sqlSelect.append(" and r_nylx=").append("'").append(mixTable.getEnergyType()).append("'");}//一级场景if (mixTable.getOneScene() != null && !mixTable.getOneScene().isEmpty() ){sqlSelect.append(" and r_yjcj=").append("'").append(mixTable.getOneScene()).append("'");}//二级场景描述if (mixTable.getTwoSceneDescription() != null && !mixTable.getTwoSceneDescription().isEmpty() ){sqlSelect.append(" and r_ejcjms=").append("'").append(mixTable.getTwoSceneDescription()).append("'");}//出行阶段if (mixTable.getTravelStage() != null && !mixTable.getTravelStage().isEmpty() ){sqlSelect.append(" and r_cxjd=").append("'").append(mixTable.getTravelStage()).append("'");}//出行人数if (mixTable.getTravelNum() != null && !mixTable.getTravelNum().isEmpty() ){sqlSelect.append(" and r_cxrs=").append(mixTable.getTravelNum());}//用户角色if (mixTable.getUserRole() != null && !mixTable.getUserRole().isEmpty() ){sqlSelect.append(" and r_yhjs=").append("'").append(mixTable.getUserRole()).append("'");}//用户特征if (mixTable.getUserFeature() != null && !mixTable.getUserFeature().isEmpty() ){sqlSelect.append(" and r_yhtz=").append("'").append(mixTable.getUserFeature()).append("'");}//驾驶状态if (mixTable.getDriveStatus() != null && !mixTable.getDriveStatus().isEmpty() ){sqlSelect.append(" and r_jszt=").append("'").append(mixTable.getDriveStatus()).append("'");}//驾驶道路if (mixTable.getDriveRoad() != null && !mixTable.getDriveRoad().isEmpty() ){sqlSelect.append(" and r_jsdl=").append("'").append(mixTable.getDriveRoad()).append("'");}//驾驶区域if (mixTable.getDriveArea() != null && !mixTable.getDriveArea().isEmpty() ){sqlSelect.append(" and r_jsqy=").append("'").append(mixTable.getDriveArea()).append("'");}//天气环境if (mixTable.getWeather() != null && !mixTable.getWeather().isEmpty() ){sqlSelect.append(" and r_tqhj=").append("'").append(mixTable.getWeather()).append("'");}//时间if (mixTable.getTime() != null && !mixTable.getTime().isEmpty() ){sqlSelect.append(" and r_sj=").append("'").append(mixTable.getTime()).append("'");}//季节if (mixTable.getSeason() != null && !mixTable.getSeason().isEmpty() ){sqlSelect.append(" and r_jj=").append("'").append(mixTable.getSeason()).append("'");}//数据采集地点if (mixTable.getDataLocality() != null && !mixTable.getDataLocality().isEmpty() ){sqlSelect.append(" and r_sjcjdd=").append("'").append(mixTable.getDataLocality()).append("'");}//城市等级if (mixTable.getCityLevel() != null && !mixTable.getCityLevel().isEmpty() ){sqlSelect.append(" and r_csdj=").append("'").append(mixTable.getCityLevel()).append("'");}//隶属省份if (mixTable.getProvince() != null && !mixTable.getProvince().isEmpty() ){sqlSelect.append(" and r_lssf=").append("'").append(mixTable.getProvince()).append("'");}//一级指标if (mixTable.getOneIndex() != null && !mixTable.getOneIndex().isEmpty() ){sqlSelect.append(" and r_yjzb=").append("'").append(mixTable.getOneIndex()).append("'");}//二级指标if (mixTable.getTwoIndex() != null && !mixTable.getTwoIndex().isEmpty() ){sqlSelect.append(" and r_ejzb=").append("'").append(mixTable.getTwoIndex()).append("'");}//三级指标if (mixTable.getThreeIndex() != null && !mixTable.getThreeIndex().isEmpty() ){sqlSelect.append(" and r_sjzb=").append("'").append(mixTable.getThreeIndex()).append("'");}//感知价值if (mixTable.getFeelPrice() != null && !mixTable.getFeelPrice().isEmpty() ){sqlSelect.append(" and r_gzjz=").append("'").append(mixTable.getFeelPrice()).append("'");}//感知时刻if (mixTable.getFeelTime() != null && !mixTable.getFeelTime().isEmpty() ){sqlSelect.append(" and r_gzsk=").append("'").append(mixTable.getFeelTime()).append("'");}//当前解决方案if (mixTable.getWorkOutScheme() != null && !mixTable.getWorkOutScheme().isEmpty() ){sqlSelect.append(" and r_dqjjfa=").append("'").append(mixTable.getWorkOutScheme()).append("'");}//数据来源if (mixTable.getDataResource() != null && !mixTable.getDataResource().isEmpty() ){sqlSelect.append(" and r_sjly=").append("'").append(mixTable.getDataResource()).append("'");}sqlSelect.append(" group by ").append(verticalDimension).append(",").append(horizontalDimension).append(",").append(value).append(" order by ").append(verticalDimension).append(",").append(horizontalDimension).append(", tnum desc ) ta inner join (select @pejcj:='', @pnum:=0) tb ) tc where tc.xh<=10 group by tc.shuweidu, tc.hengweidu order by tc.shuweidu, tc.hengweidu");Connection conn = ds.getConnection();List<Entity> entityList = SqlExecutor.query(conn, sqlSelect.toString(), new EntityListHandler());// 处理查询结果Map<String, Map<String, String>> groupedResult = new HashMap<>();for (Entity entity : entityList) {String shuweidu = entity.getStr("shuweidu");String xqhb = entity.getStr("xqhb");// 如果 shuweidu 不存在于结果中,初始化一个新对象if (!groupedResult.containsKey(shuweidu)) {groupedResult.put(shuweidu, new HashMap<>());groupedResult.get(shuweidu).put("name", shuweidu);}// 获取当前对象Map<String, String> itemMap = groupedResult.get(shuweidu);// 动态生成 keyint keyIndex = itemMap.size() - 1; // 已有的键数量String key = "key" + (keyIndex + 1);itemMap.put(key, xqhb);}// 将结果转换为列表List<Map<String, String>> resultList = new ArrayList<>(groupedResult.values());// 打印结果System.out.println(resultList);return ResultData.success("ok", resultList);}

前端:

<!--  -->
<template><div><el-formref="formRef":model="reqUser"label-width="180px"v-loading="formLoading"style="background: #f3f3f3;"><el-row><el-col><ContenWrap><el-row style="margin-top: 0"><div style="background: #fff;"><h1 style="margin-left: 30px; padding-top: 10px;">布局</h1><el-form ><el-row :gutter="24"><el-col :span="12"><el-form-itemprop="verticalDimension"label-width="80px"><div slot="label">竖维度<font color="red">*</font></div><el-selectv-model="reqUser.verticalDimension"class="filter-item"placeholder="请选择竖维度"clearablestyle="width: 230%;"@change="changeVerticalDimension"><el-optionv-for="item in peopleList2":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col><el-col :span="12"><el-form-itemprop="horizontalDimension"label-width="80px"><div slot="label">横维度<font color="red">*</font></div><el-selectv-model="reqUser.horizontalDimension"class="filter-item"placeholder="请选择横维度"clearablestyle="width: 230%;"@change="changeHorizontalDimension"><el-optionv-for="item in sceneList2":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col></el-row><el-row :gutter="24"><el-col :span="6"><el-form-itemlabel="数据来源"prop="dataResource"label-width="80px"><el-selectv-model="reqUser.dataResource"class="filter-item"placeholder="请选择数据来源"clearablestyle="width: 260%;"><el-optionv-for="item in selectSource.r_sjly":key="item":label="item":value="item"/></el-select></el-form-item></el-col><el-col :span="6"><el-form-item label="值" prop="price" label-width="80px"><div slot="label">值<font color="red">*</font></div><el-selectv-model="reqUser.price"class="filter-item"placeholder="请选择值"clearablestyle="width: 260%;"><el-optionv-for="item in statusValueList":key="item.name":label="item.comment":value="item.name"/></el-select></el-form-item></el-col><el-col :span="12"><el-form-item label="时间" prop="time" label-width="80px"><el-date-pickerv-model.trim="reqUser.time"type="datetime"style="width: 230%;"placeholder="选择时间"/></el-form-item></el-col></el-row></el-form></div></el-row></ContenWrap><ContenWrap><el-row :gutter="24" class="downThree"><el-col :span="8"><h1 style="margin-left: 30px;">人群筛选</h1><el-table :data="tableData" border style="width: 100%"><el-table-column prop="label" label="项" width="180" /><el-table-column label="值"><template #default="scope"><el-selectv-model="scope.row.tag"class="filter-item"placeholder="请选择值"clearablestyle="width: 100%;"@change="addValue(scope.row)"><el-optionv-for="item in scope.row.list":key="item":label="item":value="item"/></el-select></template></el-table-column></el-table><el-selectv-model="value1"@change="addForm1(value1)"placeholder="选择项"style="width: 240px;margin-left: 20px;"><el-optionv-for="dict in peopleList":key="dict.value":label="dict.label":value="dict.value"/></el-select></el-col><el-col :span="8"><div><h1 style="margin-left: 30px;">车型筛选</h1><el-table:data="tableData2"borderstyle="width: 100%; margin-right: 20px"><el-table-column prop="label" label="项" width="180" /><el-table-column label="值"><template #default="scope"><el-selectv-model="scope.row.tag"class="filter-item"placeholder="请选择值"clearablestyle="width: 100%;"@change="addValue2(scope.row)"><el-optionv-for="item in scope.row.list":key="item":label="item":value="item"/></el-select></template></el-table-column></el-table><el-selectv-model="value2"@change="addForm2(value2)"placeholder="选择项"style="width: 240px;margin-left: 20px;"><el-optionv-for="dict in carList":key="dict.value":label="dict.label":value="dict.value"/></el-select></div></el-col><el-col :span="8"><div><h1 style="margin-left: 30px;">场景筛选</h1><el-table :data="tableData3" border style="width: 100%"><el-table-column prop="label" label="项" width="180px" /><el-table-column label="值"><template #default="scope"><el-selectv-model="scope.row.tag"class="filter-item"placeholder="请选择值"clearablestyle="width: 100%;"@change="addValue3(scope.row)"><el-optionv-for="item in scope.row.list":key="item":label="item":value="item"/></el-select></template></el-table-column></el-table><el-selectv-model="value3"@change="addForm3(value3)"placeholder="选择项"style="width: 240px;margin-left: 20px;"><el-optionv-for="dict in sceneList":key="dict.value":label="dict.label":value="dict.value"/></el-select></div></el-col></el-row></ContenWrap></el-col></el-row><el-buttontype="primary"@click="save"style="margin-left: 47%;margin-bottom: 0.5%;">查询</el-button></el-form><el-table :data="tableDataList" border height="550px" v-loading="loading"><el-table-columnv-for="(item, index) in headerList"align="center":label="item.mon":key="index":prop="item.key_str"><!-- 自定义第一个表头 --><template v-if="index === 0" #header><div class="header-div"><div class="header-col1">{{ tableVertial }}</div><div class="header-col2">{{ tableHorizontal }}</div><div class="header-line1"></div></div></template></el-table-column><el-table-columnalign="center":label="item1.name"v-for="(item1, index1) in headerList2":key="index1"><template #default="scope"><div>{{scope.row[`${item1.key}`]}}</div></template></el-table-column></el-table></div>
</template><script>
import { tableHeight5 } from "@/utils/tableHeight";
import {addMixTable,getDictLabel,getDropdownItems,getValueDropdownItems,getDictLabelValue,test,getDropdownItemForOne
} from "@/api/mixTableAdd";
import Pagination from "@/components/Pagination";
import { Message, MessageBox } from "element-ui";
import { getToken } from "@/utils/auth";
import { getPage, deleteData } from "@/api/mixTableAdd";
export default {components: { Pagination },mixins: [tableHeight5],data() {return {listLoading: false,total: 0,queryPage: {page: 1,limit: 20,createTime: undefined},reqUser: {verticalDimension: "",horizontalDimension: "",price: "",age: null,industry: "",sex: "",maritalStatus: "",childNum: "",childAgeScope: "",occupationAttribute: "",homeIncome: null,educationalBack: "",carSeries: "",carLevel: "",carBody: "",carModelLevel: "",oneScene: "",twoSceneDescription: "",tpPrice: "",energyType: "",travelStage: "",travelNum: "",userRole: "",userFeature: "",driveStatus: "",driveRoad: "",driveArea: "",time: undefined,weather: "",season: "",dataLocality: "",cityLevel: "",province: "",oneIndex: "",twoIndex: "",threeIndex: "",feelPrice: "",feelTime: undefined,workOutScheme: "",dataResource: ""},exportData: {},tableVertial:"",tableHorizontal:"",tableVertial2:"",tableHorizontal2:"",multipleSelection: [],uploadPath: "http://pbm.langtaosoft.com/questDeal/importData", // 上传urluploadHeaders: "", // 上传头tableData: [], // 列表数据statusList: [], // 状态列表statusValueList: [], // 状态列表dataResource: [], // 数据来源selectSource: {r_nl: []},selectValueSource: {},batchNoList: [], // 数据批次号carList: [], // 车型名称urlOptions: [], // url列表dialogVisibleImport: false, // 导入显示dialogVisibleDeal: false, // 处理弹出peopleList: [{label: "年龄",value: "0",list: [],tag: ""},{label: "TP价格段(万)",value: "1",list: [],tag: ""},{label: "职业属性",value: "2"},{label: "婚姻状况",value: "3"},{label: "小孩数量",value: "4"},{label: "小孩年龄段",value: "5"},{label: "性别",value: "6",list: [],tag: ""},{label: "家庭年收入(万)",value: "7"},{label: "学历情况",value: "8"},{label: "行业",value: "9",list: [],tag: ""},{label: "隶属省份",value: "10",list: [],tag: ""},{label: "城市等级",value: "11",list: [],tag: ""},{label: "用户特征",value: "12",list: [],tag: ""}],peopleList2: [{label: "年龄",value: "r_nl",list: [],tag: ""},{label: "TP价格段(万)",value: "r_tpjgd",list: [],tag: ""},{label: "职业属性",value: "r_zysx"},{label: "婚姻状况",value: "r_hyzk"},{label: "小孩数量",value: "r_xhsl"},{label: "小孩年龄段",value: "r_xhnld"},{label: "性别",value: "r_xb",list: [],tag: ""},{label: "家庭年收入(万)",value: "r_jtnsrqk"},{label: "学历情况",value: "r_xlqk"},{label: "行业",value: "r_hy",list: [],tag: ""},{label: "隶属省份",value: "r_lssf",list: [],tag: ""},{label: "城市等级",value: "r_csdj",list: [],tag: ""},{label: "用户特征",value: "r_yhtz",list: [],tag: ""}],carList: [{label: "能源类型",value: "0",list: [],tag: ""},{label: "级别",value: "1",list: [],tag: ""},{label: "车身类别",value: "2",list: [],tag: ""},{label: "一级指标",value: "3",list: [],tag: ""},{label: "二级指标",value: "4",list: [],tag: ""},{label: "三级指标",value: "5",list: [],tag: ""}],sceneList: [{label: "一级场景",value: "0",list: [],tag: ""},{label: "二级场景描述",value: "1"},{label: "用车阶段",value: "2"},{label: "出行人数",value: "3"},{label: "用户角色",value: "4"},{label: "用户特征",value: "5"},{label: "驾驶状态",value: "6"},{label: "驾驶道路",value: "7"},{label: "驾驶区域",value: "8"},{label: "天气环境",value: "9"},{label: "季节",value: "10"},{label: "出行阶段",value: "11"}],sceneList2: [{label: "一级场景",value: "r_yjcj",list: [],tag: ""},{label: "二级场景描述",value: "r_ejcjms"},{label: "出行阶段",value: "r_cxjd"},{label: "出行人数",value: "r_cxrs"},{label: "用户角色",value: "r_yhjs"},{label: "用户特征",value: "r_yhtz"},{label: "驾驶状态",value: "r_jszt"},{label: "驾驶道路",value: "r_jsdl"},{label: "驾驶区域",value: "r_jsqy"},{label: "天气环境",value: "r_tqhj"},{label: "季节",value: "r_jj"}],painList: [{label: "痛点描述",value: "0",list: [],tag: ""},{label: "痛点备注",value: "1"},{label: "痛点频次",value: "2"},{label: "痛点程度",value: "3"}],indexList: [{label: "一级指标",value: "0",list: [],tag: ""},{label: "二级指标",value: "1"},{label: "三级指标",value: "2"},{label: "感知价值",value: "3"}],solveList: [{label: "当前解决方案",value: "0",list: [],tag: ""}],tableData: [],tableData2: [],tableData3: [],tableData4: [],tableData5: [],tableData6: [],headerList2: [],headercopy: [],headerList: [{mon: '',key_str: 'name'}],tableDataList: [],};},created() {this.getDictLabel();this.getDictLabelValue();this.getDropdownItems();this.loadList();this.tableData = this.peopleList.splice(0, 3);this.tableData2 = this.carList.splice(0, 3);this.tableData3 = this.sceneList.splice(0, 3);this.tableData4 = this.painList.splice(0, 3);this.tableData5 = this.indexList.splice(0, 3);this.tableData6 = this.solveList.splice(0, 3);},methods: {reload() {this.queryPage = { page: 1, limit: 20 };this.loadList();},save() {var data = this.reqUser;// const url =//   "p_shuweidu="+//   data.verticalDimension +//   "&p_hengweidu=" +//   data.horizontalDimension +//   "&p_zhi=" +//   data.price +//   "&p_nl=" +//   data.age +//   "&p_hy=" +//   data.industry +//   "&p_xb=" +//   data.sex +//   "&p_hyzk=" +//   data.maritalStatus +//   "&p_xhsl=" +//   data.childNum +//   "&p_xhnld=" +//   data.childAgeScope +//   "&p_zysx=" +//   data.occupationAttribute +//   "&p_jtnsrqk=" +//   data.homeIncome +//   "&p_xlqk=" +//   data.educationalBack +//   "&p_cx=" +//   data.carSeries +//   "&p_jb=" +//   data.carLevel +//   "&p_cslb=" +//   data.carBody +//   "&p_cxjl=" +//   data.carModelLevel +//   "&p_tpjgd=" +//   data.tpPrice +//   "&p_nylx=" +//   data.energyType +//   "&p_yjcj=" +//   data.oneScene +//   "&p_ejcjms=" +//   data.twoSceneDescription +//   "&p_cxjd=" +//   data.travelStage +//   "&p_cxrs=" +//   data.travelNum +//   "&p_yhjs=" +//   data.userRole +//   "&p_yhtz=" +//   data.userFeature +//   "&p_jszt=" +//   data.driveStatus +//   "&p_jsdl=" +//   data.driveRoad +//   "&p_jsqy=" +//   data.driveArea +//   "&p_tqhj=" +//   data.weather +//   "&p_sj=" +//   data.time +//   "&p_jj=" +//   data.season +//   "&p_sjcjdd=" +//   data.dataLocality +//   "&p_csdj=" +//   data.cityLevel +//   "&p_lssf=" +//   data.province +//   "&p_yjzb=" +//   data.oneIndex +//   "&p_ejzb=" +//   data.twoIndex +//   "&p_sjzb=" +//   data.threeIndex +//   "&p_gzjz=" +//   data.feelPrice +//   "&p_gzsk=" +//   data.feelTime +//   "&p_dqjjfa=" +//   data.workOutScheme +//   "&p_sjly=" +//   data.dataResource;console.log(data.verticalDimension, "123123");if (data.verticalDimension == "") {Message({message: "请选择竖维度",type: "error",duration: 5 * 1000});return;}else if (data.horizontalDimension == "") {Message({message: "请选择横维度",type: "error",duration: 5 * 1000});return;}else if (data.price == "") {Message({message: "请选择值",type: "error",duration: 5 * 1000});return;}else{test(data).then(response => {this.tableDataList = response.datathis.headerList2 = this.headercopythis.tableVertial = this.tableVertial2this.tableHorizontal = this.tableHorizontal2Message({message: "查询成功",type: "success",duration: 5 * 1000});this.dialogVisible = false;// 重新加载表格this.loadList();});}},changeHorizontalDimension(e) {getDropdownItemForOne(e).then(response => {this.headercopy = response.datathis.sceneList2.forEach(item => {if (e === item.value) {console.log(item.label, "123122222223");this.tableHorizontal2 = item.label}})})},changeVerticalDimension(e) {getDropdownItemForOne(e).then(response => {this.peopleList2.forEach(item => {if (e === item.value) {this.tableVertial2 = item.label}})})},// 加载列表loadList() {this.listLoading = true;getPage(this.queryPage).then(response => {const { data } = response;this.exportData = data;this.tableDataValue = data.records;this.total = parseInt(data.total);this.listLoading = false;}).catch(response => {this.listLoading = false;});},handleDelete(row) {console.log(row, "asdsa");MessageBox.confirm("确认删除", "确定", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning"}).then(() => {const loading = this.$loading({lock: true,text: "Loading",spinner: "el-icon-loading",background: "rgba(0, 0, 0, 0.7)"});// 确保 id 是一个数字deleteData(row).then(response => {Message({message: "删除成功",type: "success",duration: 5 * 1000});// 重新加载表格this.loadList();loading.close();}).catch(response => {loading.close();});});},openReport() {const url ="http://192.168.1.176:8084/report//share/share.html?_key=17e534f26cc79add3a2feb14396267b8ad3ade52725c22939e733c79b23835878741bcbe62826c703f60c349fc327322b09ac10474a43b53f1a3f9bd460f2283&p_shuweidu=" +this.reqUser.verticalDimension +"&p_hengweidu=" +this.reqUser.horizontalDimension +"&p_zhi=" +this.reqUser.price +"&p_nl=" +this.reqUser.age +"&p_hy=" +this.reqUser.industry +"&p_xb=" +this.reqUser.sex +"&p_hyzk=" +this.reqUser.maritalStatus +"&p_xhsl=" +this.reqUser.childNum +"&p_xhnld=" +this.reqUser.childAgeScope +"&p_zysx=" +this.reqUser.occupationAttribute +"&p_jtnsrqk=" +this.reqUser.homeIncome +"&p_xlqk=" +this.reqUser.educationalBack +"&p_cx=" +this.reqUser.carSeries +"&p_jb=" +this.reqUser.carLevel +"&p_cslb=" +this.reqUser.carBody +"&p_cxjl=" +this.reqUser.carModelLevel +"&p_tpjgd=" +this.reqUser.tpPrice +"&p_nylx=" +this.reqUser.energyType +"&p_yjcj=" +this.reqUser.oneScene +"&p_ejcjms=" +this.reqUser.twoSceneDescription +"&p_cxjd=" +this.reqUser.travelStage +"&p_cxrs=" +this.reqUser.travelNum +"&p_yhjs=" +this.reqUser.userRole +"&p_yhtz=" +this.reqUser.userFeature +"&p_jszt=" +this.reqUser.driveStatus +"&p_jsdl=" +this.reqUser.driveRoad +"&p_jsqy=" +this.reqUser.driveArea +"&p_tqhj=" +this.reqUser.weather +"&p_sj=" +this.reqUser.time +"&p_jj=" +this.reqUser.season +"&p_sjcjdd=" +this.reqUser.dataLocality +"&p_csdj=" +this.reqUser.cityLevel +"&p_lssf=" +this.reqUser.province +"&p_yjzb=" +this.reqUser.oneIndex +"&p_ejzb=" +this.reqUser.twoIndex +"&p_sjzb=" +this.reqUser.threeIndex +"&p_gzjz=" +this.reqUser.feelPrice +"&p_gzsk=" +this.reqUser.feelTime +"&p_dqjjfa=" +this.reqUser.workOutScheme +"&p_sjly=" +this.reqUser.dataResource;},getDicName(code, flag) {var dict = [];if (flag === "YW_DEAL_STATUS") {dict = this.statusList;}for (var i in dict) {if (dict[i].code === code) {return dict[i].name;}}},// 查询search() {this.loadList();},addForm1(value1) {this.peopleList.forEach(item1 => {if (value1 == item1.value) {this.tableData.push(item1);this.peopleList.splice(this.peopleList.indexOf(item1), 1);this.tableDataCompare();}});},addForm2(value2) {this.carList.forEach(item1 => {if (value2 == item1.value) {this.tableData2.push(item1);this.carList.splice(this.carList.indexOf(item1), 1);this.tableData2Compare();} else {}});},addForm3(value3) {this.sceneList.forEach(item1 => {if (value3 == item1.value) {this.tableData3.push(item1);this.sceneList.splice(this.sceneList.indexOf(item1), 1);this.tableData3Compare();} else {}});},addForm4(value4) {this.painList.forEach(item1 => {if (value4 == item1.value) {this.tableData4.push(item1);this.painList.splice(this.painList.indexOf(item1), 1);} else {}});},addForm5(value5) {this.indexList.forEach(item1 => {if (value5 == item1.value) {this.tableData5.push(item1);this.indexList.splice(this.indexList.indexOf(item1), 1);this.tableData5Compare();} else {}});},addForm6(value6) {this.solveList.forEach(item1 => {if (value6 == item1.value) {this.tableData6.push(item1);this.solveList.splice(this.solveList.indexOf(item1), 1);this.tableData6Compare();} else {}});},getDictLabel() {getDictLabel().then(response => {this.statusList = response.data;});},getDictLabelValue() {getDictLabelValue().then(response => {this.statusValueList = response.data;});},tableDataCompare() {this.tableData.forEach(item => {if (item.value === "0") {item.list = this.selectSource.r_nl;} else if (item.value === "1") {item.list = this.selectSource.r_tpjgd;} else if (item.value === "2") {item.list = this.selectSource.r_zysx;} else if (item.value === "3") {item.list = this.selectSource.r_hyzk;} else if (item.value === "4") {item.list = this.selectSource.r_xhsl;} else if (item.value === "5") {item.list = this.selectSource.r_xhnld;} else if (item.value === "6") {item.list = this.selectSource.r_xb;} else if (item.value === "7") {item.list = this.selectSource.r_jtnsrqk;} else if (item.value === "8") {item.list = this.selectSource.r_xlqk;} else if (item.value === "9") {item.list = this.selectSource.r_hy;} else if (item.value === "10") {item.list = this.selectSource.r_lssf;} else if (item.value === "11") {item.list = this.selectSource.r_csdj;} else if (item.value === "12") {item.list = this.selectSource.r_yhtz;}});},tableData2Compare() {this.tableData2.forEach(item => {if (item.value === "0") {item.list = this.selectSource.r_nylx;} else if (item.value === "1") {item.list = this.selectSource.r_jb;} else if (item.value === "2") {item.list = this.selectSource.r_cslb;} else if (item.value === "3") {item.list = this.selectSource.r_yjzb;} else if (item.value === "4") {item.list = this.selectSource.r_ejzb;} else if (item.value === "5") {item.list = this.selectSource.r_sjzb;}});},tableData3Compare() {this.tableData3.forEach(item => {if (item.value === "0") {item.list = this.selectSource.r_yjcj;} else if (item.value === "1") {item.list = this.selectSource.r_ejcjms;} else if (item.value === "2") {item.list = this.selectSource.r_ycjd;} else if (item.value === "3") {item.list = this.selectSource.r_cxrs;} else if (item.value === "4") {item.list = this.selectSource.r_yhjs;} else if (item.value === "5") {item.list = this.selectSource.r_yhtz;} else if (item.value === "6") {item.list = this.selectSource.r_jszt;} else if (item.value === "7") {item.list = this.selectSource.r_jsdl;} else if (item.value === "8") {item.list = this.selectSource.r_jsqy;} else if (item.value === "9") {item.list = this.selectSource.r_tqhj;} else if (item.value === "10") {item.list = this.selectSource.r_jj;} else if (item.value === "11") {item.list = this.selectSource.r_cxjd;}});},tableData5Compare() {this.tableData5.forEach(item => {if (item.value === "0") {item.list = this.selectSource.r_yjzb;} else if (item.value === "1") {item.list = this.selectSource.r_ejzb;} else if (item.value === "2") {item.list = this.selectSource.r_sjzb;} else if (item.value === "3") {item.list = this.selectSource.r_gzjz;}});},tableData6Compare() {this.tableData6.forEach(item => {if (item.value === "0") {item.list = this.selectSource.r_dqjjfa;}});},getDropdownItems() {getDropdownItems().then(response => {this.selectSource = response.data;this.tableDataCompare();this.tableData2Compare();this.tableData3Compare();this.tableData5Compare();this.tableData6Compare();});},getValueDropdownItems() {getValueDropdownItems().then(response => {this.selectValueSource = response.data;});},addValue(e) {if (e.value === "0") {this.reqUser.age = e.tag;} else if (e.value === "1") {this.reqUser.industry = e.tag;} else if (e.value === "2") {this.reqUser.sex = e.tag;} else if (e.value === "3") {this.reqUser.maritalStatus = e.tag;} else if (e.value === "4") {this.reqUser.childNum = e.tag;} else if (e.value === "5") {this.reqUser.childAgeScope = e.tag;} else if (e.value === "6") {this.reqUser.occupationAttribute = e.tag;} else if (e.value === "7") {this.reqUser.homeIncome = e.tag;} else if (e.value === "8") {this.reqUser.educationalBack = e.tag;}},addValue2(e) {if (e.value === "0") {this.reqUser.carSeries = e.tag;} else if (e.value === "1") {this.reqUser.carLevel = e.tag;} else if (e.value === "2") {this.reqUser.carBody = e.tag;} else if (e.value === "3") {this.reqUser.tpPrice = e.tag;} else if (e.value === "4") {this.reqUser.energyType = e.tag;}},addValue3(e) {if (e.value === "0") {this.reqUser.oneScene = e.tag;} else if (e.value === "1") {this.reqUser.twoSceneDescription = e.tag;} else if (e.value === "2") {this.reqUser.travelStage = e.tag;} else if (e.value === "3") {this.reqUser.travelNum = e.tag;} else if (e.value === "4") {this.reqUser.userRole = e.tag;} else if (e.value === "5") {this.reqUser.userFeature = e.tag;} else if (e.value === "6") {this.reqUser.driveStatus = e.tag;} else if (e.value === "7") {this.reqUser.driveRoad = e.tag;} else if (e.value === "8") {this.reqUser.driveArea = e.tag;} else if (e.value === "9") {this.reqUser.weather = e.tag;} else if (e.value === "10") {this.reqUser.season = e.tag;} else if (e.value === "11") {this.reqUser.dataLocality = e.tag;} else if (e.value === "12") {this.reqUser.cityLevel = e.tag;} else if (e.value === "13") {this.reqUser.province = e.tag;}},addValue5(e) {if (e.value === "0") {this.reqUser.oneIndex = e.tag;} else if (e.value === "1") {this.reqUser.twoIndex = e.tag;} else if (e.value === "2") {this.reqUser.threeIndex = e.tag;} else if (e.value === "3") {this.reqUser.feelPrice = e.tag;}},// 重置reload() {this.queryPage = { page: 1, limit: 20 };this.loadList();},addValue6(e) {if (e.value === "0") {this.reqUser.workOutScheme = e.tag;}}}
};
</script>
<style lang="scss" scoped>
:deep(.input-textarea) {width: 94% !important;
}
:deep(.phone) {width: 60px;
}
.time {margin-top: 1%;
}
.relation1 {margin-left: 0;margin-right: 100px;
}
.el-row {margin-left: 0;margin-right: 0;
}
.el-table {margin: 0 30px;
}
.el-form-item {width: 50%;
}
:deep(.el-select) {--el-select-width: 80%;
}
.el-form-item {width: 47%;
}
:deep(.el-form-item__label) {width: 130px !important;
}
.bold {width: 20px;height: 20px;border-radius: 50%;background: #85afd5;text-align: center;margin-top: 5px;margin-left: -10px;color: #fff;
}
.btitle {line-height: 30px;margin-left: 10px;color: #84b0d5;
}
.tip {border: 1px solid #84b0d5;border-radius: 0 20px 20px 0;width: 140px;height: 30px;display: flex;margin-left: 30px;margin-bottom: 20px;
}
.form-container {display: flex;align-items: center;
}
.m-2 {margin-left: 0;margin-right: 0;
}:deep(.relation .el-form-item__label) {line-height: 48px;
}
:deep(.relation .el-input) {line-height: 48px;display: initial;
}
:deep(.el-input) {width: 100%;
}
:deep(.el-select) {width: 100%;
}
:deep(.el-input-number) {width: 100%;
}
.follow {margin-left: 30px;border: 1px solid #84b0d5;padding: 10px 15px;width: 85px;color: #84b0d5;border-radius: 10px;
}
.foow {background: azure;margin: 0 20px;width: calc(100% - 40px);padding: 21px 0;
}
.el-row {padding: 0 0 10px 0;margin: 0 10px;
}
.el-col-8 {background: #fff;padding-bottom: 10px;margin: 0 10px;
}
.el-table {margin: 5px 20px;width: calc(100% - 40px) !important;
}
.downThree {display: flex;justify-content: space-around;
}
/* 全局标题样式 */
h1 {color: #29c5ab;font-size: 24px;text-align: left;margin-bottom: 20px;
}
::v-deep .el-table thead.is-group th {background: none;
}
::v-deep .el-table thead.is-group tr:first-of-type th:first-of-type {border-bottom: none;
}
::v-deep .el-table thead.is-group tr:first-of-type th:first-of-type div.cell {padding: 0;
}
.header-div {height: 80px;position: relative;
}
.header-col1 {position: absolute;left: 10px;bottom: 10px;
}
.header-col2 {position: absolute;right: 10px;top: 10px;
}
.header-col3 {position: absolute;right: 0;bottom: 0;
}
.header-line1 {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(to top right, transparent 49%, #b3b1b1 50%, transparent 52%);
}
.header-line2 {width: 1px;height: 150px;transform: rotate(-41deg);transform-origin: top;background-color: blue;position: absolute;top: 0;left: 0;
}
::v-deep.el-table--default .el-table__cell {padding: 0 !important;
}
::v-deep.el-table .cell {padding: 0 !important;
}
</style>

相关文章:

Vue实现动态数据透视表(交叉表)

需求:需要根据前端选择的横维度、竖维度、值去生成一个动态的表格&#xff0c;然后把交叉的值放入到对应的横维度和竖维度之下&#xff0c;其实就是excel里面的数据透视表功能&#xff0c;查询交叉语句为sql语句。 实现页面&#xff1a; 选择一下横维度、竖维度、值之后点击查…...

推荐《人工智能算法》卷1、卷2和卷3 合集3本书(附pdf电子书下载)

今天&#xff0c;咱们就一同深入探讨人工智能算法的卷1、卷2和卷3&#xff0c;看看它们各自蕴含着怎样的奥秘&#xff0c;并且附上各自的pdf电子版免费下载地址。 《人工智能算法&#xff08;卷1&#xff09;&#xff1a;基础算法》 下载地址&#xff1a;https://www.panziye…...

元宇宙浪潮下,数字孪生如何“乘风破浪”?

在当今科技飞速发展的时代&#xff0c;元宇宙的概念如同一颗璀璨的新星&#xff0c;吸引了全球的目光。元宇宙被描绘为一个平行于现实世界、又与现实世界相互影响且始终在线的虚拟空间&#xff0c;它整合了多种前沿技术&#xff0c;为人们带来沉浸式的交互体验。而数字孪生&…...

WPF 附加属性

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;附加属性&#xff08;Attached Properties&#xff09;是一种特殊的依赖属性机制&#xff0c;它允许父元素为子元素提供额外的属性支持。这种特性特别适用于布局系统、输入处理和其他需要跨多个控件…...

数据分析 之 怎么看懂图 一

韦恩图怎么看 ①颜色:不同颜色代表不同的集合 ②)颜色重叠部分:表示相交集合共有的元素 ③颜色不重叠的部分:表示改集合独有的元素 ④数字:表示集合独有或共有的元素数量 ⑤百分比:表示该区域元素数占整体的比例 PCA图怎么看 ① 第一主成分坐标轴及主成分贡献率主成分贡献…...

手写数据库MYDB(一):项目启动效果展示和环境配置问题说明

1.项目概况 这个项目实际上就是一个轮子项目&#xff0c;现在我看到的这个市面上面比较火的就是这个首先RPC&#xff0c;好多的机构都在搞这个&#xff0c;还有这个消息队列之类的&#xff0c;但是这个是基于MYSQL的&#xff0c;我们知道这个MYSQL在八股盛宴里面是重点考察对象…...

深入理解椭圆曲线密码学(ECC)与区块链加密

椭圆曲线密码学&#xff08;ECC&#xff09;在现代加密技术中扮演着至关重要的角色&#xff0c;广泛应用于区块链、数字货币、数字签名等领域。由于其在提供高安全性和高效率上的优势&#xff0c;椭圆曲线密码学成为了数字加密的核心技术之一。本文将详细介绍椭圆曲线的基本原理…...

使用 PowerShell 脚本 + FFmpeg 在 Windows 系统中批量计算 MP4视频 文件的总时长

步骤 1&#xff1a;安装 FFmpeg 访问 FFmpeg 官网(Download FFmpeg)&#xff0c;下载 Windows 版编译包&#xff08;如 ffmpeg-release-full.7z&#xff09;。或者到&#xff08;https://download.csdn.net/download/zjx2388/90539014&#xff09;下载完整资料 解压文件&#…...

中医气血精津辨证

中医气血精津辨证 一、气血精津辨证概述 基本概念&#xff1a; 气血精津是构成人体和维持生命活动的基本物质&#xff0c;其生成、运行、输布与脏腑功能密切相关。辨证核心&#xff1a;通过分析气血精津的盛衰、运行障碍及其相互关系&#xff0c;判断疾病本质。 生理关系&…...

Intellij IDEA2023 创建java web项目

Intellij IDEA2023 创建java web项目 零基础搭建web项目1、创建java项目2、创建web项目3、创建测试页面4、配置tomcat5、遇到的问题 零基础搭建web项目 小白一枚&#xff0c;零基础学习基于springMVC的web项目开发&#xff0c;记录开发过程以及中间遇到的问题。已经安装了Inte…...

Scrapy结合Selenium实现滚动翻页数据采集

引言 在当今的互联网数据采集领域&#xff0c;许多网站采用动态加载技术&#xff08;如AJAX、无限滚动&#xff09;来优化用户体验。传统的基于Requests或Scrapy的爬虫难以直接获取动态渲染的数据&#xff0c;而Selenium可以模拟浏览器行为&#xff0c;实现滚动翻页和动态内容…...

Node.js从0.5到1学习计划

以下是针对零基础学习者的10天Node.js高效学习计划&#xff0c;每天聚焦核心知识点并配合实战练习&#xff1a; &#x1f4c6; 10天Node.js速成计划&#xff08;每日4-6小时&#xff09; 核心目标&#xff1a;掌握Node.js核心机制 完成3个实战项目 &#x1f4cd; Day 1-2&…...

python 的 obj的key 变成双引号

在Python中&#xff0c;当你序列化一个对象&#xff08;例如使用json.dumps()方法将对象转换为JSON字符串&#xff09;时&#xff0c;默认情况下&#xff0c;字典的键&#xff08;keys&#xff09;会被转换为字符串。如果你的字典中的键本身就是字符串&#xff0c;并且你想要在…...

sqlmap 源码阅读与流程分析

0x01 前言 还是代码功底太差&#xff0c;所以想尝试阅读 sqlmap 源码一下&#xff0c;并且自己用 golang 重构&#xff0c;到后面会进行 ysoserial 的改写&#xff1b;以及 xray 的重构&#xff0c;当然那个应该会很多参考 cel-go 项目 0x02 环境准备 sqlmap 的项目地址&…...

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例6,TableView16_06 分页表格拖拽排序

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

asp.net mvc 向前端响应json数据。用到jquery

最近在给客户开发提醒软件时&#xff0c;用asp.net mvc 开发。该框架已经集成了bootstrap,直接贴asp.net mvc 端代码&#xff1a; {Layout null; }<!DOCTYPE html><html> <head><meta name"viewport" content"widthdevice-width" /…...

基于物联网的新房甲醛浓度监测系统的设计(论文+源码)

2.1总体方案设计 本次基于物联网的新房甲醛浓度监测系统的设计其系统总体架构如图2.1所示&#xff0c;整个系统在硬件架构上采用了STM32f103作为主控制器&#xff0c;在传感器部分采用了MQ135实现甲醛浓度的检测&#xff0c;并且通过ESP8266 WiFi模块将当前检测的数据传输到手…...

deadsnakes

deadsnakes 是一个 第三方 PPA&#xff08;Personal Package Archive&#xff09;&#xff0c;专门为 Ubuntu 系统提供较新版本的 Python&#xff0c;包括旧版本&#xff08;如 Python 3.9&#xff09;和开发中的测试版本。它的名称是一个幽默的双关&#xff0c;源自电影《Mont…...

Stable Diffusion 图标与像素风格LoRA训练的模型选择及参数设置

图标与像素风格LoRA训练的模型选择及参数设置指导意见 一、基础模型选型策略 图标生成推荐模型 Stable Diffusion 2.1-base 适用场景&#xff1a;通用UI图标、矢量风格设计核心优势&#xff1a;支持768x768分辨率&#xff0c;对几何形状捕捉精准需加载VAE模型&#xff1a;vae…...

【AI学习】人工神经网络

1,人工神经网络(Artificial Neural Networks,ANNs,连接模型,Connection Model) 模仿动物神经网络行为特征(突触联接的结构),进行分布式并行信息处理的算法数学模型。依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。 2,前馈神…...

linux--网络协议初识

linux–网络协议初识 事实: 通信的主机之间距离变长了---->引发出新的通信问题? 如何使用数据问题(应用层)可靠性问题(传输层)主机定位问题(网络层)数据报局域网转发问题(数据链路层) 人提出网络协议解决方案—方案有好有坏–为了方便扩展,替换或维护–故将网络协议设置…...

Linux MariaDB部署

1&#xff1a;查看Linux系统版本 cat /etc/os-release#返回结果&#xff1a; NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI…...

window系统下安装elk

Elasticsearch、logstash、kibana 都为8.17.3版本 Elasticsearch 安装流程 # 下载 https://www.elastic.co/cn/downloads/elasticsearch#ga-release elasticsearch-8.17.3-windows-x86_64 # 解压配置 elasticsearch.yml&#xff0c;下个代码块 # bin目录下双击下述文件&…...

uniapp用户登录及获取用户信息(头像昵称)

低版本情况 微信开发者工具的基础库版本要调到2.27版本以下&#xff0c;能够直接申请用户权限获取用户信息&#xff0c;但是会仅限于开发者调试&#xff0c;在真机测试或已上传的小程序在手机上就不能获取以上的原因是微信小程序wx.getUserProfile 和wx.getUserInfo 这两个获取…...

第五周日志-重新学汇编(2)

机器语言 汇编语言(直接在硬件上工作——硬件系统结构&#xff09;&#xff1a; 1.机器语言 每一种微处理器硬件设计和内部结构不同&#xff08;决定了电信号不同&#xff0c;进而需要不同的机器指令&#xff09; #早期通过纸带机/卡片机输入计算机&#xff0c;进行运算 2…...

Linux下EC11旋转编码器驱动调试

文章目录 1、前言2、使用gpio-keys驱动2.1、dts配置2.2、识别原理2.3、应用层驱动实现2.4、编译测试 3、使用rotary-encoder驱动3.1、dts配置3.2、app测试程序编写3.3、编译测试 4、总结 1、前言 本来是没有这篇文章的。最近在rk3576下调试ec11旋转编码器时&#xff0c;一直没…...

【无标题】Java的基础准备

一、cmd的常见命令 盘符名称冒号 说明&#xff1a;盘符切换dir 说明&#xff1a;查看当前路径下的内容cd目录 说明&#xff1a;进入单极目录cd.. 说明&#xff1a;回退到上一级目录cd目录1\目录2\... 说明&#xff1a;进入多级目录cd\ …...

【数学建模】(启发式算法)遗传算法:自然选择的计算模型

遗传算法&#xff1a;自然选择的计算模型 文章目录 遗传算法&#xff1a;自然选择的计算模型1. 引言2. 遗传算法的基本原理2.1 基本概念2.2 算法流程 3. 编码方式3.1 二进制编码3.2 实数编码3.3 排列编码 4. 选择操作4.1 轮盘赌选择4.2 锦标赛选择4.3 精英保留策略 5. 交叉操作…...

嵌入式八股,static在Linux驱动编写时的用处

1. 限制作用域 static关键字可以用来限制函数或变量的作用域&#xff0c;使其只能在当前文件内被访问。这有助于避免命名冲突&#xff0c;并提高代码的模块化和可维护性。 只能在当前文件里访问&#xff0c;或调用当前文件里有的函数。 // 文件 A.h static int globalVar 1…...

RCE——回调后门

目录 rce简述 rce漏洞 rce漏洞产生分类 rce漏洞级别 创造tips的秘籍——回调后门 call_user_func 解析 如何执行后门 call_user_func_array array_filter、array_map 解析 如何执行后门 php5.4.8中的assert——二参数的回调函数 uasort uksort array_reduce() …...