shaun-sheep 5 years ago
parent
commit
b62091ae21

File diff suppressed because it is too large
+ 46 - 6
src/assets/style/iconfont/iconfont.css


BIN
src/assets/style/iconfont/iconfont.eot


File diff suppressed because it is too large
+ 30 - 0
src/assets/style/iconfont/iconfont.svg


BIN
src/assets/style/iconfont/iconfont.ttf


BIN
src/assets/style/iconfont/iconfont.woff


+ 1 - 1
src/components/business_space/lib/uploadImgsName.vue

@@ -5,7 +5,7 @@
     @click change  承接数组发生变化时触发函数
 -->
 <template>
-  <div id="sagaUploads">
+  <div id="sagaUploads" :style="{marginLeft:(isShow && imagesArr.length>2) ? '157px':'',marginTop:(isShow && imagesArr.length>2) ? '-25px':''}">
     <div class="saga-upload-images">
       <div v-if="type != 'video'" class="point-view" v-for="(item,index) in imagesArr">
         <div class="point-image">

+ 13 - 9
src/components/ledger/details/detail/exhibitionBaseInformation.vue

@@ -6,32 +6,36 @@
       <span> {{value.InfoPointName}}:</span>
       <el-popover
         v-if="value.Path == 'EquipQRCode' || value.Path == 'RoomQRCode' || value.Path == 'ShaftQRCode'"
-        placement="top"
+        placement="right"
         width="360"
         trigger="hover">
         <p style="border-bottom: 1px solid #eee;padding:2px 0 4px 0;'">{{value.InfoPointName}}</p>
         <div style="overflow:hidden;">
-          <div style="float:left;width: 60%">
+          <div style="float:left;width: 60%" v-if="value.Value">
             <img
-              v-if="value.Value"
               style="width:200px;height:200px;"
               :src="'/image-service/common/file_get/'+ value.Value +'?systemId=dataPlatform'"
               alt="二维码"
             >
-            <span v-else>数据暂无</span>
           </div>
+          <div v-else style="width: 100%;text-align: center;padding-top: 10px">数据暂无</div>
           <div style="float:right;width: 40%;margin-top: 30px">
             <span>{{value.Value}}</span>
           </div>
         </div>
         <div style="text-align: center; margin: 0">
-          <el-button type="text" size="mini" @click="handleCopy(value.Value)">复制</el-button>
+          <el-button
+            type="text"
+            size="mini"
+            v-if="value.Value &&value.InputMode != 'F2'&& value.InputMode!='N2' "
+            @click="handleCopy(value.Value)">复制
+          </el-button>
         </div>
         <el-button slot="reference" type="text">{{value.Value ? '有' :'-'}}</el-button>
       </el-popover>
       <el-popover
         v-else-if="Array.isArray(value.Value) && value.InputMode== 'F2'"
-        placement="top"
+        placement="right"
         width="250"
         trigger="hover">
         <p style="border-bottom: 1px solid #eee;padding:2px 0 4px 0;'">{{value.InfoPointName}}</p>
@@ -44,7 +48,7 @@
       </el-popover>
       <el-popover
         v-else-if="Array.isArray(value.Value) && value.InputMode=='N2'"
-        placement="top"
+        placement="right"
         width="600"
         trigger="hover">
         <p style="border-bottom: 1px solid #eee;padding:2px 0 4px 0;'">{{value.InfoPointName}}</p>
@@ -55,8 +59,8 @@
         <el-button slot="reference" type="text">{{value.Value ? '有' :'-'}}</el-button>
       </el-popover>
       <el-popover
-        v-else-if="value.Value && value.Value.length && `${value.InfoPointName}:${value.Value}`.length>23"
-        placement="top"
+        v-else-if="value.Value && value.Value.length  && `${value.InfoPointName}:${value.Value}`.length>23 "
+        placement="right"
         width="160"
         trigger="hover">
         <p style="border-bottom: 1px solid #eee;padding:2px 0 4px 0;'">{{value.InfoPointName}}</p>

+ 4 - 2
src/components/ledger/details/detail/exhibitionCrux.vue

@@ -1,6 +1,8 @@
 <template>
   <section class="exhibition-crux">
-    <p class="title">{{exhibitionCrux.title}}
+    <p class="title">
+      <span class="iconfont icon-juxing"></span>
+      {{exhibitionCrux.title}}
       <span class="icon-shezhi iconfont setting" @click="setting"></span></p>
     <div>
       <div v-if="exhibitionCrux.cruxArray.length">
