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

lamp网站架构江西省住房和城乡建设厅网站

lamp网站架构,江西省住房和城乡建设厅网站,好网站开发,淮南查查网随着社会的不断发现#xff0c;现实生活中有很多时候会使用到全景现实#xff0c;比如房地产行业vr看房#xff0c;汽车行业vr看车之类的#xff0c;全景可视化真实还原了现场的场景#xff0c;真正做到沉浸式体验。 现在我们基于vue3.0版本开发出了一款沉浸式的编辑器现实生活中有很多时候会使用到全景现实比如房地产行业vr看房汽车行业vr看车之类的全景可视化真实还原了现场的场景真正做到沉浸式体验。 现在我们基于vue3.0版本开发出了一款沉浸式的编辑器只需要使用全景相机在现场拍摄全景场景然后将场景倒入编辑器通过拖动图标和导航的方式绑定数据从而实现沉浸式场景可视化。 部分洁面 1、自定义动态添加数据绑定图标实时监控数据运行状态 2、自定义添加文字标记绑定文字文本标识场景设备名称 3、自定义添加场景标记点击可以切换不同场景视角 4、自定义添加地图经纬度标记查看当前标记位置 5、自定义添加音视频标记点击查看音视频播放 6、自定义添加网址和富文本标记点击跳转网址查看富文本内容  部分代码如下 (function (w) { // isFormat 表示是否格式化时间格式默认为格式化function $Date (isFormat true) { // 格式化日期 前台传值方式 引用类.dateFormat(1402233166999,yyyy-MM-dd hh:mm:ss)this.dateFormat function (date, fmt yyyy-MM-dd hh:mm:ss) {let getDate new Date(date);let o {M: getDate.getMonth() 1,d: getDate.getDate(),h: getDate.getHours(),m: getDate.getMinutes(),s: getDate.getSeconds(),q: Math.floor((getDate.getMonth() 3) / 3),S: getDate.getMilliseconds()};if (/(y)/.test(fmt)) {fmt fmt.replace(RegExp.$1, (getDate.getFullYear() ).substr(4 - RegExp.$1.length));}for (let k in o) {if (new RegExp(( k )).test(fmt)) {fmt fmt.replace(RegExp.$1, (RegExp.$1.length 1) ? (o[k]) : ((00 o[k]).substr(( o[k]).length)));}}return fmt;};// 当前日期时间this.now isFormat ? this.dateFormat(new Date()) : new Date();// 当前日期this.date this.dateFormat(new Date()).split( )[0];// 当前时间this.time this.dateFormat(new Date()).split( )[1];// 当前月this.month new Date().getMonth() 1;// 当前消失this.hours new Date().getHours();// 当前月天数this.monthDays (() {let nowMonth new Date().getMonth(); // 当前月let nowYear new Date().getYear(); // 当前年let monthStartDate new Date(nowYear, nowMonth, 1);let monthEndDate new Date(nowYear, nowMonth 1, 1);let days (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);return days;})();// 本周的开始日期和结束日日期this.endDayOfWeek (() {let nowMonth new Date().getMonth(); // 当前月let nowDay new Date().getDate(); // 当前日let nowDayOfWeek new Date().getDay(); // 今天本周的第几天let day nowDayOfWeek || 7;const start new Date(new Date().getFullYear(), nowMonth, nowDay - day 1);const starts new Date(new Date().getFullYear(), nowMonth, nowDay - day 1);const end new Date(new Date().getFullYear(), nowMonth, nowDay 7 - day);const ends new Date(new Date().getFullYear(), nowMonth, nowDay 7 - day);starts.setHours(23);starts.setMinutes(59);starts.setSeconds(59);ends.setHours(23);ends.setMinutes(59);ends.setSeconds(59);const firstDay isFormat ? this.dateFormat(start) : start;const firstDays isFormat ? this.dateFormat(starts) : starts;const lastDay isFormat ? this.dateFormat(end) : end;const lastDays isFormat ? this.dateFormat(ends) : ends;return {firstDay, firstDays, lastDay, lastDays};})();// 当天开始时间this.todayBegin (() {const now new Date();now.setHours(0);now.setMinutes(0);now.setSeconds(0);return isFormat ? this.dateFormat(now) : now;})();// 当天59时59分59秒this.todayEnd (() {const now new Date();now.setHours(23);now.setMinutes(59);now.setSeconds(59);return isFormat ? this.dateFormat(now) : now;})();// 指定月的最后第一天和最后一天this.getNowTheMothEnd (M) {if (typeof M ! number) {throw new Error(输入数字);}if (M 0 || M 12) {console.error(日期大于1小于12);return false;}const now new Date();let y now.getFullYear();let m M - 1;const firstDay new Date(y, m, 1);const firstDays new Date(y, m, 1);firstDays.setHours(23);firstDays.setMinutes(59);firstDays.setSeconds(59);const lastDay new Date(y, m 1, 0);const lastDays new Date(y, m 1, 0);lastDays.setHours(23);lastDays.setMinutes(59);lastDays.setSeconds(59);return {firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,lastDays: isFormat ? this.dateFormat(lastDays) : lastDays};};// 当月的最后第一天和最后一天this.nowMothEnd (() {const now new Date();let y now.getFullYear();let m now.getMonth();const firstDay new Date(y, m, 1);const firstDays new Date(y, m, 1);firstDays.setHours(23);firstDays.setMinutes(59);firstDays.setSeconds(59);const lastDay new Date(y, m 1, 0);const lastDays new Date(y, m 1, 0);lastDays.setHours(23);lastDays.setMinutes(59);lastDays.setSeconds(59);return {firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,lastDays: isFormat ? this.dateFormat(lastDays) : lastDays};})();// 今年的第一天和今年的最后一天this.nowYearsEnd (() {const now new Date();let y now.getFullYear();let m now.getMonth();console.log(m);const firstDay new Date(y, 0, 1);const firstDays new Date(y, 0, 1);firstDays.setHours(23);firstDays.setMinutes(59);firstDays.setSeconds(59);const lastDay new Date(y, 12, 0);const lastDays new Date(y, 12, 0);lastDays.setHours(23);lastDays.setMinutes(59);lastDays.setSeconds(59);return {firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,lastDays: isFormat ? this.dateFormat(lastDays) : lastDays};})();// 指定年的第一天和今年的最后一天this.nowTheYearsEnd (Y) {const now new Date();let y Y;let m now.getMonth();console.log(m);const firstDay new Date(y, 0, 1);const firstDays new Date(y, 0, 1);firstDays.setHours(23);firstDays.setMinutes(59);firstDays.setSeconds(59);const lastDay new Date(y, 12, 0);const lastDays new Date(y, 12, 0);lastDays.setHours(23);lastDays.setMinutes(59);lastDays.setSeconds(59);return {firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,lastDays: isFormat ? this.dateFormat(lastDays) : lastDays};};// 当前时间最近前N天this.getNowBeforeNday (N) {const now new Date().getTime();const before new Date().getTime() - (24 * 60 * 60 * 1000) * N;return {now: isFormat ? this.dateFormat(new Date(now)) : new Date(now),before: isFormat ? this.dateFormat(new Date(before)) : new Date(before)};};// 当前时间后面N天this.getNowAfterNday (N) {const now new Date().getTime();const after new Date().getTime() (24 * 60 * 60 * 1000) * N;return {now: isFormat ? this.dateFormat(new Date(now)) : new Date(now),after: isFormat ? this.dateFormat(new Date(after)) : new Date(after)};};}w.$Date $Date; })(window); const date window.$Date; export const $Date date;templatediv classedit-hot_wrapperel-dialogv-modeldialogVisible:title${hotSpot.id ? 修改 : 新增}${spotTypeName(form.iconType)}标记:width360px:top10px:modalfalse:close-on-click-modalfalse:custom-classedit-hot_dialog:before-closecloseel-form :modelform refruleForm :rulesrulesel-form-item label标记名称 required propnameel-input v-modelform.name placeholder输入名称 clearable//el-form-item!--基础图标绑定--template v-ifform.iconType 1el-form-item label绑定数据 requiredel-selectv-modelform.devicesplaceholder选择设备filterablemultiplecollapse-tagsel-optionv-forv in deviveData.data:labelv.name:valuev.id:keyv.id/el-option/el-select/el-form-itemel-form-item label标记图标 required propspotTypesel-image:class[icon-types, form.spotTypes v.id ? active : ]v-forv in hotTypes:keyv.id:srcv.urlclickform.spotTypes v.id//el-form-item/template!-- 文字图标绑定--template v-ifform.iconType 2el-form-item label绑定数据 required propdevicesel-selectv-modelform.devicesplaceholder选择设备filterablemultiplecollapse-tagsel-optionv-forv in deviveData.data:labelv.name:valuev.id:keyv.id/el-option/el-select/el-form-itemel-form-item label文字内容 required proptextel-inputv-modelform.text:rows4typetextareaplaceholder输入文字内容//el-form-item/template!-- 场景图标绑定--template v-ifform.iconType 3el-form-item label绑定场景 required propsceneIdel-selectv-modelform.sceneIdplaceholder选择场景el-optionv-forv in scenes:labelv.name:valuev.id:keyv.id/el-option/el-select/el-form-item/template!-- 位置图标绑定--template v-ifform.iconType 4el-form-item label地图位置 required proplocaltionel-input v-modelform.localtion placeholder输入经纬度 clearable//el-form-itemel-form-item label经纬度查询el-button typesuccess查询/el-button/el-form-item/template!-- 位置图标绑定--template v-ifform.iconType 5el-form-item label媒体地址 required propmediael-input v-modelform.media.url placeholder输入媒体地址 clearable//el-form-itemel-form-item label媒体类型 requiredel-radio-group v-modelform.media.type classml-4el-radio :label0 sizelarge音频/el-radioel-radio :label1 sizelarge视频/el-radio/el-radio-group/el-form-item/template!-- 网址图标绑定--template v-ifform.iconType 6el-form-item label网站地址 required propwebsiteel-input v-modelform.website placeholder输入网址 clearable//el-form-item/template!-- 网址图标绑定--template v-ifform.iconType 7el-form-item label富文本 required prophtmlel-input v-modelform.html :rows5 typetextarea placeholder输入网址 clearable//el-form-item/template/el-formtemplate #footerspan classdialog-footerel-button clickclose取消/el-buttonel-button typeprimary clicksave(ruleForm)保存/el-button/span/template/el-dialog/div /templatescript setup import { res } from ../data/res.js; // import store from ../../../store/index.js; import { hotTypes } from ../utils/data.js; import { defineEmits, defineProps } from vue; import { reactive, ref, computed, onMounted } from vue; import { useStore } from vuex; import { ElMessage } from element-plus; import store from ../vuex/vrViewer.js; import { ICOM_TYPE } from ../utils/data.js;const ruleForm ref(null); const rules reactive({name: [{required: true,trigger: change,message: 标记名称必填}],devices: [{required: true,trigger: change,message: 绑定设备必填}],spotTypes: [{required: true,trigger: change,message: 标记图标类型必填}],text: [{required: true,trigger: change,message: 文本内容必填}],sceneId: [{required: true,trigger: change,message: 绑定场景必填}],localtion: [{required: true,trigger: change,message: 绑定位置必填}],media: [{required: true,trigger: change,message: 媒体地址必填}],website: [{required: true,trigger: change,message: 网站地址必填}],html: [{required: true,trigger: change,message: 富文本内容必填}], }); const dialogVisible ref(true); const deviveData ref(res); const props defineProps({hotSpot: {}, // 当前标记scenes: {} });let stores useStore(); // 当前标记类型id const iconType computed(() {return stores.state.vrViewer.type; });// 当前标记类型名称 const spotTypeName () {const list Object.values(ICOM_TYPE);return list.find(v v.type form.value.iconType).name; };const types ref(hotTypes); const emits defineEmits([success,close,save ]);onMounted(() {// 编辑回显示if (props.hotSpot.id) {form.value props.hotSpot.data;// store.commit(vrViewer/setIconType, props.hotSpot.data.iconType);} });const form ref({id: , // 标记idname: ,devices: [],spotTypes: types.value[0].id, // 图标类型spotUrl: types.value[0].url, // 标记图表urliconType: stores.state.vrViewer.type,text: , // 文字绑定sceneId: , // 场景绑定localtion: , // 位置经纬度绑定media: {type: 0, // 0代表音频 1代表视频url: // url播放地址},website: , // 网址html: , // html绑定 });const close () emits(close);const save async (formEl) {// if (!form.value.name) {// // 其他类型报错// ElMessage({// showClose: true,// message: 输入名称,// type: error// });// return;// }// if (!form.value.devices.length) {// // 其他类型报错// ElMessage({// showClose: true,// message: 选择设备,// type: error// });// return;// }console.log(formEl, formEl);await formEl.validate((valid, fields) {if (valid) {emits(save, form.value, props.hotSpot);close();} else {console.log(error submit!, fields)}}) };const success () {emits(success); }; /script style langscss.edit-hot_dialog {.el-dialog__body {padding: 10px 20px;.el-select {width: 245px;}}} /style style langscss scoped.icon-types {width: 36px;height: 35px;margin: 2px;border: 1px solid #ccc;user-select: none;.active {border: 2px solid blue;}} /style
http://www.pierceye.com/news/663063/

