Kaynağa Gözat

Merge branch 'dev' of http://39.106.8.246:3003/web/ibms into dev

haojianlong 4 yıl önce
ebeveyn
işleme
df3c22976c

+ 6 - 2
src/api/relation/api.js

@@ -43,8 +43,12 @@ export function buildSpace(param, success) {
 
 
 // 管网系统设备分块 1
+// export function calcSpecial(param, success) {
+//   let url = ` /api/datacenter/calc_special/sys-block?Domain=${param.Domain}&SystemName=${param.SystemName}`
+//   httpUtil.postJson(url, param, success)
+// }
 export function calcSpecial(param, success) {
-  let url = ` /api/datacenter/calc_special/sys-block?Domain=${param.Domain}&SystemName=${param.SystemName}`
+  let url = ` /api/datacenter/calc_special/sys-block?relationType=${param.RelationType}`
   httpUtil.postJson(url, param, success)
 }
 
@@ -167,7 +171,7 @@ export function addSource(param, success) {
 
 //查看源设备
 export function sourceQuery(param, success) {
-  let url = '/api/datacenter//mep-system-calc/source/query'
+  let url = '/api/datacenter/mep-system-calc/source/query'
   httpUtil.postJson(url, param, success)
 
 }

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

@@ -32,7 +32,7 @@
               v-if="item.InputMode == 'B1' || item.InputMode == 'B2'"
               v-model="form[item.Path]"/>
 
-            <el-input 
+            <el-input
               v-else-if="item.InputMode == 'A1'||item.InputMode == 'A2'"
               type="number"
               v-model="form[item.Path]">
@@ -108,7 +108,7 @@
               @change="changeItem"/>
 
             <el-input disabled title="暂不支持" v-else v-model="form[item.Path]"/>
-            
+
           </el-form-item>
         </div>
       </template>

+ 4 - 2
src/components/relation/overview/CardList.vue

@@ -221,7 +221,6 @@
       }
     },
     created() {
-      console.log(this.content)
     },
     computed: {},
 