@@ -99,7 +101,7 @@
       font-size: 14px;
     }
     .title {
-      border-left: 8px solid black;
+      /*border-left: 8px solid black;*/
       margin: 10px 40px 0 10px;
       font-weight: 600;
       text-indent: 10px;

+ 2 - 2
src/components/ledger/details/detail/exhibitionEnergy.vue

@@ -2,7 +2,7 @@
   <div class="exhibition-energy">
     <div class="title">
       <section>
-        <h4 class="base">{{exhibitionEnergy.title}}</h4>
+        <h4 class="base" v-show="exhibitionEnergy.firstName">{{exhibitionEnergy.firstName}}</h4>
         <div v-if="exhibitionEnergy.dynamic.length">
           <div v-for="(item,index) in exhibitionEnergy.dynamic" :key="index" class="table-dynamic">
             <div class="table-title">{{item.InfoPointName}}:</div>
@@ -13,7 +13,7 @@
             </div>
           </div>
         </div>
-        <div v-else style="text-align: center">暂无数据</div>
+        <div v-else style="text-align: center;margin-top: 200px">暂无数据</div>
       </section>
     </div>
   </div>

+ 2 - 1
src/components/ledger/details/detail/exhibitionImage.vue

@@ -2,7 +2,8 @@
   <div class="exhibition-image">
     <p class="title">
       <span class=" icon-floorplan iconfont"></span>
-      {{exhibitionImage.title}}</p>
+      <span>{{exhibitionImage.title}}</span>
+    </p>
     <div class="image">
       <lookImage  :exhibitionImage="exhibitionImage"/>
     </div>

+ 6 - 3
src/components/ledger/details/detail/exhibitionMaintain.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="exhibition-maintain">
-    <p class="title">
-      <span class=" iconfont icon-weixiubeijing"></span>
+    <p class="title disable">
+      <span class=" iconfont icon-weixiubeijing "></span>
       {{exhibitionMaintain.title}}
-      <span class="iconfont icon-right" style="float: right;margin-right: 20px"></span></p>
+      <span class="iconfont icon-right " style="float: right;margin-right: 20px"></span></p>
   </div>
 </template>
 
@@ -22,5 +22,8 @@
       font-weight: 600;
       text-indent: 10px;
     }
+    .disable{
+      color:#ccc;
+    }
   }
 </style>

+ 6 - 3
src/components/ledger/details/detail/lookFile.vue

@@ -3,7 +3,10 @@
     <div v-if="Object.keys(exhibitionFile.list).length">
       <div v-for="(val,key,i) in exhibitionFile.list" :key="i">
         <div class="" v-for="(j,index) in val">
-          <p class="title">{{key}}</p>
+          <p class="title">
+            <span class="iconfont icon-juxing"></span>
+            {{key}}
+          </p>
           <div v-if="j.fileList !=undefined && j.fileList.length">
             <div v-for="(item,index) in j.fileList" class="content">
               <!--          图标-->