相关文章:

  • 做网站编辑是不是也要做推广做蛋白go分析网站
  • 免费品牌网站制作云南电商网站建设
  • 宿迁莱布拉网站建设常州做网站建设的公司
  • 广东网站建站系统哪家好常州网站搭建公司
  • 400网站建设推广软件工程师工资
  • 专门做正品的网站手机版深圳市门户网站建设怎么样
  • 做外贸比较好的网站有哪些北京短视频代运营
  • 建站公司学习筑梦网站建设
  • 手工艺品网站建设侧胡顺个人简历表格可填写
  • 电商网站竞价推广策略淘宝做问卷的网站
  • 门窗 东莞网站建设婚庆公司收费标准
  • 网站页面下沉的特效代码网络建设存在的问题
  • 给网站做维护是什么工作网页怎么赚钱
  • 三丰云做游戏网站win主机安装wordpress
  • 网站建设黄荣vuejs做视频网站设计
  • 手机怎样下载安装建设银行网站企业通过网络推广成功的案例
  • 门户网站开发工具软件哪个公司的网络最好用
  • 河南省住房和城乡建设厅查询网站首页舆情网站推荐
  • 网页设计是网站建设与管理的内容吗公司网络营销的方案思路
  • 商业授权网站标题优化技巧
  • 班级网站做哪些方面阿里云市场网站建设
  • 2345网站登录电子工程师有前途吗
  • 网站建设企业邮箱制作网站山东平台网站建设制作
  • 仿新浪微博网站代码国家高新技术企业公示
  • 遵义网站建设公司电话多少成都网站优化seo
  • 宝安网站设计排名网站建设收费标准资讯
  • 景安怎么把网站做别名西安网站优化seo
  • 长沙专业网站建设怎么做云南昆明百度推广公司
  • 网页制作网站的大作业网站开发怎么设置打印按钮
  • 金乡网站建设哪家便宜建网站解决方案