shaun-sheep 4 rokov pred
rodič
commit
a4cac62ecb

BIN
src/assets/images/t-slices-hover.png


BIN
src/assets/images/t-slices.png


+ 1 - 1
src/components/baseEditer.vue

@@ -1,4 +1,4 @@
-<template>
+left_toolbar<template>
   <div id="baseEditer">
     <div id="fengMap"></div>
     <div class="canvas-container" ref="graphy">

+ 189 - 0
src/components/edit/attr_select.vue

@@ -0,0 +1,189 @@
+<template>
+  <div>
+    <!--网格-->
+    <div class="attr-select" v-if="type==='网格'">
+      <section class="grid">
+        <a-checkbox @change="onChange">
+          网格
+        </a-checkbox>
+        <div class="grid-content">网格精度
+          <a-select default-value="10" style="width: 60%" @change="handleChange" :disabled="precision">
+            <a-select-option v-for="item in precisionList" :value="item.value" :key="item.value">
+              {{item.value}}
+            </a-select-option>
+          </a-select>
+        </div>
+      </section>
+    </div>
+    <!--文字内容-->
+    <div class="attr-select" v-if="type==='文字内容'">
+      <section class="grid">文字内容
+        <div class="grid-content">
+          <a-textarea placeholder="textarea with clear icon" allow-clear @change="changeTextArea" :rows="4"/>
+        </div>
+      </section>
+    </div>
+    <!--图片-->
+    <div class="attr-select" v-if="type==='图片'">
+      <section class="grid">图片
+        <div class="grid-content">
+          <a-upload-dragger
+              name="file"
+              :multiple="true"
+              action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
+              @change="changeImage"
+          >
+            <p class="icon-image">
+              <a-icon type="cloud-upload"/>
+            </p>
+            <p class="ant-upload-text">将图片拖动到这里替换 </p>
+            <p class="ant-upload-hint">本地上传</p>
+          </a-upload-dragger>
+        </div>
+      </section>
+    </div>
+    <!--外观-->
+    <div class="attr-select" v-if="type==='外观'">
+      <section class="grid">外观
+        <div class="grid-content">线宽
+          <a-input-number v-model="numberValue" :min="1" @change="changeNumber" style="width: 168px"/>
+        </div>
+      </section>
+    </div>
+    <!--针对“设备/位置/管线/分区”属性示例-->
+    <div class="attr-select">
+      <section class="grid">
+        <span>名称显示</span>
+        <!--        v-if -> 编辑设备/区域/管道    -->
+        <a-button type="link" class="edit-option-btn">{{`编辑设备`}}</a-button>
+        <div class="grid-content">
+          <a-input/>
+        </div>
+        <div class="grid-content">字号
+          <a-input-number v-model="numberValue" :min="1" @change="changeNumber" style="width: 168px"/>
+        </div>
+        <div class="grid-content" v-if="type ==='设备'">数量
+          <a-input-number v-model="numberValue" :min="1" @change="changeNumber" style="width: 218px"/>
+        </div>
+        <div class="grid-content" v-if="type ==='管线'">线宽
+          <a-input-number v-model="numberValue" :min="1" @change="changeNumber" style="width: 218px"/>
+        </div>
+      </section>
+    </div>
+    <!--设备/工程信息化ID/工程信息化中的位置类型-->
+    <div class="attr-select">
+      <section class="grid">
+        <!--        v-if -> 设备/工程信息化ID/工程信息化中的位置类型    -->
+        <span>{{`设备`}}</span>
+        <a-button type="link" class="edit-option-btn">选择编辑</a-button>
+        <div class="grid-content">
+          <a-card class="attr-card">福建三明万达-供电系统-6楼-工程信息化中的区域编NDDKJD4</a-card>
+          <a-card class="attr-card">福建三明万达-供电系统-6楼-工程信息化中的区域编NDDKJD</a-card>
+        </div>
+      </section>
+    </div>
+    <!--    快捷操作提示-->
+    <div style="position: fixed;bottom: 0;width: 280px;">
+      <a-collapse :bordered="false" expand-icon-position="right">
+        <template #expandIcon="props">
+          <a-icon type="caret-up" :rotate="props.isActive ? 180 : 0"/>
+        </template>
+        <a-collapse-panel key="1" header="键盘操作提示" :style="customStyle">
+          <p v-for="item in keyboardOperation">{{item.value}}</p>
+        </a-collapse-panel>
+      </a-collapse>
+    </div>
+  </div>
+</template>
+
+<script>
+    export default {
+        name: "attr_select",
+        props: ['type'],
+        data() {
+            return {
+                precisionList: [
+                    {value: 10}, {value: 20}, {value: 30},
+                ],
+                precision: true,
+                numberValue: 4,
+                customStyle: 'background: #fff;overflow: hidden;  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.11);border:0',
+                keyboardOperation: [
+                    {value: '拖动画布:'}, {value: '加选对象:'}, {value: '确认操作:'}, {value: '取消对象:'},
+                ],
+
+
+            }
+        },
+        methods: {
+            onChange(e) {
+                this.precision = e.target.checked === true ? false : true
+            },
+            handleChange(value) {
+                console.log(`selected ${value}`);
+            },
+            changeNumber(value) {
+                console.log(value)
+            },
+            changeTextArea(value) {
+                console.log(value)
+
+            },
+            changeImage(info) {
+                const status = info.file.status;
+                if (status !== 'uploading') {
+                    console.log(info.file, info.fileList);
+                }
+                if (status === 'done') {
+                    this.$message.success(`${info.file.name} file uploaded successfully.`);
+                } else if (status === 'error') {
+                    this.$message.error(`${info.file.name} file upload failed.`);
+                }
+            }
+        }
+    }
+</script>
+
+<style scoped lang="less">
+
+  .attr-select {
+    border-top: 1px solid #c3c7cb;
+    margin-top: 30px;
+
+    .grid {
+
+      margin: 10px 15px;
+    }
+
+    .grid-content {
+      margin-top: 10px;
+    }
+
+    .icon-image {
+      font-size: 25px;
+    }
+
+    .edit-option-btn {
+      float: right;
+      margin-top: -5px;
+    }
+
+    .attr-card {
+      width: 250px;
+      margin-bottom: 10px;
+      white-space: normal;
+      box-shadow: 0px 2px 6px 0px rgba(31, 36, 41, 0.05);
+      border-radius: 4px;
+    }
+
+    .ant-upload.ant-upload-drag p.ant-upload-text {
+      font-size: 14px;
+      color: #C3C7CB;
+    }
+
+    .ant-upload.ant-upload-drag p.ant-upload-hint {
+      color: #0091FF;
+    }
+
+  }
+</style>

