需求修改

main
guanxiaohan 1 year ago
parent 7573fe7b91
commit cbe567da01
  1. 8
      src/api/itemManagement/applicationExamine.js
  2. 37
      src/api/itemManagement/basicInformation.js
  3. 67
      src/api/itemManagement/procurementInformation.js
  4. 18
      src/components/monitoring/firefighting.vue
  5. 36
      src/page/itemManagement/applicationExamine/index.vue
  6. 823
      src/page/itemManagement/basicInformation/index.vue
  7. 402
      src/page/itemManagement/itemList/index.vue
  8. 1370
      src/page/itemManagement/procurementInformation/index.vue
  9. 27
      src/router/views/index.js
  10. 22
      src/util/bfHelper.js
  11. 7
      src/views/equipment/monitoringList.vue
  12. 7
      src/views/equipment/monitoringManagement.vue
  13. 370
      src/views/garden/fireMonitoring.vue
  14. 6
      src/views/sourceAnaly/components/householdElectricity.vue

@ -20,4 +20,12 @@ export const remove = (params) => {
method: 'get',
params
})
}
export const exportExcel = (params) => {
return request({
url: '/api/blade-desk/goodsApply/export',
responseType: 'blob',
method: 'get',
params
})
}

@ -0,0 +1,37 @@
import request from '@/router/axios';
export const findPage = (params) => {
return request({
url: '/api/blade-desk/goodsInfo/findPage',
method: 'get',
params
})
}
export const detail = (params) => {
return request({
url: '/api/blade-desk/goodsInfo/detail',
method: 'get',
params
})
}
export const save = (data) => {
return request({
url: '/api/blade-desk/goodsInfo/save',
method: 'post',
data
})
}
export const remove = (params) => {
return request({
url: '/api/blade-desk/goodsInfo/remove',
method: 'get',
params
})
}
export const check = (params) => {
return request({
url: '/api/blade-desk/goodsInfo/check',
method: 'get',
params
})
}

@ -0,0 +1,67 @@
import request from '@/router/axios';
export const findPage = (params) => {
return request({
url: '/api/blade-desk/purchaseInfo/findPage',
method: 'get',
params
})
}
export const detail = (params) => {
return request({
url: '/api/blade-desk/purchaseInfo/detail',
method: 'get',
params
})
}
export const save = (data) => {
return request({
url: '/api/blade-desk/purchaseInfo/save',
method: 'post',
data
})
}
export const remove = (params) => {
return request({
url: '/api/blade-desk/purchaseInfo/remove',
method: 'get',
params
})
}
export const findDeptInventoryPage = (params) => {
return request({
url: '/api/blade-desk/goodsInfo/findDeptInventoryPage',
method: 'get',
params
})
}
export const purchaseDetailSave = (data) => {
return request({
url: '/api/blade-desk/purchaseDetail/store',
method: 'post',
data
})
}
export const update = (data) => {
return request({
url: '/api/blade-desk/purchaseInfo/update',
method: 'post',
data
})
}
export const back = (data) => {
return request({
url: '/api/blade-desk/purchaseInfo/back',
method: 'post',
data
})
}
export const purchaseInfoExport = (params) => {
return request({
url: '/api/blade-desk/purchaseInfo/export',
// responseType: "blob",
method: 'get',
params
})
}

