Commit 48eecdb8 authored by taabe's avatar taabe

增加灭火栓和视频监控资源导入功能

parent 5d9c615c
...@@ -207,9 +207,10 @@ export const FasSerUrl = { ...@@ -207,9 +207,10 @@ export const FasSerUrl = {
contingencyWaterUrl: completePrefix(baseURI, '/api/risksource/contingency/water'), contingencyWaterUrl: completePrefix(baseURI, '/api/risksource/contingency/water'),
configPointEquipmentUrl: completePrefix(baseURI, 'api/firequment/point/batch/bindToEquipment?deviceId={deviceId}&pointIds={pointIds}'), configPointEquipmentUrl: completePrefix(baseURI, 'api/firequment/point/batch/bindToEquipment?deviceId={deviceId}&pointIds={pointIds}'),
getPlanTreeUrl: completePrefix(baseURI, 'api/visual/plan/tree'),//获取预案树url getPlanTreeUrl: completePrefix(baseURI, 'api/visual/plan/tree'),//获取预案树url
importExcelFireEquipmentUrl: completePrefix(baseURI, 'api/excel/import/fireEquipment'),//导入消防设备
importExcelDataUrl: completePrefix(baseURI, 'api/excel/import/data/excel/{type}'),//导入excel数据type=['fireResource','water']
importExcelFireEquipmentPointUrl: completePrefix(baseURI, 'api/excel/import/fireEquipmentPoint'), importExcelFireEquipmentPointUrl: completePrefix(baseURI, 'api/excel/import/fireEquipmentPoint'),
exportExcelFireEquipmentPointUrl: completePrefix(baseURI, 'api/excel/export?exportType=model&modelName=point'), exportExcelFireEquipmentPointUrl: completePrefix(baseURI, 'api/excel/export?exportType={exportType}&modelName={modelName}'),
exportExcelFireEquipmentPointUrl2: completePrefix(baseURI, 'api/excel/export2?exportType={exportType}&modelName={modelName}'),
queryPointFMEAUrl: completePrefix(baseURI, 'api/risksource/queryFmea/point/{pointId}'), queryPointFMEAUrl: completePrefix(baseURI, 'api/risksource/queryFmea/point/{pointId}'),
fileDownloadDocs: completePrefix(baseURI, 'file/download'),//查看文档 fileDownloadDocs: completePrefix(baseURI, 'file/download'),//查看文档
lookHtmlTextNavData: completePrefix(baseURI, 'file/lookHtmlTextNav'), //文档转换为html,带导航 lookHtmlTextNavData: completePrefix(baseURI, 'file/lookHtmlTextNav'), //文档转换为html,带导航
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Select, Button, Input } from 'amos-framework'; import { Store } from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import { Select, Button, Input, Upload, message } from 'amos-framework';
import BizIcon from './../../../../common/icon/BizIcon'; import BizIcon from './../../../../common/icon/BizIcon';
import { FasSerUrl } from './../../../../../consts/urlConsts';
const Option = Select.Option; const Option = Select.Option;
const lsTool = Store.lsTool;
/** /**
* 工具栏 * 工具栏
...@@ -53,6 +58,34 @@ class FireEquipmentToolBar extends Component { ...@@ -53,6 +58,34 @@ class FireEquipmentToolBar extends Component {
render() { render() {
let { name } = this.state; let { name } = this.state;
let { enableEdit } = this.props; let { enableEdit } = this.props;
let url = formatUrl(FasSerUrl.importExcelDataUrl, { type: 'fireResource' });
const uploadProps = {
name: 'file',
accept: '.xls,.xlsx',
action: url,
showUploadList: false ,
headers: {
'Accept': 'application/json;charset=UTF-8',
'X-Access-Token': lsTool.read(SysConsts.token)
},
onChange(info) {
if (info.file.status !== 'uploading') {
console.log(info.file, info.fileList);
}
if (info.file.status === 'done') {
if (info.file.response.result === 'FAILURE') {
message.danger(info.file.response.message);
} else {
message.success(`${info.file.name} 上传成功`);
}
// this.props.reload();
} else if (info.file.status === 'error') {
message.danger(`${info.file.name} 失败.`);
}
}
};
return ( return (
<div className="fire-truck-toolbar"> <div className="fire-truck-toolbar">
<div className="fire-truck-input"> <div className="fire-truck-input">
...@@ -77,7 +110,9 @@ class FireEquipmentToolBar extends Component { ...@@ -77,7 +110,9 @@ class FireEquipmentToolBar extends Component {
enableEdit && enableEdit &&
( (
<div className="fire-truck-buttons"> <div className="fire-truck-buttons">
<Button icon={<BizIcon icon="file-upload-2" />} transparent onClick={this.props.import} /> <Upload {...uploadProps}>
<Button icon={<BizIcon icon="daoru" />} transparent />
</Upload>
<Button icon={<BizIcon icon="tianjia" />} transparent onClick={this.props.add} /> <Button icon={<BizIcon icon="tianjia" />} transparent onClick={this.props.add} />
<Button icon={<BizIcon icon="xiugai" />} transparent onClick={this.props.edit} /> <Button icon={<BizIcon icon="xiugai" />} transparent onClick={this.props.edit} />
<Button icon={<BizIcon icon="shanchu" />} transparent onClick={this.props.delete} /> <Button icon={<BizIcon icon="shanchu" />} transparent onClick={this.props.delete} />
...@@ -90,10 +125,10 @@ class FireEquipmentToolBar extends Component { ...@@ -90,10 +125,10 @@ class FireEquipmentToolBar extends Component {
} }
FireEquipmentToolBar.propTypes = { FireEquipmentToolBar.propTypes = {
import: PropTypes.func,
add: PropTypes.func, add: PropTypes.func,
edit: PropTypes.func, edit: PropTypes.func,
delete: PropTypes.func, delete: PropTypes.func,
reload: PropTypes.func,
getTableListData: PropTypes.func, getTableListData: PropTypes.func,
pageConfig: PropTypes.object, pageConfig: PropTypes.object,
enableEdit: PropTypes.bool enableEdit: PropTypes.bool
......
...@@ -425,11 +425,10 @@ class MonitorPointConfig extends Component { ...@@ -425,11 +425,10 @@ class MonitorPointConfig extends Component {
form.remove(); form.remove();
} }
downLoadExeclFile = () => { downLoadExeclFile = (exportType) => {
const { searchParam } = this.state; const { searchParam } = this.state;
let exportType = 'data';
let modelName = 'point'; let modelName = 'point';
let url = formatUrl(FasSerUrl.exportExcelFireEquipmentPointUrl2, { exportType, modelName }); let url = formatUrl(FasSerUrl.exportExcelFireEquipmentPointUrl, { exportType, modelName });
let queryParamMap = {}; let queryParamMap = {};
Object.assign(queryParamMap, searchParam); Object.assign(queryParamMap, searchParam);
queryParamMap.pageSize = -1; queryParamMap.pageSize = -1;
......
...@@ -60,6 +60,7 @@ class PointToolBar extends Component { ...@@ -60,6 +60,7 @@ class PointToolBar extends Component {
const uploadProps = { const uploadProps = {
name: 'file', name: 'file',
accept: '.xls,.xlsx',
action: FasSerUrl.importExcelFireEquipmentPointUrl, action: FasSerUrl.importExcelFireEquipmentPointUrl,
showUploadList: false , showUploadList: false ,
headers: { headers: {
...@@ -102,9 +103,10 @@ class PointToolBar extends Component { ...@@ -102,9 +103,10 @@ class PointToolBar extends Component {
enableEdit && enableEdit &&
( (
<div className="fire-truck-buttons"> <div className="fire-truck-buttons">
<Button icon={<Icon icon="ccgl-chukucaozuo-13" prefix="amosicon" color="rgb(52, 95, 166)" />} transparent onClick={this.props.downloadTemp} /> <Button title="导出模板" icon={<Icon icon="ccgl-chukucaozuo-13" prefix="amosicon" color="rgb(52, 95, 166)" />} transparent onClick={() => this.props.downloadTemp('model')} />
<Button title="导出数据" icon={<BizIcon icon="daochu" />} transparent onClick={() => this.props.downloadTemp('data')} />
<Upload {...uploadProps}> <Upload {...uploadProps}>
<Button title="导入" icon={<Icon icon="file-upload" prefix="amosicon" color="rgb(52, 95, 166)" />} transparent /> <Button title="导入数据" icon={<BizIcon icon="daoru" />} transparent />
</Upload> </Upload>
<Button icon={<Icon icon="tools-2" prefix="amosicon" color="rgb(52, 95, 166)" />} transparent onClick={this.props.config} /> <Button icon={<Icon icon="tools-2" prefix="amosicon" color="rgb(52, 95, 166)" />} transparent onClick={this.props.config} />
<Button icon={<BizIcon icon="tianjia" />} transparent onClick={this.props.add} /> <Button icon={<BizIcon icon="tianjia" />} transparent onClick={this.props.add} />
......
...@@ -427,7 +427,6 @@ class FireEquipmentView extends Component { ...@@ -427,7 +427,6 @@ class FireEquipmentView extends Component {
outterClosable={!_true_} outterClosable={!_true_}
/> />
<FireEquipmentToolBar <FireEquipmentToolBar
import={() => this.import()}
add={() => this.add()} add={() => this.add()}
delete={() => this.delete()} delete={() => this.delete()}
edit={() => this.edit()} edit={() => this.edit()}
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Button, Input } from 'amos-framework'; import { Store } from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import { Button, Input, Upload, message } from 'amos-framework';
import BizIcon from './../../../../common/icon/BizIcon'; import BizIcon from './../../../../common/icon/BizIcon';
import { FasSerUrl } from './../../../../../consts/urlConsts';
const lsTool = Store.lsTool;
/** /**
* 工具栏 * 工具栏
...@@ -34,6 +40,30 @@ class FireWaterToolBar extends Component { ...@@ -34,6 +40,30 @@ class FireWaterToolBar extends Component {
render() { render() {
let { name } = this.state; let { name } = this.state;
let { enableEdit } = this.props; let { enableEdit } = this.props;
let url = formatUrl(FasSerUrl.importExcelDataUrl, { type: 'water' });
const uploadProps = {
name: 'file',
accept: '.xls,.xlsx',
action: url,
showUploadList: false ,
headers: {
'Accept': 'application/json;charset=UTF-8',
'X-Access-Token': lsTool.read(SysConsts.token)
},
onChange(info) {
if (info.file.status !== 'uploading') {
console.log(info.file, info.fileList);
}
if (info.file.status === 'done') {
message.success(`${info.file.name} 上传成功`);
this.props.reload();
} else if (info.file.status === 'error') {
message.danger(`${info.file.name} 失败.`);
}
}
};
return ( return (
<div className="fire-truck-toolbar"> <div className="fire-truck-toolbar">
<div className="fire-truck-input"> <div className="fire-truck-input">
...@@ -44,6 +74,9 @@ class FireWaterToolBar extends Component { ...@@ -44,6 +74,9 @@ class FireWaterToolBar extends Component {
enableEdit && enableEdit &&
( (
<div className="fire-truck-buttons"> <div className="fire-truck-buttons">
<Upload {...uploadProps}>
<Button icon={<BizIcon icon="daoru" />} transparent />
</Upload>
<Button icon={<BizIcon icon="tianjia" />} transparent onClick={this.props.add} /> <Button icon={<BizIcon icon="tianjia" />} transparent onClick={this.props.add} />
<Button icon={<BizIcon icon="xiugai" />} transparent onClick={this.props.edit} /> <Button icon={<BizIcon icon="xiugai" />} transparent onClick={this.props.edit} />
<Button icon={<BizIcon icon="shanchu" />} transparent onClick={this.props.delete} /> <Button icon={<BizIcon icon="shanchu" />} transparent onClick={this.props.delete} />
...@@ -61,7 +94,8 @@ FireWaterToolBar.propTypes = { ...@@ -61,7 +94,8 @@ FireWaterToolBar.propTypes = {
delete: PropTypes.func, delete: PropTypes.func,
getTableListData: PropTypes.func, getTableListData: PropTypes.func,
pageConfig: PropTypes.object, pageConfig: PropTypes.object,
enableEdit: PropTypes.bool enableEdit: PropTypes.bool,
reload: PropTypes.func
}; };
export default FireWaterToolBar; export default FireWaterToolBar;
...@@ -59,7 +59,7 @@ const fireWaterTableColumns = self => { ...@@ -59,7 +59,7 @@ const fireWaterTableColumns = self => {
title: '配套设备', title: '配套设备',
dataIndex: '', dataIndex: '',
key: '', key: '',
width: '20%', width: '10%',
render: (text, record, index) => { render: (text, record, index) => {
return ( return (
<span> <span>
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Input, AmosAlert, Modal, Button } from 'amos-framework'; import formatUrl from 'amos-processor/lib/utils/urlFormat';
import { Store } from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
import { Input, AmosAlert, Modal, Button, Upload, message } from 'amos-framework';
import AmosGridTable from './../../common/tableComponent/table/AmosGridTable'; import AmosGridTable from './../../common/tableComponent/table/AmosGridTable';
import { getFireEquipmentListAction, deleteFireEquipmentAction, addFireEquipmentAction } from './../../../../services/ledgerService'; import { getFireEquipmentListAction, deleteFireEquipmentAction, addFireEquipmentAction } from './../../../../services/ledgerService';
import MonitorModel from './MonitorModel'; import MonitorModel from './MonitorModel';
import BizIcon from './../../../common/icon/BizIcon'; import BizIcon from './../../../common/icon/BizIcon';
import { FasSerUrl } from './../../../../consts/urlConsts';
const lsTool = Store.lsTool;
const monitorTableColumns = self => { const monitorTableColumns = self => {
return [ return [
...@@ -269,6 +274,30 @@ class Monitor extends Component { ...@@ -269,6 +274,30 @@ class Monitor extends Component {
render() { render() {
let { name, code, dataList, totalCount, selectedRowKeys, enableEditOp } = this.state; let { name, code, dataList, totalCount, selectedRowKeys, enableEditOp } = this.state;
let _true_ = true; let _true_ = true;
let url = formatUrl(FasSerUrl.importExcelDataUrl, { type: 'fireResource' });
const uploadProps = {
name: 'file',
accept: '.xls,.xlsx',
action: url,
showUploadList: false ,
headers: {
'Accept': 'application/json;charset=UTF-8',
'X-Access-Token': lsTool.read(SysConsts.token)
},
onChange(info) {
if (info.file.status !== 'uploading') {
console.log(info.file, info.fileList);
}
if (info.file.status === 'done') {
message.success(`${info.file.name} 上传成功`);
this.reload();
} else if (info.file.status === 'error') {
message.danger(`${info.file.name} 失败.`);
}
}
};
return ( return (
<div className="monitor-video" style={{ background: '#33333', height: '100%' }}> <div className="monitor-video" style={{ background: '#33333', height: '100%' }}>
<div className="important-equipment-toolbar"> <div className="important-equipment-toolbar">
...@@ -280,6 +309,9 @@ class Monitor extends Component { ...@@ -280,6 +309,9 @@ class Monitor extends Component {
<Input value={code} onChange={e => this.onChange('code', e.target.value)} /> */} <Input value={code} onChange={e => this.onChange('code', e.target.value)} /> */}
<span>搜索:</span> <span>搜索:</span>
<Input value={name} onChange={e => this.onChange('name', e.target.value)} placeholder="按编号,名称搜索"/> <Input value={name} onChange={e => this.onChange('name', e.target.value)} placeholder="按编号,名称搜索"/>
<Upload {...uploadProps}>
<Button icon={<BizIcon icon="daoru" />} transparent />
</Upload>
<Button icon={<BizIcon icon="tianjia" />} transparent onClick={() => this.add()} /> <Button icon={<BizIcon icon="tianjia" />} transparent onClick={() => this.add()} />
<Button icon={<BizIcon icon="xiugai" />} transparent onClick={() => this.edit()} /> <Button icon={<BizIcon icon="xiugai" />} transparent onClick={() => this.edit()} />
<Button icon={<BizIcon icon="shanchu" />} transparent onClick={() => this.delete()} /> <Button icon={<BizIcon icon="shanchu" />} transparent onClick={() => this.delete()} />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment