功能开发

main
guanxiaohan 2 years ago
parent 2080f1ec02
commit 026b594002
  1. 7
      src/api/itemManagement/itemList.js
  2. 29
      src/components/monitoring/electricity.vue
  3. 9
      src/components/monitoring/firefighting.vue
  4. 11
      src/components/monitoring/wall.vue
  5. 12
      src/components/monitoring/warm.vue
  6. 11
      src/components/monitoring/water.vue
  7. 4
      src/page/index/index.vue
  8. 16
      src/page/itemManagement/applicationExamine/index.vue
  9. 262
      src/page/itemManagement/itemList/index.vue
  10. 29
      src/page/opsVisualization/alarmProcess.vue
  11. 8
      src/page/opsVisualization/serviceDataOAM.vue
  12. 8
      src/page/opsVisualization/systemMonitoring/index.vue
  13. 2
      src/page/opsVisualization/tuobu.vue
  14. 40
      src/router/page/index.js
  15. 51
      src/router/views/index.js
  16. 3
      src/util/commonValue.js
  17. 4
      src/views/equipment/operationDetails.vue
  18. 1
      src/views/garden/home.vue
  19. 4
      src/views/garden/index.vue
  20. 10
      src/views/opsVisualization/alarmProcess.vue
  21. 2
      src/views/opsVisualization/tuobu.vue

@ -48,4 +48,11 @@ export const check = (params) => {
method: 'get', method: 'get',
params params
}) })
}
export const deptList = (params) => {
return request({
url: "/api/blade-system/dept/list",
method: "get",
params,
});
} }

