|
@@ -52,7 +52,7 @@
|
|
|
:loadName="loadName"
|
|
|
:type="'system'"
|
|
|
></floorMap>
|
|
|
- <div class="legend-boxs">
|
|
|
+ <div class="legend-boxs" ref="legendBoxs">
|
|
|
<Legend
|
|
|
:key="keyLd"
|
|
|
:systemName="systemName"
|
|
@@ -74,99 +74,47 @@
|
|
|
ref="additionalBox"
|
|
|
v-if="fqPic.length > 0 && (smsxt == '1003' || smsxt == '1004')"
|
|
|
>
|
|
|
- <div
|
|
|
- class="additional2"
|
|
|
- @click="additionalColl"
|
|
|
- v-if="showView === 3"
|
|
|
- >
|
|
|
- <img src="../../assets/imgs/bg2.png" alt />
|
|
|
- </div>
|
|
|
- <div class="additional" @click="additionalColl" v-else>
|
|
|
- <img src="../../assets/imgs/bg.png" alt />
|
|
|
- </div>
|
|
|
+
|
|
|
+ <el-badge :is-dot="visibleTooltip" class="item" >
|
|
|
+ <a-tooltip v-if="showView === 3" placement="bottomRight" :defaultVisible="visibleTooltip" overlayClassName="additional-box-tooltip" :visible="visibleTooltip">
|
|
|
+ <template slot="title">
|
|
|
+ <span>数据填写不完整,请检查并完善</span>
|
|
|
+ </template>
|
|
|
+ <div
|
|
|
+ class="additional2"
|
|
|
+ @click="additionalColl"
|
|
|
+ >
|
|
|
+ <img src="../../assets/imgs/bg2.png" alt />
|
|
|
+ </div>
|
|
|
+ </a-tooltip>
|
|
|
+ <div class="additional" @click="additionalColl" v-else>
|
|
|
+ <img src="../../assets/imgs/bg.png" alt />
|
|
|
+ </div>
|
|
|
+ </el-badge>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
<el-collapse-transition>
|
|
|
<div
|
|
|
v-show="showView === 3"
|
|
|
class="add-img-container"
|
|
|
ref="addImgContainer"
|
|
|
- :style="`bottom: ${bottomOffset}px;`"
|
|
|
+
|
|
|
+ :style="`top: ${bottomOffset}px;bottom:unset`"
|
|
|
>
|
|
|
- <!-- execl替代图片展示 -->
|
|
|
- <div class="add-img" ref="addImg">
|
|
|
- <img :src="fqPic[0].url" alt />
|
|
|
- </div>
|
|
|
- <!-- execl功能去掉 -->
|
|
|
+ <!-- :style="`bottom: ${bottomOffset}px;`"-->
|
|
|
<!-- <div class="add-img" ref="addImg">
|
|
|
- <div class="tooltip-msg">
|
|
|
- <img
|
|
|
- src="../../assets/images/icons/notice.png"
|
|
|
- @mouseover="showToolTip"
|
|
|
- @mouseout="hideToolTip"
|
|
|
- width="20px"
|
|
|
- height="20px"
|
|
|
- />
|
|
|
- <transition name="selectDownUpExtendTop">
|
|
|
- <div v-show="showExeclTooltip">
|
|
|
- <div class="tool-tip" v-if="showXFXTToltip">
|
|
|
- 标准:<br />
|
|
|
- 1、仅可插入行,不可插入列。(最多拓展两列)<br />
|
|
|
- 2、点击单个单元格,并进行左右或者上下滑动已选中多个单元格并进行合并单元格。<br />
|
|
|
- 3、手动输入字符后,单元格可根据字符长度自适应调整单元格大小。最多不可超过15个字符。(编号不可合并排列,应拆分每个编号并按照每个编号录入)
|
|
|
- </div>
|
|
|
- <div class="tool-tip" v-else>
|
|
|
- 标准:<br />
|
|
|
- 1、添加仅支持添加行。添加时每添加一个分区则默认添加该分区下的监控系统、BA系统和门禁系统。<br />
|
|
|
- 2、仅可修改和编辑分区和数量这一列。
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </transition>
|
|
|
- </div>
|
|
|
- <div id="result"></div>
|
|
|
- <div class="btn-list">
|
|
|
- <el-upload
|
|
|
- class=""
|
|
|
- action="#"
|
|
|
- :http-request="uploadExl"
|
|
|
- :show-file-list="false"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- style="
|
|
|
- width: 45px;
|
|
|
- text-align: center;
|
|
|
- padding: 7px 5px;
|
|
|
- "
|
|
|
- size="mini"
|
|
|
- >上传</el-button
|
|
|
- >
|
|
|
- </el-upload>
|
|
|
- <el-button
|
|
|
- style="
|
|
|
- width: 45px;
|
|
|
- text-align: center;
|
|
|
- padding: 7px 5px;
|
|
|
- "
|
|
|
- size="mini"
|
|
|
- @click="downloadExl"
|
|
|
- >下载</el-button
|
|
|
- >
|
|
|
- <el-upload
|
|
|
- class=""
|
|
|
- action="#"
|
|
|
- :http-request="uploadTemplateExl"
|
|
|
- :show-file-list="false"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- style="
|
|
|
- width: 75px;
|
|
|
- text-align: center;
|
|
|
- padding: 7px 5px;
|
|
|
- "
|
|
|
- size="mini"
|
|
|
- >模板上传</el-button
|
|
|
- >
|
|
|
- </el-upload>
|
|
|
- </div>
|
|
|
+ <img :src="fqPic[0].url" alt />
|
|
|
</div> -->
|
|
|
+ <!-- -->
|
|
|
+ <div class="add-data-box">
|
|
|
+<!-- 该div内为谢贝贝开发区域-->
|
|
|
+ <div class="add-data-table" style="max-height: 500px">
|
|
|
+<!-- <addDataTable :system-name="systemName" :tableData2="tableData" :tableData="tableData" :totalCount="totalCount" :examplesBoo="false"></addDataTable>-->
|
|
|
+ <addDataTable :system-name="systemName" :tableData="tableData" :totalCount="totalCount" :examplesBoo="false"></addDataTable>
|
|
|
+ </div>
|
|
|
+ <el-button type="primary" class="add-data-editbtn" @click="addDataVisible=!addDataVisible">编辑</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-collapse-transition>
|
|
|
</div>
|
|
@@ -184,6 +132,8 @@
|
|
|
@emitCount="emitCount"
|
|
|
@closeModal="closeModal"
|
|
|
></eq-dialog>
|
|
|
+<!--编辑点击弹窗-->
|
|
|
+ <addDataDialog v-if="addDataVisible" :systemName="systemName" @handelCancel="handelCancel" :tableData="tableData"></addDataDialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -191,6 +141,8 @@
|
|
|
import floorList from "@/components/floorList.vue";
|
|
|
import floorMap from "@/components/floorMap/index.vue";
|
|
|
import eqDialog from "./eqDialog";
|
|
|
+import addDataDialog from "./addDataDialog";
|
|
|
+import addDataTable from "./addDataTable";
|
|
|
import { system } from "@/utils/plugins/components.js";
|
|
|
import { queryPic, getPvUv } from "@/api/public.js";
|
|
|
import {
|
|
@@ -198,6 +150,9 @@ import {
|
|
|
downloadExcel,
|
|
|
previewExecl,
|
|
|
uploadExcelTemplate,
|
|
|
+ addDataCheckComplete,
|
|
|
+ addDataPreviewFireControl,
|
|
|
+ addDataPreviewWeakCurrent,
|
|
|
} from "@/api/equipmentList.js";
|
|
|
import { mapGetters } from "vuex";
|
|
|
import store from "../../store";
|
|
@@ -205,31 +160,36 @@ import XLSX from "xlsx";
|
|
|
import { Alert } from "ant-design-vue";
|
|
|
export default {
|
|
|
data() {
|
|
|
- return {
|
|
|
- system,
|
|
|
- everySystem: [],
|
|
|
- systemId: 1,
|
|
|
- categoryId: "GDXT",
|
|
|
- systemName: "供电系统",
|
|
|
- floorInfo: {},
|
|
|
- smsxt: "1001",
|
|
|
- dialogInfo: {},
|
|
|
- brand: [], //品牌
|
|
|
- manufacturer: [],
|
|
|
- fqPic: [],
|
|
|
- loadName: "",
|
|
|
- type: "",
|
|
|
- objCount: [],
|
|
|
- bottomOffset: 0,
|
|
|
- keyFL: "keyFL" + new Date().getTime(),
|
|
|
- keyLd: "keyLd_" + new Date().getTime(),
|
|
|
- ShowDialog: false, //是否显示弹窗
|
|
|
- showLookPic: false,
|
|
|
- showExeclTooltip: false, // 是否展示execl提示信息,
|
|
|
- showXFXTToltip: false, //是否展示消防系统tooltip
|
|
|
- };
|
|
|
+ return {
|
|
|
+ system,
|
|
|
+ everySystem: [],
|
|
|
+ systemId: 1,
|
|
|
+ categoryId: "GDXT",
|
|
|
+ systemName: "供电系统",
|
|
|
+ floorInfo: {},
|
|
|
+ smsxt: "1001",
|
|
|
+ dialogInfo: {},
|
|
|
+ brand: [], //品牌
|
|
|
+ manufacturer: [],
|
|
|
+ fqPic: [],
|
|
|
+ loadName: "",
|
|
|
+ type: "",
|
|
|
+ objCount: [],
|
|
|
+ bottomOffset: 0,
|
|
|
+ keyFL: "keyFL" + new Date().getTime(),
|
|
|
+ keyLd: "keyLd_" + new Date().getTime(),
|
|
|
+ ShowDialog: false, //是否显示弹窗
|
|
|
+ showLookPic: false,
|
|
|
+ showExeclTooltip: false, // 是否展示execl提示信息,
|
|
|
+ showXFXTToltip: false, //是否展示消防系统tooltip
|
|
|
+
|
|
|
+ addDataVisible: false,//附加数据弹窗
|
|
|
+ visibleTooltip:false, //是否展示附加数据有无数据提示信息
|
|
|
+ tableData:[],
|
|
|
+ totalCount:{},
|
|
|
+ };
|
|
|
},
|
|
|
- components: { floorList, eqDialog, floorMap },
|
|
|
+ components: { floorList, eqDialog, floorMap,addDataDialog ,addDataTable},
|
|
|
watch: {
|
|
|
// 监听currentFloor变化,重新渲染楼层组件,解决 数据与视图不照应的问题
|
|
|
/* '$store.state.currentFloor': {
|
|
@@ -242,6 +202,17 @@ export default {
|
|
|
} */
|
|
|
},
|
|
|
methods: {
|
|
|
+ //附加数据弹窗取消
|
|
|
+ handelCancel(data){
|
|
|
+ this.addDataVisible = data;
|
|
|
+ this.addDataCheckCompleteFun();
|
|
|
+ if(this.systemName =='消防系统'){
|
|
|
+ this.addDataPreviewFireControlFun();
|
|
|
+ }
|
|
|
+ if(this.systemName =='弱电系统'){
|
|
|
+ this.addDataPreviewWeakCurrentFun();
|
|
|
+ }
|
|
|
+ },
|
|
|
showToolTip() {
|
|
|
this.showExeclTooltip = true;
|
|
|
if (this.smsxt == 1003) {
|
|
@@ -402,6 +373,8 @@ export default {
|
|
|
// 目前消防和弱电下面有特殊的数据表格
|
|
|
if (this.smsxt == "1003" || this.smsxt == "1004") {
|
|
|
this.queryTable(this.smsxt);
|
|
|
+ //检测消防和弱电下是否表格有数据
|
|
|
+ this.addDataCheckCompleteFun();
|
|
|
}
|
|
|
},
|
|
|
//判断有没有原理图,如果没有则不出现系统原理图列表li
|
|
@@ -454,7 +427,7 @@ export default {
|
|
|
},
|
|
|
//附加数据图片查看 showView为3展示状态
|
|
|
additionalColl() {
|
|
|
- // // 走预览接口
|
|
|
+ // // 走预览接口
|
|
|
// this.previewExl();
|
|
|
// 调整样式
|
|
|
if (this.showView != 3) {
|
|
@@ -462,9 +435,10 @@ export default {
|
|
|
this.$nextTick(() => {
|
|
|
let p = this.$refs.additionalBox.offsetTop;
|
|
|
let d = this.$refs.addImgContainer.offsetHeight;
|
|
|
+ let lb= this.$refs.legendBoxs.offsetHeight;
|
|
|
let bottomOffset = p + 44 - d;
|
|
|
- if (bottomOffset >= 0) {
|
|
|
- this.bottomOffset = 0;
|
|
|
+ if (bottomOffset >= 0) {
|
|
|
+ this.bottomOffset = this.systemName =='消防系统'?-lb+44:-lb-1+44;
|
|
|
} else {
|
|
|
this.bottomOffset = bottomOffset;
|
|
|
}
|
|
@@ -472,6 +446,14 @@ export default {
|
|
|
} else {
|
|
|
this.$store.commit("SETSHOWVIEW", 0);
|
|
|
}
|
|
|
+ if(this.systemName =='消防系统'){
|
|
|
+ this.addDataPreviewFireControlFun();
|
|
|
+ }
|
|
|
+ if(this.systemName =='弱电系统'){
|
|
|
+ this.addDataPreviewWeakCurrentFun();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
// 查询附加数据图片
|
|
|
queryTable(system) {
|
|
@@ -526,6 +508,156 @@ export default {
|
|
|
this.$cookie.set("categoryId", "SCPZ");
|
|
|
}
|
|
|
},
|
|
|
+ // 查看数据是否填写完整
|
|
|
+ addDataCheckCompleteFun() {
|
|
|
+ let postParams = {
|
|
|
+ projectId: this.plazaId,
|
|
|
+ systemCode: this.smsxt,
|
|
|
+ floor: this.floorInfo.gname,
|
|
|
+ }
|
|
|
+ addDataCheckComplete({postParams}).then(res=>{
|
|
|
+ if (res.data.result == 'success') {
|
|
|
+ if (res.data.data.isComplete=='true') {
|
|
|
+ this.visibleTooltip = false;
|
|
|
+ } else {
|
|
|
+ this.visibleTooltip = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 消防系统数据预览/数据回显
|
|
|
+ addDataPreviewFireControlFun(){
|
|
|
+ let postParams = {
|
|
|
+ projectId: this.plazaId,
|
|
|
+ systemCode: this.smsxt,
|
|
|
+ floor: this.floorInfo.gname,
|
|
|
+ getTotal:'1'
|
|
|
+ }
|
|
|
+ addDataPreviewFireControl({postParams}).then(res=>{
|
|
|
+ this.tableData= [];
|
|
|
+ if(res.data.result=='success'){
|
|
|
+ if(res.data.data&&res.data.data.infoList.length){
|
|
|
+ this.tableData = res.data.data.infoList;
|
|
|
+ }else{
|
|
|
+ let obj = {
|
|
|
+ key :''+new Date().getTime(),
|
|
|
+ fireZone:"", //防火分区
|
|
|
+ isFm: "1", //是否属于工程物业管理范围,0:否,1:是
|
|
|
+ hostNum:"", //主机编号
|
|
|
+ loopNum:"", //回路编号
|
|
|
+ smokeCount:"", //烟感数量
|
|
|
+ warmCount:"", //温感数量
|
|
|
+ handNewCount:"", //手报数量
|
|
|
+ fireHydrantCount:"", //消火栓数量
|
|
|
+ moduleCount:"", //模块数量
|
|
|
+ manageScope:'',
|
|
|
+ errorMsg1:true,
|
|
|
+ errorMsg2:true,
|
|
|
+ errorMsg3:true,
|
|
|
+ errorMsg4:true,
|
|
|
+ errorMsg5:true,
|
|
|
+ };
|
|
|
+ this.tableData.push(obj)
|
|
|
+ }
|
|
|
+ this.totalCount = res.data.data && res.data.data.totalCount ? res.data.data.totalCount :{};
|
|
|
+
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: res.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //弱电系统数据预览/回显
|
|
|
+ addDataPreviewWeakCurrentFun(){
|
|
|
+ let postParams = {
|
|
|
+ projectId: this.plazaId,
|
|
|
+ systemCode: this.smsxt,
|
|
|
+ floor: this.floorInfo.gname,
|
|
|
+ getTotal:'1'
|
|
|
+ }
|
|
|
+ addDataPreviewWeakCurrent({postParams}).then(res=>{
|
|
|
+ this.tableData =[];
|
|
|
+ if(res.data.result=='success'){
|
|
|
+ if(res.data.data && res.data.data.infoList.length){
|
|
|
+ res.data.data.infoList.length && res.data.data.infoList.map(item=>{
|
|
|
+ let arr = [
|
|
|
+ {
|
|
|
+ fireZone: '',
|
|
|
+ system: '监控系统',
|
|
|
+ monitorCount: '',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ fireZone: '',
|
|
|
+ system: 'BA系统',
|
|
|
+ baCount: '',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ fireZone: '',
|
|
|
+ system: 'DDC',
|
|
|
+ ddcCount: '',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ fireZone: '',
|
|
|
+ system: '门禁系统',
|
|
|
+ accessCount: '',
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ arr[0].fireZone = item.fireZone;
|
|
|
+ arr[0].monitorCount = item.monitorCount;
|
|
|
+ arr[1].baCount = item.baCount;
|
|
|
+ arr[2].ddcCount = item.ddcCount;
|
|
|
+ arr[3].accessCount = item.accessCount;
|
|
|
+ this.tableData.push(...arr);
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ let arr = [
|
|
|
+ {
|
|
|
+ key :''+new Date().getTime()+1,
|
|
|
+ fireZone: '',
|
|
|
+ system: '监控系统',
|
|
|
+ monitorCount: '',
|
|
|
+ errorMsg:true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key :''+new Date().getTime()+2,
|
|
|
+ fireZone: '',
|
|
|
+ system: 'BA系统',
|
|
|
+ baCount: '',
|
|
|
+ errorMsg:true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key :''+new Date().getTime()+3,
|
|
|
+ fireZone: '',
|
|
|
+ system: 'DDC',
|
|
|
+ ddcCount: '',
|
|
|
+ errorMsg:true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key :''+new Date().getTime()+4,
|
|
|
+ fireZone: '',
|
|
|
+ system: '门禁系统',
|
|
|
+ accessCount: '',
|
|
|
+ errorMsg:true
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ this.tableData.push(...arr);
|
|
|
+ }
|
|
|
+
|
|
|
+ this.totalCount = res.data.data && res.data.data.totalCount ? res.data.data.totalCount :{};
|
|
|
+
|
|
|
+
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: res.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
},
|
|
|
created() {
|
|
|
/**
|
|
@@ -547,7 +679,6 @@ export default {
|
|
|
*/
|
|
|
// this.$refs.floorMap.init(this.floorInfo.gname)
|
|
|
if (this.$route.query.smsxt) {
|
|
|
- console.log(this.$route.query.smsxt);
|
|
|
this.smsxt = this.$route.query.smsxt;
|
|
|
this.smsxtQuery();
|
|
|
this.system.forEach((el) => {
|
|
@@ -717,6 +848,11 @@ export default {
|
|
|
z-index: 9;
|
|
|
right: 32px;
|
|
|
top: 142px;
|
|
|
+ /deep/ .el-badge__content.is-dot{
|
|
|
+ width: 12px;
|
|
|
+ height: 12px;
|
|
|
+ background: #F54E45;
|
|
|
+ }
|
|
|
}
|
|
|
.additional-box {
|
|
|
position: relative;
|
|
@@ -748,7 +884,7 @@ export default {
|
|
|
box-shadow: 0px 2px 15px 0px rgba(31, 36, 41, 0.08);
|
|
|
}
|
|
|
.add-img-container {
|
|
|
- width: 450px;
|
|
|
+ /*width: 450px;*/
|
|
|
max-height: 674px;
|
|
|
overflow-y: auto;
|
|
|
background: #ffffff;
|
|
@@ -802,11 +938,25 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .add-data-box {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ .add-data-table{
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ .add-data-editbtn{
|
|
|
+ width: 65px;
|
|
|
+ margin-left: auto;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
@media screen and (max-width: 1600px) {
|
|
|
/*当屏幕尺寸小于1366px时,应用下面的CSS样式*/
|
|
@@ -820,12 +970,20 @@ export default {
|
|
|
.eq-content
|
|
|
.additional-box
|
|
|
.add-img-container {
|
|
|
- width: 360px;
|
|
|
- max-height: 480px;
|
|
|
+ /*width: 360px;*/
|
|
|
+ /*max-height: 480px;*/
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
<style lang="less">
|
|
|
+ .additional-box-tooltip{
|
|
|
+ /deep/ .ant-tooltip-inner{
|
|
|
+ background: linear-gradient(180deg, #369CF7 0%, #025BAA 100%)!important;
|
|
|
+ }
|
|
|
+ .ant-tooltip-arrow::before{
|
|
|
+ background: #3398F2!important;
|
|
|
+ }
|
|
|
+ }
|
|
|
.el-table {
|
|
|
th {
|
|
|
background: rgba(248, 249, 250, 1);
|