@@ -49,7 +52,7 @@
 
       //处理地址
       delFile(name) {
-        return name.length > 20 ? name.substring(0, 20) + "..." : name
+        return name && name.length > 20 ? name.substring(0, 20) + "..." : name
       },
       //点击下载
       download(key) {
@@ -137,7 +140,7 @@
 <style lang="less" scoped>
   .exhibition-file {
     .title {
-      border-left: 8px solid black;
+      /*border-left: 8px solid black;*/
       margin: 10px;
       font-weight: 600;
       text-indent: 10px;

+ 8 - 5
src/components/ledger/details/detail/lookImage.vue

@@ -1,10 +1,13 @@
 <template>
-  <div id="sagaUploads">
+  <div id="sagaUploads-look-image">
     <div class="saga-upload-images">
       <div v-if="Object.keys(exhibitionImage.list).length">
         <div v-for="(val,key,i) in exhibitionImage.list" :key="i">
           <div class="" v-for="(j,index) in val">
-            <p class="title">{{key}}</p>
+            <p class="title">
+              <span class="iconfont icon-juxing"></span>
+              {{key}}
+            </p>
             <div v-if="j.PicList !=undefined && j.PicList.length >0">
               <template v-for="item in j.PicList">
                 <div class="point-look-image">
@@ -228,12 +231,12 @@
   };
 </script>
 <style lang="less">
-  #sagaUploads {
+  #sagaUploads-look-image {
     overflow: hidden;
 
     .title {
-      border-left: 8px solid black;
-      margin: 10px;
+      /*border-left: 8px solid black;*/
+      margin: 10px 10px 10px 0;
       font-weight: 600;
       text-indent: 10px;
       display: block;

+ 13 - 32
src/components/ledger/details/detail/lookVideo.vue

@@ -1,38 +1,25 @@
 <template>
-  <div id="sagaUploads">
+  <div id="sagaUploads-look-video">
     <div class="saga-upload-images">
-      <div v-if="Object.keys(exhibitionVideo.list).length">
-        <div v-for="(val,key,i) in exhibitionVideo.list" :key="i">
-          <div class="" v-for="(j,index) in val">
-            <p class="title">{{key}}</p>
-            <div v-if="j.PicList !=undefined && j.PicList.length">
-              <template v-for="(item,index) in j.PicList">
-                <div class="point-look-video">
-                  <video
-                    width="100%"
-                    height="100%;"
-                    :src="imageGetUrl + '&key=' +item.Key"
-                    controls="controls"
-                  >您的浏览器不支持 video 标签。</video>
-                </div>
-              </template>
-            </div>
-            <div v-else style="text-align: center;margin: 10px auto">暂无数据</div>
+      <div v-if="exhibitionVideo.list.length">
+        <template v-for="(item,index) in exhibitionVideo.list">
+          <div class="point-look-video">
+            <video
+              width="100%"
+              height="100%;"
+              :src="imageGetUrl + '&key=' +item.Key"
+              controls="controls"
+            >您的浏览器不支持 video 标签。</video>
           </div>
-        </div>
+        </template>
       </div>
-      <div style="text-align: center" v-else>暂无数据</div>
+      <div v-else style="text-align: center;margin: 10px auto">暂无数据</div>
     </div>
-    <details-dialog :title="'图片'" :iframeSrc="iframeSrc" :dialog="dialog" :setData="imagesArr"></details-dialog>
   </div>
 </template>
 <script>
-  import detailsDialog from "@/components/business_space/lib/detailsDia"
 
   export default {
-    components: {
-      detailsDialog
-    },
     props: ['exhibitionVideo'],
     data() {
       return {
@@ -47,12 +34,6 @@
       };
     },
     methods: {
-      //查看图片
-      lookImg() {
-        this.dialog.details = true
-        this.iframeSrc = process.env.BASE_URL + ":8890/photo-View.html"
-      },
-
       //上传
       uploadAndSubmit(item, key) {
         // var form = document.forms["demoForm"];
@@ -229,7 +210,7 @@
   };
 </script>
 <style lang="less">
-  #sagaUploads {
+  #sagaUploads-look-video {
     overflow: hidden;
 
     .title {

+ 5 - 2
src/components/ledger/details/detail/selectRadio.vue

@@ -1,6 +1,9 @@
 <template>
   <div class="select-radio">
-    <p class="title">{{selectRadio.information}}</p>
+    <p class="title">
+      <span class="iconfont icon-juxing"></span>
+      {{selectRadio.information}}
+    </p>
     <template>
       <el-radio-group
         style=" margin: 0 10px;"
@@ -35,7 +38,7 @@
 <style scoped lang="less">
   .select-radio {
     .title {
-      border-left: 8px solid black;
+      /*border-left: 8px solid black;*/
       margin: 10px 40px 10px 10px;
       font-weight: 600;
       text-indent: 10px;

+ 10 - 10
src/components/ready/buildfloor/addBuild.vue

@@ -43,7 +43,7 @@
             </el-input>
             <el-select
             placeholder="请选择"
-            v-else-if="item.InputMode == 'D1' || item.InputMode == 'E2'"
+            v-else-if="item.InputMode == 'D1' || item.InputMode == 'E2' || item.InputMode == 'D1L'"
             v-model="form[item.Path]"
           >
             <el-option :key="op.Name" :label="op.Name" :value="op.Code" v-for="op in item.options"></el-option>
@@ -67,15 +67,15 @@
              start-placeholder="开始日期"
              end-placeholder="结束日期"
            />
-             <el-cascader
-               v-else-if="item.InputMode == 'D1L'"
-               placeholder="请选择"
-               :options="item.options"
-               v-model="form[item.Path]"
-               :props="{ checkStrictly: true ,value: 'Code',label:'Name'}"
-               clearable
-               style="width: 200px"
-             />
+<!--             <el-cascader-->
+<!--               v-else-if="item.InputMode == 'D1L'"-->
+<!--               placeholder="请选择"-->
+<!--               :options="item.options"-->
+<!--               v-model="form[item.Path]"-->
+<!--               :props="{ checkStrictly: true ,value: 'Code',label:'Name'}"-->
+<!--               clearable-->
+<!--               style="width: 200px"-->
+<!--             />-->
           <el-input
             v-else-if="item.InputMode == 'L'||item.InputMode == 'L1'||item.InputMode == 'L2'||item.InputMode == 'M'"
             v-model="form[item.Path]">

+ 230 - 37
src/components/ready/buildfloor/uploadFile.vue

@@ -1,56 +1,249 @@
+<!--
+  上传组件
+  type: 类型,默认image
+  identify: key值,通过val获取
+  disabled: 是否可用
+  index: 父组件的下标
+  imageIndex: 图片下标
+  isShow: 图片的显示
+ -->
 <template>
-  <el-upload
-    :before-remove="beforeRemove"
-    :file-list="fileList"
-    :limit="3"
-    :on-exceed="handleExceed"
-    :on-preview="handlePreview"
-    :on-remove="handleRemove"
-    action="https://jsonplaceholder.typicode.com/posts/"
-    class="upload-demo"
-    multiple>
-    <p
-      class="el-form-item__label"
-      style="width: 125px"
-    >{{name}}:</p>
-    <el-button
-      size="small"
-      type="text"
-    >点击上传
-    </el-button>
-    <!--    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
-  </el-upload>
+  <div id="saga-upload">
+    <div id="uploadFile">
+      <el-upload
+        class="upload-file"
+        action
+        :http-request="uploadAndSubmit"
+        :show-file-list="false"
+        drag
+      >
+        <el-button
+          size="small"
+          :type="isShow ===1 ? 'text':'primary'"
+          v-if="!readOnly"
+        >点击上传</el-button>
+        <span v-if="isShow !== 1 || isShow == undefined">
+          <div
+            slot="tip"
+            class="el-upload__tip"
+            v-if="!readOnly"
+          >请上传文件</div>
+        </span>
+
+      </el-upload>
+      <div
+        v-if="item && filesArr.length"
+        v-for="(item,index) in filesArr"
+      >
+        <el-button
+          type="text"
+          @click="download(item.Key)"
+        >
+          {{delFile(item.Name)}}</el-button>
+        <i
+          v-if="!readOnly"
+          class="el-icon-close delete-icon"
+          style="margin-left:10px; cursor:pointer"
+          @click="deleteFile(index,item)"
+        ></i>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+  import tools from "@/utils/scan/tools";
+
   export default {
-    name: "uploadFile",
-    props: ['name'],
+    props: {
+      keysArr: {
+        type: [Array, String],
+        default: function () {
+          return []
+        }
+      },
+      readOnly: {
+        type: Boolean,
+        default: false
+      },
+      max: {
+        type: [Number, String],
+        default: 6
+      },
+      isShow: {
+        type: Number
+      },
+      contextKey: {
+        type: [String, Object]
+      },
+      defined: null
+    },
     data() {
       return {
-        fileList: [
-          // {name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'},
-          // {name: 'food2.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}
-        ]
+        filesArr: []
       };
     },
+    created() {
+      this.fileFalg()
+    },
     methods: {
-      handleRemove(file, fileList) {
-        console.log(file, fileList);
+      //判断是否为空
+      fileFalg() {
+        let type = typeof (this.keysArr)
+        if (type == 'string') {
+          this.filesArr = [this.keysArr]
+          // this.filesArr = JSON.parse(this.keysArr)
+        } else {
+          this.filesArr = tools.deepCopy(this.keysArr)
+        }
+
+        if (!this.keysArr) {
+          this.filesArr = []
+        }
+      },
+      //处理地址
+      delFile(name) {
+        return name.length > 20 ? name.substring(0, 20) + "..." : name
       },
-      handlePreview(file) {
-        console.log(file);
+
+      resetFile() {
+        this.filesArr = []
       },
-      handleExceed(files, fileList) {
-        this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
+
+
+      //点击下载
+      download(key) {
+        console.log(key)
+        window.open("/image-service/common/file_get/" + key + "?systemId=dataPlatform")
       },
-      beforeRemove(file, fileList) {
-        return this.$confirm(`确定移除 ${file.name}?`);
+
+      //删除图片
+      deleteFile(i, key) {
+        this.filesArr.splice(i, 1);
+        this.$emit("change", this.filesArr, this.defined);
+      },
+
+      //上传
+      uploadAndSubmit(item) {
+        // var form = document.forms["demoForm"];
+
+        // if (form["file"].files.length > 0) {
+        // 寻找表单域中的 <input type="file" ... /> 标签
+        // var file = form["file"].files[0];
+
+        let file = item.file;
+        // try sending
+        let reader = new FileReader();
+
+        let vm = this;
+
+        let fileType = file.name.split(".");
+        let type = fileType[fileType.length - 1];
+        let key = "&key=" + fileType[0] + file.uid + "." + type
+        let CreateTime = tools.formatDate(new Date(file.lastModified))
+        reader.onloadstart = function () {
+          // 这个事件在读取开始时触发
+        };
+        reader.onprogress = function (p) {
+          // 这个事件在读取进行中定时触发
+
+        };
+        reader.onUploadProgress = function (progressEvent) {
+          let percent = (progressEvent.loaded / progressEvent.total * 100) | 0
+          //调用onProgress方法来显示进度条,需要传递个对象 percent为进度值
+          uploader.onProgress({percent: percent})
+        }
+        reader.onload = function () {
+          // 这个事件在读取成功结束后触发
+        };
+        reader.onloadend = function () {
+          // 这个事件在读取结束后,无论成功或者失败都会触发
+          if (reader.error) {
+          } else {
+            // document.getElementById("bytesRead").textContent = file.size;
+            // 构造 XMLHttpRequest 对象,发送文件 Binary 数据
+            var xhr = new XMLHttpRequest();
+            xhr.open(
+              /* method */
+              "POST",
+              /* target url */
+              "/image-service/common/file_upload?systemId=dataPlatform&secret=9e0891a7a8c8e885&overwrite=true" + key
+              /*, async, default to true */
+            );
+            //xhr.overrideMimeType("application/octet-stream");
+            xhr.send(reader.result);
+            xhr.onreadystatechange = function () {
+              if (xhr.readyState == 4) {
+                console.log(xhr)
+                if (xhr.status == 200) {
+                  let fileObject = {
+                    Key: key.split("=")[1],
+                    Type: type,
+                    Name: file.name,
+                    CreateTime,
+                    SystemId: 'dataPlatform'
+                  }
+                  vm.filesArr.push(fileObject);
+
+                  if(vm.isShow === 1) {
+                    let oFile = {}
+                    oFile[vm.contextKey] = vm.filesArr
+                    vm.$emit("change", oFile, vm.defined);
+                  } else {
+                    vm.$emit("change", vm.filesArr, vm.defined);
+                  }
+                } else {
+                  this.$message.error(res.data.ResultMsg)
+                }
+              }
+            };
+          }
+        };
+        reader.readAsArrayBuffer(file);
+      }
+    },
+    watch: {
+      keysArr: function (val) {
+        this.fileFalg()
       }
     }
-  }
+  };
 </script>
 
-<style scoped>
+<style lang="less">
+  #saga-upload {
+    .dill-image {
+      position: absolute;
+      right: 0;
+      top: 0;
+      font-size: 20px;
+    }
 
+    .el-upload-dragger {
+      width: 180px;
+      height: 180px;
+    }
+
+    img {
+      position: absolute;
+      top: 0;
+      bottom: 0;
+      left: 0;
+      right: 0;
+      width: 100%;
+      height: 100%;
+    }
+
+    #uploadFile {
+      .upload-file {
+        overflow: hidden;
+
+        .el-upload-dragger {
+          width: inherit;
+          height: inherit;
+          border: none;
+        }
+      }
+    }
+  }
 </style>

+ 10 - 3
src/views/ledger/cenotelist/cenoteDetail/index.vue

@@ -105,7 +105,7 @@
     },
     created() {
       this.params = this.$route.query;
-    this.getData();
+      this.getData();
   },
   mounted() { },
   watch: {
@@ -174,12 +174,19 @@
       this.currentRadio = val
     },
     formatDate(str) {
-      return str ? str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2) :'--'
+      if(str) {
+        if(str.includes('-')) {
+          return str
+        }else {
+          return  str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2)
+        }
+      } else {
+        return '--'
+      }
     },
     displayData(arr) {//对数据进行处理传给组件展示
       const result = {}
       arr.forEach(i => {
-
         if (this.instance.hasOwnProperty(i.Path) && this.currentRadio != 2) {
           i.value = this.instance[i.Path]
         }

+ 100 - 34
src/views/ledger/facility/details/index.vue

@@ -39,9 +39,9 @@
         <div class="content-media">
           <el-scrollbar style="height:100%;">
             <div>
-              <exhibitionImage :exhibitionImage="exhibitionImage"/>
-              <exhibitionVideo :exhibitionVideo="exhibitionVideo"/>
-              <exhibitionFile :exhibitionFile="exhibitionFile"/>
+              <exhibitionImage :exhibitionImage="exhibitionImage" v-show="isShowImage"/>
+              <exhibitionVideo :exhibitionVideo="exhibitionVideo" v-show="isShowVideo"/>
+              <exhibitionFile :exhibitionFile="exhibitionFile" v-show="isShowFile"/>
             </div>
           </el-scrollbar>
         </div>
@@ -131,6 +131,7 @@
         },
         exhibitionEnergy: {
           title: '能耗信息',
+          firstName:'',
           dynamic: [],
         },
         exhibitionMaintain: {
@@ -151,9 +152,12 @@
         },
         exhibitionVideo: {
           title: '视频',
-          list: {}
+          list: []
         },
         instance: {},//实例信息处理
+        isShowImage: true,
+        isShowVideo: true,
+        isShowFile: true,
       }
     },
     methods: {
@@ -194,6 +198,7 @@
           obj = tools.flattenKeys(obj);
           this.instance = obj;
           this.handleRadios(1)
+          this.handleEnclosure() //处理图片视频文件信息
           this.pointData.forEach(item => {
             if (item.InputMode == "L" || item.InputMode == "L1" || item.InputMode == "L2" || item.InputMode == "M") {
               let cur = tools.dataForKey(this.exampleData, item.Path);
@@ -216,10 +221,13 @@
           }
           if (this.criterias.length) {
             BeatchQueryParam(params, res => {
-              res.Content.map(child => {
+              res.Content && res.Content.map(child => {
                 this.pointData.forEach(head => {
                   if (head.InfoPointCode == child.code) {
+                    console.log(head.FirstName,child,'==')
+                    this.exhibitionEnergy.firstName = head.FirstName
                     this.exhibitionEnergy.dynamic.push({
+                      FirstName:head.FirstName,
                       InfoPointCode: head.InfoPointCode,
                       InfoPointName: head.InfoPointName,
                       Path: head.Path,
@@ -237,6 +245,22 @@
 
         })
       },
+      handleEnclosure() {
+        //图片文件处理,脱离radio控制
+        let isList = this.pointData
+        let isArr = []
+        isList.map(j => {
+          if (this.instance.hasOwnProperty(j.Path)) {
+            return {
+              ...j,
+              value: this.instance[j.Path]
+            }
+          }
+        })
+        isArr = isList.filter(k => k.value)
+        this.handlePicList(isArr)
+        this.handleFileList(isArr)
+      },
       handleRadios(val) { //判断radio的值显示关键信息,基本信息,图片,文件
         let arr = []
         //关键信息点
@@ -249,13 +273,13 @@
             }
           }
         })
+
         if (val == 1) { //需采集信息
           arr = this.pointData.filter(i => i.Visible)
-
-          //  图片和的处理
-          this.handlePicList(arr)
-          //  文件处理
-          this.handleFileList(arr)
+          // //  图片和的处理
+          // this.handlePicList(arr)
+          // //  文件处理
+          // this.handleFileList(arr)
 
         } else if (val == 2) { //有值信息点
           let list = this.pointData
@@ -266,14 +290,15 @@
                 value: this.instance[j.Path]
               }
             }
-            arr = list.filter(k => k.value)
-            this.handlePicList(arr)
-            this.handleFileList(arr)
           })
+          arr = list.filter(k => k.value)
+          // this.handlePicList(arr, 2)
+          // this.handleFileList(arr, 2)
+
         } else { //全部信息点
           arr = this.pointData
-          this.handlePicList(arr)
-          this.handleFileList(arr)
+          // this.handlePicList(arr)
+          // this.handleFileList(arr)
         }
         this.displayData(arr)
       },
@@ -281,31 +306,49 @@
         let picObject = {}
         //处理数据格式
         arr.map(i => {
-            if(i.InputMode == 'F2') {
-              switch (i.Path) {
-                case 'LedgerParam.PhotoDoc.Drawing':
-                case 'LedgerParam.Siteinstall.InstallPic':
-                case 'LedgerParam.Siteinstall.InstallDrawing':
-                case 'LedgerParam.PhotoDoc.Nameplate':
-                  if (this.instance.hasOwnProperty(i.Path)) {
-                    i.PicList = this.instance[i.Path]
-                  }
-                  if (picObject[i.InfoPointName]) {
+          if (i.InputMode == 'F2') {
+            switch (i.Path) {
+              case 'LedgerParam.PhotoDoc.Drawing':
+              case 'LedgerParam.Siteinstall.InstallPic':
+              case 'LedgerParam.Siteinstall.InstallDrawing':
+              case 'LedgerParam.PhotoDoc.Nameplate':
+                if (this.instance.hasOwnProperty(i.Path)) {
+                  i.PicList = this.instance[i.Path]
+                }
+                if (picObject[i.InfoPointName]) {
 
-                  } else {
-                    picObject[i.InfoPointName] = []
-                  }
-                  picObject[i.InfoPointName].push({
-                    ...i,
-                  })
-                  break;
+                } else {
+                  picObject[i.InfoPointName] = []
+                }
+                picObject[i.InfoPointName].push({
+                  ...i,
+                })
+                break;
 
-              }
             }
+          }
 
         })
         //展示图片
         this.exhibitionImage.list = picObject
+        let isArray = [] //获取图片数组
+        for (let i in picObject) {
+          if (Array.isArray(picObject[i])) {
+            let list = picObject[i]
+            list.forEach(i => {
+              if (i.PicList) {
+                isArray.push(...i.PicList)
+              }
+            })
+          }
+        }
+        let video = isArray.filter(i => i.Type != 'image' &&i.type != 'image' )
+        this.exhibitionVideo.list = video
+          //判断是否显示图片组件
+          this.isShowImage = isArray.length ? true : false
+          //判断是否显示video组件
+          this.isShowVideo = video.length ? true : false
+
       },
       handleFileList(arr) {
         let picObject = {}
@@ -333,13 +376,35 @@
         })
         //展示文件
         this.exhibitionFile.list = picObject
+        let isArray = [] //获取文件数组
+        for (let i in picObject) {
+          if (Array.isArray(picObject[i])) {
+            let list = picObject[i]
+            list.forEach(i => {
+              if (i.fileList) {
+                isArray.push(...i.fileList)
+              }
+            })
+          }
+        }
+          //判断是否显示文件组件
+          this.isShowFile = isArray.length ? true : false
+
       },
       changeRadio(val) { //1,需采集,2,有值,3,全部
         this.handleRadios(val)
         this.currentRadio = val
       },
       formatDate(str) {
-        return str ? str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2) :'--'
+        if(str) {
+          if(str.includes('-')) {
+            return str
+          }else {
+            return  str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2)
+          }
+        } else {
+          return '--'
+        }
       },
       displayData(arr) {//对数据进行处理传给组件展示
         const result = {}
@@ -428,6 +493,7 @@
       handleChangeExample() {
         this.selectRadio.initRadio = '1'
         this.getData();
+        this.exhibitionEnergy.dynamic = []
       },
     },
     watch: {

+ 69 - 11
src/views/ledger/property/details/index.vue

@@ -30,9 +30,9 @@
         <div class="content-media">
           <el-scrollbar style="height:100%;">
             <div>
-              <exhibitionImage :exhibitionImage="exhibitionImage"/>
-              <exhibitionVideo :exhibitionVideo="exhibitionVideo"/>
-              <exhibitionFile :exhibitionFile="exhibitionFile"/>
+              <exhibitionImage :exhibitionImage="exhibitionImage" v-show="isShowImage"/>
+              <exhibitionVideo :exhibitionVideo="exhibitionVideo" v-show="isShowVideo"/>
+              <exhibitionFile :exhibitionFile="exhibitionFile" v-show="isShowFile"/>
             </div>
           </el-scrollbar>
         </div>
@@ -134,6 +134,9 @@
           list: {}
         },
         instance: {},//实例信息处理
+        isShowImage: true,
+        isShowVideo: true,
+        isShowFile: true,
       }
     },
     methods: {
@@ -174,8 +177,25 @@
           obj = tools.flattenKeys(obj);
           this.instance = obj;
           this.handleRadios(1)
+          this.handleEnclosure() //处理图片视频文件信息
         })
       },
+      handleEnclosure() {
+        //图片文件处理,脱离radio控制
+        let isList = this.pointData
+        let isArr = []
+        isList.map(j => {
+          if (this.instance.hasOwnProperty(j.Path)) {
+            return {
+              ...j,
+              value: this.instance[j.Path]
+            }
+          }
+        })
+        isArr = isList.filter(k => k.value)
+        this.handlePicList(isArr)
+        this.handleFileList(isArr)
+      },
       handleRadios(val) { //判断radio的值显示关键信息,基本信息,图片,文件
         let arr = []
         //关键信息点
@@ -192,9 +212,9 @@
           arr = this.pointData.filter(i => i.Visible)
 
           //  图片和的处理
-          this.handlePicList(arr)
-          //  文件处理
-          this.handleFileList(arr)
+          // this.handlePicList(arr)
+          // //  文件处理
+          // this.handleFileList(arr)
 
         } else if (val == 2) { //有值信息点
           let list = this.pointData
@@ -206,13 +226,13 @@
               }
             }
             arr = list.filter(k => k.value)
-            this.handlePicList(arr)
-            this.handleFileList(arr)
+            // this.handlePicList(arr)
+            // this.handleFileList(arr)
           })
         } else { //全部信息点
           arr = this.pointData
-          this.handlePicList(arr)
-          this.handleFileList(arr)
+          // this.handlePicList(arr)
+          // this.handleFileList(arr)
         }
         this.displayData(arr)
       },