@ -485,11 +485,15 @@ export default {
tataiTotal: "", tataiTotal: "",
isMapViewer: 0, isMapViewer: 0,
alarmAlert: true, // alarmAlert: true, //
dialogItem: {}
}; };
}, },
created() { created() {
this.getData(); this.getData();
window["handleDetail"] = () => {
this.handleDetail()
};
// window.handleDetail = this.handleDetail
}, },
beforeDestroy() { beforeDestroy() {
if (this.setInterval) { if (this.setInterval) {
@ -799,7 +803,7 @@ export default {
// console.log(row) // console.log(row)
}, },
// //
addLabel(objectId, name, type, location, dataNum,inventarNummer,maintainTime,maintainUser,maintainPhone,maintainDesc) { addLabel(objectId, name, type, location, dataNum,inventarNummer,maintainTime,maintainUser,maintainPhone,maintainDesc, code) {
console.log(type) console.log(type)
// id//// // id////
// //
@ -854,11 +858,16 @@ export default {
<span style="opacity: 0.5;font-size: 12px;">维保内容:</span> <span style="opacity: 0.5;font-size: 12px;">维保内容:</span>
<span style="font-size: 15px;">${maintainDesc ? maintainDesc : ''}</span> <span style="font-size: 15px;">${maintainDesc ? maintainDesc : ''}</span>
</div> </div>
<button style="padding: 5px 0;font-size: 12px;" onclick="handleDetail()">操作明细</button>
</div> </div>
</div> </div>
</div> </div>
</div>`; </div>`;
customTag(position, null, content); customTag(position, null, content);
},
handleDetail() {
this.$router.push(`/equipment/operationDetails?name=${this.dialogItem.name}&code=${this.dialogItem.code}`)
}, },
// () // ()
onClick() { onClick() {
@ -1105,7 +1114,19 @@ export default {
}); });
}, },
getNavigationMap() { getNavigationMap() {
commonValue.getNavigationMap("electricity"); const label = commonValue.getNavigationMap("electricity")
// console.log('label', label)
this.$nextTick(() => {
if (this.$route.query.code) {
this.tableData.forEach(item => {
if (item.code == this.$route.query.code) {
console.log('gxh', item)
this.bjClick(item)
}
})
}
})
}, },
// //
selectBim(i) { selectBim(i) {
@ -1118,6 +1139,8 @@ export default {
}, },
// //
bjClick(item) { bjClick(item) {
this.dialogItem = item
console.log(this.bimModel, item.build)
if (this.bimModel == 2) { if (this.bimModel == 2) {
if (item.build == 9) { if (item.build == 9) {
// //

@ -286,6 +286,7 @@ export default {
safeTotal: 0, safeTotal: 0,
alarmLists: [], alarmLists: [],
activeTab: 1, activeTab: 1,
dialogItem: {}
}; };
}, },
components: { components: {
@ -305,6 +306,9 @@ export default {
this.getFiredWarnList(); // this.getFiredWarnList(); //
this.addWaterLabel(); this.addWaterLabel();
}, 3600000); }, 3600000);
window["handleDetail"] = () => {
this.handleDetail()
};
}, },
mounted() { mounted() {
let dom = document.getElementById('fire_box'); let dom = document.getElementById('fire_box');
@ -550,6 +554,9 @@ export default {
}, },
}, },
methods: { methods: {
handleDetail() {
this.$router.push(`/equipment/operationDetails?name=${this.dialogItem.name}&code=${this.dialogItem.code}`)
},
// - // -
doCancelWarn(item) { doCancelWarn(item) {
getCancelWarn(item.id).then((res) => { getCancelWarn(item.id).then((res) => {
@ -760,6 +767,7 @@ export default {
// //
// //
bjClick(item) { bjClick(item) {
this.dialogItem = item
// bfHelper.clearDrawableContainer(); // bfHelper.clearDrawableContainer();
// // console.log(item) // // console.log(item)
// let id = bfHelper.disposeId(1, item.build, item.modelId); // let id = bfHelper.disposeId(1, item.build, item.modelId);
@ -946,6 +954,7 @@ export default {
<span style="font-size:12px;color:silver">维保内容</span> <span style="font-size:12px;color:silver">维保内容</span>
<span style="font-size:13px;color:white">${item.maintainDesc ? item.maintainDesc : ''}</span> <span style="font-size:13px;color:white">${item.maintainDesc ? item.maintainDesc : ''}</span>
</div> </div>
<button style="padding: 5px 0;font-size: 12px;" onclick="handleDetail()">操作明细</button>
</div> </div>
</div> </div>
</div> </div>

@ -708,6 +708,12 @@ export default {
classOption: { classOption: {
step: 0.2, step: 0.2,
}, // }, //
dialogItem: {}
};
},
created() {
window["handleDetail"] = () => {
this.handleDetail()
}; };
}, },
watch: { watch: {
@ -816,6 +822,9 @@ export default {
} }
}, },
methods: { methods: {
handleDetail() {
this.$router.push(`/equipment/operationDetails?name=${this.dialogItem.name}&code=${this.dialogItem.code}`)
},
// - // -
doCancelWarn(item) { doCancelWarn(item) {
getCancelWarn(item.id).then((res) => { getCancelWarn(item.id).then((res) => {
@ -988,6 +997,7 @@ export default {
// console.log(row) // console.log(row)
}, },
bjClick(row) { bjClick(row) {
this.dialogItem = row
bfHelper.clearTags(); bfHelper.clearTags();
if (this.bimModel == 1) { if (this.bimModel == 1) {
for (let i = 0; i < this.ywq.length; i++) { for (let i = 0; i < this.ywq.length; i++) {
@ -1133,6 +1143,7 @@ export default {
<span style="opacity: 0.5;font-size: 12px;">维保内容:</span> <span style="opacity: 0.5;font-size: 12px;">维保内容:</span>
<span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span> <span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span>
</div> </div>
<button style="padding: 5px 0;font-size: 12px;" onclick="handleDetail()">操作明细</button>
</div> </div>
</div> </div>
</div> </div>

@ -436,6 +436,7 @@ export default {
classOption: { classOption: {
step: 0.3, step: 0.3,
}, // }, //
dialogItem: {}
}; };
}, },
watch: { watch: {
@ -594,7 +595,11 @@ export default {
}, },
}, },
}, },
created() { }, created() {
window["handleDetail"] = () => {
this.handleDetail()
};
},
beforeDestroy() { beforeDestroy() {
if (this.setInterval) { if (this.setInterval) {
clearInterval(this.setInterval); clearInterval(this.setInterval);
@ -611,6 +616,9 @@ export default {
this.getNavigationMap(); this.getNavigationMap();
}, },
methods: { methods: {
handleDetail() {
this.$router.push(`/equipment/operationDetails?name=${this.dialogItem.name}&code=${this.dialogItem.code}`)
},
// - // -
doCancelWarn(item) { doCancelWarn(item) {
getCancelWarn(item.id).then((res) => { getCancelWarn(item.id).then((res) => {
@ -764,6 +772,7 @@ export default {
}, },
// //
bjClick(item) { bjClick(item) {
this.dialogItem = item
if (item.modelId == "") { if (item.modelId == "") {
this.$message.error('对不起,暂无该设备模型,请稍后点击') this.$message.error('对不起,暂无该设备模型,请稍后点击')
} else { } else {
@ -940,6 +949,7 @@ export default {
<span style="opacity: 0.5;font-size: 12px;">维保内容:</span> <span style="opacity: 0.5;font-size: 12px;">维保内容:</span>
<span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span> <span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span>
</div> </div>
<button style="padding: 5px 0;font-size: 12px;" onclick="handleDetail()">操作明细</button>
</div> </div>
</div> </div>

@ -388,10 +388,14 @@ export default {
offList: [], //线 offList: [], //线
bjList: [], // bjList: [], //
activeTab: 1, activeTab: 1,
dialogItem: {}
}; };
}, },
created() { created() {
this.getData(); this.getData();
window["handleDetail"] = () => {
this.handleDetail()
};
}, },
beforeDestroy() { beforeDestroy() {
if (this.setInterval) { if (this.setInterval) {
@ -576,6 +580,9 @@ export default {
}, },
beforeDestroy() { }, beforeDestroy() { },
methods: { methods: {
handleDetail() {
this.$router.push(`/equipment/operationDetails?name=${this.dialogItem.name}&code=${this.dialogItem.code}`)
},
// - // -
doCancelWarn(item) { doCancelWarn(item) {
getCancelWarn(item.id).then((res) => { getCancelWarn(item.id).then((res) => {
@ -718,6 +725,7 @@ export default {
getWaterMeterData(this.bimModel, e.target.id.substring(25)).then( getWaterMeterData(this.bimModel, e.target.id.substring(25)).then(
(res) => { (res) => {
const data = res.data.data; const data = res.data.data;
this.dialogItem = data
let content; let content;
if (data.status == 90000) { if (data.status == 90000) {
// //
@ -858,6 +866,7 @@ export default {
<span style="opacity: 0.5;font-size: 12px;">维保内容:</span> <span style="opacity: 0.5;font-size: 12px;">维保内容:</span>
<span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span> <span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span>
</div> </div>
<button style="padding: 5px 0;font-size: 12px;" onclick="handleDetail()">操作明细</button>
</div> </div>
</div> </div>
</div> </div>
@ -952,6 +961,7 @@ export default {
<span style="opacity: 0.5;font-size: 12px;">维保内容:</span> <span style="opacity: 0.5;font-size: 12px;">维保内容:</span>
<span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span> <span style="font-size: 13px;">${maintainDesc ? maintainDesc : ''}</span>
</div> </div>
<button style="padding: 5px 0;font-size: 12px;" onclick="handleDetail()">操作明细</button>
</div> </div>
</div> </div>
</div> </div>
@ -960,6 +970,7 @@ export default {
}, },
// //
bjClick(item) { bjClick(item) {
this.dialogItem = item
console.log('item',item) console.log('item',item)
if(item.modelId == ''){ if(item.modelId == ''){
this.$message.error('对不起,暂无该设备模型,请稍后点击') this.$message.error('对不起,暂无该设备模型,请稍后点击')

@ -9,7 +9,7 @@
<top ref="top" /> <top ref="top" />
</div> </div>
<!-- 运维可视化化左侧导航栏 --> <!-- 运维可视化化左侧导航栏 -->
<opsSidebar v-if="$route.path.indexOf('opsVisualization') != -1" /> <!-- <opsSidebar v-if="$route.path.indexOf('opsVisualization') != -1" /> -->
<div class="avue-layout"> <div class="avue-layout">
<div class="avue-main"> <div class="avue-main">
<!-- 顶部标签卡 --> <!-- 顶部标签卡 -->
@ -151,7 +151,7 @@ export default {
<style scoped type="text/css"> <style scoped type="text/css">
.avue-left { .avue-left {
position: relative; position: relative;
width: 80%; width: 90%;
} }
.avue-layout { .avue-layout {
height: calc(100% - 64px); height: calc(100% - 64px);

@ -54,7 +54,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div> <div>
<el-button v-if="multipleSelection.length != 0" class="register" @click="batchDeletion">批量删除</el-button> <el-button v-if="multipleSelection.length != 0 && vaildData(permission.goods_apply_remove, false)" class="register" @click="batchDeletion">批量删除</el-button>
</div> </div>
</div> </div>
<div class="content-main"> <div class="content-main">
@ -147,17 +147,19 @@
trigger="hover"> trigger="hover">
<div class="more-box"> <div class="more-box">
<div <div
v-if="vaildData(permission.goods_apply_view, false)"
class="item" class="item"
@click="handleOperation('view', scope.row)">查看</div> @click="handleOperation('view', scope.row)">查看</div>
<div <div
v-if="vaildData(permission.goods_apply_remove, false)"
class="item" class="item"
@click="handleOperation('delete', scope.row)">删除</div> @click="handleOperation('delete', scope.row)">删除</div>
<div <div
v-if="scope.row.status == '0'" v-if="scope.row.status == '0' && vaildData(permission.goods_apply_check, false)"
class="item" class="item"
@click="handleOperation('examine', scope.row)">审核</div> @click="handleOperation('examine', scope.row)">审核</div>
<div <div
v-if="scope.row.status == '1'" v-if="scope.row.status == '1' && vaildData(permission.goods_apply_receive, false)"
class="item" class="item"
@click="handleOperation('receive', scope.row)">领取</div> @click="handleOperation('receive', scope.row)">领取</div>
</div> </div>
@ -332,8 +334,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="name"> <el-form-item label="备注" prop="remarks">
<el-input v-model="registerForm.name" <el-input v-model="registerForm.remarks"
disabled disabled
/> />
</el-form-item> </el-form-item>
@ -409,6 +411,7 @@
import { findPage, detail, remove } from "@/api/itemManagement/applicationExamine"; import { findPage, detail, remove } from "@/api/itemManagement/applicationExamine";
import { goodsApplySave } from "@/api/itemManagement/itemList"; import { goodsApplySave } from "@/api/itemManagement/itemList";
import {getDictionary} from '@/api/system/dictbiz' import {getDictionary} from '@/api/system/dictbiz'
import {mapGetters} from "vuex";
export default { export default {
data() { data() {
return { return {
@ -528,6 +531,7 @@
} }
}, },
computed: { computed: {
...mapGetters(["userInfo", "permission"]),
registerTitle() { registerTitle() {
if(this.dialogFormType == 'view') { if(this.dialogFormType == 'view') {
return '查看详情' return '查看详情'
@ -717,6 +721,8 @@
return false; return false;
} }
}, fieldsToValidate); }, fieldsToValidate);
} else {
this.registerHandleClose()
} }
} else { } else {
this.registerHandleClose() this.registerHandleClose()

@ -57,8 +57,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div> <div>
<el-button class="register" @click="handleAdd">登记入库</el-button> <el-button class="register" @click="handleAdd" v-if="vaildData(permission.goods_storage, false)">登记入库</el-button>
<el-button v-if="multipleSelection.length != 0" class="register" @click="batchDeletion">批量删除</el-button> <el-button v-if="multipleSelection.length != 0 && vaildData(permission.goods_remove, false)" class="register" @click="batchDeletion">批量删除</el-button>
</div> </div>
</div> </div>
<div class="content-main"> <div class="content-main">
@ -91,6 +91,10 @@
prop="code" prop="code"
label="物品编号"> label="物品编号">
</el-table-column> </el-table-column>
<el-table-column
prop="deptName"
label="所属部门">
</el-table-column>
<el-table-column <el-table-column
prop="brand" prop="brand"
label="品牌"> label="品牌">
@ -112,6 +116,10 @@
label="入库日期" label="入库日期"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column
prop="source"
label="来源">
</el-table-column>
<el-table-column <el-table-column
prop="num" prop="num"
label="库存"> label="库存">
@ -143,12 +151,12 @@
width="150" width="150"
trigger="hover"> trigger="hover">
<div class="more-box"> <div class="more-box">
<div class="item" @click="handleOperation('view', scope.row)">查看</div> <div v-if="vaildData(permission.goods_view, false)" class="item" @click="handleOperation('view', scope.row)">查看</div>
<div class="item" @click="handleOperation('edit', scope.row)">编辑</div> <div v-if="vaildData(permission.goods_edit, false)" class="item" @click="handleOperation('edit', scope.row)">编辑</div>
<div class="item" @click="handleOperation('change', scope.row)">库存变更</div> <div v-if="vaildData(permission.goods_change, false)" class="item" @click="handleOperation('change', scope.row)">库存变更</div>
<div class="item" @click="handleOperation('detail', scope.row)">操作明细</div> <div v-if="vaildData(permission.goods_detail, false)" class="item" @click="handleOperation('detail', scope.row)">操作明细</div>
<div class="item" @click="handleOperation('delete', scope.row)">删除</div> <div v-if="vaildData(permission.goods_remove, false)" class="item" @click="handleOperation('delete', scope.row)">删除</div>
<div class="item" @click="handleOperation('apply', scope.row)">申领</div> <div v-if="vaildData(permission.goods_apply, false)" class="item" @click="handleOperation('apply', scope.row)">申领</div>
</div> </div>
<div class="more" slot="reference">更多</div> <div class="more" slot="reference">更多</div>
</el-popover> </el-popover>
@ -244,6 +252,27 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item
label="所属部门"
prop="brand"
>
<el-select
class="search_select"
v-model="registerForm.deptId"
placeholder="请选择所属部门"
filterable
:disabled="dialogFormDisabled"
>
<el-option
v-for="item in deptListData"
:key="item.id"
:label="item.deptName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item <el-form-item
label="品牌" label="品牌"
@ -383,10 +412,31 @@
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="date" type="date"
placeholder="选择日期时间" placeholder="选择日期时间"
:disabled="dialogFormDisabled"> :disabled="dialogFormDisabled && dialogFormType != 'change'">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item
label="来源"
prop="source"
>
<el-select
class="search_select"
v-model="registerForm.source"
placeholder="请选择来源"
filterable
:disabled="dialogFormDisabled && dialogFormType != 'change'"
>
<el-option
v-for="item in sourceList"
:key="item.dictValue"
:label="item.dictKey"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col <el-col
:span="8" :span="8"
v-if="dialogFormType == 'apply'" v-if="dialogFormType == 'apply'"
@ -409,7 +459,7 @@
<el-input <el-input
v-model="registerForm.remarks" v-model="registerForm.remarks"
placeholder="请输入备注" placeholder="请输入备注"
:disabled="dialogFormDisabled" :disabled="dialogFormType == 'apply' ? false : dialogFormDisabled && dialogFormType != 'change'"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -433,72 +483,80 @@
size="35%" size="35%"
:before-close="handleClose"> :before-close="handleClose">
<!-- <span>我来啦!</span> --> <!-- <span>我来啦!</span> -->
<div class="message"> <div class="message-history">
<div class="title">物品信息</div> <div class="message">
<el-divider></el-divider> <div class="title">物品信息</div>
<div class="box"> <el-divider></el-divider>
<div class="item"> <div class="box">
<div class="label">物品大类</div> <div class="item">
<div class="value">{{ registerForm.bigClass }}</div> <div class="label">物品大类</div>
</div> <div class="value">{{ registerForm.bigClass }}</div>
<div class="item"> </div>
<div class="label">物品名称</div> <div class="item">
<div class="value">{{ registerForm.name }}</div> <div class="label">物品名称</div>
</div> <div class="value">{{ registerForm.name }}</div>
<div class="item"> </div>
<div class="label">物品编号</div> <div class="item">
<div class="value">{{ registerForm.code }}</div> <div class="label">物品编号</div>
</div> <div class="value">{{ registerForm.code }}</div>
<div class="item"> </div>
<div class="label">品牌</div> <div class="item">
<div class="value">{{ registerForm.brand }}</div> <div class="label">所属部门</div>
</div> <div class="value">{{ registerForm.deptName }}</div>
<div class="item"> </div>
<div class="label">型号</div> <div class="item">
<div class="value">{{ registerForm.model }}</div> <div class="label">品牌</div>
</div> <div class="value">{{ registerForm.brand }}</div>
<div class="item"> </div>
<div class="label">规格</div> <div class="item">
<div class="value">{{ registerForm.standard }}</div> <div class="label">型号</div>
<div class="value">{{ registerForm.model }}</div>
</div>
<div class="item">
<div class="label">规格</div>
<div class="value">{{ registerForm.standard }}</div>
</div>
</div> </div>
</div> </div>
</div> <div class="history">
<div class="history"> <div class="title">历史记录</div>
<div class="title">历史记录</div> <el-divider></el-divider>
<el-divider></el-divider> <el-collapse
<el-collapse class="history-detail"
v-model="activeNames" v-model="activeNames"
@change="handleChange" @change="handleChange"
>
<el-collapse-item
v-for="(item, index) in historyDetailList"
:key="index"
:name="index"
> >
<template slot="title"> <el-collapse-item
<div class="title-time">{{ item.createTime }}</div> v-for="(item, index) in historyDetailList"
<div class="title-text">{{ item.type }}</div> :key="index"
<div class="title-num" :class="item.type == '申领出库' ? 'red' : 'green'">{{ item.type == '申领出库' ? '-' : '+' }}{{ item.num }}</div> :name="index"
</template> >
<div class="name-time" v-if="item.type == '申领出库'"> <template slot="title">
<div class="name">申领提交人{{ item.applyName }}</div> <div class="title-time">{{ item.createTime }}</div>
<div class="time">提交时间{{ item.applyTime }}</div> <div class="title-text">{{ item.type }}</div>
<div class="dept">所属部门{{ item.deptName }}</div> <div class="title-num" :class="item.type == '申领出库' ? 'red' : 'green'">{{ item.type == '申领出库' ? '-' : '+' }}{{ item.num }}</div>
</div> </template>
<div class="name-time"> <div class="name-time" v-if="item.type == '申领出库'">
<div class="name">{{ item.type == '申领出库' ? '申领审核人' : '登记入库人' }}{{ item.type == '申领出库' ? item.approveName : item.inName }}</div> <div class="name">申领提交人{{ item.applyName }}</div>
<div class="time">提交时间{{ item.type == '申领出库' ? item.approveTime : item.inTime }}</div> <div class="time">提交时间{{ item.applyTime }}</div>
</div> <div class="dept">所属部门{{ item.deptName }}</div>
</el-collapse-item> </div>
</el-collapse> <div class="name-time">
<div class="name">{{ item.type == '申领出库' ? '申领审核人' : '登记入库人' }}{{ item.type == '申领出库' ? item.approveName : item.inName }}</div>
<div class="time">提交时间{{ item.type == '申领出库' ? item.approveTime : item.inTime }}</div>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div> </div>
</el-drawer> </el-drawer>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import { findPage, detail, save, goodsApplySave, remove, historyDetail, check } from "@/api/itemManagement/itemList"; import { findPage, detail, save, goodsApplySave, remove, historyDetail, check, deptList } from "@/api/itemManagement/itemList";
import {getDictionary} from '@/api/system/dictbiz' import {getDictionary} from '@/api/system/dictbiz'
import {mapGetters} from "vuex";
export default { export default {
data() { data() {
return { return {
@ -509,6 +567,7 @@
}, },
typeList: [], typeList: [],
brandList: [], brandList: [],
sourceList: [],
tableData: [], tableData: [],
multipleSelection: [], multipleSelection: [],
currentPage: 1, currentPage: 1,
@ -531,8 +590,10 @@
unit: '', unit: '',
useTo: '', useTo: '',
inDate: '', inDate: '',
source: '',
applyNum: '', applyNum: '',
remarks: '', remarks: '',
deptId: '',
}, },
rules: { rules: {
bigClass: [ bigClass: [
@ -544,6 +605,9 @@
code: [ code: [
{ required: true, message: '请输入物品编号', trigger: 'blur' }, { required: true, message: '请输入物品编号', trigger: 'blur' },
], ],
deptId: [
{ required: true, message: '请选择部门名称', trigger: 'blur' },
],
brand: [ brand: [
{ required: true, message: '请选择品牌', trigger: 'blur' }, { required: true, message: '请选择品牌', trigger: 'blur' },
], ],
@ -594,6 +658,9 @@
inDate: [ inDate: [
{ required: true, message: '请选择入库时间', trigger: 'blur' }, { required: true, message: '请选择入库时间', trigger: 'blur' },
], ],
source: [
{ required: true, message: '请选择来源', trigger: 'blur' },
],
applyNum: [ applyNum: [
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
@ -612,10 +679,12 @@
}, },
drawer: false, drawer: false,
activeNames: [], activeNames: [],
historyDetailList: [] historyDetailList: [],
deptListData: [],
} }
}, },
computed: { computed: {
...mapGetters(["userInfo", "permission"]),
registerTitle() { registerTitle() {
if(this.dialogFormType == 'add') { if(this.dialogFormType == 'add') {
return '登记入库' return '登记入库'
@ -647,6 +716,12 @@
await getDictionary({code: 'brand'}).then(res => { await getDictionary({code: 'brand'}).then(res => {
this.brandList = res.data.data.filter(item => item.parentId != '0') this.brandList = res.data.data.filter(item => item.parentId != '0')
}) })
await getDictionary({code: 'goods_source'}).then(res => {
this.sourceList = res.data.data.filter(item => item.parentId != '0')
})
await deptList().then(res => {
this.deptListData = res.data.data[0].children
})
}, },
// //
findPage() { findPage() {
@ -723,7 +798,7 @@
} else if(type == 'detail') { } else if(type == 'detail') {
this.drawer = true this.drawer = true
this.detail(row.id) this.detail(row.id)
historyDetail({code: row.code}).then(res => { historyDetail({code: row.code, deptId: row.deptId}).then(res => {
// console.log(res) // console.log(res)
this.historyDetailList = res.data.data this.historyDetailList = res.data.data
}) })
@ -763,13 +838,16 @@
detail({id}).then(res => { detail({id}).then(res => {
console.log(res) console.log(res)
this.registerForm = res.data.data this.registerForm = res.data.data
if(this.dialogFormType == 'apply') {
this.registerForm.remarks = ''
}
}) })
}, },
// //
registerHandleClick(type) { registerHandleClick(type) {
if(type == 'confirm') { if(type == 'confirm') {
if(this.dialogFormType == 'add') { if(this.dialogFormType == 'add') {
check({code: this.registerForm.code}).then(res => { check({code: this.registerForm.code, deptId: this.registerForm.deptId}).then(res => {
if(!res.data) { if(!res.data) {
this.$message({ this.$message({
message: '该编号已存在', message: '该编号已存在',
@ -777,11 +855,18 @@
}); });
return; return;
} else { } else {
const fieldsToValidate = ['bigClass','name','code','brand','model','standard','price','allocation','inNum','unit','useTo','inDate','remarks'] const fieldsToValidate = ['bigClass','name','code','brand','model','standard','price','allocation','inNum','unit','useTo','inDate','source','remarks','deptId']
this.$refs.registerForm.validate((valid) => { this.$refs.registerForm.validate((valid) => {
if (valid) { if (valid) {
this.registerForm.num = 0 this.registerForm.num = 0
save(this.registerForm).then(res => { let params = this.registerForm
this.deptListData.forEach(item => {
if(item.id == params.deptId) {
params.deptName = item.deptName
}
})
// console.log(params)
save(params).then(res => {
this.$message({ this.$message({
message: '入库成功', message: '入库成功',
type: 'success' type: 'success'
@ -803,11 +888,17 @@
} }
}) })
} else if(this.dialogFormType == 'edit') { } else if(this.dialogFormType == 'edit') {
const fieldsToValidate = ['bigClass','name','brand','model','standard','price','allocation','unit','useTo','inDate','remarks'] const fieldsToValidate = ['bigClass','name','brand','model','standard','price','allocation','unit','useTo','inDate','source','remarks','deptId']
this.$refs.registerForm.validate((valid) => { this.$refs.registerForm.validate((valid) => {
if (valid) { if (valid) {
this.registerForm.num = this.registerForm.inNum this.registerForm.num = this.registerForm.inNum
save(this.registerForm).then(res => { let params = this.registerForm
this.deptListData.forEach(item => {
if(item.id == params.deptId) {
params.deptName = item.deptName
}
})
save(params).then(res => {
this.$message({ this.$message({
message: '修改成功', message: '修改成功',
type: 'success' type: 'success'
@ -827,7 +918,7 @@
} }
}, fieldsToValidate); }, fieldsToValidate);
} else if(this.dialogFormType == 'change') { } else if(this.dialogFormType == 'change') {
const fieldsToValidate = ['inNum'] const fieldsToValidate = ['inNum', 'inDate', 'source', 'remarks']
this.$refs.registerForm.validate((valid) => { this.$refs.registerForm.validate((valid) => {
if (valid) { if (valid) {
save(this.registerForm).then(res => { save(this.registerForm).then(res => {
@ -851,6 +942,13 @@
}, fieldsToValidate); }, fieldsToValidate);
} else if(this.dialogFormType == 'apply') { } else if(this.dialogFormType == 'apply') {
const fieldsToValidate = ['applyNum'] const fieldsToValidate = ['applyNum']
if (this.registerForm.applyNum > this.registerForm.num) {
this.$message({
message: '申领数量不能大于库存数量',
type: 'error'
});
return
}
this.$refs.registerForm.validate((valid) => { this.$refs.registerForm.validate((valid) => {
if (valid) { if (valid) {
let params = { let params = {
@ -905,8 +1003,10 @@
unit: '', unit: '',
useTo: '', useTo: '',
inDate: '', inDate: '',
source: '',
applyNum: '', applyNum: '',
remarks: '', remarks: '',
deptId: '',
} }
}, },
// //
@ -1005,12 +1105,20 @@
.el-input-number{ .el-input-number{
width: 100%; width: 100%;
} }
::v-deep .el-date-editor.el-input, .el-date-editor.el-input__inner {
width: 100%;
}
} }
.dialog-footer{ .dialog-footer{
height: 40px; height: 40px;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }
.message-history{
display: flex;
flex-direction: column;
height: 100%;
}
.message{ .message{
// padding: 0 20px; // padding: 0 20px;
margin: 0 20px 0px 20px; margin: 0 20px 0px 20px;
@ -1046,6 +1154,10 @@
flex-direction: column; flex-direction: column;
border: 1px solid #D1D1D1; border: 1px solid #D1D1D1;
border-top: none; border-top: none;
height: calc(91vh - 300px);
// flex: 1;
// display: flex;
// flex-direction: column;
.title{ .title{
height: 40px; height: 40px;
background: #FFFFFF; background: #FFFFFF;
@ -1055,9 +1167,11 @@
margin: 0 20px 0px 20px; margin: 0 20px 0px 20px;
} }
.el-collapse{ .el-collapse{
flex: 1;
margin: 0 20px; margin: 0 20px;
border: none !important; border: none !important;
margin-bottom: 20px; margin-bottom: 20px;
overflow: auto;
} }
} }
.title-text{ .title-text{

@ -1,7 +1,10 @@
<template> <template>
<div class="content"> <basic-container class="content">
<div class="process"> <div class="process">
<div class="title">报警节点示意图</div> <div class="title">
<div>报警节点示意图</div>
<el-button class="go-back" @click="goBack">返回</el-button>
</div>
<el-carousel <el-carousel
style="position: relative" style="position: relative"
:autoplay="false" :autoplay="false"
@ -174,7 +177,7 @@
</div> </div>
</div> --> </div> -->
</div> </div>
</div> </basic-container>
</template> </template>
<script> <script>
@ -362,16 +365,19 @@ export default {
arr.splice(arr.length - 1, 1); arr.splice(arr.length - 1, 1);
return arr; return arr;
}, },
goBack() {
this.$router.go(-1);
}
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content { .content {
padding: 20px !important; // padding: 20px !important;
.process { .process {
width: calc(100% - 218px); // width: calc(100% - 218px);
margin-left: 218px; // margin-left: 218px;
height: 500px; height: 500px;
background: #ffffff; background: #ffffff;
border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px;
@ -389,6 +395,11 @@ export default {
align-items: center; align-items: center;
font-size: 18px; font-size: 18px;
color: #333333; color: #333333;
position: relative;
.go-back{
position: absolute;
right: 2px;
}
} }
.main { .main {
display: flex; display: flex;
@ -602,9 +613,9 @@ export default {
height: 270px; height: 270px;
flex: 1; flex: 1;
margin-top: 30px; margin-top: 30px;
width: calc(100% - 218px); // width: calc(100% - 218px);
// height: 326px; // // height: 326px;
margin-left: 218px; // margin-left: 218px;
background: #ffffff; background: #ffffff;
border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px;
border: 1px solid #d1d1d1; border: 1px solid #d1d1d1;

@ -1,7 +1,6 @@
<template> <template>
<el-row style="margin-top: 10px; height: 98%"> <!-- <el-col :span="3"> </el-col> -->
<el-col :span="3"> </el-col> <div style="height: 100%">
<el-col :span="21" style="height: 100%">
<basic-container style="height: 100%"> <basic-container style="height: 100%">
<div class="search_box"> <div class="search_box">
<!-- <el-input <!-- <el-input
@ -188,8 +187,7 @@
</div> </div>
</div> </div>
</basic-container> </basic-container>
</el-col> </div>
</el-row>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.box { .box {

@ -264,7 +264,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.page { .page {
padding: 30px 0 0 238px !important; padding: 30px !important;
} }
.search_box { .search_box {
display: flex; display: flex;
@ -295,13 +295,13 @@ export default {
} }
} }
.content_box1 { .content_box1 {
width: 1640px; // width: 1640px;
// height: 498px; // height: 498px;
border: 1px solid #dcdcdc; border: 1px solid #dcdcdc;
padding: 20px 0 0 20px; padding: 20px 0 0 20px;
} }
.content_box3 { .content_box3 {
width: 1640px; // width: 1640px;
// height: 498px; // height: 498px;
border: 1px solid #dcdcdc; border: 1px solid #dcdcdc;
padding: 20px; padding: 20px;
@ -321,7 +321,7 @@ export default {
flex-wrap: wrap; flex-wrap: wrap;
} }
.itemBox { .itemBox {
width: 210px; width: 205px;
height: 212px; height: 212px;
border: 1px solid #dcdcdc; border: 1px solid #dcdcdc;
margin: 0 20px 30px 0; margin: 0 20px 30px 0;

@ -22,7 +22,7 @@
<div class="center_jiedian_box"> <div class="center_jiedian_box">
<jiedian class="jiedian jiedian_1" :img="'jiedian_blue'" :status="dataList.some(item => item.name == 'mqtt服务' && item.status == 1)" :text="'mqtt服务'" :left="'-33'"></jiedian> <jiedian class="jiedian jiedian_1" :img="'jiedian_blue'" :status="dataList.some(item => item.name == 'mqtt服务' && item.status == 1)" :text="'mqtt服务'" :left="'-33'"></jiedian>
<jiedian class="jiedian jiedian_2" :img="'jiedian_blue'" :status="dataList.some(item => item.name == 'http服务' && item.status == 1)" :text="'http服务'" :left="'-30'"></jiedian> <jiedian class="jiedian jiedian_2" :img="'jiedian_blue'" :status="dataList.some(item => item.name == 'http服务' && item.status == 1)" :text="'http服务'" :left="'-30'"></jiedian>
<jiedian class="jiedian jiedian_3" :img="'jiedian_blue'" :status="dataList.some(item => item.name == 'modBus服务' && item.status == 1)" :text="'modBus服务'" :left="'-30'"></jiedian> <jiedian class="jiedian jiedian_3" :img="'jiedian_blue'" :status="dataList.some(item => item.name == 'modbus服务' && item.status == 1)" :text="'modbus服务'" :left="'-30'"></jiedian>
</div> </div>
<img class="server_1_bottom_center_left" src="../../../public/img/tuobu/server_1_bottom_center.png" alt=""> <img class="server_1_bottom_center_left" src="../../../public/img/tuobu/server_1_bottom_center.png" alt="">
<div class="bottom_jiedian_box_1"> <div class="bottom_jiedian_box_1">

@ -83,44 +83,4 @@ export default [{
path: '*', path: '*',
redirect: '/404' redirect: '/404'
}, },
{
path: '/opsVisualization',
name: '系统监控',
component: Layout,
redirect: '/opsVisualization/tuobu',
meta: {
keepAlive: true,
isTab: false,
isAuth: false
},
children: [
{
path: 'tuobu',
name: '系统监控',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/page/opsVisualization/tuobu')
},
{
path: "systemMonitoring",
name: '服务监控',
component: () =>
import( /* webpackChunkName: "page" */ '@/page/opsVisualization/systemMonitoring'),
},
{
path: "alarmProcess",
name: '业务数据监控',
component: () =>
import( /* webpackChunkName: "page" */ '@/page/opsVisualization/alarmProcess'),
},
{
path: "serviceDataOAM",
name: '报警信息记录',
component: () =>
import( /* webpackChunkName: "page" */ '@/page/opsVisualization/serviceDataOAM'),
},
]
},
] ]

@ -276,5 +276,54 @@ export default [{
import( /* webpackChunkName: "views" */ '@/page/itemManagement/applicationExamine') import( /* webpackChunkName: "views" */ '@/page/itemManagement/applicationExamine')
}, },
] ]
} },
{
path: '/opsVisualization',
name: '系统监控',
component: Layout,
redirect: '/opsVisualization/tuobu',
meta: {
keepAlive: true,
isTab: false,
isAuth: false
},
children: [
{
path: 'tuobu',
name: '系统监控',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/page/opsVisualization/tuobu')
},
{
path: "systemMonitoring",
name: '服务监控',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "page" */ '@/page/opsVisualization/systemMonitoring'),
},
{
path: "alarmProcess",
name: '业务数据监控',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "page" */ '@/page/opsVisualization/alarmProcess'),
},
{
path: "serviceDataOAM",
name: '报警信息记录',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "page" */ '@/page/opsVisualization/serviceDataOAM'),
},
]
},
] ]

@ -34,6 +34,7 @@ const getNavigationMap = (type) => {
} }
} else { } else {
navigationMap('.mapDom', require('../../public/img/monitoring/mapviewer/total.png'), 8, 1); navigationMap('.mapDom', require('../../public/img/monitoring/mapviewer/total.png'), 8, 1);
// return 'electricity'
} }
} }
@ -77,4 +78,4 @@ const getMonth = () => {
getNavigationMap, getNavigationMap,
getUpdateMap, getUpdateMap,
getMonth getMonth
} }

@ -31,6 +31,7 @@
<div> <div>
<el-button v-if="multipleSelection.length != 0" class="register" @click="batchDeletion">批量删除</el-button> <el-button v-if="multipleSelection.length != 0" class="register" @click="batchDeletion">批量删除</el-button>
<el-button class="register" @click="handleAdd">新增</el-button> <el-button class="register" @click="handleAdd">新增</el-button>
<el-button class="register" @click="gotoBim">园区监控</el-button>
<el-button class="register" @click="handleBack">返回</el-button> <el-button class="register" @click="handleBack">返回</el-button>
</div> </div>
</div> </div>
@ -464,6 +465,9 @@
}, },
handleBack() { handleBack() {
this.$router.push({path: '/equipment/index'}) this.$router.push({path: '/equipment/index'})
},
gotoBim() {
this.$router.push({path: '/garden/index', query: {code: this.$route.query.code}})
} }
} }
} }

@ -94,7 +94,6 @@ export default {
methods: { methods: {
// //
topNavFun(i) { topNavFun(i) {
window.sessionStorage.removeItem('build'); window.sessionStorage.removeItem('build');
window.sessionStorage.removeItem('floor'); window.sessionStorage.removeItem('floor');
window.sessionStorage.removeItem('ttbuild'); window.sessionStorage.removeItem('ttbuild');

@ -177,6 +177,9 @@ export default {
// }else{ // }else{
bfHelper.loadModel(1); bfHelper.loadModel(1);
// } // }
if (this.$route.query.code) {
this.topNavFun(3)
}
}, },
beforeDestroy() { beforeDestroy() {
@ -213,6 +216,7 @@ export default {
}, },
// //
topNavFun(i) { topNavFun(i) {
// console.log('123123')
window.sessionStorage.removeItem('build'); window.sessionStorage.removeItem('build');
window.sessionStorage.removeItem('floor'); window.sessionStorage.removeItem('floor');
window.sessionStorage.removeItem('ttbuild'); window.sessionStorage.removeItem('ttbuild');

@ -140,8 +140,8 @@ export default {
.content{ .content{
padding: 20px !important; padding: 20px !important;
.process{ .process{
width: calc(100% - 218px); // width: calc(100% - 218px);
margin-left: 218px; // margin-left: 218px;
height: 584px; height: 584px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px;
@ -371,9 +371,9 @@ export default {
.method{ .method{
flex: 1; flex: 1;
margin-top: 30px; margin-top: 30px;
width: calc(100% - 218px); // width: calc(100% - 218px);
// height: 326px; // // height: 326px;
margin-left: 218px; // margin-left: 218px;
background: #FFFFFF; background: #FFFFFF;
border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px;
border: 1px solid #D1D1D1; border: 1px solid #D1D1D1;

@ -22,7 +22,7 @@
<div class="center_jiedian_box"> <div class="center_jiedian_box">
<jiedian class="jiedian jiedian_1" :img="'jiedian_blue'" :text="'mqtt服务'" :left="'-33'"></jiedian> <jiedian class="jiedian jiedian_1" :img="'jiedian_blue'" :text="'mqtt服务'" :left="'-33'"></jiedian>
<jiedian class="jiedian jiedian_2" :img="'jiedian_blue'" :text="'http服务'" :left="'-30'"></jiedian> <jiedian class="jiedian jiedian_2" :img="'jiedian_blue'" :text="'http服务'" :left="'-30'"></jiedian>
<jiedian class="jiedian jiedian_3" :img="'jiedian_blue'" :text="'modBus服务'" :left="'-30'"></jiedian> <jiedian class="jiedian jiedian_3" :img="'jiedian_blue'" :text="'modbus服务'" :left="'-30'"></jiedian>
</div> </div>
<img class="server_1_bottom_center_left" src="../../../public/img/tuobu/server_1_bottom_center.png" alt=""> <img class="server_1_bottom_center_left" src="../../../public/img/tuobu/server_1_bottom_center.png" alt="">
<div class="bottom_jiedian_box_1"> <div class="bottom_jiedian_box_1">

Loading…
Cancel
Save