Sfoglia il codice sorgente

Merge branch 'dev' of http://192.168.0.115:3000/bill/traffic-laser into dev

bill 1 anno fa
parent
commit
799f58100d

+ 6 - 6
public/static/lib/potree/potree.js

@@ -91790,9 +91790,9 @@ void main()
 	            viewer.focusOnObject(viewer.bound, 'boundingBox', 1000, {
 	                endPitch: pitch, endYaw: yaw , dir,  startCamera, endCamera
 	            }).promise.done(()=>{  
-	                let baseLine = viewer.scene.measurements.find(e=>e.isBaseLine && e.points.length == 2);   
-	                baseLine && Potree.Utils.updateVisible(baseLine,'enterOrthoView',true);//基准线仅在正交视图可见
-	                 
+	                /* let baseLine = viewer.scene.measurements.find(e=>e.isBaseLine && e.points.length == 2)   
+	                baseLine && Potree.Utils.updateVisible(baseLine,'enterOrthoView',true)//基准线仅在正交视图可见
+	                  */
 	                done && done();
 	                navCubeViewer.dispatchEvent('content_changed');
 	            });
@@ -91870,9 +91870,9 @@ void main()
 	                startCamera = viewer.scene.cameraO;
 	                endCamera = viewer.scene.cameraP; 
 	                