@@ -245,6 +265,23 @@
         })
         //展示图片
         this.exhibitionImage.list = picObject
+        let isArray = [] //获取图片数组
+        for (let i in picObject) {
+          if (Array.isArray(picObject[i])) {
+            let list = picObject[i]
+            list.forEach(i => {
+              if (i.PicList) {
+                isArray.push(...i.PicList)
+              }
+            })
+          }
+        }
+        let video = isArray.filter(i => i.Type =='video' && i.type == 'video' )
+        this.exhibitionVideo.list = video
+        //判断是否显示图片组件
+        this.isShowImage = isArray.length ? true : false
+        //判断是否显示video组件
+        this.isShowVideo = video.length ? true : false
       },
       handleFileList(arr) {
         let picObject = {}
@@ -274,13 +311,34 @@
         })
         //展示文件
         this.exhibitionFile.list = picObject
+        let isArray = [] //获取文件数组
+        for (let i in picObject) {
+          if (Array.isArray(picObject[i])) {
+            let list = picObject[i]
+            list.forEach(i => {
+              if (i.fileList) {
+                isArray.push(...i.fileList)
+              }
+            })
+          }
+        }
+        //判断是否显示文件组件
+        this.isShowFile = isArray.length ? true : false
       },
       changeRadio(val) { //1,需采集,2,有值,3,全部
         this.handleRadios(val)
         this.currentRadio = val
       },
       formatDate(str) {
-        return str ? str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2) :'--'
+        if(str) {
+          if(str.includes('-')) {
+            return str
+          }else {
+            return  str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2)
+          }
+        } else {
+          return '--'
+        }
       },
       displayData(arr) {//对数据进行处理传给组件展示
         const result = {}

+ 70 - 12
src/views/ledger/spacelist/spaceDetail/index.vue

@@ -51,9 +51,9 @@
           <div class="content-media">
             <el-scrollbar style="height:100%;">
               <div >
-                <exhibitionImage :exhibitionImage="exhibitionImage"/>
-                <exhibitionVideo :exhibitionVideo="exhibitionVideo"/>
-                <exhibitionFile :exhibitionFile="exhibitionFile"/>
+                <exhibitionImage :exhibitionImage="exhibitionImage" v-show="isShowImage"/>
+                <exhibitionVideo :exhibitionVideo="exhibitionVideo" v-show="isShowVideo"/>
+                <exhibitionFile :exhibitionFile="exhibitionFile" v-show="isShowFile"/>
               </div>
             </el-scrollbar>
           </div>
@@ -145,7 +145,10 @@
         exhibitionVideo: {
           title: '视频',
           list: {}
-        }
+        },
+        isShowImage: true,
+        isShowVideo: true,
+        isShowFile: true,
       }
   },
   computed: {
@@ -214,6 +217,7 @@
         obj = tools.flattenKeys(obj);
         this.instance = obj;
         this.handleRadios(1)
+        this.handleEnclosure() //处理图片视频文件信息
         this.pointData.forEach(item => {
           if (item.InputMode == "L" || item.InputMode == "L1" || item.InputMode == "L2" || item.InputMode == "M") {
             let cur = tools.dataForKey(this.exampleData, item.Path);
@@ -254,6 +258,22 @@
         }
       })
     },
