低代码可视化-转盘小游戏可视化-代码生成器

转盘小程序是一种互动工具,它通过模拟真实的转盘抽奖或决策体验,为用户提供了一种有趣且公平的选择方式。以下是对转盘小程序的详细介绍:

转盘小程序的应用场景

日常决策:转盘小程序可以帮助用户解决日常生活中的选择困难问题,如决定晚餐吃什么、周末去哪里玩等。
聚会游戏:在聚会或派对中,转盘小程序可以作为互动游戏,增添欢乐气氛。用户可以自定义转盘内容,如真心话大冒险、喝酒游戏等。
企业活动:转盘小程序也常被用于企业年会、新品发布、客户答谢等活动中,作为抽奖或互动环节,提升现场气氛并收集参与者信息。


转盘小程序的特点

用户友好:转盘小程序通常具有直观易用的界面,用户无需编程基础即可快速上手。
高度可定制:用户可以根据自己的需求自定义转盘样式、选项、概率等,满足特定场景下的使用需求。
互动性强:转盘小程序支持分享功能,用户可以将自己制作的转盘分享给朋友或家人,一起享受互动的乐趣。
数据收集:在企业活动中,转盘小程序可以帮助主办方收集参与者信息,为后续营销活动提供数据支持。

功能设计 

大转盘组件

拖进一个转盘组件进设计器。

转盘中奖自定义

转盘中奖项通过子表单用户快速自定义

实现代码如下