+ 44 - 0
src/components/edit/edit-dialog.vue

@@ -0,0 +1,44 @@
+<template>
+  <a-modal v-model="visible" title="选择编辑" on-ok="handleOk">
+    <template slot="footer">
+      <a-button key="back" @click="handleCancel">
+        取消
+      </a-button>
+      <a-button key="submit" type="primary" :loading="loading" @click="handleOk">
+        确认
+      </a-button>
+    </template>
+    <div></div>
+  </a-modal>
+</template>
+
+<script>
+    export default {
+        name: "edit-dialog",
+        data() {
+            return {
+                loading: false,
+                visible: false,
+            };
+        },
+        methods: {
+            showModal() {
+                this.visible = true;
+            },
+            handleOk(e) {
+                this.loading = true;
+                setTimeout(() => {
+                    this.visible = false;
+                    this.loading = false;
+                }, 3000);
+            },
+            handleCancel(e) {
+                this.visible = false;
+            },
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 40 - 9
src/components/edit/left_toolbar.vue

@@ -29,20 +29,37 @@
         </div>
       </li>-->
       <li
-        v-on:mouseout="mouseoutActive(item)"
-        v-on:mouseover="mouseoverActive(item)"
-        v-for="(item,i) in systemChoice"
-        :key="i"
+              v-on:mouseout="mouseoutActive(item)"
+              v-on:mouseover="mouseoverActive(item)"
+              v-for="(item,i) in systemChoice"
+              :key="i"
       >
         <div class="item">
-          <img v-show="!item.isHover" :src="require(`./../../assets/images/${item.img}`)" alt />
-          <img v-show="item.isHover" :src="require(`./../../assets/images/${item.hoverImg}`)" alt />
-          <div>弱电系统</div>
+          <img v-show="!item.isHover" :src="require(`./../../assets/images/${item.img}`)" alt/>
+          <img v-show="item.isHover" :src="require(`./../../assets/images/${item.hoverImg}`)" alt/>
+          <div>{{item.name}}</div>
+        </div>
+      </li>
+    </ul>
+    <!--    提取-->
+    <ul class="list-2 border-top">
+
+      <li
+              v-on:mouseout="mouseoutActive(item)"
+              v-on:mouseover="mouseoverActive(item)"
+              v-for="(item,i) in extractChoice"
+              :key="i"
+      >
+        <div class="item">
+          <img v-show="!item.isHover" :src="require(`./../../assets/images/${item.img}`)" alt/>
+          <img v-show="item.isHover" :src="require(`./../../assets/images/${item.hoverImg}`)" alt/>
+          <div>{{item.name}}</div>
         </div>
       </li>
     </ul>
+
     <div class="bottom-item">
-      <a-icon type="ellipsis" />
+      <a-icon type="ellipsis"/>
       <span>选择原件</span>
     </div>
   </div>
@@ -98,6 +115,15 @@ export default {
           isHover: false, //是否hover
           name: "管线桥架" //类型
         }
+      ],
+      //提取
+      extractChoice: [
+        {
+          img: "t-slices.png", //logo
+          hoverImg: "t-slices-hover.png", //hoverlogo
+          isHover: false, //是否hover
+          name: "提取" //类型
+        }
       ]
     };
   },