+    handleEnclosure() {
+      //图片文件处理,脱离radio控制
+      let isList = this.pointData
+      let isArr = []
+      isList.map(j => {
+        if (this.instance.hasOwnProperty(j.Path)) {
+          return {
+            ...j,
+            value: this.instance[j.Path]
+          }
+        }
+      })
+      isArr = isList.filter(k => k.value)
+      this.handlePicList(isArr)
+      this.handleFileList(isArr)
+    },
     handleRadios(val) { //判断radio的值显示关键信息,基本信息,图片,文件
       let arr = []
       //关键信息点
@@ -269,9 +289,9 @@
       if (val == 1) { //需采集信息
         arr = this.pointData.filter(i => i.Visible)
         //  图片和的处理
-        this.handlePicList(arr)
-        //  文件处理
-        this.handleFileList(arr)
+        // this.handlePicList(arr)
+        // //  文件处理
+        // this.handleFileList(arr)
 
       } else if (val == 2) { //有值信息点
         let list = this.pointData
@@ -283,13 +303,13 @@
             }
           }
           arr = list.filter(k => k.value)
-          this.handlePicList(arr)
-          this.handleFileList(arr)
+          // this.handlePicList(arr)
+          // this.handleFileList(arr)
         })
       } else { //全部信息点
         arr = this.pointData
-        this.handlePicList(arr)
-        this.handleFileList(arr)
+        // this.handlePicList(arr)
+        // this.handleFileList(arr)
       }
       this.displayData(arr)
     },