@@ -241,7 +240,9 @@
           if (relation.IsSource) {
             this.values.existComputed = `根据现有数据自动计算 <${relation.RelationTypeName}>`
             this.$refs.maintain.dialogTableVisibleMore = true
-            this.$refs.maintain.showCascader()
+            this.$refs.maintain.showCascader(relation)
+            this.$refs.maintain.handleSourceQuery()
+
           } else {
             this.values.autoComputed = `根据现有数据自动计算 <${relation.RelationTypeName}>`
             this.$refs.maintain.dialogTableVisible = true
@@ -256,6 +257,7 @@
       equipment(relation) { //配置源端末端
         this.values.equipmentSetting = `${relation.RelationTypeName} 源末端关系设置`
         this.$refs.maintain.dialogEquipmentOpen(relation)
+        this.$refs.maintain.handleSourceQuery()
       },
       manual(relation) {
         let {Manual, Prompting, RelationTypeName, ComputingTime} = relation;

+ 173 - 41
src/components/relation/overview/Modal/RelationMaintain.vue

@@ -29,7 +29,8 @@
       >
         <p class="font-big">{{values.existComputed}}</p>
         <p class="exist-title">{{values.existTitle}}</p>
-        <getCascader  :RelationTypeName="RelationTypeName"/>
+
+        <!--        <getCascader :RelationTypeName="RelationTypeName" :number="number"/>-->
         <!--        <el-row :span="24" style="margin-top: 10px">-->
         <!--          <el-col :span="8">-->
         <!--            <p class="demonstration">{{values.originEquipment}}</p>-->
@@ -65,15 +66,51 @@
         <!--            />-->
         <!--          </el-col>-->
         <!--        </el-row>-->
+        <el-row :gutter="20" style="margin-bottom: 20px">
+          <el-col :span="12">
+            <p>源端设备类:</p>
+            <el-select
+              v-model="setValue"
+              placeholder="请选择"
+              :props="props"
+              multiple
+              disabled
+            >
+              <el-option
+                v-for="item in setOriginOption"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+                disabled
+              />
+            </el-select>
+          </el-col>
+          <el-col :span="12">
+            <p>末端设备类:</p>
+            <el-select
+              v-model="setEndValue"
+              placeholder="请选择"
+              :props="props"
+            >
+              <el-option
+                v-for="item in setEndOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+                disabled
+              />
+            </el-select>
+          </el-col>
+        </el-row>
         <footer
-            slot="footer"
-            class="dialog-footer "
-            style="float: right"
+          slot="footer"
+          class="dialog-footer "
+          style="float: right"
         >
           <el-button @click="dialogTableVisibleMore = false">{{values.cancel}}</el-button>
           <el-button
-              type="primary"
-              @click="computedUpdate"
+            type="primary"
+            @click="computedUpdate"
           >{{values.promptly}}
           </el-button>
         </footer>
@@ -101,7 +138,40 @@
       :visible.sync="dialogEquipment"
     >
       <h4>{{values.equipmentSetting}}</h4>
-      <setCascader @change="changeCader" :RelationTypeName="RelationTypeName"/>
+      <el-row :gutter="20">
+        <el-col :span="12">
+          <p>源端设备类:</p>
+          <el-select
+            v-model="value"
+            placeholder="请选择"
+            multiple
+            @change="changeVal"
+          >
+            <el-option
+              v-for="item in oraginOption"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-col>
+        <el-col :span="12">
+          <p>末端设备类:</p>
+          <el-select
+            v-model="endValue"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in endOption"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+              disabled
+            />
+          </el-select>
+        </el-col>
+      </el-row>
+      <!--      <setCascader @change="changeCader" :RelationTypeName="RelationTypeName"/>-->
       <!--      <el-row :span="24" style="margin-top: 15px">-->
       <!--        <el-col :span="8">-->
       <!--          <p class="">{{values.originEquipment}}</p>-->
@@ -121,6 +191,7 @@
         <el-button
           type="primary"
           @click="handleAddSource"
+          :disabled="disabled"
         >{{values.preservation}}
         </el-button>
       </footer>
@@ -181,6 +252,8 @@
           :on-progress="progress"
           :on-success="success"
           :on-error="error"
+
+
           accept="xlsx,xls"
       >
         <i class="el-icon-upload"/>
@@ -232,18 +305,16 @@
 <script>
   import {mapGetters} from 'vuex'
   import storage from '@/framework/utils/storage'
-  import setCascader from "./setCascader";
-  import getCascader from "./getCascader";
-  import {addSource} from "@/api/relation/api";
+  import {addSource, calcSpecial, sourceQuery} from "@/api/relation/api";
+  import deviceList from "@/data/deviceList.js"
 
   export default {
     name: "RelationMaintain",
     props: ['values', 'isComputed', 'source', 'TableVisibleMoreLoading', 'ManualMaintenance'],
-    components: {setCascader,getCascader},
     created() {
-      this.showCascader()
     },
     mounted() {
+
     },
     data() {
       return {
@@ -285,14 +356,19 @@
         ops: [],
         filterOps: [],//为清空第二个选择器
         isResouceShow: 0,
-        assetOptions: [],
-        assetValue: '',
-        assetValueLast: '',
         RelationTypeName: '',//卡片名称
-        deviceGroup: [],
-        deviceValue: '',
+        value: [],
+        oraginOption: [],
+        endValue: [],
+        endOption: [],
+        setValue: [],
+        setOriginOption: [],
+        setEndValue: [],
+        setEndOptions: [],
+        disabled: false
       }
     },
+
     computed: {
       ...mapGetters('layout', ['projectId']),
       headers() {
@@ -327,12 +403,37 @@
       deepCopy(obj) {
         return JSON.parse(JSON.stringify(obj))
       },
-      dialogEquipmentOpen(relation) {
+      //查询原末端回显数据
+      handleSourceQuery() {
+        let param = {
+          Filters: `ProjectId='${this.projectId}';CalcName='${this.RelationTypeName}'`
+        }
+        sourceQuery(param, res => {
+          this.value = []
+          this.setValue = []
+          res.Content && res.Content.forEach(({SourceType}) => this.value.push(SourceType))
+          //启动计算
+          res.Content && res.Content.forEach(({SourceType}) => this.setValue.push(SourceType))
+          // this.setOriginOption = this.oraginOption.forEach(i => this.setValue.includes(i.value))
+          this.changeVal(this.value)
+          this.setValue && this.handleSetValue()
+        })
+      },
+      dialogEquipmentOpen(relation) { //设定源末端
         this.RelationTypeName = relation.RelationTypeName
+        this.oraginOption = deviceList[relation.RelationTypeName] && deviceList[relation.RelationTypeName].filter(i => i.select)
+        this.data = deviceList[relation.RelationTypeName]
+        this.disabled = this.data != undefined ? false : true
+        // console.log(this.data, relation.RelationTypeName)
         this.dialogEquipment = true
 
       },
-      changeCader(val) { //勾选的设备类
+      changeVal(val) {
+        //  末端展示数据
+        this.endOption = this.data && this.data.filter(i => !val.includes(i.value))
+        //  启动计算末端展示数据
+        // this.setEndOptions = this.data && this.data.filter(i => !val.includes(i.value))
+
         this.sourceList = []
         val.forEach(i => this.sourceList.push({
           SourceType: i,
@@ -340,29 +441,43 @@
           CalcName: this.RelationTypeName
         }))
       },
+
       handleAddSource() { //保存设备类
-        let params = {
-          Content: this.sourceList
+        if (this.sourceList.length) {
+          let params = {
+            Content: this.sourceList
+          }
+          addSource(params, res => {
+            this.$message.success('保存成功')
+          })
         }
-        addSource(params, res => {
-          this.$message.success('保存成功')
-        })
+
         this.dialogEquipment = false
       },
-      showCascader() {
-        ++this.isResouceShow
-        let copy = this.deepCopy(this.source)
-        copy.forEach(item => {
-          item.Items.forEach(child => {
-            child.lId = this.list.length
-            this.list.push(child)
-            child.Items.forEach(i => {
-              i.lId = i.Id + i.BlockId
-              i.IsSource == true && this.ops.push([child.lId, i.lId])
-              i.IsSource == false && this.filterOps.push([child.lId, i.lId])
-            })
-          })
-        })
+      // showCascader() {
+      //   ++this.isResouceShow
+      //   let copy = this.deepCopy(this.source)
+      //   copy.forEach(item => {
+      //     item.Items.forEach(child => {
+      //       child.lId = this.list.length
+      //       this.list.push(child)
+      //       child.Items.forEach(i => {
+      //         i.lId = i.Id + i.BlockId
+      //         i.IsSource == true && this.ops.push([child.lId, i.lId])
+      //         i.IsSource == false && this.filterOps.push([child.lId, i.lId])
+      //       })
+      //     })
+      //   })
+      // },
+      showCascader(relation) {
+        this.RelationTypeName = relation.RelationTypeName
+
+
+      },
+      handleSetValue() {
+        let device = deviceList[this.RelationTypeName]
+        this.setOriginOption = device && device.filter(i => this.setValue.includes(i.value))
+        this.setEndOptions = device && device.filter(i => !this.setValue.includes(i.value))
       },
       downloadProject(str) {
         let relType = this.ManualMaintenance.RelationType ? `?relType=${this.ManualMaintenance.RelationType}` : ''
@@ -371,7 +486,7 @@
         if (str === 'excel') {
           relType = this.ManualMaintenance.RelationType ? `&relType=${this.ManualMaintenance.RelationType}` : ''
           // url = `/api/datacenter/graphic/export?code=对象ID${relType}${zoneType}`
-          if(zoneType) {
+          if (zoneType) {
             url = '/api/datacenter/graphic/export?code=对象ID' + relType + zoneType
 
           } else {
@@ -468,9 +583,16 @@
         //   this.dialogTableVisibleMore = false
         //
         // }
-        this.resultOrigin.push(...this.resultEnd)
-        this.$emit('openComputed', this.resultOrigin)
+        // this.resultOrigin.push(...this.resultEnd)
+        // this.$emit('openComputed', this.resultOrigin)
         this.dialogTableVisibleMore = false
+        let params = {
+          ProjectId: this.projectId,
+          RelationType: this.isComputed.RelationType
+        }
+        calcSpecial(params, res => {
+          this.$message.success('计算成功')
+        })
 
       },
     }
@@ -513,3 +635,13 @@
     }
   }
 </style>
+
+
+
+
+
+
+
+
+
+

+ 6 - 0
src/components/relation/overview/Modal/getCascader.vue

@@ -54,6 +54,9 @@
       },
       RelationTypeName: {
         type: String
+      },
+      number: {
+        type: Number
       }
     },
     computed: {
@@ -85,6 +88,9 @@
       },
       RelationTypeName() {
         this.getData();
+      },
+      number() {
+        this.getData();
       }
     },
     methods: {

+ 4 - 2
src/components/relation/overview/Modal/setCascader.vue

@@ -52,7 +52,8 @@
       },
       RelationTypeName: {
         type: String
-      }
+      },
+
     },
     computed: {
       ...mapGetters("layout", ["projectId"])
@@ -82,7 +83,8 @@
       },
       RelationTypeName() {
         this.getData();
-      }
+      },
+
     },
     methods: {
       setValue(val) {

+ 43 - 0
src/data/deviceList.js

@@ -0,0 +1,43 @@
+const deviceListString = {
+  "空调冷冻水供水": "CCCC-离心式冷水机组-true,CCAC-吸收式冷水机组-true,CCSC-螺杆式冷水机组-true,CCGH-地源热泵-true,CCWH-水源热泵-true,CCAH-空气源热泵-true,CCCP-供冷冷冻水泵,ATFC-风机盘管,ATAH-空调机组,ATFU-新风机组,CCHE-供冷换热器,CHVD-真空脱气机,CCAD-供冷软化水装置,CCCL-供冷集水器,CCDB-供冷分水器",
+  "空调冷冻水回水": "CCCC-离心式冷水机组-true,CCAC-吸收式冷水机组,CCSC-螺杆式冷水机组,CCGH-地源热泵,CCWH-水源热泵,CCAH-空气源热泵,CCCP-供冷冷冻水泵,ATFC-风机盘管-true,ATAH-空调机组-true,ATFU-新风机组-true,CCHE-供冷换热器-true,CCAD-供冷软化水装置,CCCL-供冷集水器,CCDB-供冷分水器,CHVD-真空脱气机",
+  "采暖水供水": "CHCB-供热燃煤锅炉-true,CHHE-供热换热器-true,CHGB-供热燃气锅炉-true,CHEB-供热电锅炉-true,CCGH-地源热泵-true,CCWH-水源热泵-true,CCAH-空气源热泵-true,CHHP-供热水泵,CHDB-供热分水器,CHCL-供热集水器,CHCF-供热定压补水装置,ATFC-风机盘管,ATAH-空调机组,ATFU-新风机组,CHTU-供热全程水处理仪,CHHE-供热换热器,CHWT-供热水箱,ATRD-散热器",
+  "采暖水回水": "CHCB-供热燃煤锅炉,CHHE-供热换热器-true,CHGB-供热燃气锅炉,CHEB-供热电锅炉,CCGH-地源热泵,CCWH-水源热泵,CCAH-空气源热泵,CHHP-供热水泵,CHDB-供热分水器,CHCL-供热集水器,CHCF-供热定压补水装置,ATFC-风机盘管-true,ATAH-空调机组-true,ATFU-新风机组-true,CHTU-供热全程水处理仪,CHHE-供热换热器,CHWT-供热水箱,ATRD-散热器-true",
+  "空调冷却水供水": "CCCC-离心式冷水机组-true,CCAC-吸收式冷水机组-true,CCSC-螺杆式冷水机组-true,CCGH-地源热泵-true,CCWH-水源热泵-true,CCAH-空气源热泵,CCOT-冷却塔,CCOP-冷却水",
+  "空调冷却水回水": "CCCC-离心式冷水机组,CCAC-吸收式冷水机组,CCSC-螺杆式冷水机组,CCGH-地源热泵,CCWH-水源热泵,CCAH-空气源热泵,CCOT-冷却塔-true,CCOP-冷却水泵",
+  "空调冷凝水排水": "ATFC-风机盘管-true,ATAH-空调机组-true,ATVR-变频多联机-true,ATVI-室内机-true,ATVO-室外机",
+  "采暖水补水": "CHCB-供热燃煤锅炉,CHHE-供热换热器-true,CHGB-供热燃气锅炉,CHEB-供热电锅炉,CCGH-地源热泵,CCWH-水源热泵,CCAH-空气源热泵,CHHP-供热水泵,CHDB-供热分水器,CHCL-供热集水器,CHCF-供热定压补水装置,ATAH-空调机组,ATFU-新风机组,CHTU-供热全程水处理仪,CHHE-供热换热器,CHWT-供热水箱,ATFC-风机盘管,ATAH-空调机组,ATFU-新风机组,ATRD-散热器",
+  "多联机供回制冷剂": "ATVR-变频多联机-true,ATVI-室内机-true,ATVO-室外机-true",
+  "通风送风": "VTSF-送风风机,ATVA-VAVBOX ,ATIO-空调风口,VTIO-通风风口-true,SCEF-排烟风机,SCIO-排烟风口,SCEF-正压送风风机",
+  "空调送风": "ATVA-VAVBOX ,ATFC-风机盘管,ATIO-空调风口-true",
+  "空调排风": "ATAH-空调机组,ATIO-空调风口-true,VTSF-排风风机,SCEF-排烟风机,VTIO-通风风口,SCIO-排烟风口-true,KLSF-抽油烟机,KLIO-厨房风口-true",
+  "新风送风": "ATFU-新风机组,ATAH-空调机组,VTSF-新风机,ATIO-空调风口-true",
+  "消防排烟": "SCEF-排烟风机,SCIO-排烟风口-true",
+  "通风排风": "VTSF-排风风机,VTIO-通风风口-true",
+  "空调回风": "ATFC-风机盘管,ATAH-空调机组,ATIO-空调风口-true",
+  "生活给水供水": "DWHP-给水水泵,DWSU-生活给水供水机组-true,SEFL-水表,DWWT-水箱,DWPT-生活给水压力罐,CCOT-冷却塔",
+  "生活热水供水": "DHWT-生活热水储水箱,DHSC-生活热水太阳能集热器-true,SEFL-水表,DHHE-生活热水换热器-true",
+  "污水排水": "STSP-潜污泵-true,STOS-自动隔油装置-true",
+  "中水供水": "RWWT-中水储水箱,RWTU-中水处理机组-true,RWSU-中水供水机组,RWRC-雨水收集设备",
+  "直饮水供水": "DDTU-直饮水处理机组-true,DDIH-即时加热器",
+  "消防给水供水": "FSHP-消火栓供水加压水泵-true,FSPS-消防稳压装置-true,FSHB-消火栓箱-true,FSWM-消防水炮设备-true"
+
+}
+
+let deviceList = new Object;
+for (const key in deviceListString) {
+  if (deviceListString.hasOwnProperty(key)) {
+    const element = deviceListString[key]
+    deviceList[key] = new Array
+    const temp = element.split(/[,,]/)
+    temp.forEach(i => {
+      const [value, label, select] = i.split('-')
+      deviceList[key].push({
+        label,
+        value,
+        select
+      })
+    })
+  }
+}
+export default deviceList

+ 0 - 1
src/views/relation/overview/index.vue

@@ -181,7 +181,6 @@
       calcSpecial(relation) {
         this.currentRelationTypeName = relation.RelationTypeName
         if (relation.IsSource) { //配置云末端
-          console.log(123)
           // this.TableVisibleMoreLoading = true//会很慢,加loading
           // let param = {
           //   BuildingId: '',