-	                let baseLine = viewer.scene.measurements.find(e=>e.isBaseLine && e.points.length == 2);   
-	                baseLine && Potree.Utils.updateVisible(baseLine,'enterOrthoView',false); //基准线仅在正交视图可见
-	                
+	                /* let baseLine = viewer.scene.measurements.find(e=>e.isBaseLine && e.points.length == 2)   
+	                baseLine && Potree.Utils.updateVisible(baseLine,'enterOrthoView',false) //基准线仅在正交视图可见
+	                 */
 	            }else {
 	                
 	                console.log('switchView2', 'not ortho');

File diff suppressed because it is too large
+ 1 - 1
public/static/lib/potree/potree.js.map


+ 7 - 35
src/graphic/CanvasStyle/ImageLabels/SVGIcons.js

@@ -1,5 +1,7 @@
 const SVGIcons = {
- 
+  ZebraCrossing: {
+    text: "斑马线",
+  },
   "chemotuoche_p.svg": {
     text: "侧三轮平面",
     draw: function (ctx, fillStyle, strokeStyle) {
@@ -4133,13 +4135,7 @@ const SVGIcons = {
 export const structureTypeKeys = [
   {
     type: "道路结构",
-    children: [
-      "lunshituolaji_p.svg",
-      "zhengsanlun_s.svg",
-      "chemotuoche_p.svg",
-      "dianche_p.svg",
-      "keche_s.svg",
-    ],
+    children: ["lunshituolaji_p.svg", "zhengsanlun_s.svg", "chemotuoche_p.svg", "dianche_p.svg", "keche_s.svg"],
   },
 ];
 
@@ -4177,40 +4173,16 @@ export const imageTypeKeys = [
   },
   {
     type: "非机动车",
-    children: [
-      "erlunmotuoche.svg",
-      "fjdc_canjiren_p.svg",
-      "fjdc_canjiren_s.svg",
-      "fjdc_renliche.svg",
-      "fjdc_sanlunche.svg",
-      "fjdc_xuliche.svg",
-      "fjdc_zixingche.svg",
-    ],
+    children: ["erlunmotuoche.svg", "fjdc_canjiren_p.svg", "fjdc_canjiren_s.svg", "fjdc_renliche.svg", "fjdc_sanlunche.svg", "fjdc_xuliche.svg", "fjdc_zixingche.svg"],
   },
   {
     type: "人体、牲畜",
-    children: [
-      "rt_rt.svg",
-      "rt_shit.svg",
-      "rt_st.svg",
-      "sc_sc.svg",
-      "sc_shangc.svg",
-      "sc_shic.svg",
-    ],
+    children: ["rt_rt.svg", "rt_shit.svg", "rt_st.svg", "sc_sc.svg", "sc_shangc.svg", "sc_shic.svg"],
   },
   {
     type: "地面标志及交通现象",
-    children: [
-      "jtxx_fangxb.svg",
-      "jtxx_fengxb.svg",
-      "jtxx_fjdcxsfx.svg",
-      "jtxx_jcd.svg",
-      "jtxx_jdcxsfx.svg",
-      "jtxx_ryydfx.svg",
-    ],
+    children: ["jtxx_fangxb.svg", "jtxx_fengxb.svg", "jtxx_fjdcxsfx.svg", "jtxx_jcd.svg", "jtxx_jdcxsfx.svg", "jtxx_ryydfx.svg"],
   },
-
- 
 ];
 
 export default SVGIcons;

+ 9 - 8
src/graphic/Constant.js

@@ -1,3 +1,4 @@
+import { drawSetting } from "@/store/drawSetting";
 const Constant = {
   /*
         最小距离
@@ -34,13 +35,13 @@ const Constant = {
   maxAngle: 170,
   minRoadSideWidth: 30,
   maxRoadSideWidth: 800,
-  oneWay: 'oneWay', //one表示单向,two表示双向
-  twoWay: 'twoWay', //one表示单向,two表示双向
-  defaultSingleLaneWidth: 3.5, //单个车道的宽度
-  defaultMidDivideWidth: 0.2, //隔离带的宽度
-  angleLocationMode: 'AngleLocationMode', //直角定位
-  allLocationMode: 'AllLocationMode', //综合定位
-  normalLocationMode: 'NormalLocationMode', //垂线定位
-  freeLocationMode: 'FreeLocationMode', //自由测量
+  oneWay: "oneWay", //one表示单向,two表示双向
+  twoWay: "twoWay", //one表示单向,two表示双向
+  defaultSingleLaneWidth: drawSetting.value?.defaultSingleLaneWidth || 3.5, //单个车道的宽度
+  defaultMidDivideWidth: drawSetting.value?.defaultMidDivideWidth || 0.2, //隔离带的宽度
+  angleLocationMode: "AngleLocationMode", //直角定位
+  allLocationMode: "AllLocationMode", //综合定位
+  normalLocationMode: "NormalLocationMode", //垂线定位
+  freeLocationMode: "FreeLocationMode", //自由测量
 };
 export default Constant;

+ 13 - 0
src/graphic/Controls/UIControl.js

@@ -35,6 +35,8 @@ import { roadService } from "../Service/RoadService.js";
 import { curveRoadService } from "../Service/CurveRoadService.js";
 import Msg from "../enum/Msg.js";
 import RoadStructure from "../enum/RoadStructure";
+import { drawSetting } from "@/store/drawSetting";
+
 export default class UIControl {
   constructor(layer, newsletter, graphicStateUI) {
     this._prompts = [];
@@ -688,6 +690,7 @@ export default class UIControl {
     Constant.defaultSingleLaneWidth = setting.singleRoadWidth;
     uiService.setLineWidth(setting.lineWidth);
     this.layer.renderer.autoRedraw();
+    this.saveSettings(setting);
   }
 
   // 获取默认设置
@@ -701,4 +704,14 @@ export default class UIControl {
       lineWidth: lineWidth,
     };
   }
+
+  saveSettings(setting) {
+    let origin = drawSetting.value;
+    let newData = {
+      defaultSingleLaneWidth: setting.singleRoadWidth,
+      defaultMidDivideWidth: setting.roadQuarantineWidth,
+      lineWidth: setting.lineWidth,
+    };
+    origin = Object.assign(origin, newData);
+  }
 }

+ 1 - 1
src/graphic/Service/RoadService.js

@@ -156,7 +156,7 @@ export default class RoadService {
     }
     if (oldRightEdge.roadSide) {
       rightEdge.initRoadSide();
-      rightEdge.setRoadSideWidth(oldLeftEdge.roadSide.width);
+      rightEdge.setRoadSideWidth(oldRightEdge.roadSide.width);
     }
     this.setLanes(newRoad.vectorId);
     this.initRoadWidthTipsPos(newRoad);

+ 2 - 2
src/graphic/Settings.js

@@ -1,9 +1,9 @@
 import Constant from "./Constant";
 import VectorCategory from "./enum/VectorCategory";
 import { os } from "@/utils/vue.ts";
-
+import { drawSetting } from "@/store/drawSetting";
 const Settings = {
-  lineWidth: 1,
+  lineWidth: drawSetting.value?.lineWidth || 1,
   roadLeftDrivewayCount: 1,
   screenMode: false,
   roadRightDrivewayCount: 1,

+ 2 - 2
src/sdk/laser/core/enter.js

@@ -585,9 +585,9 @@ var enter = ({
                 });
                 //console.log(info)
                 
-                if(measure.isBaseLine && viewer.mainViewport.camera.type != 'OrthographicCamera'){ 
+                /* if(measure.isBaseLine && viewer.mainViewport.camera.type != 'OrthographicCamera'){ 
                     Potree.Utils.updateVisible(measure,'enterOrthoView',false)//基准线仅在正交视图可见
-                } 
+                }  */
                  
                  
                  

+ 9 - 0
src/store/drawSetting.ts

@@ -0,0 +1,9 @@
+import { ref } from "vue";
+
+export const drawSetting = ref({
+  defaultSingleLaneWidth: 3.5, //单个车道的宽度
+  defaultMidDivideWidth: 0.2, //隔离带的宽度
+  lineWidth: 1, //基本线宽
+});
+
+(window as any).drawSetting = drawSetting;

+ 6 - 4
src/store/sync.ts

@@ -15,6 +15,7 @@ import { defaultUses, uses } from "@/store/SVGLabel";
 import { imageRotate } from "@/utils/image-rotate";
 import { sceneSeting } from "./sceneSeting";
 import { tables } from "./tables";
+import { drawSetting } from "./drawSetting";
 
 const global = window as any;
 
@@ -216,7 +217,8 @@ const loadStore = async () => {
   roadPhotos.value = data?.roadPhotos || [];
   uses.value = data?.uses || defaultUses;
   tables.value = data?.tables || {};
-
+  drawSetting.value = data?.drawSetting || {};
+  
   syncSceneStore();
 };
 
@@ -246,16 +248,16 @@ const syncSceneStore = () => {
       accidentPhotos: accidentPhotos.value,
       roadPhotos: roadPhotos.value,
       tables: tables.value,
+      drawSetting: drawSetting.value,
     }),
     (data) => {
-      console.error("收到数据源更新")
+      console.error("收到数据源更新");
       updateSceneStore(data);
     },
-    { deep: true, flush: 'sync' }
+    { deep: true, flush: "sync" }
   );
 };
 
-
 loadStore().catch((e) => {
   console.error(e);
   alert("场景数据加载失败");

+ 11 - 1
src/views/tables/author/author-one.vue

@@ -73,7 +73,7 @@
       <div class="item">
         <div style="flex: 1" class="input-box">
           <input style="width: 100%" v-model="data.authorByPhoneNum" />
-          <div class="content-box">{{ data.authorByPhoneNum }}</div>
+          <div class="content-box left">{{ data.authorByPhoneNum }}</div>
         </div>
       </div>
 
@@ -194,6 +194,16 @@ onMounted(() => {
     .content-box {
       display: flex;
     }
+
+    .content {
+      .item {
+        width: 100%;
+        display: flex;
+        align-items: flex-end;
+        justify-content: flex-start;
+        margin-bottom: 20px;
+      }
+    }
   }
   .title {
     text-align: center;

+ 42 - 12
src/views/tables/author/author-two.vue

@@ -11,12 +11,33 @@
           </div>
         </div>
       </div> -->
+
+      <div class="check-item" @click="checkOptions(checkData1, index)" v-for="(i, index) in checkData1.options">
+        <div class="item">
+          <ui-icon :type="data.oneOptions.check == i.id ? 'rb_y' : 'rb_n'"></ui-icon>
+          <span>{{ i.title }}</span>
+          <div class="input-box" style="flex: 1">
+            <input v-model="data.oneOptions.value" />
+            <div class="content-box left">{{ data.oneOptions.value }}</div>
+          </div>
+        </div>
+      </div>
+
+      <div class="item" style="margin-bottom: 20px">
+        <span>受托人:</span>
+        <div class="input-box">
+          <input style="width: 100%" v-model="data.authorByName" />
+          <div class="content-box">{{ data.authorByName }}</div>
+        </div>
+        <span>代理权限为:</span>
+      </div>
       <div class="check-item" @click="checkOptions(checkData, index)" v-for="(i, index) in checkData.options">
-        <div class="item" :style="i.id == 1 || i.id == 4 ? '' : 'display: inline-block'">
-          <ui-icon :type="checkData.check == i.id ? 'rb_y' : 'rb_n'"></ui-icon>
+        <div class="item" :style="i.id == 3 ? '' : 'display: inline-block'">
+          <ui-icon :type="data.options.check == i.id ? 'rb_y' : 'rb_n'"></ui-icon>
           <span>{{ i.title }}</span>
-          <div v-if="i.id == 1 || i.id == 4" class="input-box" style="flex: 1">
-            <input type="text" />
+          <div v-if="i.id == 3" class="input-box" style="flex: 1">
+            <input v-model="data.options.value" />
+            <div class="content-box left">{{ data.options.value }}</div>
           </div>
         </div>
       </div>
@@ -24,13 +45,15 @@
       <div class="item" style="margin-top: 200px">
         <span style="padding-left: 20px">委托人(签名):</span>
         <div style="flex: 1">
-          <input type="text" v-model="data.authorSign" />
+          <input v-model="data.authorSign" />
+          <div class="content-box left" style="border:none;">{{ data.authorSign }}</div>
         </div>
       </div>
       <div class="item" style="margin-top: 100px">
         <span>受委托人(签名):</span>
         <div style="flex: 1">
-          <input type="text" v-model="data.authorBySign" />
+          <input v-model="data.authorBySign" />
+          <div class="content-box left" style="border:none;">{{ data.authorBySign }}</div>
         </div>
       </div>
     </div>
@@ -46,12 +69,17 @@ const props = defineProps({
   isDownloadShow: { type: Boolean, default: false },
 });
 const data = ref(null);
+// const checkOneOptions = (item, index) => {
+//   item.check = item.options[index].id;
+//   data.value["oneOptions"].check = item.check;
+// };
 const checkOptions = (item, index) => {
   item.check = item.options[index].id;
   data.value[item.type].check = item.check;
 };
 const checkData1 = ref({
   check: 0,
+  type: "oneOptions",
   options: [
     {
       id: 1,
@@ -59,23 +87,21 @@ const checkData1 = ref({
     },
   ],
 });
+
 const checkData = ref({
+  type: "options",
   check: 0,
   options: [
     {
       id: 1,
-      title: "...",
-    },
-    {
-      id: 2,
       title: "一般代理。即代理为参与诉讼、调解,提供法律帮助。",
     },
     {
-      id: 3,
+      id: 2,
       title: "特别授权,代为起诉,陈述事实,参加辩论和调解,代为提出、承认、放弃或变更赔偿请求, 提起反诉或上诉,签收法律文书。",
     },
     {
-      id: 4,
+      id: 3,
       title: "...",
     },
   ],
@@ -95,6 +121,10 @@ onMounted(() => {
   if (tablesInfo.authorTwo) {
     data.value = tablesInfo.authorTwo;
   }
+  // if (tablesInfo.authorOne) {
+  //   console.error(tablesInfo);
+  //   data.value.oneOptions = tablesInfo.authorOne.options;
+  // }
 });
 </script>
 <style lang="scss" scoped>

+ 2 - 0
src/views/tables/data/index.ts

@@ -191,8 +191,10 @@ let data = {
   },
   authorTwo: {
     options: { check: "", value: "" },
+    checkOptions: { check: "", value: "" },
     authorSign: "",
     authorBySign: "",
+    authorByName: "",
   },
 
   authorOne: {