@@ -322,6 +342,23 @@
       })
       //展示图片
       this.exhibitionImage.list = picObject
+      let isArray = [] //获取图片数组
+      for (let i in picObject) {
+        if (Array.isArray(picObject[i])) {
+          let list = picObject[i]
+          list.forEach(i => {
+            if (i.PicList) {
+              isArray.push(...i.PicList)
+            }
+          })
+        }
+      }
+      let video = isArray.filter(i => i.Type != 'image' &&i.type != 'image' )
+      this.exhibitionVideo.list = video
+      //判断是否显示图片组件
+      this.isShowImage = isArray.length ? true : false
+      //判断是否显示video组件
+      this.isShowVideo = video.length ? true : false
     },
     handleFileList(arr) {
       let picObject = {}
@@ -351,13 +388,34 @@
       })
       //展示文件
       this.exhibitionFile.list = picObject
+      let isArray = [] //获取文件数组
+      for (let i in picObject) {
+        if (Array.isArray(picObject[i])) {
+          let list = picObject[i]
+          list.forEach(i => {
+            if (i.fileList) {
+              isArray.push(...i.fileList)
+            }
+          })
+        }
+      }
+      //判断是否显示文件组件
+      this.isShowFile = isArray.length ? true : false
     },
     changeRadio(val) { //1,需采集,2,有值,3,全部
       this.handleRadios(val)
       this.currentRadio = val
     },
     formatDate(str) {
-      return str ? str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2) :'--'
+      if(str) {
+        if(str.includes('-')) {
+          return str
+        }else {
+          return  str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2)
+        }
+      } else {
+        return '--'
+      }
     },
     displayData(arr) {//对数据进行处理传给组件展示
       const result = {}

+ 69 - 11
src/views/ledger/system/systemDetail/index.vue

@@ -42,9 +42,9 @@
           <div class="content-media">
             <el-scrollbar style="height:100%;">
               <div>
-                <exhibitionImage :exhibitionImage="exhibitionImage"/>
-                <exhibitionVideo :exhibitionVideo="exhibitionVideo"/>
-                <exhibitionFile :exhibitionFile="exhibitionFile"/>
+                <exhibitionImage :exhibitionImage="exhibitionImage" v-show="isShowImage"/>
+                <exhibitionVideo :exhibitionVideo="exhibitionVideo" v-show="isShowVideo"/>
+                <exhibitionFile :exhibitionFile="exhibitionFile" v-show="isShowFile"/>
               </div>
             </el-scrollbar>
           </div>
@@ -144,6 +144,9 @@
           list: {}
         },
         instance: {},//实例信息处理