@ -627,12 +627,20 @@ export default {
this.$message.error("设备暂未配置监控!");
return
}
let query = []
const data = res.data.data
data.forEach(item => {
query.push({
id: item.thirdId,
name: item.name,
jurisdiction: 1,
})
});
console.log('query', query)
const { href } = this.$router.resolve({
path: "/garden/monitoring",
path: "/garden/fireMonitoring",
query: {
id: row.thirdId,
name: row.name,
jurisdiction: row.agentViewHis,
list: JSON.stringify(query)
},
});
window.open(href, "_blank");
@ -893,7 +901,7 @@ export default {
} else {
// bfHelper.resetStatus(2);
bfHelper.clearDrawableContainer();
id = bfHelper.disposeId(item.area, item.build, item.modelId);
let id = bfHelper.disposeId(item.area, item.build, item.modelId);
// let id = disposeId(item.area, item.build, item.modelId);
this.addLabel(
id,

@ -116,6 +116,7 @@
</el-form-item>
</el-form>
<div>
<el-button class="register" @click="exportExcel">导出</el-button>
<el-button v-if="multipleSelection.length != 0 && vaildData(permission.goods_apply_remove, false)" class="register" @click="batchDeletion">批量删除</el-button>
</div>
</div>
@ -193,6 +194,16 @@
</div>
</template>
</el-table-column>
<el-table-column
label="是否导出">
<template slot-scope="scope">
<div class="status-box-wrapper">
<div class="export-box">
{{ scope.row.isExport == '0' ? '未导出' : '已导出' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="remarks"
label="备注">
@ -530,10 +541,12 @@
</template>
<script>
import { findPage, detail, remove } from "@/api/itemManagement/applicationExamine";
import { findPage, detail, remove, exportExcel } from "@/api/itemManagement/applicationExamine";
import { goodsApplySave } from "@/api/itemManagement/itemList";
import {getDictionary} from '@/api/system/dictbiz'
import {mapGetters} from "vuex";
import { downloadFileBlob } from "@/util/util";
import {getToken} from "@/util/auth";
export default {
data() {
return {
@ -714,6 +727,20 @@
this.brandList = res.data.data.filter(item => item.parentId != '0')
})
},
exportExcel() {
this.$confirm('确认导出列表中的数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
downloadFileBlob(`/api/blade-desk/goodsApply/export?${this.website.tokenHeader}=${getToken()}`, '物品申领')
}).catch(() => {
this.$message({
type: 'info',
message: '已取消导出'
})
})
},
//
findPage() {
let params = {
@ -1084,6 +1111,10 @@
justify-content: center;
align-items: center;
}
.export-box{
width: 62px;
height: 25px;
}
.status-box{
width: 62px;
height: 25px;
@ -1105,4 +1136,7 @@
background: rgba(151, 151, 151, 0.2);
color: #333333;
}
.yellow{
color: #fff700;
}
</style>

@ -0,0 +1,823 @@
<template>
<basic-container class="content">
<div class="content-top">
<el-form
:inline="true"
:model="queryForm"
class="serch_form"
>
<el-form-item label="物品大类">
<el-select
class="search_select"
v-model="queryForm.bigClass"
placeholder="请选择物品大类"
clearable
filterable
>
<el-option
v-for="item in typeList"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item
class="search_input"
label="物品名称"
>
<el-input
v-model="queryForm.name"
placeholder="请输入物品名称"
/>
</el-form-item>
<el-form-item label="物品品牌">
<el-select
class="search_select"
v-model="queryForm.brand"
placeholder="请选择物品品牌"
clearable
filterable
>
<el-option
v-for="item in brandList"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
class="search_button"
@click="handleSearch"
>
<i class="el-icon-search"></i>
</el-button>
</el-form-item>
</el-form>
<div>
<el-button class="register" @click="handleAdd">信息录入</el-button>
<el-button class="register" @click="batchDeletion">批量删除</el-button>
</div>
</div>
<div class="content-main">
<el-table
:data="tableData"
stripe
border
style="width: 100%"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="70">
</el-table-column>
<el-table-column
prop="bigClass"
label="物品大类">
</el-table-column>
<el-table-column
prop="name"
label="物品名称">
</el-table-column>
<el-table-column
prop="code"
label="物品编号">
</el-table-column>
<el-table-column
prop="brand"
label="品牌">
</el-table-column>
<el-table-column
prop="model"
label="型号">
</el-table-column>
<el-table-column
prop="standard"
label="规格">
</el-table-column>
<el-table-column
prop="price"
label="单价">
</el-table-column>
<el-table-column
prop="unit"
label="单位">
</el-table-column>
<el-table-column
prop="useTo"
label="用途">
</el-table-column>
<el-table-column
prop="remarks"
label="备注">
</el-table-column>
<el-table-column
label="操作"
width="150"
align="center"
>
<template slot-scope="scope">
<el-popover
placement="bottom"
width="150"
trigger="hover">
<div class="more-box">
<div class="item" @click="handleOperation('view', scope.row)">查看</div>
<div class="item" @click="handleOperation('edit', scope.row)">编辑</div>
<div class="item" @click="handleOperation('delete', scope.row)">删除</div>
</div>
<div class="more" slot="reference">更多</div>
</el-popover>
</template>
</el-table-column>
</el-table>
<div class="el_pagination">
<!-- <div
style="
width: 100%;
height: 100%;
position: absolute;
background: rgba(255,255,255,.9);
z-index: 9;
position: absolute;
top: 0;
left: 0;
"
v-show="loading"
></div> -->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[5, 10, 20, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</div>
<el-dialog
:title="registerTitle"
:append-to-body="true"
:visible.sync="registerDialogVisible"
width="50%"
:before-close="registerHandleClose">
<el-form
class="registerForm"
:model="registerForm"
label-width="90px"
:rules="rules"
ref="registerForm"
>
<el-col :span="8">
<el-form-item
label="物品大类"
prop="bigClass"
>
<el-select
v-model="registerForm.bigClass"
placeholder="请选择物品大类"
filterable
:disabled="dialogFormDisabled || dialogFormType == 'edit'"
>
<el-option
v-for="item in typeList"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="物品名称"
prop="name"
>
<el-input
v-model="registerForm.name"
placeholder="请输入物品名称"
:disabled="dialogFormDisabled || dialogFormType == 'edit'"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="物品编号"
prop="code"
>
<el-input
v-model="registerForm.code"
placeholder="请输入物品编号"
:disabled="dialogFormDisabled || dialogFormType == 'edit'"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="品牌"
prop="brand"
>
<el-select
class="search_select"
v-model="registerForm.brand"
placeholder="请选择物品品牌"
filterable
:disabled="dialogFormDisabled"
>
<el-option
v-for="item in brandList"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="型号"
prop="model"
>
<el-input
v-model="registerForm.model"
placeholder="请输入型号"
:disabled="dialogFormDisabled"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="规格" prop="standard">
<el-input
v-model="registerForm.standard"
placeholder="请输入规格"
:disabled="dialogFormDisabled"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="单价"
prop="price"
>
<el-input
v-model="registerForm.price"
placeholder="请输入单价"
:disabled="dialogFormDisabled"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="单位"
prop="unit"
>
<el-input
v-model="registerForm.unit"
placeholder="请输入单位"
:disabled="dialogFormDisabled"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="用途"
prop="useTo"
>
<el-input
v-model="registerForm.useTo"
placeholder="请输入用途"
:disabled="dialogFormDisabled"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
label="备注"
prop="remarks"
>
<el-input
v-model="registerForm.remarks"
placeholder="请输入备注"
:disabled="dialogFormDisabled"
/>
</el-form-item>
</el-col>
</el-form>
<div class="dialog-footer">
<el-button
v-if="dialogFormType != 'view'"
@click="registerHandleClick('cancel')"
> </el-button>
<el-button
type="primary"
@click="registerHandleClick('confirm')"
> </el-button>
</div>
</el-dialog>
</basic-container>
</template>
<script>
import { findPage, detail, save, remove, check } from "@/api/itemManagement/basicInformation";
import {getDictionary} from '@/api/system/dictbiz'
import {mapGetters} from "vuex";
export default {
data() {
return {
queryForm: {
bigClass: '',
brand: '',
name: ''
},
typeList: [],
brandList: [],
sourceList: [],
tableData: [],
multipleSelection: [],
currentPage: 1,
pageSize: 10,
total: 0,
registerDialogVisible: false,
dialogFormType: '',
dialogFormDisabled: false,
registerForm: {
bigClass: '',
name: '',
code: '',
brand: '',
model: '',
standard: '',
price: '',
unit: '',
useTo: '',
remarks: '',
},
rules: {
bigClass: [
{ required: true, message: '请选择物品大类', trigger: 'blur' },
],
name: [
{ required: true, message: '请输入物品名称', trigger: 'blur' },
],
code: [
{ required: true, message: '请输入物品编号', trigger: 'blur' },
],
brand: [
{ required: true, message: '请选择品牌', trigger: 'blur' },
],
model: [
{ required: true, message: '请输入型号', trigger: 'blur' },
],
standard: [
{ required: true, message: '请输入规格', trigger: 'blur' },
],
price: [
{
validator: (rule, value, callback) => {
if (!value) {
return callback(new Error('请输入单价'));
}
if (!/^\d+(\.\d+)?$/.test(value)) {
return callback(new Error('请输入有效的数字'));
}
callback();
},
required: true,
trigger: 'blur' },
],
unit: [
{ required: true, message: '请输入单位', trigger: 'blur' },
],
useTo: [
{ required: true, message: '请输入用途', trigger: 'blur' },
],
},
}
},
computed: {
...mapGetters(["userInfo", "permission"]),
registerTitle() {
if(this.dialogFormType == 'add') {
return '信息录入'
} else if(this.dialogFormType == 'view') {
return '查看详情'
} else if(this.dialogFormType == 'edit') {
return '编辑'
}
}
},
mounted() {
this.init()
},
methods: {
// init
init() {
this.findPage()
this.selectDict()
},
//
async selectDict() {
await getDictionary({code: 'big_class'}).then(res => {
this.typeList = res.data.data.filter(item => item.parentId != '0')
})
await getDictionary({code: 'brand'}).then(res => {
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')
})
},
//
findPage() {
let params = {
...this.queryForm,
current: this.currentPage,
size: this.pageSize
}
findPage(params).then(res => {
this.tableData = res.data.data.records
this.total = res.data.data.total
})
},
//
handleSearch() {
this.currentPage = 1
this.findPage()
},
//
handleSelectionChange(val) {
this.multipleSelection = val;
},
//
handleAdd() {
this.dialogFormType = 'add'
this.registerDialogVisible = true
},
//
batchDeletion() {
if(this.multipleSelection.length == 0) {
this.$message({
type: 'error',
message: '请选择您要删除的数据!'
})
return
}
this.$confirm('确认批量删除删除所选数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// console.log(this.multipleSelection)
let ids = []
this.multipleSelection.forEach(item => {
ids.push(item.id)
})
remove({ids: ids.join(',')}).then(res => {
this.$message({
message: '删除成功',
type: 'success'
})
this.findPage()
}).catch(err => {
this.$message({
type: 'error',
message: '删除失败!'
})
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
//
handleOperation(type, row) {
this.dialogFormType = type
if(type == 'view') {
this.registerDialogVisible = true
this.dialogFormDisabled = true
this.detail(row.id)
} else if(type == 'edit') {
this.registerDialogVisible = true
this.detail(row.id)
} else if(type == 'delete') {
this.$confirm('确认删除该条数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
remove({ids: row.id}).then(res => {
this.$message({
message: '删除成功',
type: 'success'
})
this.findPage()
}).catch(err => {
this.$message({
type: 'error',
message: '删除失败!'
})
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
} else if(type == 'apply') {
this.dialogFormType = 'apply'
this.registerDialogVisible = true
this.dialogFormDisabled = true
this.detail(row.id)
}
},
//
detail(id) {
detail({id}).then(res => {
console.log(res)
this.registerForm = res.data.data
})
},
//
registerHandleClick(type) {
if(type == 'confirm') {
if(this.dialogFormType == 'add') {
check({code: this.registerForm.code}).then(res => {
if(!res.data) {
this.$message({
message: '该编号已存在',
type: 'error'
});
return;
} else {
const fieldsToValidate = ['bigClass','name','code','brand','model','standard','unit','useTo']
this.$refs.registerForm.validate((valid) => {
if (valid) {
let params = this.registerForm
// console.log(params)
save(params).then(res => {
this.$message({
message: '录入成功',
type: 'success'
});
this.registerHandleClose()
this.currentPage = 1
this.pageSize = 10
this.findPage()
}).catch(error => {
this.$message({
message: '录入失败',
type: 'error'
});
})
} else {
return false;
}
}, fieldsToValidate);
}
})
} else if(this.dialogFormType == 'edit') {
const fieldsToValidate = ['bigClass','name','code','brand','model','standard','unit','useTo']
this.$refs.registerForm.validate((valid) => {
if (valid) {
let params = this.registerForm
save(params).then(res => {
this.$message({
message: '修改成功',
type: 'success'
});
this.registerHandleClose()
this.currentPage = 1
this.pageSize = 10
this.findPage()
}).catch(error => {
this.$message({
message: '修改失败',
type: 'error'
});
})
} else {
return false;
}
}, fieldsToValidate);
} else {
this.registerHandleClose()
}
} else {
this.registerHandleClose()
}
},
//
registerHandleClose() {
this.registerDialogVisible = false
this.resetForm()
this.dialogFormDisabled = false
this.registerForm = {
bigClass: '',
name: '',
code: '',
brand: '',
model: '',
standard: '',
unit: '',
useTo: '',
remarks: '',
}
},
//
resetForm() {
this.$refs['registerForm'].resetFields();
},
//
handleSizeChange(val) {
console.log(`每页 ${val}`);
this.currentPage = 1
this.pageSize = val
this.findPage()
},
handleCurrentChange(val) {
this.currentPage = val
this.findPage()
}
}
}
</script>
<style lang="scss" scoped>
.content {
height: 100%;
background-color: white;
padding: 20px !important;
.content-top{
display: flex;
justify-content: space-between;
align-items: flex-start;
.register{
height: 40px;
}
.serch_form {
// display: flex;
// margin-bottom: 30px;
.el-form-item{
// padding: 0 10px;
margin-right: 20px !important;
}
.search_select {
// width: 138px;
height: 40px;
}
.search_input {
// width: 238px;
height: 40px;
}
/deep/.el-input__inner {
border-radius: 0;
}
.search_button {
width: 50px;
height: 40px;
border-radius: 0;
display: flex;
justify-content: center;
align-items: center;
margin-left: 6px;
.el-icon-search {
font-size: 19px;
color: #c9c9c9;
}
}
}
}
.content-main{
.more{
cursor: pointer;
}
.el_pagination {
display: flex;
justify-content: end;
margin-top: 20px;
}
}
}
.more-box{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.item{
width: 100%;
padding: 5px 0;
text-align: center;
cursor: pointer;
}
}
.registerForm{
display: flex;
flex-wrap: wrap;
.el-select{
width: 100%;
}
.el-input-number{
width: 100%;
}
::v-deep .el-date-editor.el-input, .el-date-editor.el-input__inner {
width: 100%;
}
}
.dialog-footer{
height: 40px;
display: flex;
justify-content: flex-end;
}
.message-history{
display: flex;
flex-direction: column;
height: 100%;
}
.message{
// padding: 0 20px;
margin: 0 20px 0px 20px;
display: flex;
flex-direction: column;
border: 1px solid #D1D1D1;
.box{
margin: 0 20px 0px 20px;
}
.title{
height: 40px;
background: #FFFFFF;
border-radius: 0px 0px 0px 0px;
display: flex;
align-items: center;
margin: 0 20px 0px 20px;
}
.item{
display: flex;
align-items: center;
margin-bottom: 10px;
.label{
width: 80px;
text-align: end;
margin-right: 10px;
}
}
}
.history{
// padding: 0 20px;
margin: 0 20px 20px 20px;
display: flex;
flex-direction: column;
border: 1px solid #D1D1D1;
border-top: none;
height: calc(91vh - 300px);
// flex: 1;
// display: flex;
// flex-direction: column;
.title{
height: 40px;
background: #FFFFFF;
border-radius: 0px 0px 0px 0px;
display: flex;
align-items: center;
margin: 0 20px 0px 20px;
}
.el-collapse{
flex: 1;
margin: 0 20px;
border: none !important;
margin-bottom: 20px;
overflow: auto;
}
}
.title-text{
margin: 0 20px;
}
.name-time{
// width: 327px;
height: 40px;
background: #F9F9F9;
display: flex;
align-items: center;
padding: 0 20px;
.time{
margin: 0 30px;
}
}
.green{
color: #1EB94C;
}
.red{
color: #E14B33;
}
</style>

@ -16,9 +16,9 @@
>
<el-option
v-for="item in typeList"
:key="item.id"
:key="item.dictValue"
:label="item.dictValue"
:value="item.id">
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
@ -41,9 +41,9 @@
>
<el-option
v-for="item in brandList"
:key="item.id"
:key="item.dictValue"
:label="item.dictValue"
:value="item.id">
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
@ -136,7 +136,7 @@
</el-form>
<div>
<el-button class="register" @click="handleAdd" v-if="vaildData(permission.goods_storage, false)">登记入库</el-button>
<el-button v-if="multipleSelection.length != 0 && vaildData(permission.goods_remove, false)" class="register" @click="batchDeletion">批量删除</el-button>
<el-button v-if="vaildData(permission.goods_remove, false)" class="register" @click="batchDeletion">批量删除</el-button>
</div>
</div>
<div class="content-main">
@ -273,6 +273,11 @@
:visible.sync="registerDialogVisible"
width="50%"
:before-close="registerHandleClose">
<el-button
type="text"
@click="addItem"
v-if="dialogFormType == 'add'"
>+ 添加物品</el-button>
<el-form
class="registerForm"
:model="registerForm"
@ -292,13 +297,13 @@
v-model="registerForm.bigClass"
placeholder="请选择物品大类"
filterable
:disabled="dialogFormDisabled"
:disabled="true"
>
<el-option
v-for="item in typeList"
:key="item.id"
:key="item.dictValue"
:label="item.dictValue"
:value="item.id">
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
@ -311,7 +316,7 @@
<el-input
v-model="registerForm.name"
placeholder="请输入物品名称"
:disabled="dialogFormDisabled"
:disabled="true"
/>
</el-form-item>
</el-col>
@ -326,31 +331,10 @@
<el-input
v-model="registerForm.code"
placeholder="请输入物品编号"
:disabled="dialogFormDisabled || dialogFormType == 'edit'"
:disabled="true"
/>
</el-form-item>
</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-form-item
label="品牌"
@ -361,13 +345,13 @@
v-model="registerForm.brand"
placeholder="请选择物品品牌"
filterable
:disabled="dialogFormDisabled"
:disabled="true"
>
<el-option
v-for="item in brandList"
:key="item.id"
:key="item.dictValue"
:label="item.dictValue"
:value="item.id">
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
@ -380,7 +364,7 @@
<el-input
v-model="registerForm.model"
placeholder="请输入型号"
:disabled="dialogFormDisabled"
:disabled="true"
/>
</el-form-item>
</el-col>
@ -389,7 +373,7 @@
<el-input
v-model="registerForm.standard"
placeholder="请输入规格"
:disabled="dialogFormDisabled"
:disabled="true"
/>
</el-form-item>
</el-col>
@ -398,7 +382,7 @@
<el-input
v-model="registerForm.price"
placeholder="请输入单价"
:disabled="dialogFormDisabled"
:disabled="true"
/>
</el-form-item>
</el-col>
@ -407,73 +391,94 @@
v-if="dialogFormType != 'apply'"
>
<el-form-item
label="位"
prop="allocation"
label="位"
prop="unit"
>
<el-input
v-model="registerForm.allocation"
placeholder="请输入位"
:disabled="dialogFormDisabled"
v-model="registerForm.unit"
placeholder="请输入位"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col
:span="8"
v-if="dialogFormType != 'add'"
v-if="dialogFormType != 'apply'"
>
<el-form-item
label="库存"
prop="num"
label="用途"
prop="useTo"
>
<el-input
v-model="registerForm.num"
placeholder="请输入库存"
v-model="registerForm.useTo"
placeholder="请输入用途"
:disabled="true"
/>
</el-form-item>
</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"
v-if="dialogFormType != 'apply' && dialogFormType != 'view' && dialogFormType != 'edit'"
v-if="dialogFormType != 'apply'"
>
<el-form-item
label="入库数量"
prop="inNum"
label="货位"
prop="allocation"
>
<el-input
v-model="registerForm.inNum"
placeholder="请输入入库数量"
:disabled="dialogFormDisabled && dialogFormType != 'change'"
v-model="registerForm.allocation"
placeholder="请输入货位"
:disabled="dialogFormDisabled"
/>
</el-form-item>
</el-col>
<el-col
:span="8"
v-if="dialogFormType != 'apply'"
v-if="dialogFormType != 'add'"
>
<el-form-item
label="单位"
prop="unit"
label="库存"
prop="num"
>
<el-input
v-model="registerForm.unit"
placeholder="请输入单位"
:disabled="dialogFormDisabled"
v-model="registerForm.num"
placeholder="请输入库存"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col
:span="8"
v-if="dialogFormType != 'apply'"
v-if="dialogFormType != 'apply' && dialogFormType != 'view' && dialogFormType != 'edit'"
>
<el-form-item
label="用途"
prop="useTo"
label="入库数量"
prop="inNum"
>
<el-input
v-model="registerForm.useTo"
placeholder="请输入用途"
:disabled="dialogFormDisabled"
v-model="registerForm.inNum"
placeholder="请输入入库数量"
:disabled="dialogFormDisabled && dialogFormType != 'change'"
/>
</el-form-item>
</el-col>
@ -553,14 +558,166 @@
> </el-button>
</div>
</el-dialog>
<el-dialog
title="物品基本信息"
:append-to-body="true"
:visible.sync="informationDialogVisable"
width="60%"
:before-close="informationHandleClose">
<el-form
:inline="true"
:model="informationQueryForm"
class="serch_form"
>
<el-form-item label="物品大类">
<el-select
class="search_select"
v-model="informationQueryForm.bigClass"
placeholder="请选择物品大类"
clearable
filterable
>
<el-option
v-for="item in typeList"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item
class="search_input"
label="物品名称"
>
<el-input
v-model="informationQueryForm.name"
placeholder="请输入物品名称"
/>
</el-form-item>
<el-form-item label="物品品牌">
<el-select
class="search_select"
v-model="informationQueryForm.brand"
placeholder="请选择物品品牌"
clearable
filterable
>
<el-option
v-for="item in brandList"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
class="search_button"
@click="informationHandleSearch"
>
<i class="el-icon-search"></i>
</el-button>
</el-form-item>
</el-form>
<el-table
:data="informationTableData"
stripe
border
style="width: 100%; margin-bottom: 20px"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}">
<el-table-column
type="index"
label="序号"
width="70">
</el-table-column>
<el-table-column
prop="bigClass"
label="物品大类">
</el-table-column>
<el-table-column
prop="name"
label="物品名称">
</el-table-column>
<el-table-column
prop="code"
label="物品编号">
</el-table-column>
<el-table-column
prop="brand"
label="品牌">
</el-table-column>
<el-table-column
prop="model"
label="型号">
</el-table-column>
<el-table-column
prop="standard"
label="规格">
</el-table-column>
<el-table-column
prop="num"
label="库存">
</el-table-column>
<el-table-column
prop="price"
label="单价">
</el-table-column>
<el-table-column
prop="unit"
label="单位">
</el-table-column>
<el-table-column
prop="useTo"
label="用途">
</el-table-column>
<el-table-column
prop="remarks"
label="备注">
</el-table-column>
<el-table-column
label="操作"
width="70"
align="center"
>
<template slot-scope="scope">
<el-button type="text" @click="chooseInformationItem(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<div class="el_pagination">
<!-- <div
style="
width: 100%;
height: 100%;
position: absolute;
background: rgba(255,255,255,.9);
z-index: 9;
position: absolute;
top: 0;
left: 0;
"
v-show="loading"
></div> -->
<el-pagination
@size-change="informationHandleSizeChange"
@current-change="informationHandleCurrentChange"
:current-page="informationCurrentPage"
:page-sizes="[5, 10, 20, 50, 100]"
:page-size="informationPageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="informationTotal"
>
</el-pagination>
</div>
</el-dialog>
<el-drawer
title="操作明细"
:visible.sync="drawer"
direction="rtl"
append-to-body
size="35%"
size="40%"
:before-close="handleClose">
<!-- <span>我来啦!</span> -->
<div class="message-history">
<div class="message">
<div class="title">物品信息</div>
@ -612,16 +769,23 @@
<template slot="title">
<div class="title-time">{{ item.createTime }}</div>
<div class="title-text">{{ item.type }}</div>
<div
v-if="item.type != '登记入库'"
class="status-box"
:class="item.status == '0' ? 'status-box-blue' : (item.status == '1' ? 'status-box-green' : (item.status == '2' ? 'status-box-red' : 'status-box-grey'))"
>
{{ item.status == '0' ? '待审核' : (item.status == '1' ? '待领取' : (item.status == '2' ? '已驳回' : '已领取')) }}
</div>
<div class="title-num" :class="item.type == '申领出库' ? 'red' : 'green'">{{ item.type == '申领出库' ? '-' : '+' }}{{ item.num }}</div>
</template>
<div class="name-time" v-if="item.type == '申领出库'">
<div class="name">申领提交人{{ item.applyName }}</div>
<div class="time">提交时间{{ item.applyTime }}</div>
<div class="dept">所属部门{{ item.deptName }}</div>
<div class="name" style="width: 30%">申领提交人{{ item.applyName }}</div>
<div class="time" style="width: 40%">提交时间{{ item.applyTime }}</div>
<div class="dept" style="width: 20%">所属部门{{ item.deptName }}</div>
</div>
<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 class="name" style="width: 30%">{{ item.type == '申领出库' ? '申领审核人' : '登记入库人' }}{{ item.type == '申领出库' ? item.approveName : item.inName }}</div>
<div class="time" style="width: 40%">提交时间{{ item.type == '申领出库' ? item.approveTime : item.inTime }}</div>
</div>
</el-collapse-item>
</el-collapse>
@ -633,6 +797,7 @@
<script>
import { findPage, detail, save, goodsApplySave, remove, historyDetail, check, deptList } from "@/api/itemManagement/itemList";
import { findDeptInventoryPage } from "@/api/itemManagement/procurementInformation";
import {getDictionary} from '@/api/system/dictbiz'
import {mapGetters} from "vuex";
export default {
@ -765,6 +930,18 @@
activeNames: [],
historyDetailList: [],
deptListData: [],
informationDialogVisable: false,
informationQueryForm: {
bigClass: '',
brand: '',
name: ''
},
informationTableData: [],
informationItemStatus: 0,
informationCurrentPage: 1,
informationPageSize: 10,
informationTotal: 0,
}
},
computed: {
@ -807,6 +984,10 @@
this.deptListData = res.data.data[0].children
})
},
addItem() {
this.informationDialogVisable = true
this.findDeptInventoryPage()
},
//
findPage() {
let params = {
@ -846,6 +1027,13 @@
},
//
batchDeletion() {
if(this.multipleSelection.length == 0) {
this.$message({
type: 'error',
message: '请选择您要删除的数据!'
})
return
}
this.$confirm('确认批量删除删除所选数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -956,8 +1144,8 @@
let params = this.registerForm
this.deptListData.forEach(item => {
if(item.id == params.deptId) {
params.deptName = item.deptName
}
params.deptName = item.deptName
}
})
// console.log(params)
save(params).then(res => {
@ -1117,7 +1305,44 @@
handleCurrentChange(val) {
this.currentPage = val
this.findPage()
}
},
findDeptInventoryPage() {
let params = {
...this.informationQueryForm,
current: this.informationCurrentPage,
size: this.informationPageSize
}
console.log(params)
findDeptInventoryPage(params).then(res => {
this.informationTableData = res.data.data.records
this.informationTotal = res.data.data.total
})
},
chooseInformationItem(row) {
const { bigClass, code, name, brand, model, standard, unit, price, useTo } = row
this.registerForm.bigClass = bigClass
this.registerForm.code = code
this.registerForm.name = name
this.registerForm.brand = brand
this.registerForm.model = model
this.registerForm.standard = standard
this.registerForm.unit = unit
this.registerForm.price = price
this.registerForm.useTo = useTo
this.informationDialogVisable = false
},
//
informationHandleSizeChange(val) {
console.log(`每页 ${val}`);
this.informationCurrentPage = 1
this.informationPageSize = val
this.findDeptInventoryPage()
},
informationHandleCurrentChange(val) {
this.informationCurrentPage = val
this.findDeptInventoryPage()
},
}
}
</script>
@ -1279,7 +1504,7 @@
align-items: center;
padding: 0 20px;
.time{
margin: 0 30px;
// margin: 0 30px;
}
}
.green{
@ -1288,4 +1513,29 @@
.red{
color: #E14B33;
}
.status-box{
width: 62px;
height: 25px;
display: flex;
align-items: center;
justify-content: center;
// cursor: pointer;
}
.status-box-blue{
background: rgba(43, 142, 229, 0.2);
color: #2B8EE5;
}
.status-box-green{
background: rgba(30, 185, 76, 0.2);
color: #1EB94C;
}
.status-box-red{
background: rgba(225, 75, 51, 0.2);
color: #E14B33;
}
.status-box-grey{
background: rgba(151, 151, 151, 0.2);
color: #333333;
}
</style>

File diff suppressed because it is too large Load Diff

@ -21,6 +21,15 @@ export default [{
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/garden/monitoring')
}, {
path: 'fireMonitoring',
name: '消防监控',
meta: {
i18n: 'dashboard',
menu: false,
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/garden/fireMonitoring')
}]
}, {
path: '/garden',
@ -290,6 +299,15 @@ export default [{
component: () =>
import( /* webpackChunkName: "views" */ '@/page/itemManagement/itemList')
},
{
path: 'basicInformation',
name: '物品信息录入',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/page/itemManagement/basicInformation')
},
{
path: 'applicationExamine',
name: '申领审核',
@ -299,6 +317,15 @@ export default [{
component: () =>
import( /* webpackChunkName: "views" */ '@/page/itemManagement/applicationExamine')
},
{
path: 'procurementInformation',
name: '采购信息',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/page/itemManagement/procurementInformation')
},
]
},
{

@ -2937,24 +2937,24 @@ const onSDKLoadSucceeded = (viewMetaData) => {
cameraState = {
aspect: 0.001889763779527559,
coordinateSystem: "world",
far: 960.4647787185954,
far: 454.2824723672335,
fov: 45,
name: "persp",
near: 105.04157557288553,
near: 58.40582500438439,
position: {
x: 114.92308877241895,
y: -391.5429803033385,
z: 219.8457809478254,
x: -49.48996254567479,
y: -573.8289828452667,
z: 24.494430089748876,
},
target: {
x: -8.729420142852026,
y: 863.9220428858905,
z: -496.6656824418152,
x: -30.486414787489626,
y: 324.40589707957854,
z: 10.522870646587355,
},
up: {
x: -0.000048407478040169157,
y: 0.0004914893345691443,
z: 0.0008695372045373162,
x: 0.0000003288926028793064,
y: 0.000015545622356942871,
z: 0.0009998791054198458,
},
version: 1,
zoom: 1,

@ -35,6 +35,7 @@
</el-form>
<div>
<el-button v-if="multipleSelection.length != 0" class="register" @click="handleConfirm">确认添加</el-button>
<el-button class="register" @click="back">返回</el-button>
</div>
</div>
<div class="content-main">
@ -145,6 +146,11 @@ import { nextTick } from 'vue';
this.multipleSelection = this.managementList
await this.findPage()
},
back() {
// this.$router.go(-1)
this.$router.push({path: '/equipment/monitoringManagement', query: {fireCode: this.$route.query.fireCode}})
},
//
async findPage() {
const res = await getList(this.currentPage, this.pageSize, this.queryForm, '0400')
@ -218,6 +224,7 @@ import { nextTick } from 'vue';
type: 'success'
})
// this.findPage()
sessionStorage.removeItem('data')
this.$router.push({path: '/equipment/monitoringManagement', query: {fireCode: this.$route.query.fireCode}})
}).catch(err => {
this.$message({

@ -1,10 +1,10 @@
<template>
<basic-container class="content">
<div class="content-top">
<el-button class="register" @click="back">返回</el-button>
<div>
<el-button class="register" @click="handleAdd">增加监控</el-button>
<el-button v-if="multipleSelection.length != 0" class="register" @click="handleRemove(multipleSelection)">批量删除</el-button>
<el-button class="register" @click="back">返回</el-button>
</div>
</div>
<div class="content-main">
@ -97,7 +97,8 @@
this.findPage()
},
back() {
this.$router.go(-1)
// this.$router.go(-1)
this.$router.push('/equipment/index')
},
//
findPage() {
@ -160,7 +161,7 @@
padding: 20px !important;
.content-top{
display: flex;
justify-content: space-between;
justify-content: flex-end;
align-items: flex-start;
margin-bottom: 20px;
.register{

@ -0,0 +1,370 @@
<template>
<div class="box-content">
<el-col
:span="12"
v-for="item in videoList"
:key="item.id"
class="monitoringBox"
>
<!-- 1#-1F电梯厅 -->
<p class="title">监控视频点位{{item.name}}</p>
<div class="select flex-center-center">
<div class="left">
<span>监控播放方式</span>
<el-radio @change="radioChange(item)" v-model="item.radio" label="1">实时</el-radio>
<el-radio v-show="item.jurisdiction == 1" @change="radioChange(item)" v-model="item.radio" label="2">回放</el-radio>
</div>
<div v-show="radio=='2'" class="right">
<span>回放时间</span>
<el-date-picker @focus='focusFun(item)' @blur="blurFun(item)" v-model="item.value1" type="daterange" align="right"
unlink-panels value-format="timestamp" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" :picker-options="pickerOptions">
</el-date-picker>
</div>
<el-button v-show="radio=='2'" class="btn" @click="playFun" type="primary">回放</el-button>
</div>
<div :id="item.id" class="monitoring"></div>
</el-col>
</div>
</template>
<script>
export default {
data() {
return {
radio: "1",
jurisdiction:true,
monitoringName:'',
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}]
},
cameraIndexCode:null,
value1: [],
oWebControl: null,
pattern: 0, //0/1
initCount:0,
videoList: []
}
},
created() {
console.log(this.$route.query)
// this.cameraIndexCode = this.$route.query.id;
// this.monitoringName = this.$route.query.name;
// this.jurisdiction = this.$route.query.jurisdiction;
this.videoList = JSON.parse(this.$route.query.list)
this.videoList.forEach(item => {
item.radio = '1'
item.value1 = []
item.pattern = 0
item.oWebControl = null
item.initCount = 0
})
console.log(this.jurisdiction)
},
mounted() {
$(window).resize(() => {
this.videoList.forEach(item => {
if (item.oWebControl != null) {
item.oWebControl.JS_Resize(540, 303);
this.setWndCover();
}
})
// if (this.oWebControl != null) {
// this.oWebControl.JS_Resize(1200, 675);
// this.setWndCover();
// }
});
$(window).scroll(() => {
this.videoList.forEach(item => {
if (item.oWebControl != null) {
item.oWebControl.JS_Resize(540, 303);
this.setWndCover();
}
})
// if (this.oWebControl != null) {
// this.oWebControl.JS_Resize(1200, 675);
// this.setWndCover();
// }
});
this.videoList.forEach(item => {
this.videoSwiper(item)
})
},
beforeDestroy() {
this.closeWindow(); //
},
methods: {
//
focusFun(item) {
item.oWebControl.JS_CuttingPartWindow(160, 0, 760, 263);
},
//
blurFun(item) {
item.oWebControl.JS_RepairPartWindow(160, 0, 760, 263);
},
//
radioChange(item) {
let that = this;
console.log(item)
item.oWebControl.JS_HideWnd();
item.oWebControl.JS_DestroyWnd().then(function() { // oWebControl WebControl
if (item.radio == "1") {
item.pattern = 0;
item.value1 = [];
} else {
let startTime = new Date(new Date().toLocaleDateString()).getTime();
let endTime = Date.parse(new Date());
item.value1.push(startTime, endTime)
item.pattern = 1;
}
that.videoSwiper(item)
}, function() {
//
});
},
//
playFun() {
// this.closeWindow();
this.preview()
},
//
closeWindow() {
this.videoList.forEach(item => {
if (item.oWebControl != null) {
item.oWebControl.JS_HideWnd(); //
item.oWebControl.JS_Disconnect().then(
() => {
//
},
() => {
//
}
);
}
})
},
//
setWndCover() {
let iWidth = $(window).width();
let iHeight = $(window).height();
let oDivRect = $("#playWnd")
.get(0)
.getBoundingClientRect();
let iCoverLeft = oDivRect.left < 0 ? Math.abs(oDivRect.left) : 0;
let iCoverTop = oDivRect.top < 0 ? Math.abs(oDivRect.top) : 0;
let iCoverRight =
oDivRect.right - iWidth > 0 ? Math.round(oDivRect.right - iWidth) : 0;
let iCoverBottom =
oDivRect.bottom - iHeight > 0 ?
Math.round(oDivRect.bottom - iHeight) :
0;
iCoverLeft = iCoverLeft > 1200 ? 1200 : iCoverLeft;
iCoverTop = iCoverTop > 675 ? 675 : iCoverTop;
iCoverRight = iCoverRight > 1200 ? 1200 : iCoverRight;
iCoverBottom =
iCoverBottom > 675 ? 675 : iCoverBottom;
this.oWebControl.JS_RepairPartWindow(0, 0, 1200 + 1, 675); // 1
if (iCoverLeft != 0) {
this.oWebControl.JS_CuttingPartWindow(0, 0, iCoverLeft, 675);
}
if (iCoverTop != 0) {
this.oWebControl.JS_CuttingPartWindow(0, 0, 1200 + 1, iCoverTop); //
}
if (iCoverRight != 0) {
this.oWebControl.JS_CuttingPartWindow(
1200 - iCoverRight,
0,
iCoverRight,
675
);
}
if (iCoverBottom != 0) {
this.oWebControl.JS_CuttingPartWindow(
0,
675 - iCoverBottom,
1200,
iCoverBottom
);
}
},
//
videoSwiper(item) {
console.log(111, item);
let that = this;
item.oWebControl = new WebControl({ // WebControl
szPluginContainer: item.id, // DIV
iServicePortStart: 15900, // 使
iServicePortEnd: 15909,
// IE10 使 ActiveX clsid
szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11",
cbConnectSuccess: function() {
console.log(222);
item.initCount = 0;
// WebControl
item.oWebControl.JS_SetWindowControlCallback({
cbIntegrationCallBack: function(oData) { // oData web
console.log(oData,'成功'); //
console.log(333);
}
});
//
item.oWebControl.JS_StartService("window", {
dllPath: "./VideoPluginConnect.dll" //
}).then(function() { //
console.log(444);
//JS_CreateWnd
item.oWebControl.JS_CreateWnd(item.id, 540, 303).then(function() {
console.log(555);
item.oWebControl.JS_RequestInterface({
funcName: "init",
argument: JSON.stringify({
"appkey": "29642784",
"ip": "192.168.10.206",
"port": 443,
"secret": "KsHYZUgpeWRSDM7E6Xhj",
"enableHTTPS": 1,
"language": "zh_CN",
"layout": "1x1",
"playMode": item.pattern,
"reconnectDuration": 5,
"reconnectTimes": 5,
"showSmart": 0,
"showToolbar": 1,
"toolBarButtonIDs": "2048,2049,2050,2304,2306,2305,2307,2308,2309,4096,4608,4097,4099,4098,4609,4100",
"snapDir": "D:/snap",
"videoDir": "D:/video"
})
}).then((oData) => {
console.log(666);
item.oWebControl.JS_Resize(540, 303);
})
that.preview(item)
});
}, function() {
//
});
},
cbConnectError: function() {
// WebControl
item.oWebControl = null;
$('#' + item.id).html("插件未启动,正在尝试启动,请稍候...");
// error wakeup
WebControl.JS_WakeUp("VideoWebPlugin://");
item.initCount++;
if (item.initCount < 3) {
setTimeout(() => {
that.videoSwiper(item);
}, 3000)
} else {
$('#' + item.id).html(
"插件启动失败,请检查插件是否安装! <a style='text-decoration:underline;color: #409EFF;' href='http://10.90.100.203:8080/VideoWebPlugin.exe'>点击下载</a>"
);
}
},
cbConnectClose: function(bNormalClose) {
// bNormalClose = false
// JS_Disconnect bNormalClose = true
item.oWebControl = null;
}
})
},
//
preview(item) {
let that = this;
if (item.radio == "1") {
item.oWebControl.JS_RequestInterface({
"argument": {
"authUuid": "",
"cameraIndexCode": item.id,
"ezvizDirect": 0,
"gpuMode": 0,
"streamMode": 1,
"transMode": 1,
"wndId": 0
},
"funcName": "startPreview"
})
} else {
let startTime = (item.value1[0] / 1000).toString();
let endTime = (item.value1[1] / 1000).toString();
item.oWebControl.JS_RequestInterface({
"argument": {
"authUuid": "",
"cameraIndexCode": item.id,
"endTimeStamp": endTime,
"ezvizDirect": 0,
"gpuMode": 0,
"playTimeStamp": startTime,
"recordLocation": 0,
"startTimeStamp": startTime,
"transMode": 1,
"wndId": 0,
"cascade": 1
},
"funcName": "startPlayback"
})
}
},
}
}
</script>
<style scoped lang="scss">
/deep/ .el-radio {
color: #fff;
}
.box-content{
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
background-color: black;
}
.monitoringBox {
// width: 48%;
height: 50%;
// background-color: black;
color: white;
.title {
padding: 30px 0;
margin: 0;
text-align: center;
font-size: 36px;
font-weight: bold;
}
.right {
margin-left: 80px;
}
.btn {
margin-left: 50px;
}
.monitoring {
width: 540px;
height: 303px;
margin: auto;
margin-top: 10px;
// margin: 50px auto 0;
}
}
</style>

@ -23,7 +23,7 @@
</div>
</div>
</div>
<div id="pie"></div>
<div id="electricity_pie"></div>
</div>
</template>
@ -85,7 +85,7 @@ export default {
},
getData() {
getProductElectric(this.choseDate, this.chooseDateValue).then(res => {
let myChart = this.$echarts.init(document.getElementById('pie'))
let myChart = this.$echarts.init(document.getElementById('electricity_pie'))
// const data = {
// conRate: '0.5',
// proRate: '0.5'
@ -159,7 +159,7 @@ export default {
position: relative;
overflow: hidden;
// margin-right: 1.562rem;
#pie{
#electricity_pie{
width: 100%;
height: 21rem;
margin-left: 10px;

Loading…
Cancel
Save