@@ -118,12 +144,14 @@ export default {
 <style lang="less">
 #left_toolbar {
   width: 68px;
-  height: 707px;
+  /*height: 707px;*/
+  height: 100%;
   background: rgba(255, 255, 255, 1);
   box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.11);
   padding: 0 0 12px 0;
   box-sizing: border-box;
   position: relative;
+
   ul,
   li {
     padding: 0;
@@ -229,5 +257,8 @@ export default {
       height: 54px;
     }
   }
+  .border-top{
+    border-top: 1px solid #c3c7cb;
+  }
 }
 </style>

+ 3 - 1
src/components/edit/right_toolbar.vue

@@ -32,6 +32,7 @@
               <img class="lock" :src="require(`./../../assets/images/t-lock.png`)" alt />
             </li>
           </ul>
+          <attrSelect/>
         </div>
       </a-tab-pane>
       <a-tab-pane key="2" tab="元素" force-render>
@@ -50,6 +51,7 @@
   </div>
 </template>
 <script>
+  import attrSelect from "@/components/edit/attr_select";
 const poistionList = [
   {
     name: "水平调整",
@@ -135,7 +137,7 @@ const msgList = [
 // import Select from "@/components/Select/Select.vue";
 export default {
   components: {
-    // Select
+    attrSelect
   },
   data() {
     return {

+ 8 - 4
src/components/edit/top_toolbar.vue

@@ -39,6 +39,10 @@
           <a-icon type="edit" />
           <span>锁定</span>
         </li>
+        <li>
+          <a-icon type="delete" />
+          <span>删除</span>
+        </li>
         <!-- <li>
           <a-icon type="edit" />
           <span>解锁</span>
@@ -50,10 +54,10 @@
         <a-icon type="delete" />
         <span>发布</span>
       </div>
-      <div class="btn-list-item">
-        <a-icon type="delete" />
-        <span>下载</span>
-      </div>
+<!--      <div class="btn-list-item">-->
+<!--        <a-icon type="delete" />-->
+<!--        <span>下载</span>-->
+<!--      </div>-->
     </div>
   </div>
 </template>

+ 26 - 25
src/views/editer.vue

@@ -24,30 +24,30 @@
 </template>
 
 <script>
-import baseEditer from "@/components/baseEditer.vue";
-import baseEditertest from "@/components/baseEditertest.vue";
-import baseEditerzy from "@/components/baseEditerzy.vue";
-import leftToolbar from "@/components/edit/left_toolbar.vue";
-import topToolbar from "@/components/edit/top_toolbar.vue";
-import rightToolbar from "@/components/edit/right_toolbar.vue";
+    import baseEditer from "@/components/baseEditer.vue";
+    import baseEditertest from "@/components/baseEditertest.vue";
+    import baseEditerzy from "@/components/baseEditerzy.vue";
+    import leftToolbar from "@/components/edit/left_toolbar.vue";
+    import topToolbar from "@/components/edit/top_toolbar.vue";
+    import rightToolbar from "@/components/edit/right_toolbar.vue";
 
-export default {
-  name: "wandaEditer",
-  components: {
-    baseEditer,
-    baseEditertest,
-    baseEditerzy,
-    leftToolbar,
-    topToolbar,
-    rightToolbar
-  },
-  methods: {
-    // 左侧工具栏 点击事件
-    toolActionClick(name) {
-      this.$refs.graphy.changeStatus(name);
-    }
-  }
-};
+    export default {
+        name: "wandaEditer",
+        components: {
+            baseEditer,
+            baseEditertest,
+            baseEditerzy,
+            leftToolbar,
+            topToolbar,
+            rightToolbar
+        },
+        methods: {
+            // 左侧工具栏 点击事件
+            toolActionClick(name) {
+                this.$refs.graphy.changeStatus(name);
+            }
+        }
+    };
 </script>
 <style lang="less" scoped>
 .wandaEditer {
@@ -74,8 +74,9 @@ export default {
     }
     .left_toolbar {
       position: absolute;
-      left: 12px;
-      top: 12px;
+      height: 100%;
+      /*left: 12px;*/
+      /*top: 12px;*/
     }
   }
 }