+        isShowImage: true,
+        isShowVideo: true,
+        isShowFile: true,
       }
   },
   computed: {
@@ -237,19 +240,36 @@
         obj = tools.flattenKeys(obj);
         this.instance = obj;
         this.handleRadios(1)
+        this.handleEnclosure() //处理图片视频文件信息
       })
     },
     deepCopy(obj) {
       return JSON.parse(JSON.stringify(obj))
     },
+    handleEnclosure() {
+      //图片文件处理,脱离radio控制
+      let isList = this.pointData
+      let isArr = []
+      isList.map(j => {
+        if (this.instance.hasOwnProperty(j.Path)) {
+          return {
+            ...j,
+            value: this.instance[j.Path]
+          }
+        }
+      })
+      isArr = isList.filter(k => k.value)
+      this.handlePicList(isArr)
+      this.handleFileList(isArr)
+    },
     handleRadios(val) { //判断radio的值显示关键信息,基本信息,图片,文件
       let arr = []
       if (val == 1) { //需采集信息
         arr = this.pointData.filter(i => i.Visible)
         //  图片和的处理
-        this.handlePicList(arr)
-        //  文件处理
-        this.handleFileList(arr)
+        // this.handlePicList(arr)
+        // //  文件处理
+        // this.handleFileList(arr)
 
       } else if (val == 2) { //有值信息点
         let list = this.pointData
@@ -261,13 +281,13 @@
             }
           }
           arr = list.filter(k => k.value)
