add new api
This commit is contained in:
parent
e7d1ec4e7b
commit
e4792c35b6
|
|
@ -1,19 +1,19 @@
|
|||
{
|
||||
"files": {
|
||||
"main.css": "/static/css/main.9da85e93.chunk.css",
|
||||
"main.js": "/static/js/main.e22cbd89.chunk.js",
|
||||
"main.js.map": "/static/js/main.e22cbd89.chunk.js.map",
|
||||
"main.js": "/static/js/main.0a000a59.chunk.js",
|
||||
"main.js.map": "/static/js/main.0a000a59.chunk.js.map",
|
||||
"runtime-main.js": "/static/js/runtime-main.2cdb2292.js",
|
||||
"runtime-main.js.map": "/static/js/runtime-main.2cdb2292.js.map",
|
||||
"static/css/2.d555f809.chunk.css": "/static/css/2.d555f809.chunk.css",
|
||||
"static/js/2.a8778389.chunk.js": "/static/js/2.a8778389.chunk.js",
|
||||
"static/js/2.a8778389.chunk.js.map": "/static/js/2.a8778389.chunk.js.map",
|
||||
"static/js/2.eb2727ef.chunk.js": "/static/js/2.eb2727ef.chunk.js",
|
||||
"static/js/2.eb2727ef.chunk.js.map": "/static/js/2.eb2727ef.chunk.js.map",
|
||||
"static/js/3.f448a7ff.chunk.js": "/static/js/3.f448a7ff.chunk.js",
|
||||
"static/js/3.f448a7ff.chunk.js.map": "/static/js/3.f448a7ff.chunk.js.map",
|
||||
"index.html": "/index.html",
|
||||
"static/css/2.d555f809.chunk.css.map": "/static/css/2.d555f809.chunk.css.map",
|
||||
"static/css/main.9da85e93.chunk.css.map": "/static/css/main.9da85e93.chunk.css.map",
|
||||
"static/js/2.a8778389.chunk.js.LICENSE.txt": "/static/js/2.a8778389.chunk.js.LICENSE.txt",
|
||||
"static/js/2.eb2727ef.chunk.js.LICENSE.txt": "/static/js/2.eb2727ef.chunk.js.LICENSE.txt",
|
||||
"static/media/airport.9ca79b5c.jpg": "/static/media/airport.9ca79b5c.jpg",
|
||||
"static/media/downArrow.0bea9b11.svg": "/static/media/downArrow.0bea9b11.svg",
|
||||
"static/media/emblemLogo.80dd243c.svg": "/static/media/emblemLogo.80dd243c.svg",
|
||||
|
|
@ -29,10 +29,15 @@
|
|||
"static/media/pricesImg_2.0e19c431.jpg": "/static/media/pricesImg_2.0e19c431.jpg",
|
||||
"static/media/pricesImg_3-large.180082d1.jpg": "/static/media/pricesImg_3-large.180082d1.jpg",
|
||||
"static/media/pricesImg_3.ab9d3003.jpg": "/static/media/pricesImg_3.ab9d3003.jpg",
|
||||
"static/media/print.0f99bc56.svg": "/static/media/print.0f99bc56.svg",
|
||||
"static/media/rightArrow.d964351e.svg": "/static/media/rightArrow.d964351e.svg",
|
||||
"static/media/rightArrowBlue.731d3716.svg": "/static/media/rightArrowBlue.731d3716.svg",
|
||||
"static/media/rightArrow_2.e4e5ebdf.svg": "/static/media/rightArrow_2.e4e5ebdf.svg",
|
||||
"static/media/secondSliderImg.ddd26b68.jpg": "/static/media/secondSliderImg.ddd26b68.jpg",
|
||||
"static/media/serviceRequest_1.ab87fb84.jpg": "/static/media/serviceRequest_1.ab87fb84.jpg",
|
||||
"static/media/serviceRequest_2.403d8119.jpg": "/static/media/serviceRequest_2.403d8119.jpg",
|
||||
"static/media/serviceRequest_3.0070353d.jpg": "/static/media/serviceRequest_3.0070353d.jpg",
|
||||
"static/media/serviceRequest_4.405c4f86.jpg": "/static/media/serviceRequest_4.405c4f86.jpg",
|
||||
"static/media/app.scss": "/static/media/sliderPrev.ca001cbb.svg",
|
||||
"static/media/structureImg.551590c2.jpg": "/static/media/structureImg.551590c2.jpg",
|
||||
"static/media/tdh.25d64290.jpg": "/static/media/tdh.25d64290.jpg",
|
||||
|
|
@ -41,8 +46,8 @@
|
|||
"entrypoints": [
|
||||
"static/js/runtime-main.2cdb2292.js",
|
||||
"static/css/2.d555f809.chunk.css",
|
||||
"static/js/2.a8778389.chunk.js",
|
||||
"static/js/2.eb2727ef.chunk.js",
|
||||
"static/css/main.9da85e93.chunk.css",
|
||||
"static/js/main.e22cbd89.chunk.js"
|
||||
"static/js/main.0a000a59.chunk.js"
|
||||
]
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css2?family=Open+Sans&display=swap" rel="stylesheet"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Etalon</title><link href="/static/css/2.d555f809.chunk.css" rel="stylesheet"><link href="/static/css/main.9da85e93.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,a,i=t[0],c=t[1],l=t[2],s=0,p=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(t);p.length;)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,i=1;i<r.length;i++){var c=r[i];0!==o[c]&&(n=!1)}n&&(u.splice(t--,1),e=a(a.s=r[0]))}return e}var n={},o={1:0},u=[];function a(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"f448a7ff"}[e]+".chunk.js"}(e);var c=new Error;u=function(t){i.onerror=i.onload=null,clearTimeout(l);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,r[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(t)},a.m=e,a.c=n,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(r,n,function(t){return e[t]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="/",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonpreact-etalon"]=this["webpackJsonpreact-etalon"]||[],c=i.push.bind(i);i.push=t,i=i.slice();for(var l=0;l<i.length;l++)t(i[l]);var f=c;r()}([])</script><script src="/static/js/2.a8778389.chunk.js"></script><script src="/static/js/main.e22cbd89.chunk.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css2?family=Open+Sans&display=swap" rel="stylesheet"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Etalon</title><link href="/static/css/2.d555f809.chunk.css" rel="stylesheet"><link href="/static/css/main.9da85e93.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,a,i=t[0],c=t[1],l=t[2],s=0,p=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(t);p.length;)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,i=1;i<r.length;i++){var c=r[i];0!==o[c]&&(n=!1)}n&&(u.splice(t--,1),e=a(a.s=r[0]))}return e}var n={},o={1:0},u=[];function a(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"f448a7ff"}[e]+".chunk.js"}(e);var c=new Error;u=function(t){i.onerror=i.onload=null,clearTimeout(l);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,r[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(t)},a.m=e,a.c=n,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(r,n,function(t){return e[t]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="/",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonpreact-etalon"]=this["webpackJsonpreact-etalon"]||[],c=i.push.bind(i);i.push=t,i=i.slice();for(var l=0;l<i.length;l++)t(i[l]);var f=c;r()}([])</script><script src="/static/js/2.eb2727ef.chunk.js"></script><script src="/static/js/main.0a000a59.chunk.js"></script></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,6 @@
|
|||
<svg id="print" xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25">
|
||||
<path id="Контур_591" data-name="Контур 591" d="M21.338,6.3h-.684V3.662A3.666,3.666,0,0,0,16.992,0H8.008A3.666,3.666,0,0,0,4.346,3.662V6.3H3.662A3.666,3.666,0,0,0,0,9.961V15.82a3.666,3.666,0,0,0,3.662,3.662h.684V22.8a2.2,2.2,0,0,0,2.2,2.2H18.457a2.2,2.2,0,0,0,2.2-2.2v-3.32h.684A3.666,3.666,0,0,0,25,15.82V9.961A3.666,3.666,0,0,0,21.338,6.3ZM5.811,3.662a2.2,2.2,0,0,1,2.2-2.2h8.984a2.2,2.2,0,0,1,2.2,2.2V6.3H5.811ZM19.189,22.8a.733.733,0,0,1-.732.732H6.543a.733.733,0,0,1-.732-.732V15.576H19.189Zm4.346-6.982a2.2,2.2,0,0,1-2.2,2.2h-.684V15.576h.439a.732.732,0,0,0,0-1.465H3.906a.732.732,0,0,0,0,1.465h.439v2.441H3.662a2.2,2.2,0,0,1-2.2-2.2V9.961a2.2,2.2,0,0,1,2.2-2.2H21.338a2.2,2.2,0,0,1,2.2,2.2Z" fill="#fff"/>
|
||||
<path id="Контур_592" data-name="Контур 592" d="M205.639,353h-3.906a.732.732,0,0,0,0,1.465h3.906a.732.732,0,0,0,0-1.465Z" transform="translate(-191.186 -335.764)" fill="#fff"/>
|
||||
<path id="Контур_593" data-name="Контур 593" d="M205.639,417h-3.906a.732.732,0,1,0,0,1.465h3.906a.732.732,0,1,0,0-1.465Z" transform="translate(-191.186 -396.639)" fill="#fff"/>
|
||||
<path id="Контур_594" data-name="Контур 594" d="M68.076,193H65.732a.732.732,0,0,0,0,1.465h2.344a.732.732,0,0,0,0-1.465Z" transform="translate(-61.826 -183.576)" fill="#fff"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
|
|
@ -121,9 +121,6 @@ class MeasuringRegister extends React.Component {
|
|||
{items.map(item=>(
|
||||
|
||||
<tr key={item.id}>
|
||||
<td>
|
||||
<span>{ item.id }</span>
|
||||
</td>
|
||||
<td>
|
||||
<span>{ item.certificate_no }</span>
|
||||
</td>
|
||||
|
|
@ -136,6 +133,9 @@ class MeasuringRegister extends React.Component {
|
|||
<td>
|
||||
<span>{ item.manufacture }</span>
|
||||
</td>
|
||||
<td>
|
||||
<span>{ item.valid }</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
// IMPORT MODULES
|
||||
import React, { useEffect } from "react";
|
||||
import { withTranslation } from 'react-i18next';
|
||||
import parse from 'html-react-parser';
|
||||
import i18n from '../i18n';
|
||||
|
||||
|
||||
|
||||
// IMPORT COMPONENTS
|
||||
import Breadcrumb from "../components/Global/Breadcrumb";
|
||||
|
|
@ -10,172 +14,185 @@ import Loop from "../svg/loupe.svg";
|
|||
import Next from "../svg/next.svg";
|
||||
import Prev from "../svg/prev.svg";
|
||||
|
||||
const Regulations = (props) => {
|
||||
const {t} = props;
|
||||
useEffect(() => {
|
||||
window.scrollTo(0, 0);
|
||||
}, []);
|
||||
return (
|
||||
<section className="regulations">
|
||||
<Breadcrumb
|
||||
path_1={t('Реестр нормативной документации')}
|
||||
currentUrl="/measuring_regulations"
|
||||
/>
|
||||
<div className="container">
|
||||
<div className="regulations-inner">
|
||||
<div className="regulations-head">
|
||||
<div className="regulations-head-left">
|
||||
<form className="search-form">
|
||||
<input type="text" placeholder="Поиск" />
|
||||
<button type="button">
|
||||
<div>
|
||||
<img src={Loop} alt="Loop" />
|
||||
</div>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div className="regulations-head-right">
|
||||
<form className="btn-form">
|
||||
<button type="button" className="button-prev regulations-btn">
|
||||
<div>
|
||||
<img src={Prev} alt="Previous" />
|
||||
</div>
|
||||
</button>
|
||||
<button type="button" className="button-right regulations-btn">
|
||||
<div>
|
||||
<img src={Next} alt="Next" />
|
||||
</div>
|
||||
</button>
|
||||
</form>
|
||||
// const Regulations = (props) => {
|
||||
// const {t} = props;
|
||||
// useEffect(() => {
|
||||
// window.scrollTo(0, 0);
|
||||
// }, []);
|
||||
|
||||
class Regulations extends React.Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
items: [],
|
||||
DataisLoaded: false,
|
||||
error: null
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this._mounted = true
|
||||
this.makeRemoteRequest();
|
||||
}
|
||||
|
||||
|
||||
|
||||
componentWillUnmount() {
|
||||
this._mounted = false
|
||||
}
|
||||
|
||||
makeRemoteRequest = () => {
|
||||
|
||||
const url = `http://217.174.238.204:8888/api/v1/reestr_doc`
|
||||
|
||||
if (this._mounted) {
|
||||
this.setState({ DataisLoaded: true });
|
||||
}
|
||||
setTimeout(() => {
|
||||
|
||||
fetch(url, {
|
||||
method: 'GET',
|
||||
|
||||
})
|
||||
|
||||
.then(res => res.json())
|
||||
.then(res => {
|
||||
if (this._mounted) {
|
||||
this.setState({
|
||||
items: res.data,
|
||||
error: res.message || null,
|
||||
DataisLoaded: true,
|
||||
})
|
||||
// console.log(this.state.items[0]['translations'][1]['attribute_data'])
|
||||
}
|
||||
|
||||
})
|
||||
.catch(error => {
|
||||
if (this._mounted) {
|
||||
this.setState({ error, DataisLoaded: false});
|
||||
}
|
||||
});
|
||||
}, 1500);
|
||||
};
|
||||
|
||||
|
||||
render() {
|
||||
const { t } = this.props;
|
||||
|
||||
var {DataisLoaded, items} = this.state;
|
||||
if(!DataisLoaded){
|
||||
return <div>Loading ....</div>
|
||||
}else{
|
||||
|
||||
return (
|
||||
<section className="regulations">
|
||||
<Breadcrumb
|
||||
path_1={t('Реестр нормативной документации')}
|
||||
currentUrl="/measuring_regulations"
|
||||
/>
|
||||
<div className="container">
|
||||
<div className="regulations-inner">
|
||||
<div className="regulations-head">
|
||||
<div className="regulations-head-left">
|
||||
<form className="search-form">
|
||||
<input type="text" placeholder="Поиск" />
|
||||
<button type="button">
|
||||
<div>
|
||||
<img src={Loop} alt="Loop" />
|
||||
</div>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div className="regulations-head-right">
|
||||
<form className="btn-form">
|
||||
<button type="button" className="button-prev regulations-btn">
|
||||
<div>
|
||||
<img src={Prev} alt="Previous" />
|
||||
</div>
|
||||
</button>
|
||||
<button type="button" className="button-right regulations-btn">
|
||||
<div>
|
||||
<img src={Next} alt="Next" />
|
||||
</div>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div className="regulations-content">
|
||||
<div className="structure-employees">
|
||||
<table className="regulations-table structure-table">
|
||||
<tbody>
|
||||
<tr className="table-head">
|
||||
<th className="n head">Т/ь</th>
|
||||
<th className="number head">
|
||||
Номер нормативной документации
|
||||
</th>
|
||||
<th className="replacedby head">Взамен НТД</th>
|
||||
<th className="desc head">
|
||||
Наименование нормативной документации
|
||||
</th>
|
||||
<th className="date head">Дата введения</th>
|
||||
<th className="limit head">Срок действия</th>
|
||||
<th className="limit head">Примечание</th>
|
||||
</tr>
|
||||
|
||||
|
||||
{items.map(item=>(
|
||||
<tr>
|
||||
<td>{item.id}</td>
|
||||
<td>
|
||||
{ i18n.language === 'en' &&
|
||||
parse(item.document_number)
|
||||
}
|
||||
{ i18n.language === 'ru' &&
|
||||
parse(item.document_number)
|
||||
}
|
||||
{ i18n.language === 'tm' &&
|
||||
parse(JSON.parse(item['translations'][1]['attribute_data']).document_number )
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
{ i18n.language === 'en' &&
|
||||
parse(item.instead)
|
||||
}
|
||||
{ i18n.language === 'ru' &&
|
||||
parse(item.instead)
|
||||
}
|
||||
{ i18n.language === 'tm' &&
|
||||
parse(JSON.parse(item['translations'][1]['attribute_data']).instead )
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
{/* {parse(item.name_of_documentation)} */}
|
||||
{ i18n.language === 'en' &&
|
||||
parse(item.name_of_documentation)
|
||||
}
|
||||
{ i18n.language === 'ru' &&
|
||||
parse(item.name_of_documentation)
|
||||
}
|
||||
{ i18n.language === 'tm' &&
|
||||
parse(JSON.parse(item['translations'][1]['attribute_data']).name_of_documentation )
|
||||
}
|
||||
</td>
|
||||
<td>{item.introduction_date}</td>
|
||||
<td>{item.validity}</td>
|
||||
<td>{item.note}</td>
|
||||
</tr>
|
||||
))}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="regulations-content">
|
||||
<div className="structure-employees">
|
||||
<table className="regulations-table structure-table">
|
||||
<tbody>
|
||||
<tr className="table-head">
|
||||
<th className="n head">Т/ь</th>
|
||||
<th className="number head">
|
||||
Номер нормативной документации
|
||||
</th>
|
||||
<th className="replacedby head">Взамен НТД</th>
|
||||
<th className="desc head">
|
||||
Номер нормативной документации
|
||||
</th>
|
||||
<th className="date head">Дата введения</th>
|
||||
<th className="limit head">Срок действия</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>GR 16162325-87 -2017</td>
|
||||
<td>Взамен РД 52.04.234-89 </td>
|
||||
<td>
|
||||
Методические указания Измеритель высоты нижней границы
|
||||
облаков. Методика поверки
|
||||
</td>
|
||||
<td>01.07.2017</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>GR 16162325-88-2017</td>
|
||||
<td>Введен впервые</td>
|
||||
<td>
|
||||
Барометры ртутные метрологические. Методические указания
|
||||
по проведению поверки
|
||||
</td>
|
||||
<td>01.12.2017</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>GR 16162325-89-2017</td>
|
||||
<td>Взамен МИ-1908-88</td>
|
||||
<td>
|
||||
Психрометры аспирационные Методические указания по
|
||||
проведению поверки
|
||||
</td>
|
||||
<td>01.02.2018</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>GR 16162325-91-2017</td>
|
||||
<td>Введен впервые</td>
|
||||
<td>
|
||||
Барографы метеорлогические анероидные. Методические
|
||||
указания по проведению поверки
|
||||
</td>
|
||||
<td>20.01.2018</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>GR 16162325-90-2017</td>
|
||||
<td>Взамен RD-52.04244-89</td>
|
||||
<td>
|
||||
Анеморумбометр М-63М-1 Методические указания по проведению
|
||||
поверки
|
||||
</td>
|
||||
<td>20.01.2018</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>GR 16162325-93-2017</td>
|
||||
<td>Введен впервые</td>
|
||||
<td>
|
||||
Барометры мембранные метеорологические Методические
|
||||
указания по проведению поверки
|
||||
</td>
|
||||
<td>01.05.2018</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>GR 16162325-94-2017</td>
|
||||
<td>Введен впервые</td>
|
||||
<td>
|
||||
Барометры образцовые переносные типа БОП-1. Методические
|
||||
указания по проведению поверки
|
||||
</td>
|
||||
<td>01.05.2018</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td>TDS-5533-2013</td>
|
||||
<td>ГОСТ 5533-2013</td>
|
||||
<td>Стекло узорчатое. Технические условия.</td>
|
||||
<td>31.05.2018</td>
|
||||
<td>31.05.2023</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td>TDS-32361-2013</td>
|
||||
<td>ГОСТ 32361-2013</td>
|
||||
<td>
|
||||
Стекло и изделия из него. Пороки. Термины и определения
|
||||
</td>
|
||||
<td>31.05.2018</td>
|
||||
<td>31.05.2023</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10</td>
|
||||
<td>TDS-32529-2013</td>
|
||||
<td>ГОСТ 32529-2013</td>
|
||||
<td>Стекло и изделия из него. Правила приемки</td>
|
||||
<td>31.05.2018</td>
|
||||
<td>31.05.2023</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
</section>
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// export default Regulations;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ import i18n from '../i18n';
|
|||
|
||||
// IMPORT COMPONENTS
|
||||
import Breadcrumb from "../components/Global/Breadcrumb";
|
||||
import Service_bottom from "./Service_bottom";
|
||||
|
||||
|
||||
// IMPORT IMAGES
|
||||
// import Print from "../svg/print.svg";
|
||||
|
|
@ -84,7 +86,7 @@ class Service extends React.Component {
|
|||
return <div>Loading ....</div>
|
||||
}else{
|
||||
|
||||
console.log(this.state.items);
|
||||
// console.log(this.state.items);
|
||||
|
||||
// useEffect(() => {
|
||||
// window.scrollTo(0, 0);
|
||||
|
|
@ -177,7 +179,108 @@ class Service extends React.Component {
|
|||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<Service_bottom />
|
||||
|
||||
{/* <div className="service-bottom">
|
||||
<div className="tab-header">
|
||||
<h4 className="tab-header-text" id="tab-header-text">
|
||||
Виды заявок
|
||||
</h4>
|
||||
<div className="tab-header-line"></div>
|
||||
</div>
|
||||
<div className="service-cards-wrapper">
|
||||
<div
|
||||
className="service-card"
|
||||
onClick={() => {
|
||||
window.open(Img1);
|
||||
}}
|
||||
>
|
||||
<div className="service-abs">
|
||||
<div>
|
||||
<img src={Print} alt="Print" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="service-card-top">
|
||||
<a href={Img1} download={Img1}>
|
||||
<div className="service-img-wrapper">
|
||||
<img src={Img1} alt="Request1" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div className="service-card-bottom">
|
||||
<h4 className="service-card-title">Заявка на поверку</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="service-card"
|
||||
onClick={() => {
|
||||
window.open(Img2);
|
||||
}}
|
||||
>
|
||||
<div className="service-abs">
|
||||
<div>
|
||||
<img src={Print} alt="Print" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="service-card-top">
|
||||
<a href={Img2} download={Img2}>
|
||||
<div className="service-img-wrapper">
|
||||
<img src={Img2} alt="Request2" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div className="service-card-bottom">
|
||||
<h4 className="service-card-title">Заявка на поверку</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="service-card"
|
||||
onClick={() => {
|
||||
window.open(Img3);
|
||||
}}
|
||||
>
|
||||
<div className="service-abs">
|
||||
<div>
|
||||
<img src={Print} alt="Print" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="service-card-top">
|
||||
<a href={Img3} download={Img3}>
|
||||
<div className="service-img-wrapper">
|
||||
<img src={Img3} alt="Request3" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div className="service-card-bottom">
|
||||
<h4 className="service-card-title">Заявка на поверку</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="service-card"
|
||||
onClick={() => {
|
||||
window.open(Img4);
|
||||
}}
|
||||
>
|
||||
<div className="service-abs">
|
||||
<div>
|
||||
<img src={Print} alt="Print" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="service-card-top">
|
||||
<a href={Img4} download={Img4}>
|
||||
<div className="service-img-wrapper">
|
||||
<img src={Img4} alt="Request4" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div className="service-card-bottom">
|
||||
<h4 className="service-card-title">Заявка на поверку</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,136 @@
|
|||
// IMPORT MODULES
|
||||
import React from "react";
|
||||
import { withTranslation } from 'react-i18next';
|
||||
import i18n from '../i18n';
|
||||
|
||||
|
||||
// IMPORT COMPONENTS
|
||||
// import Breadcrumb from "../components/Global/Breadcrumb";
|
||||
|
||||
// IMPORT IMAGES
|
||||
import Print from "../svg/print.svg";
|
||||
import Img1 from "../img/serviceRequest_1.jpg";
|
||||
import Img2 from "../img/serviceRequest_2.jpg";
|
||||
import Img3 from "../img/serviceRequest_3.jpg";
|
||||
import Img4 from "../img/serviceRequest_4.jpg";
|
||||
|
||||
// const Service = (props) => {
|
||||
// const {t} = props;
|
||||
class Service_bottom extends React.Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
items: [],
|
||||
DataisLoaded: false,
|
||||
error: null
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this._mounted = true
|
||||
this.makeRemoteRequest();
|
||||
}
|
||||
|
||||
|
||||
|
||||
componentWillUnmount() {
|
||||
this._mounted = false
|
||||
}
|
||||
|
||||
makeRemoteRequest = () => {
|
||||
|
||||
const url = `http://217.174.238.204:8888/api/v1/wid_zayawok`;
|
||||
|
||||
if (this._mounted) {
|
||||
this.setState({ DataisLoaded: true });
|
||||
}
|
||||
setTimeout(() => {
|
||||
|
||||
fetch(url, {
|
||||
method: 'GET',
|
||||
|
||||
})
|
||||
|
||||
.then(res => res.json())
|
||||
.then(res => {
|
||||
if (this._mounted) {
|
||||
this.setState({
|
||||
items: res.data,
|
||||
error: res.message || null,
|
||||
DataisLoaded: true,
|
||||
})
|
||||
// console.log(res.data[0]['data'][0])
|
||||
// console.log(this.state.items)
|
||||
}
|
||||
|
||||
})
|
||||
.catch(error => {
|
||||
if (this._mounted) {
|
||||
this.setState({ error, DataisLoaded: false});
|
||||
}
|
||||
});
|
||||
}, 1500);
|
||||
};
|
||||
|
||||
render() {
|
||||
const { t } = this.props;
|
||||
|
||||
|
||||
var {DataisLoaded, items} = this.state;
|
||||
if(!DataisLoaded){
|
||||
return <div>Loading ....</div>
|
||||
}else{
|
||||
|
||||
console.log(this.state.items);
|
||||
|
||||
return (
|
||||
|
||||
|
||||
<div className="service-bottom">
|
||||
<div className="tab-header">
|
||||
<h4 className="tab-header-text" id="tab-header-text">
|
||||
Виды заявок
|
||||
</h4>
|
||||
<div className="tab-header-line"></div>
|
||||
</div>
|
||||
<div className="service-cards-wrapper">
|
||||
|
||||
{items.map(item=>(
|
||||
<div
|
||||
className="service-card"
|
||||
onClick={() => {
|
||||
window.open(item.image.path);
|
||||
}}
|
||||
>
|
||||
<div className="service-abs">
|
||||
<div>
|
||||
<img src={Print} alt="Print" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="service-card-top">
|
||||
<a href={item.image.path} download>
|
||||
<div className="service-img-wrapper">
|
||||
<img src={item.image.path} alt="Request1" />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div className="service-card-bottom">
|
||||
<h4 className="service-card-title">{item.title}</h4>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// export default Service;
|
||||
export default withTranslation()(Service_bottom);
|
||||
|
||||
Loading…
Reference in New Issue