<template><view class="container container334706"><u-form-item :borderBottom="false" v-if="!showForm && globalData.isshow" class="diygw-col-24 title-clz" labelPosition="top" prop="title"><u-input @blur="listApi" :data-title_like="title" :focus="titleFocus" placeholder="请输入产品标题" v-model="title"></u-input><text @tap="navigateTo" data-type="listApi" :data-title_like="title" class="diy-icon-search" style="color: #363636; font-size: 32rpx"></text></u-form-item><view v-if="!showForm && list.total > 0" class="flex flex-wrap diygw-col-24 flex-direction-column"><view v-for="(item, index) in list.rows" :key="index" class="flex flex-wrap diygw-col-24 flex-direction-column flex4-clz" @tap="navigateTo" data-type="page" data-url="/pages/index" :data-id="item.id" data-redirect="1"><text class="diygw-text-line2 diygw-col-24 text1-clz">{{ item.title }}</text><text v-if="item.remark" class="diygw-text-line3 diygw-col-24 text2-clz">{{ item.remark }}</text><view class="flex flex-wrap diygw-col-24 justify-end items-center flex2-clz"><text @tap.stop="navigateTo" data-type="editFunction" :data-index="index" class="diygw-col-0 text6-clz"> 修改 </text><text @tap.stop="navigateTo" data-type="copyApi" :data-id="item.id" :data-index="index" class="diygw-col-0 text4-clz"> 复制 </text><text @tap.stop="navigateTo" data-type="delApi" :data-id="item.id" :data-index="index" class="diygw-col-0 text13-clz"> 删除 </text></view></view></view><view v-if="!showForm && globalData.isshow && (globalOption.isself || userInfo.username == 'admin')" class="flex flex-wrap diygw-col-24 justify-start diygw-bottom flex3-clz"><view class="flex flex-wrap diygw-col-24 justify-center items-center green flex20-clz" @tap="showForm = true"><text class="flex icon2 diygw-col-0 diy-icon-add"></text><text class="diygw-col-0"> 新增转盘 </text></view></view><view v-if="globalData.isshow && list.code == 200 && list.total == 0" class="flex flex-wrap diygw-col-24 flex-direction-column items-center flex-clz"><image src="/static/zwjl.png" class="image-size diygw-image diygw-col-0" mode="widthFix"></image><text class="diygw-col-0 text-clz"> 未找到任何数据 </text></view><u-form :model="form" :rules="formRules" :errorType="['message', 'toast']" ref="formRef" v-if="showForm" class="flex diygw-form diygw-col-24 form-clz"><view class="flex flex-wrap diygw-col-24 flex-direction-column flex1-clz"><u-form-item class="diygw-col-24" :required="true" label="转盘标题" prop="title"><u-input :focus="formData.titleFocus" placeholder="请输入标题" v-model="form.title"></u-input></u-form-item><u-form-item class="diygw-col-24" label="转盘描述" prop="remark"><u-input maxlength="200" height="60px" class="" placeholder="请输入提示信息" v-model="form.remark" type="textarea"></u-input></u-form-item><view class="flex flex-wrap diygw-col-24"><view class="diygw-col-24" v-for="(configItem, configIndex) in form.config" :key="configIndex"><u-form class="diygw-col-24" :model="form.config[configIndex]" :errorType="['message', 'toast']" ref="configRef" :rules="configItemRules"><view class="flex flex-wrap diygw-col-24 flex-direction-column flex5-clz"><u-form-item class="diygw-col-24" label="奖项" prop="text"><u-input :focus="formData.configItemDatas[configIndex].textFocus" placeholder="请输入奖项" v-model="configItem.text"></u-input></u-form-item><u-form-item class="diygw-col-24" label="中奖率" prop="range"><u-input :focus="formData.configItemDatas[configIndex].rangeFocus" placeholder="请输入提示信息" v-model="configItem.range"></u-input></u-form-item><u-form-item class="diygw-col-24" label="奖项背景色" prop="background"><u-input @tap="formData.configItemDatas[configIndex].showBackground = true" placeholder="请输入奖项背景色,不填写默认生成" v-model="configItem.background"></u-input><text class="diygw-text-lg diy-icon-colorlens" @tap="formData.configItemDatas[configIndex].showBackground = true" :style="{ color: configItem.background }"></text><diy-color-picker v-model="formData.configItemDatas[configIndex].showBackground" :hexcolor="configItem.background" @confirm="changeConfigItemBackground($event, configIndex, configItem)"></diy-color-picker></u-form-item></view></u-form><view class="formconfigtools flex justify-end"><button @tap="upConfigItem" :data-index="configIndex" class="diygw-btn flex-sub radius margin-xs"><text class="button-icon diy-icon-fold"></text> 上移</button><button @tap="downConfigItem" :data-index="configIndex" class="diygw-btn flex-sub radius margin-xs"><text class="button-icon diy-icon-unfold"></text> 下移</button><button @tap="addConfigItem" :data-index="configIndex" class="diygw-btn flex-sub radius margin-xs"><text class="button-icon diy-icon-add"></text> 新增</button><button @tap="delConfigItem" :data-index="configIndex" class="diygw-btn flex-sub radius margin-xs"><text class="button-icon diy-icon-close"></text> 删除</button></view></view></view></view><view class="flex diygw-col-24"><button @tap="showForm = false" class="diygw-btn red radius flex-sub margin-xs button-button-clz">取消</button><button @click="submitForm" class="diygw-btn green radius flex-sub margin-xs button-button-clz">保存</button></view></u-form><view class="clearfix"></view></view>
</template><script>export default {data() {return {//用户全局信息userInfo: {},//页面传参globalOption: {},//自定义全局变量globalData: { isshow: false },listNum: 1,list: {rows: [{id: 0,title: '',remark: '',img: '',userId: 0,createTime: '',updateTime: '',deleteTime: null}],total: 0,code: 0,msg: ''},copy: {code: 200,msg: '复制成功'},del: {code: 200,msg: '删除成功'},titleFocus: false,title: '',showForm: false,formRules: {title: [{trigger: ['change', 'blur'],required: true,message: '标题不能为空'}]},form: {title: '',remark: '',config: []},formData: {titleFocus: false,configItemDatas: []},configItemRules: {},configItemData: {textFocus: false,rangeFocus: false,showBackground: false},configItem: {text: '',range: '',background: ''}};},onShow() {this.setCurrentPage(this);},onLoad(option) {this.setCurrentPage(this);if (option) {this.setData({globalOption: this.getOption(option)});}this.init();},onReady() {this.$refs.formRef?.setRules(this.formRules);this.initConfigData();},methods: {async init() {await this.listApi();await this.initResetform();},// 列表数据 API请求方法async listApi(param) {let thiz = this;param = param || {};//如果请求要重置页面,请配置点击附加参数refresh=1  增加判断如输入框回调param不是对象if (param.refresh || typeof param != 'object') {this.listNum = 1;}//请求地址及请求数据,可以在加载前执行上面增加自己的代码逻辑let http_url = '/game/project/list';let http_data = {pageNum: this.listNum,pageSize: 10,title_like: param.title_like || this.title};let http_header = {};if (!this.globalOption.isself) {http_data.userId = '1';} else {http_data.isself = '1';}let list = await this.$http.post(http_url, http_data, http_header, 'json');let datarows = list.rows;if (http_data.pageNum == 1) {this.list = list;} else if (datarows) {let rows = this.list.rows.concat(datarows);list.rows = rows;this.list = Object.assign(this.list, list);}if (datarows && datarows.length > 0) {this.listNum = this.listNum + 1;}this.globalData.isshow = true;},// 复制数据 API请求方法async copyApi(param) {let thiz = this;param = param || {};//请求地址及请求数据,可以在加载前执行上面增加自己的代码逻辑let http_url = '/game/project/copy';let http_data = {id: param.id || this.item.id || '1',index: param.index || this.index};let http_header = {};let flag = await this.showModal('是否确定复制该数据');if (!flag) {this.showToast('你已取消删');return;}let copy = await this.$http.post(http_url, http_data, http_header, 'json');this.copy = copy;await this.listApi({ refresh: 1 });},// 删除数据 API请求方法async delApi(param) {let thiz = this;param = param || {};//请求地址及请求数据,可以在加载前执行上面增加自己的代码逻辑let http_url = '/game/project/del';let http_data = {id: param.id || this.item.id,index: param.index || this.index};let http_header = {};let flag = await this.showModal('是否确定删除该数据');if (!flag) {this.showToast('你已取消删');return;}let del = await this.$http.post(http_url, http_data, http_header, 'json');this.del = del;if (del.code == 200) {this.list.rows.splice(param.index, 1);this.list.total = this.list.rows.length;this.showToast('删除数据成功');} else {this.showToast('删除数据失败', 'error');}},// 修改数据 自定义方法async editFunction(param) {let thiz = this;let index = param && (param.index || param.index == 0) ? param.index : thiz.index || '';let form = JSON.parse(JSON.stringify(this.list.rows[param.index]));form.config = JSON.parse(form.config);let configItemDatas = [];form.config.forEach((item) => {configItemDatas.push(JSON.parse(JSON.stringify(this.configItemData)));});this.formData.configItemDatas = configItemDatas;this.form = form;this.showForm = true;},//初始化显示子表单数据条数initConfigData() {for (let i = 0; i < 1; i++) {this.form.config.push(JSON.parse(JSON.stringify(this.configItem)));this.formData.configItemDatas.push(JSON.parse(JSON.stringify(this.configItemData)));}this.initConfigValid();},//子表单验证initConfigValid() {this.$nextTick(() => {this.$refs['configRef']?.forEach((subform) => {subform.setRules(this.configItemRules);});});},//上移子表单upConfigItem(evt) {let { index } = evt.currentTarget.dataset;if (index == 0) {this.navigateTo({type: 'tip',tip: '已经是第一个'});return false;}this.form.config[index] = this.form.config.splice(index - 1, 1, this.form.config[index])[0];this.formData.configItemDatas[index] = this.formData.configItemDatas.splice(index - 1, 1, this.formData.configItemDatas[index])[0];this.initConfigValid();},//下移子表单downConfigItem(evt) {let { index } = evt.currentTarget.dataset;if (index == this.form.config.length - 1) {this.navigateTo({type: 'tip',tip: '已经是最后一个'});return false;}this.form.config[index] = this.form.config.splice(index + 1, 1, this.form.config[index])[0];this.formData.configItemDatas[index] = this.formData.configItemDatas.splice(index + 1, 1, this.formData.configItemDatas[index])[0];this.initConfigValid();},//删除子表单delConfigItem(evt) {let { index } = evt.currentTarget.dataset;this.form.config.splice(index, 1);this.formData.configItemDatas.splice(index, 1);this.initConfigValid();},//增加子表单addConfigItem() {this.form.config.push(JSON.parse(JSON.stringify(this.configItem)));this.formData.configItemDatas.push(JSON.parse(JSON.stringify(this.configItemData)));this.initConfigValid();},//验证所有的子表单checkConfigValid() {let flag = true;this.$refs['configRef']?.forEach((subform) => {subform.validate((valid) => {if (!valid) {flag = false;return false;}});});return flag;},changeConfigItemBackground(evt, configIndex, configItem) {let result = evt.hex;configItem.background = result;},initResetform() {this.initform = JSON.stringify(this.form);//如果想给表单默认初始值,其中row为某一行数据也可能是API返回的结果集,然后给到this.form//this.form = this.$tools.changeRowToForm(row,this.form)},resetForm() {this.form = JSON.parse(this.initform);},async submitForm(e) {this.$refs.formRef?.setRules(this.formRules);this.initConfigValid();this.$nextTick(async () => {let configvalid = await this.checkConfigValid();let valid = await this.$refs.formRef.validate();if (valid && configvalid) {//保存数据let param = this.form;let header = {'Content-Type': 'application/json'};let url = '/game/project/add';if (this.form.id) {url = '/game/project/update';}uni.showLoading({title: '正在保存...'});let res = await this.$http.post(url, param, header, 'json');uni.hideLoading();if (res.code == 200) {//更新列表数据this.listNum = 1;this.listApi();if (this.form.id) {this.showToast('更新成功');//关闭表单this.showForm = false;} else {//提示是否继续新增let flag = await this.showModal('是否继续新增');if (flag) {//重置表单this.resetForm();} else {//关闭窗口this.showForm = false;}}} else {this.showModal(res.msg, '提示', false);}} else {console.log('验证失败');}});}},onPullDownRefresh() {// 列表数据 API请求方法this.listNum = 1;this.listApi();uni.stopPullDownRefresh();},onReachBottom() {// 列表数据 API请求方法this.listApi();}};
</script><style lang="scss" scoped>.title-clz {background-color: #ffffff;margin-left: 16rpx;border-bottom-left-radius: 12rpx;overflow: hidden;width: calc(100% - 16rpx - 16rpx) !important;border-top-left-radius: 12rpx;margin-top: 16rpx;border-top-right-radius: 12rpx;border-bottom-right-radius: 12rpx;margin-bottom: 16rpx;margin-right: 16rpx;}.flex4-clz {padding-top: 10rpx;border-bottom-left-radius: 12rpx;padding-left: 10rpx;padding-bottom: 10rpx;border-top-right-radius: 12rpx;margin-right: 20rpx;background-color: #ffffff;margin-left: 20rpx;overflow: hidden;width: calc(100% - 20rpx - 20rpx) !important;border-top-left-radius: 12rpx;margin-top: 10rpx;border-bottom-right-radius: 12rpx;margin-bottom: 10rpx;padding-right: 10rpx;}.text1-clz {padding-top: 10rpx;padding-left: 10rpx;font-size: 28rpx !important;padding-bottom: 10rpx;padding-right: 10rpx;}.text2-clz {padding-top: 10rpx;color: #7c7c7c;padding-left: 10rpx;padding-bottom: 10rpx;padding-right: 10rpx;}.flex2-clz {border-top: 2rpx solid #eee;padding-top: 10rpx;color: #6b6b6b;padding-left: 10rpx;padding-bottom: 10rpx;padding-right: 10rpx;}.text6-clz {border: 2rpx solid #038af2;padding-top: 10rpx;border-bottom-left-radius: 10rpx;color: #038af2;padding-left: 20rpx;padding-bottom: 10rpx;border-top-right-radius: 10rpx;margin-right: 10rpx;background-color: #f0f1ff;margin-left: 10rpx;overflow: hidden;border-top-left-radius: 10rpx;margin-top: 10rpx;border-bottom-right-radius: 10rpx;margin-bottom: 10rpx;padding-right: 20rpx;}.text4-clz {border: 2rpx solid #038af2;padding-top: 10rpx;border-bottom-left-radius: 10rpx;color: #038af2;padding-left: 20rpx;padding-bottom: 10rpx;border-top-right-radius: 10rpx;margin-right: 10rpx;background-color: #f0f1ff;margin-left: 10rpx;overflow: hidden;border-top-left-radius: 10rpx;margin-top: 10rpx;border-bottom-right-radius: 10rpx;margin-bottom: 10rpx;padding-right: 20rpx;}.text13-clz {border: 2rpx solid #ffb08f;padding-top: 10rpx;border-bottom-left-radius: 10rpx;color: #ff592c;padding-left: 20rpx;padding-bottom: 10rpx;border-top-right-radius: 10rpx;margin-right: 10rpx;background-color: #fff4f0;margin-left: 10rpx;overflow: hidden;border-top-left-radius: 10rpx;margin-top: 10rpx;border-bottom-right-radius: 10rpx;margin-bottom: 10rpx;padding-right: 20rpx;}.flex3-clz {padding-top: 16rpx;border-bottom-left-radius: 0rpx;color: #747474;bottom: 0rpx;padding-left: 16rpx;padding-bottom: 16rpx;border-top-right-radius: 20rpx;background-color: #ffffff;overflow: hidden;left: 0rpx;border-top-left-radius: 20rpx;border-bottom-right-radius: 0rpx;padding-right: 16rpx;}.flex20-clz {padding-top: 16rpx;border-bottom-left-radius: 200rpx;overflow: hidden;font-weight: bold;padding-left: 10rpx;font-size: 28rpx !important;padding-bottom: 16rpx;border-top-left-radius: 200rpx;border-top-right-radius: 200rpx;border-bottom-right-radius: 200rpx;padding-right: 10rpx;}.icon2 {font-size: 40rpx;}.flex-clz {padding-top: 20rpx;padding-left: 20rpx;padding-bottom: 20rpx;padding-right: 20rpx;}.image-size {height: 400rpx !important;width: 400rpx !important;}.text-clz {color: #969696;font-size: 28rpx !important;}.form-clz {padding-top: 10rpx;border-bottom-left-radius: 12rpx;padding-left: 10rpx;padding-bottom: 10rpx;border-top-right-radius: 12rpx;margin-right: 20rpx;background-color: #ffffff;margin-left: 20rpx;overflow: hidden;width: calc(100% - 20rpx - 20rpx) !important;border-top-left-radius: 12rpx;margin-top: 10rpx;border-bottom-right-radius: 12rpx;margin-bottom: 10rpx;padding-right: 10rpx;}.flex1-clz {overflow: auto;}.formconfigtools {position: absolute;z-index: 1;right: 30rpx;bottom: 16rpx;}.formconfigtools .diygw-btn {padding: 5px;height: auto;flex: inherit;border-radius: 20px;}.flex5-clz {border: 2rpx solid #eee;padding-top: 10rpx;border-bottom-left-radius: 12rpx;padding-left: 10rpx;padding-bottom: 80rpx;border-top-right-radius: 12rpx;margin-right: 10rpx;margin-left: 10rpx;overflow: hidden;width: calc(100% - 10rpx - 10rpx) !important;border-top-left-radius: 12rpx;margin-top: 10rpx;border-bottom-right-radius: 12rpx;margin-bottom: 10rpx;padding-right: 10rpx;}.button-button-clz {margin: 6rpx !important;}.container334706 {padding-bottom: 160rpx;background-color: #f5f5f5;}
</style>

点击列表传id进转盘页面

首页获取转盘ID

根据用户维护的列表id动态显示出来。

<template><view class="container container334706"><view v-if="isshow" class="flex flex-wrap diygw-col-24 flex-direction-column items-center flex-clz"><view class="diygw-col-24"><diy-lucky-wheel ref="refPrize" width="600rpx" height="600rpx" :blocks="prizeConfig.blocks" :prizes="prizeConfig.prizes" :buttons="prizeConfig.buttons" :defaultStyle="prizeConfig.defaultStyle" :defaultConfig="prizeConfig.defaultConfig" @start="startPrize" @end="endPrize"></diy-lucky-wheel></view><view class="flex flex-wrap diygw-col-24 justify-center flex1-clz"><text @tap="navigateTo" data-type="page" data-url="/pages/records" class="diygw-col-0 more-clz"> 热门转盘 </text><text @tap="navigateTo" data-type="page" data-url="/pages/records" data-isself="1" class="diygw-col-0 text-clz"> 我的转盘 </text></view></view><view class="clearfix"></view></view>
</template><script>export default {data() {return {//用户全局信息userInfo: {},//页面传参globalOption: {},//自定义全局变量globalData: {},dataNum: 1,data: {code: 0,msg: '',data: {id: 0,title: '',config: '',remark: '',userId: 0,createTime: '',updateTime: '',deleteTime: null}},isshow: false,prize: undefined,prizeConfig: {blocks: [{ padding: '0' }],prizes: [{ range: 1, background: '#fea832', fonts: [{ text: '一等奖', top: '20' }], imgs: [{ src: '/static/ps.png', top: '50', width: '50px' }] },{ range: 1, background: '#fedb41', fonts: [{ text: '二等奖', top: '20' }] },{ range: 1, background: '#fea832', fonts: [{ text: '三等奖', top: '20' }] },{ range: 1, background: '#fedb41', fonts: [{ text: '四等奖', top: '20' }] },{ range: 1, background: '#fea832', fonts: [{ text: '五等奖', top: '20' }] },{ range: 1, background: '#fedb41', fonts: [{ text: '谢谢参与', top: '20' }] }],buttons: [{ radius: '40%', background: '#f44b24' },{ radius: '35%', background: '#fea832' },{ radius: '30%', background: '#ffecbf', pointer: true, fonts: [{ text: '开始', top: '-25' }] },{ radius: '30%', pointer: true, fonts: [{ text: '抽奖' }] }],defaultStyle: { gutter: 0, speed: 20, accelerationTime: 2500, decelerationTime: 2500 }}};},onShow() {this.setCurrentPage(this);},onLoad(option) {this.setCurrentPage(this);if (option) {this.setData({globalOption: this.getOption(option)});}this.init();},methods: {async init() {await this.dataApi();await this.isloginFunction();},// 列表数据 API请求方法async dataApi(param) {let thiz = this;param = param || {};//如果请求要重置页面,请配置点击附加参数refresh=1  增加判断如输入框回调param不是对象if (param.refresh || typeof param != 'object') {this.dataNum = 1;}//请求地址及请求数据,可以在加载前执行上面增加自己的代码逻辑let http_url = '/game/api.project/get';let http_data = {pageNum: this.dataNum,pageSize: 10,id: param.id || this.globalOption.id || '1'};let http_header = {};//不是修改,初始化用户信息if (!this.globalOption.id) {this.isshow = true;return;}let data = await this.$http.post(http_url, http_data, http_header, 'json');let datarows = data.rows;if (http_data.pageNum == 1) {this.data = data;} else if (datarows) {let rows = this.data.rows.concat(datarows);data.rows = rows;this.data = Object.assign(this.data, data);}if (datarows && datarows.length > 0) {this.dataNum = this.dataNum + 1;}uni.setNavigationBarTitle({title: data.data.title});let config = JSON.parse(data.data.config);function getRandomColor(index) {let colors = ['#fea832', 'fedb41'];return colors[index % 2];}let prizes = config.map((item, index) => {return { range: item.range ? parseInt(item.range) : 1, background: item.background || getRandomColor(index), fonts: [{ text: item.text, top: '20' }] };});this.prizeConfig.prizes = prizes;this.isshow = true;},// 判断用户是否登录 自定义方法async isloginFunction(param) {let thiz = this;if (!this.$session.getToken()) {//比如未登录,转身到其他页面等this.showToast('请先登录');this.navigateTo({type: 'page',url: 'login'});return;}},// 退出登录 自定义方法async logoutFunction(param) {let thiz = this;this.$session.clearUser();this.navigateTo({type: 'page',url: 'login'});},// 得奖回调 自定义方法async changeZhongjiangFunction(param) {let thiz = this;let prize = param && (param.prize || param.prize == 0) ? param.prize : thiz.prize || '';console.log(JSON.stringify(prize));this.navigateTo({type: 'tip',tip: prize.fonts[0].text});let flag = await this.showModal(prize.fonts[0].text);},//开始startPrize() {this.$refs.refPrize.play();setTimeout(() => {this.$refs.refPrize.stop();}, 3000);},// 停止endPrize(prize) {this.prize = prize;this.navigateTo({ prize: this.prize, type: 'changeZhongjiangFunction' });}},onPullDownRefresh() {// 列表数据 API请求方法this.dataNum = 1;this.dataApi();uni.stopPullDownRefresh();},onReachBottom() {// 列表数据 API请求方法this.dataApi();}};
</script><style lang="scss" scoped>.flex-clz {padding-top: 40rpx;padding-left: 10rpx;padding-bottom: 10rpx;padding-right: 10rpx;}.flex1-clz {margin-left: 10rpx;font-weight: bold;width: calc(100% - 10rpx - 10rpx) !important;font-size: 32rpx !important;margin-top: 30rpx;margin-bottom: 10rpx;margin-right: 10rpx;}.more-clz {padding-top: 10rpx;padding-left: 10rpx;padding-bottom: 10rpx;padding-right: 10rpx;}.text-clz {padding-top: 10rpx;padding-left: 10rpx;padding-bottom: 10rpx;padding-right: 10rpx;}.container334706 {}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB文档查询

一、实验目的 1. 理解MongoDB文档数据库的基本概念和特性。 2. 掌握在MongoDB中创建集合和插入文档数据的方法。 3. 学习使用MongoDB进行文档查询操作&#xff0c;包括查询、过滤和排序等。 二、实验环境准备 1. JAVA环境准备&#xff1a;确保Java Development Kit (J…

速通Docker === 使用最佳实践总结

目录 主要使用步骤 1. 命令 2. 网络 3. 存储 卷存储&#xff08;Volumes&#xff09; 目录挂载&#xff08;Bind Mounts&#xff09; 比较 4. 环境变量 5. 端口 示例&#xff1a;启动 MySQL 容器 解释&#xff1a; 总结 Docker 是一个开源的应用容器引擎&#xff0…

Postgresql源码(140)理解PG的编译流程(make、Makefile、Makefile.global.in)

PG16 PG中使用的makefile看起来代码比较多&#xff0c;但是实际逻辑比较简单&#xff0c;这里做一些抽象总结。 总结 Makefile.global.in的$(recurse)宏自动生成了target&#xff0c;可以方便的进入内存目录进行编译。 all: all-common-recurse all-common-recurse: submak…

c语言中的数组(上)

数组的概念 数组是⼀组相同类型元素的集合&#xff1b; 数组中存放的是1个或者多个数据&#xff0c;但是数组元素个数不能为0。 数组中存放的多个数据&#xff0c;类型是相同的。 数组分为⼀维数组和多维数组&#xff0c;多维数组⼀般⽐较多⻅的是⼆维数组。 数组创建 在C语言…

戴尔电脑设置u盘启动_戴尔电脑设置u盘启动多种方法

最近有很多网友问&#xff0c;戴尔台式机怎么设置u盘启动&#xff0c;特别是近两年的戴尔台式机比较复杂&#xff0c;有些网友不知道怎么设置&#xff0c;其实设置u盘启动有两种方法&#xff0c;下面小编教大家戴尔电脑设置u盘启动方法。 戴尔电脑设置u盘启动方法一、戴尔进入b…

2【选修】再探宝可梦、数码宝贝分类器

1 Pokemon/Digimon Classifier 1.1 Observation 1.2 Function 1.3 Loss 1.4 Training Examples – OOPS what do we want? 2 What is the probability of sampling bad D t r a i n D_{train} Dtrain​ 2.1 Theroy – Larger N N N smaller ∣ H ∣ |H| ∣H∣ 2.2…

ASP.NET Core 6.0 如何处理丢失的 Startup.cs 文件

介绍 .NET 6.0 已经发布&#xff0c;ASP.NET Core 6.0 也已发布。其中有不少变化让很多人感到困惑。例如&#xff0c;“谁动了我的奶酪”&#xff0c;它在哪里Startup.cs&#xff1f;在这篇文章中&#xff0c;我将深入研究这个问题&#xff0c;看看它移动到了哪里以及其他变化。…

欧几里得算法求最小公倍数和最大公约数

一.最大公约数 gcd(a,b)gcd(b,a%b) 递归式,当且仅当b0&#xff0c;易得0和a的公约数为a.(可作为递归的出口) 证明&#xff1a; int gcd(int a, int b) {if (b 0) return a;else return gcd(b, a % b); } 二.最小公倍数 给定整数a b&#xff0c;求a b的最小公倍数 有图可知…

文档解析:PDF里的复杂表格、少线表格如何还原?

PDF中的复杂表格或少线表格还原通常需要借助专业的工具或在线服务&#xff0c;以下是一些可行的方法&#xff1a; 方法一&#xff1a;使用在线PDF转换工具 方法二&#xff1a;使用桌面PDF编辑软件 方法三&#xff1a;通过OCR技术提取表格 方法四&#xff1a;手动重建表格 …

【C++高并发服务器WebServer】-2:exec函数簇、进程控制

本文目录 一、exec函数簇介绍二、exec函数簇 一、exec函数簇介绍 exec 函数族的作用是根据指定的文件名找到可执行文件&#xff0c;并用它来取代调用进程的内容&#xff0c;换句话说&#xff0c;就是在调用进程内部执行一个可执行文件。 exec函数族的函数执行成功后不会返回&…

TDengine 与上海电气工业互联网平台完成兼容性认证

在工业数字化转型和智能化升级的浪潮中&#xff0c;企业对高效、可靠的数据管理解决方案的需求日益增长。特别是在风电智能运维、火电远程运维、机床售后服务等复杂多样的工业场景下&#xff0c;如何实现海量设备和时序数据的高效管理&#xff0c;已经成为推动行业升级的关键。…

machine learning knn算法之使用KNN对鸢尾花数据集进行分类

通过导入必要的scikit-learn导入必要的库&#xff0c;加载给定的数据&#xff0c;划分测试集和训练集之后训练预测和评估即可 具体代码如下&#xff1a; import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split f…

C++ 入门速通-第1章【黑马】

内容来源于&#xff1a;黑马 集成开发环境&#xff1a;CLion CLion的官方下载网址&#xff1a;CLion: A Cross-Platform IDE for C and C by JetBrains 我在b站找到了一个安装教程&#xff0c;可以按照这个视频教程进行安装&#xff08;内置汉化教程&#xff09;&#xff1a; …

Python的进程和线程

ref 接受几个设定: 进程是一家almost密不透风的公司,缅甸KK园区 线程里面工作的…人 进程**[园区]**内公共资源对于进程来说,可以共享. 别的园区[进程],一般不能和自己的园区共享人员资源,除非… 好的,现在再接受设定: 单个CPU在任一时刻只能执行单个线程&#xff0c;只有…

自动化01

测试用例的万能公式&#xff1a;功能测试界面测试性能测试易用性测试安全性测试兼容性测试 自动化的主要目的就是用来进行回归测试 新产品--第一个版本 (具备丰富的功能)&#xff0c;将产品的整体进行测试&#xff0c;人工创造一个自动化测试用例&#xff0c;在n个版本的时候…

jmeter中对接口进行循环请求后获取相应数据

1、工作中遇到一个场景就是对某个单一接口进行循环请求&#xff0c;并需要获取每次请求后返回的相应数据&#xff1b; 2、首先就在jmeter对接口相关组件进行配置&#xff0c;需要组件有&#xff1a;循环控制器、CSV数据文件设置、计数器、访问接口、HTTP信息头管理器、正则表达…

Jetson Xavier NX 安装 CUDA 支持的 PyTorch 指南

本指南将帮助开发者完成在 Jetson Xavier NX 上安装 CUDA 支持的 PyTorch。 安装方法 在 Jetson 上安装 Pytorch 只有两种方法。 一种是直接安装他人已经编译好的 PyTorch 轮子&#xff1b;一种是自己从头开始开始构建 PyTorch 轮子并且安装。 使用轮子安装 可以从我的 Gi…

Ansible fetch模块详解:轻松从远程主机抓取文件

在自动化运维的过程中&#xff0c;我们经常需要从远程主机下载文件到本地&#xff0c;以便进行分析或备份。Ansible的fetch模块正是为了满足这一需求而设计的&#xff0c;它可以帮助我们轻松地从远程主机获取文件&#xff0c;并将其保存到本地指定的位置。在这篇文章中&#xf…

【AI论文】生成式视频模型是否通过观看视频学习物理原理?

摘要&#xff1a;AI视频生成领域正经历一场革命&#xff0c;其质量和真实感在迅速提升。这些进步引发了一场激烈的科学辩论&#xff1a;视频模型是否学习了能够发现物理定律的“世界模型”&#xff0c;或者&#xff0c;它们仅仅是复杂的像素预测器&#xff0c;能够在不理解现实…

论文速读|Matrix-SSL:Matrix Information Theory for Self-Supervised Learning.ICML24

论文地址&#xff1a;Matrix Information Theory for Self-Supervised Learning 代码地址&#xff1a;https://github.com/yifanzhang-pro/matrix-ssl bib引用&#xff1a; article{zhang2023matrix,title{Matrix Information Theory for Self-Supervised Learning},author{Zh…