-          this.handlePicList(arr)
-          this.handleFileList(arr)
+          // this.handlePicList(arr)
+          // this.handleFileList(arr)
         })
       } else { //全部信息点
         arr = this.pointData
-        this.handlePicList(arr)
-        this.handleFileList(arr)
+        // this.handlePicList(arr)
+        // this.handleFileList(arr)
       }
       this.displayData(arr)
     },
@@ -300,6 +320,23 @@
       })
       //展示图片
       this.exhibitionImage.list = picObject
+      let isArray = [] //获取图片数组
+      for (let i in picObject) {
+        if (Array.isArray(picObject[i])) {
+          let list = picObject[i]
+          list.forEach(i => {
+            if (i.PicList) {
+              isArray.push(...i.PicList)
+            }
+          })
+        }
+      }
+      let video = isArray.filter(i => i.Type != 'image' &&i.type != 'image' )
+      this.exhibitionVideo.list = video
+      //判断是否显示图片组件
+      this.isShowImage = isArray.length ? true : false
+      //判断是否显示video组件
+      this.isShowVideo = video.length ? true : false
     },
     handleFileList(arr) {
       let picObject = {}
@@ -329,13 +366,34 @@
       })
       //展示文件
       this.exhibitionFile.list = picObject
+      let isArray = [] //获取文件数组
+      for (let i in picObject) {
+        if (Array.isArray(picObject[i])) {
+          let list = picObject[i]
+          list.forEach(i => {
+            if (i.fileList) {
+              isArray.push(...i.fileList)
+            }
+          })
+        }
+      }
+      //判断是否显示文件组件
+      this.isShowFile = isArray.length ? true : false
     },
     changeRadio(val) { //1,需采集,2,有值,3,全部
       this.handleRadios(val)
       this.currentRadio = val
     },
     formatDate(str) {
-      return str ? str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2) :'--'
+      if(str) {
+        if(str.includes('-')) {
+          return str
+        }else {
+          return  str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2)+" "+str.substr(8,2) + ":" +str.substr(10,2) + ":"+str.substr(12,2)
+        }
+      } else {
+        return '--'
+      }
     },
     displayData(arr) {//对数据进行处理传给组件展示
       const result = {}

+ 1 - 1
src/views/ready/buildfloor/index.vue

@@ -216,7 +216,7 @@
           data: {
             Orders: "sort asc,InfoPointCode asc",
             PageNumber: 1,
-            PageSize: 50
+            PageSize: 1000
           },
           type: 'Building'
         };