EMS2.0 交付文档
|
@ -0,0 +1,18 @@
|
|||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
es6: true,
|
||||
node: true
|
||||
},
|
||||
'extends': [
|
||||
'plugin:vue/essential',
|
||||
'eslint:recommended'
|
||||
],
|
||||
rules: {
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
|
||||
},
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint'
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
.DS_Store
|
||||
node_modules
|
||||
/dist
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"esversion": 9,
|
||||
"asi":true,
|
||||
"sub":true,
|
||||
"elision":true,
|
||||
"expr": true,
|
||||
"evil": true
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||
module.exports = {
|
||||
plugins: {
|
||||
// 兼容浏览器,添加前缀
|
||||
'autoprefixer': {
|
||||
overrideBrowserslist: [
|
||||
"Android 4.1",
|
||||
"iOS 7.1",
|
||||
"Chrome > 31",
|
||||
"ff > 31",
|
||||
"ie >= 8"
|
||||
//'last 10 versions', // 所有主流浏览器最近10版本用
|
||||
],
|
||||
// grid: true
|
||||
},
|
||||
"postcss-pxtorem": {
|
||||
rootValue: 32, //结果为:设计稿元素尺寸/75,设计稿宽 750,最终页面会换算成 10rem
|
||||
unitPrecision: 5, // 允许REM单位增长的十进制数
|
||||
propList: ["*"],
|
||||
selectorBlackList: [
|
||||
".el-",
|
||||
".van-",
|
||||
".zx-",
|
||||
// ".ig-",
|
||||
// ".mt-",
|
||||
// ".mint-",
|
||||
// ".range-"
|
||||
], //(数组)要忽略的选择器并保留为px
|
||||
minPixelValue: 2 // (数字)设置要替换的最小像素值 解决 1px 问题
|
||||
}
|
||||
}
|
||||
};
|
|
@ -0,0 +1,661 @@
|
|||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
|
@ -0,0 +1 @@
|
|||
# HJ-IEMS-APP
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
presets: [
|
||||
'@vue/cli-plugin-babel/preset'
|
||||
]
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
'use strict'
|
||||
// 测试环境
|
||||
const merge = require('webpack-merge')
|
||||
const prodEnv = require('./prod.env')
|
||||
|
||||
module.exports = merge(prodEnv, {
|
||||
NODE_ENV: '"development"'
|
||||
})
|
|
@ -0,0 +1,76 @@
|
|||
"use strict";
|
||||
// Template version: 1.3.1
|
||||
// see http://vuejs-templates.github.io/webpack for documentation.
|
||||
|
||||
const path = require("path");
|
||||
|
||||
module.exports = {
|
||||
dev: {
|
||||
// Paths
|
||||
assetsSubDirectory: "static",
|
||||
assetsPublicPath: "/",
|
||||
proxyTable: {},
|
||||
|
||||
// Various Dev Server settings
|
||||
host: "172.18.0.16", // can be overwritten by process.env.HOST
|
||||
port: 8888, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||
autoOpenBrowser: true,
|
||||
disableHostCheck: true, // 解决webpack Invalid Host/Origin header问题
|
||||
errorOverlay: true,
|
||||
notifyOnErrors: true,
|
||||
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
|
||||
|
||||
// Use Eslint Loader?
|
||||
// If true, your code will be linted during bundling and
|
||||
// linting errors and warnings will be shown in the console.
|
||||
useEslint: true,
|
||||
// If true, eslint errors and warnings will also be shown in the error overlay
|
||||
// in the browser.
|
||||
showEslintErrorsInOverlay: false,
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
// https://webpack.js.org/configuration/devtool/#development
|
||||
devtool: "cheap-module-eval-source-map",
|
||||
|
||||
// If you have problems debugging vue-files in devtools,
|
||||
// set this to false - it *may* help
|
||||
// https://vue-loader.vuejs.org/en/options.html#cachebusting
|
||||
cacheBusting: true,
|
||||
|
||||
cssSourceMap: true,
|
||||
},
|
||||
|
||||
build: {
|
||||
// Template for index.html
|
||||
index: path.resolve(__dirname, "../dist/index.html"),
|
||||
|
||||
// Paths
|
||||
assetsRoot: path.resolve(__dirname, "../dist"),
|
||||
assetsSubDirectory: "static",
|
||||
assetsPublicPath: "./",
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
productionSourceMap: false,
|
||||
// https://webpack.js.org/configuration/devtool/#production
|
||||
devtool: "#source-map",
|
||||
|
||||
// Gzip off by default as many popular static hosts such as
|
||||
// Surge or Netlify already gzip all static assets for you.
|
||||
// Before setting to `true`, make sure to:
|
||||
// npm install --save-dev compression-webpack-plugin
|
||||
productionGzip: false,
|
||||
productionGzipExtensions: ["js", "css"],
|
||||
|
||||
// Run the build command with an extra argument to
|
||||
// View the bundle analyzer report after build finishes:
|
||||
// `npm run build --report`
|
||||
// Set to `true` or `false` to always turn it on or off
|
||||
bundleAnalyzerReport: process.env.npm_config_report,
|
||||
},
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
'use strict'
|
||||
// 生产环境
|
||||
module.exports = {
|
||||
NODE_ENV: '"production"'
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"name": "svueshop",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.19.2",
|
||||
"core-js": "^3.15.2",
|
||||
"echarts": "^4.7.0",
|
||||
"echarts-gl": "^1.1.0",
|
||||
"element-ui": "^2.12.0",
|
||||
"jquery": "^3.7.0",
|
||||
"js-cookie": "^2.2.1",
|
||||
"less": "^4.2.0",
|
||||
"less-loader": "^5.0.0",
|
||||
"nprogress": "0.2.0",
|
||||
"postcss-pxtorem": "^4.0.1",
|
||||
"qs": "^6.9.4",
|
||||
"store2": "^2.12.0",
|
||||
"vant": "^2.12.54",
|
||||
"vue": "^2.6.14",
|
||||
"vue-clipboard2": "^0.3.1",
|
||||
"vue-i18n": "^8.28.2",
|
||||
"vue-qr": "^2.3.0",
|
||||
"vue-router": "^3.5.2",
|
||||
"vueg-history": "^1.6.0",
|
||||
"vuex": "^3.6.2",
|
||||
"weixin-js-sdk": "^1.6.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^4.5.13",
|
||||
"@vue/cli-plugin-eslint": "^4.5.13",
|
||||
"@vue/cli-plugin-router": "^4.5.13",
|
||||
"@vue/cli-plugin-vuex": "^4.5.13",
|
||||
"@vue/cli-service": "^4.5.13",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-vue": "^5.2.3",
|
||||
"fibers": "^4.0.3",
|
||||
"sass": "1.32.13",
|
||||
"node-sass": "^4.14.1",
|
||||
"sass-loader": "^8.0.2",
|
||||
"vue-template-compiler": "^2.6.14"
|
||||
},
|
||||
"browserslist": [
|
||||
"defaults",
|
||||
"not ie < 11",
|
||||
"last 2 versions",
|
||||
"> 1%",
|
||||
"iOS 7",
|
||||
"last 3 iOS versions"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 6.0.0",
|
||||
"npm": ">= 3.0.0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
plugins: {
|
||||
autoprefixer: {}
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 253 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 122 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0,viewport-fit=cover">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
|
||||
<meta http-equiv="expires" content="0">
|
||||
<!-- <script type='text/javascript' src='http://www.bing.com/api/maps/mapcontrol?callback=initMap&key=ApPHTYzzTYmqhajRcGVNWS44SEBCBKp2F6ih95VOzvBvN2tIhogM-Di66ZpFb2C9' async defer></script> -->
|
||||
<title>智慧能源柜</title>
|
||||
</head>
|
||||
|
||||
<body onload="backbutton()">
|
||||
<div id="app"></div>
|
||||
<script>
|
||||
// 连续点击返回按键,退出app
|
||||
var backClick = 0;// 退出点击次数,默认为0
|
||||
function backbutton() {
|
||||
var time = new Date(); // 0.5s内再次点击就退出
|
||||
// 监听返回按钮
|
||||
document.addEventListener('backbutton', function (evt) {
|
||||
if (backClick) { // 不为0时
|
||||
navigator.app.exitApp(); // app退出
|
||||
} else {
|
||||
// alert('再按一次退出App'); // 提示信息
|
||||
if (new Date() - time < 500) {// 小于0.5s(500),退出程序
|
||||
backClick++;
|
||||
} else { // 大于0.5s,重置时间戳,
|
||||
time = new Date();
|
||||
history.back(); // 不满足退出操作,,返回上一页
|
||||
}
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,54 @@
|
|||
<template>
|
||||
<div id="app">
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { orientationRotate } from '@/utils/orientation.js'
|
||||
export default {
|
||||
name: 'App',
|
||||
mounted() {
|
||||
window.addEventListener('resize', () => {
|
||||
orientationRotate()
|
||||
}) // 横竖屏问题
|
||||
|
||||
// 关闭系统侧边滑动返回
|
||||
document.addEventListener('plusready', () => {
|
||||
//等待plus ready后再调用5+ API:
|
||||
let first = null
|
||||
// eslint-disable-next-line no-undef
|
||||
const webview = plus.webview.currentWebview()
|
||||
// eslint-disable-next-line no-undef
|
||||
plus.key.addEventListener('backbutton', () => {
|
||||
webview.canBack((e) => {
|
||||
if (e.canBack) {
|
||||
webview.back()
|
||||
} else {
|
||||
//首次按键,提示‘再按一次退出应用’
|
||||
if (!first) {
|
||||
//获取第一次点击的时间戳
|
||||
first = new Date().getTime()
|
||||
//通过H5+ API 调用Android 上的toast 提示框
|
||||
// eslint-disable-next-line no-undef
|
||||
plus.nativeUI.toast('再按一次退出应用', {
|
||||
duration: 'short'
|
||||
})
|
||||
setTimeout(() => {
|
||||
first = null
|
||||
}, 1000)
|
||||
} else {
|
||||
if (new Date().getTime() - first < 1000) {
|
||||
//获取第二次点击的时间戳, 两次之差 小于 1000ms 说明1s点击了两次,
|
||||
// eslint-disable-next-line no-undef
|
||||
plus.runtime.quit() //退出应用
|
||||
// webview.close(); //hide,quit
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,735 @@
|
|||
import axios from 'axios';
|
||||
import localStore from 'store2';
|
||||
import cookieStore from 'js-cookie';
|
||||
import {
|
||||
Toast, Dialog
|
||||
} from 'vant';
|
||||
import config from './config';
|
||||
import utils from './utils';
|
||||
import store from './store';
|
||||
import router from './router';
|
||||
import wx from 'weixin-js-sdk';
|
||||
|
||||
function SupportStorage(){
|
||||
var testKey = 'test',
|
||||
storage = window.localStorage;
|
||||
try {
|
||||
storage.setItem(testKey, 'testValue');
|
||||
storage.removeItem(testKey);
|
||||
return true;
|
||||
} catch (error) {
|
||||
utils.log(error, 'error')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
const supportStorage = SupportStorage()
|
||||
|
||||
const cookie = {
|
||||
has(name) {
|
||||
let val = cookieStore.get(name);
|
||||
return val != undefined && val != null;
|
||||
},
|
||||
get(name) {
|
||||
let val = cookieStore.get(name);
|
||||
if(val && typeof val == 'string' &&
|
||||
(val.indexOf('[') === 0 || val.indexOf('{') === 0)){
|
||||
try{
|
||||
let json = JSON.parse(val)
|
||||
if(json)return json;
|
||||
}catch(err){
|
||||
utils.log(err, 'error')
|
||||
}
|
||||
}
|
||||
return val;
|
||||
},
|
||||
set(name, data) {
|
||||
cookieStore.set(name, data)
|
||||
},
|
||||
remove(name) {
|
||||
cookieStore.remove(name)
|
||||
},
|
||||
clear() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function Api() {
|
||||
|
||||
// 微信环境下使用session,防止切换账号时登录信息不改变
|
||||
if(supportStorage){
|
||||
if(localStore.session && localStore.session.get && config.isWechat){
|
||||
this.store = localStore.session
|
||||
}else{
|
||||
this.store = localStore
|
||||
}
|
||||
}else{
|
||||
this.store = cookie
|
||||
}
|
||||
|
||||
this.token = ''
|
||||
this.refreshToken = ''
|
||||
this.tokenTime = 0
|
||||
this.tokenExpire = 0
|
||||
|
||||
this.store_key = 'token'
|
||||
|
||||
this.isRefreshing = false;
|
||||
this.refreshEnd = [];
|
||||
|
||||
this.is_authing = false
|
||||
this.wechatAuthed = false
|
||||
this.openid = ''
|
||||
this.accessToken = ''
|
||||
|
||||
this.shareSeted = false
|
||||
this.shareData = {}
|
||||
this.blocked = false
|
||||
}
|
||||
|
||||
Api.prototype.hasToken = function () {
|
||||
return this.token != '' && !this.isRefreshing;
|
||||
}
|
||||
Api.prototype.getToken = function () {
|
||||
return this.isRefreshing ? '' : this.token;
|
||||
}
|
||||
|
||||
Api.prototype.hasAccessToken = function () {
|
||||
return this.accessToken != ''
|
||||
}
|
||||
Api.prototype.getAccessToken = function () {
|
||||
return this.accessToken
|
||||
}
|
||||
Api.prototype.checkAccessToken = function (force = false) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!force && this.accessToken) {
|
||||
resolve(this.accessToken);
|
||||
} else {
|
||||
this
|
||||
.get("auth/token?appid=" + config.appid + '&agent=' + store.state.agent)
|
||||
.then(result => {
|
||||
if (result.code == 1) {
|
||||
this.accessToken = result.data;
|
||||
|
||||
resolve(this.accessToken);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 检测登录状态
|
||||
Api.prototype.checkToken = function () {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.token != '') {
|
||||
if (this.isRefreshing || this.tokenExpire + this.tokenTime < new Date().getTime() / 1000 - 10) {
|
||||
utils.log('刷新token')
|
||||
this.refresh().then(() => {
|
||||
resolve(this)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
} else {
|
||||
resolve(this)
|
||||
}
|
||||
} else {
|
||||
reject({
|
||||
code: 0,
|
||||
msg: '未登录'
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 从缓存恢复登录信息
|
||||
Api.prototype.restore = function () {
|
||||
return new Promise((resolve) => {
|
||||
if (this.store.has(this.store_key)) {
|
||||
const info = this.store.get(this.store_key)
|
||||
utils.log(['cache:',info],'debug')
|
||||
if (info.token && info.refresh_token) {
|
||||
utils.log('从缓存恢复token')
|
||||
this.token = info.token
|
||||
this.refreshToken = info.refresh_token
|
||||
this.tokenTime = info.token_time
|
||||
this.tokenExpire = info.token_expire
|
||||
|
||||
this.checkToken().then(() => {
|
||||
store.commit('setIsLogin', true)
|
||||
utils.log('刷新token后授权')
|
||||
this.checkWechat().then(() => {
|
||||
resolve()
|
||||
})
|
||||
}).catch(() => {
|
||||
utils.log('刷新token失败')
|
||||
this.checkWechat(true).then(() => {
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
return;
|
||||
}
|
||||
}
|
||||
utils.log('未登录时授权')
|
||||
this.checkWechat(true).then(() => {
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Api.prototype.checkWechat = function (login = false) {
|
||||
return new Promise((resolve) => {
|
||||
let iserror = this.store.get('wechat_error')
|
||||
if (iserror) {
|
||||
store.commit('setWechatChecked', true)
|
||||
utils.log('授权已出错')
|
||||
resolve()
|
||||
return;
|
||||
}
|
||||
if (this.is_authing) {
|
||||
utils.log('已发起授权')
|
||||
return;
|
||||
}
|
||||
if (!config.wxid) {
|
||||
store.commit('setWechatChecked', true)
|
||||
utils.log('未配置微信号')
|
||||
resolve()
|
||||
return;
|
||||
}
|
||||
if (config.isWechat && (!this.openid || login)) {
|
||||
if (!login || this.wechatAuthed) {
|
||||
let openid = this.store.get('openid');
|
||||
if (openid) {
|
||||
this.openid = openid;
|
||||
utils.log('从缓存中恢复openid')
|
||||
store.commit('setWechatChecked', true)
|
||||
resolve()
|
||||
return;
|
||||
}
|
||||
if(this.wechatAuthed){
|
||||
utils.log('授权信息未正确获取')
|
||||
store.commit('setWechatChecked', true)
|
||||
resolve()
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.is_authing = true;
|
||||
this.blocked = true;
|
||||
let param = utils.parseQuery(location.search)
|
||||
if (param.code) {
|
||||
this.post('auth/wxlogin?code=' + param.code, {
|
||||
wxid: config.wxid,
|
||||
code: param.code,
|
||||
agent: store.state.agent
|
||||
}, true).then(json => {
|
||||
this.blocked = false;
|
||||
if (json.code == 1) {
|
||||
let unbinded = 1
|
||||
if (!this.isLogin && json.data.token) {
|
||||
this.setLogin(json.data)
|
||||
unbinded = 0
|
||||
}
|
||||
this.setOpenid(json.data.openid, unbinded)
|
||||
}
|
||||
store.commit('setWechatChecked', true)
|
||||
resolve()
|
||||
}).catch(err => {
|
||||
this.blocked = false;
|
||||
if (err.data && err.data.openid) {
|
||||
this.setOpenid(err.data.openid)
|
||||
}else{
|
||||
this.wechatAuthError()
|
||||
this.restoreUrl();
|
||||
}
|
||||
store.commit('setWechatChecked', true)
|
||||
resolve()
|
||||
})
|
||||
} else {
|
||||
this.post('auth/wxauth', {
|
||||
wxid: config.wxid
|
||||
}, true).then(json => {
|
||||
utils.log(json, 'debug')
|
||||
if (json.data.url) {
|
||||
if (location.hash && location.hash.length > 1) {
|
||||
this.store.set('backurl', location.hash.substr(1));
|
||||
utils.log('跳转授权前保存url:'+ location.hash.substr(1))
|
||||
}
|
||||
location.href = json.data.url;
|
||||
}
|
||||
}).catch(err => {
|
||||
utils.log(err, 'error')
|
||||
this.wechatAuthError()
|
||||
this.blocked = false;
|
||||
store.commit('setWechatChecked', true)
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
} else {
|
||||
resolve()
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
Api.prototype.wechatAuthError = function() {
|
||||
this.store.session.add('wechat_error', 1);
|
||||
}
|
||||
Api.prototype.setOpenid = function (openid, unbinded=1) {
|
||||
this.openid = openid
|
||||
|
||||
this.store.set('openid', openid);
|
||||
this.store.set('openid_unbind', unbinded);
|
||||
|
||||
this.restoreUrl();
|
||||
}
|
||||
|
||||
Api.prototype.restoreUrl = function(){
|
||||
let backurl = this.store.get('backurl');
|
||||
if (backurl) {
|
||||
utils.log('恢复授权前url:'+ backurl)
|
||||
this.store.remove('backurl')
|
||||
} else {
|
||||
backurl = '/'
|
||||
}
|
||||
|
||||
let locationurl=location.origin+location.pathname+location.search;
|
||||
locationurl = utils.dropParam(locationurl, 'code,state');
|
||||
|
||||
utils.log('restoreUrl:'+locationurl+'#'+backurl);
|
||||
//utils.replaceState(locationurl+'#'+backurl);
|
||||
history.replaceState(null, null, locationurl);
|
||||
history.pushState(null, document.title, locationurl+'#'+backurl);
|
||||
}
|
||||
|
||||
// 保存登录数据到本地
|
||||
Api.prototype.save = function () {
|
||||
if (this.token != '') {
|
||||
utils.log('将token缓存到本地')
|
||||
this.store.set(this.store_key, {
|
||||
token: this.token,
|
||||
token_time: this.tokenTime,
|
||||
token_expire: this.tokenExpire,
|
||||
refresh_token: this.refreshToken
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 设置登录数据
|
||||
Api.prototype.setLogin = function (data) {
|
||||
this.token = data.token;
|
||||
this.tokenTime = Math.floor(new Date().getTime() / 1000)
|
||||
this.refreshToken = data.refresh_token
|
||||
this.tokenExpire = data.token_expire
|
||||
store.commit('setIsLogin', true)
|
||||
this.save()
|
||||
}
|
||||
|
||||
// 登录
|
||||
Api.prototype.login = function (username, password, verify = '') {
|
||||
return this.post('auth/login', {
|
||||
username: username,
|
||||
password: password,
|
||||
verify: verify
|
||||
})
|
||||
}
|
||||
|
||||
// 刷新队列
|
||||
Api.prototype.onRefreshEnd = function () {
|
||||
var func = this.refreshEnd.shift();
|
||||
while (func) {
|
||||
func();
|
||||
func = this.refreshEnd.shift();
|
||||
}
|
||||
}
|
||||
|
||||
// 刷新token
|
||||
Api.prototype.refresh = function () {
|
||||
|
||||
let promise = new Promise((resolve, reject) => {
|
||||
this.refreshEnd.push(() => {
|
||||
utils.log('refresh 回调')
|
||||
if (this.token) {
|
||||
resolve();
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
if (!this.isRefreshing) {
|
||||
this.isRefreshing = true;
|
||||
let currentToken = this.refreshToken
|
||||
utils.log('刷新 token')
|
||||
axios.post('auth/refresh', {
|
||||
refresh_token: currentToken,
|
||||
agent: store.state.agent
|
||||
}).then(res => {
|
||||
let json = res.data
|
||||
this.isRefreshing = false;
|
||||
if (json.code == 1) {
|
||||
utils.log('刷新 token 成功')
|
||||
this.setLogin(json.data)
|
||||
this.onRefreshEnd()
|
||||
} else {
|
||||
if (currentToken == this.refreshToken) {
|
||||
Toast.fail('登录已失效')
|
||||
this.clear()
|
||||
}
|
||||
this.onRefreshEnd()
|
||||
}
|
||||
}).catch(() => {
|
||||
this.isRefreshing = false;
|
||||
this.onRefreshEnd()
|
||||
})
|
||||
}
|
||||
return promise;
|
||||
}
|
||||
|
||||
Api.prototype.clear = function () {
|
||||
this.token = ''
|
||||
this.refreshToken = ''
|
||||
this.tokenExpire = 0
|
||||
this.tokenTime = 0
|
||||
this.wechatAuthed = false
|
||||
store.commit('setIsLogin', false)
|
||||
store.dispatch('updateUserinfo')
|
||||
this.store.remove(this.store_key)
|
||||
}
|
||||
|
||||
// 批量查询接口
|
||||
Api.prototype.batch = function (queries) {
|
||||
return this.post('common/batch', queries);
|
||||
}
|
||||
|
||||
// post
|
||||
Api.prototype.post = function (api, param = null, force = false) {
|
||||
return this.request({
|
||||
method: 'post',
|
||||
url: api,
|
||||
data: param
|
||||
}, force);
|
||||
}
|
||||
|
||||
// get
|
||||
Api.prototype.get = function (api, force = false) {
|
||||
return this.request({
|
||||
url: api
|
||||
}, force);
|
||||
}
|
||||
|
||||
Api.prototype.needLogin = function () {
|
||||
api.clear();
|
||||
if (store.state.isLogin) {
|
||||
store.commit('setIsLogin', false);
|
||||
}
|
||||
this.checkWechat(true).then(() => {
|
||||
if(!store.state.isLogin){
|
||||
router.replace({
|
||||
path: '/login',
|
||||
query: {
|
||||
redirect: router.currentRoute.fullPath
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Api.prototype.request = function (config, force = false) {
|
||||
if (this.blocked && !force) {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject('request has been blocked')
|
||||
})
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.isRefreshing) {
|
||||
//加入刷新队列
|
||||
this.refresh().then(() => {
|
||||
utils.log('重新请求:' + config.url)
|
||||
this.request(config).then(res => {
|
||||
resolve(res)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
} else {
|
||||
axios.request(config).then(res => {
|
||||
let json = res.data
|
||||
if (json.code == 103) { //token过期
|
||||
if (this.getToken() == res.config.headers.token) {
|
||||
utils.log('自动刷新token')
|
||||
this.refresh().then(() => {
|
||||
this.request(config).then(res => {
|
||||
resolve(res)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
return;
|
||||
}
|
||||
|
||||
} else if (json.code == 99) { //需要登录
|
||||
if (!this.hasToken()) {
|
||||
Toast.fail('请登录后操作')
|
||||
this.needLogin()
|
||||
return;
|
||||
}
|
||||
} else if (json.code == 102) { //token失效
|
||||
if (this.getToken() == res.config.headers.token) {
|
||||
this.clear()
|
||||
}
|
||||
} else if (json.code == 113) { //用户被禁用
|
||||
Toast.fail('您的账号已禁用')
|
||||
this.clear();
|
||||
}
|
||||
|
||||
|
||||
if (json.code == 1) {
|
||||
if (!store.state.firstLoaded) {
|
||||
store.commit('setFirstLoaded', true);
|
||||
}
|
||||
resolve(json)
|
||||
} else if ([99, 102, 103, 113].indexOf(json.code) > -1) {
|
||||
this.request(config).then(res => {
|
||||
resolve(res)
|
||||
}).catch(error => {
|
||||
utils.log(['重复请求失败', error],'error')
|
||||
reject(error)
|
||||
})
|
||||
} else {
|
||||
reject(json)
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Api.prototype.wechatReady = function (callback = null) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!config.isWechat || !config.wxid || !this.openid) {
|
||||
reject()
|
||||
return;
|
||||
}
|
||||
let url = location.href.split('#')[0]
|
||||
|
||||
if (config.signPackage && url == config.signPackageUrl) {
|
||||
wx.ready(function(){
|
||||
if (callback) callback(wx)
|
||||
resolve(wx)
|
||||
});
|
||||
} else {
|
||||
utils.log('wechat config url:'+url);
|
||||
config.signPackageUrl = url
|
||||
this.post('auth/wxSign', {
|
||||
wxid: config.wxid,
|
||||
url: url
|
||||
}).then(result => {
|
||||
config.signPackage = result.data
|
||||
wx.config(config.signPackage)
|
||||
wx.ready(function(){
|
||||
if (callback) callback(wx)
|
||||
resolve(wx)
|
||||
});
|
||||
wx.error(function(res){
|
||||
utils.log(res, 'error')
|
||||
reject(res)
|
||||
});
|
||||
}).catch(error => {
|
||||
Toast.fail('wechat配置错误')
|
||||
reject(error)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Api.prototype.wxShareDefault = function (siteinfo) {
|
||||
let shareimg = siteinfo['shareimg']
|
||||
if(!shareimg)shareimg = siteinfo['weblogo']
|
||||
|
||||
this.wxShare({
|
||||
title: siteinfo['webname'],
|
||||
desc: siteinfo['description'],
|
||||
link: location.href.split('#')[0],
|
||||
imgUrl: utils.fixImageUrl(shareimg)
|
||||
}, true)
|
||||
}
|
||||
|
||||
Api.prototype.wxSetShareDefault = function () {
|
||||
this.wxShare(this.shareData)
|
||||
}
|
||||
|
||||
/**
|
||||
* title: '', // 分享标题
|
||||
* desc: '', // 分享描述
|
||||
* link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
|
||||
* imgUrl: ''
|
||||
*/
|
||||
Api.prototype.wxShare = function (options, isDefault = false) {
|
||||
if (isDefault) {
|
||||
this.shareData = {
|
||||
cancel: () => {
|
||||
Toast.fail('分享失败')
|
||||
},
|
||||
...options
|
||||
};
|
||||
|
||||
} else {
|
||||
if (!options.link) {
|
||||
let parts = location.href.split('#')
|
||||
parts[0] = utils.dropParam(parts[0], ['code', 'state', '_authed', 'openid']);
|
||||
options.link = parts[0] + (parts[0].indexOf('?')>0?'&':'?') + 'path=' + encodeURIComponent(router.currentRoute.fullPath)
|
||||
} else {
|
||||
if (options.link.indexOf('#') > -1) {
|
||||
let parts = options.link.split('#')
|
||||
parts[0] = utils.dropParam(parts[0], ['code', 'state', '_authed', 'openid']);
|
||||
options.link = parts[0] + (parts[0].indexOf('?')>0?'&':'?') + 'path=' + encodeURIComponent(parts[1])
|
||||
}
|
||||
}
|
||||
options = {
|
||||
...this.shareData,
|
||||
...options
|
||||
}
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!config.isWechat || !config.wxid) {
|
||||
resolve()
|
||||
return false;
|
||||
}
|
||||
if (isDefault && this.shareSeted) {
|
||||
resolve()
|
||||
return false;
|
||||
}
|
||||
this.shareSeted = true
|
||||
this.wechatReady().then(wx => {
|
||||
let shareOptions = {
|
||||
success: () => {
|
||||
Toast.success('分享成功')
|
||||
},
|
||||
...options
|
||||
}
|
||||
if (wx.onMenuShareTimeline) {
|
||||
wx.onMenuShareTimeline(shareOptions);
|
||||
wx.onMenuShareAppMessage(shareOptions);
|
||||
wx.onMenuShareQQ(shareOptions);
|
||||
}
|
||||
wx.onMenuShareQZone(shareOptions);
|
||||
wx.onMenuShareWeibo(shareOptions);
|
||||
|
||||
wx.updateAppMessageShareData(options);
|
||||
wx.updateTimelineShareData(options);
|
||||
resolve()
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Api.prototype.wxPay = function (order_id, type = '') {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(!config.wxid){
|
||||
reject('微信ID未配置')
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
order_id: (type?type + '_':'') + order_id,
|
||||
payid: config.wxid
|
||||
};
|
||||
if (config.isWechat) {
|
||||
params["trade_type"] = "JSAPI";
|
||||
} else {
|
||||
params["trade_type"] = "MWEB";
|
||||
}
|
||||
this.post("order/wechatpay", params)
|
||||
.then(result => {
|
||||
if (result.code == 1) {
|
||||
if (result.data.mweb_url) {
|
||||
//todo 支付成功判断
|
||||
location.href = result.data.mweb_url;
|
||||
} else if (result.data.code_url) {
|
||||
//todo 二维码支付
|
||||
location.href = result.data.code_url;
|
||||
} else if (result.data.payment) {
|
||||
if (result.data.payment.timeStamp) {
|
||||
result.data.payment.timestamp =
|
||||
result.data.payment.timeStamp;
|
||||
delete result.data.payment.timeStamp;
|
||||
}
|
||||
this.wechatReady(wx => {
|
||||
wx.chooseWXPay({
|
||||
...result.data.payment,
|
||||
success: res => {
|
||||
utils.log(res, 'debug');
|
||||
Toast.success("支付成功");
|
||||
resolve()
|
||||
},
|
||||
fail: res => {
|
||||
Dialog.alert({
|
||||
message: "支付发起失败:" + res.errMsg
|
||||
});
|
||||
reject()
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
Toast.fail(result.msg || "支付失败");
|
||||
reject()
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
Toast.fail(err.msg || "支付失败");
|
||||
reject()
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
const api = new Api();
|
||||
|
||||
axios.defaults.baseURL = config.server;
|
||||
|
||||
axios.interceptors.request.use(
|
||||
request => {
|
||||
request.headers['version'] = config.version+' '+(supportStorage?'store':'cookie');
|
||||
if (request.url.indexOf('auth/') === 0) {
|
||||
if (api.hasAccessToken()) {
|
||||
request.headers['Access-Token'] = api.getAccessToken();
|
||||
}
|
||||
} else {
|
||||
// 判断是否存在token,如果存在的话,则每个http header都加上token
|
||||
if (api.hasToken()) {
|
||||
request.headers.token = api.getToken();
|
||||
}
|
||||
}
|
||||
|
||||
return request;
|
||||
},
|
||||
err => {
|
||||
return Promise.reject(err);
|
||||
});
|
||||
|
||||
// http response 拦截器
|
||||
axios.interceptors.response.use(
|
||||
response => {
|
||||
return response;
|
||||
},
|
||||
error => {
|
||||
utils.log(error, 'error')
|
||||
if (error.response) {
|
||||
return Promise.reject(error.response.data)
|
||||
} else {
|
||||
return Promise.reject({
|
||||
code: 0,
|
||||
msg: error
|
||||
}) // 返回接口返回的错误信息
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
export default api
|
|
@ -0,0 +1,65 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
// 根据告警ID获取告警历史记录/告警工单信息
|
||||
export function getDeptAlarmDetails(data) {
|
||||
return request({
|
||||
url: "trajectory-service/deptAlarm/getTaskByAlarmId",
|
||||
method: "get",
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 清除告警状态
|
||||
export function clearAlarmStatus(alarmId) {
|
||||
return request({
|
||||
url: "alarm-service/alarm/clearAlarmStatus?alarmId=" + alarmId,
|
||||
method: "post",
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 获取告警设备类型列表
|
||||
export function getAlarmDeviceTypeList() {
|
||||
return request({
|
||||
url: "alarm-service/alarm/getAlarmDeviceTypeList",
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 获取告警列表
|
||||
export function getAlarmList(data) {
|
||||
return request({
|
||||
url: "alarm-service/alarm/getAlarmList",
|
||||
method: "get",
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 获取提示告警列表
|
||||
export function getTipAlarmList(data) {
|
||||
return request({
|
||||
url: "alarm-service/alarm/getTipAlarmList",
|
||||
method: "get",
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 更新告警阅读状态
|
||||
export function updateAlarmReadStatus(data) {
|
||||
return request({
|
||||
url: "alarm-service/alarm/updateAlarmReadStatus",
|
||||
method: "post",
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 根据筛选条件查询设备操作信息
|
||||
export function getDeviceLogList(data) {
|
||||
return request({
|
||||
url: 'device-service/deviceLog/getDeviceLogList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
import request from '@/utils/request'
|
||||
// 综合柜详情
|
||||
|
||||
|
||||
// 根据筛选条件查询综合柜的列表信息
|
||||
export function getCabinetBeanById(data) {
|
||||
return request({
|
||||
url: 'device-service/cabinetDetails/getCabinetBeanById',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据cabinetCode查询综合柜的柜内设备类型
|
||||
export function getCabinetTypesByCode(data) {
|
||||
return request({
|
||||
url: 'device-service/cabinetDetails/getCabinetTypesByCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据deviceCode查询综合柜中设备的实时数据
|
||||
export function getDeviceDetailByCode(data) {
|
||||
return request({
|
||||
url: 'snmp-service/param/getDeviceDetailByCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据deviceCode查询综合柜内设备的基本信息
|
||||
export function getInsideDeviceByCode(data) {
|
||||
return request({
|
||||
url: 'device-service/inside/getInsideDeviceByCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据deviceCode查询综合柜中设备的实时数据
|
||||
export function getDeviceParamByCode(data) {
|
||||
return request({
|
||||
url: 'snmp-service/param/getDeviceParamByCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取历史轨迹
|
||||
export function getTaskTrajectoryList(data) {
|
||||
return request({
|
||||
url: "trajectory-service/trajectory/getTaskTrajectoryList",
|
||||
method: "get",
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 根据deviceCode和showFlag更新综合柜中设备的实时数据
|
||||
export function updateDeviceParamByCode(data) {
|
||||
return request({
|
||||
url: 'snmp-service/param/updateDeviceParamByCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 获取萤石Token
|
||||
export function getShiYingToken() {
|
||||
return request({
|
||||
url: 'camera-service/token/getShiYingToken',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 获取萤石播放地址
|
||||
export function getShiYingVideoPath(params) {
|
||||
return request({
|
||||
url: 'camera-service/token/getShiYingVideoPath',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 获取抓拍记录
|
||||
export function getMonitorList(params) {
|
||||
return request({
|
||||
url: 'device-service/monitor/getMonitorList',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
/*
|
||||
系统管理-区域管理 权限操作api
|
||||
*/
|
||||
|
||||
// 查询所有区域树
|
||||
export function getDepartmentList(data) {
|
||||
return request({
|
||||
url: 'user-service/dept/getDeptTreeList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询本级节点ID-直系子级节点
|
||||
export function getDeptSubByDeptId(data) {
|
||||
return request({
|
||||
url: 'user-service/dept/getDeptSubByDeptId',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询区域列表
|
||||
export function getDeptTreeByDeptId(data) {
|
||||
return request({
|
||||
url: 'user-service/dept/getDeptTreeByDeptId',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
// 修改
|
||||
export function editSubmitApi(formData) {
|
||||
const data = qs.stringify(formData)
|
||||
return request({
|
||||
url: 'user-service/dept/updateDept',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增
|
||||
export function addSubmitApi(formData) {
|
||||
const data = qs.stringify(formData)
|
||||
return request({
|
||||
url: 'user-service/dept/saveDept',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除
|
||||
export function delSubmitApi(formData) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/dept/removeDept',
|
||||
method: 'get',
|
||||
|
||||
params: formData
|
||||
})
|
||||
}
|
|
@ -0,0 +1,216 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from 'qs'
|
||||
/*
|
||||
管理台-设备管理 权限操作api
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
综合柜 权限操作api
|
||||
*/
|
||||
|
||||
// 根据筛选条件查询综合柜的列表信息
|
||||
export function getCabinetList(data) {
|
||||
return request({
|
||||
url: 'device-service/cabinet/getCabinetList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 录入综合柜的基本信息
|
||||
export function addCabinet(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/cabinet/addCabinet',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改综合柜的基本信息
|
||||
export function updateCabinet(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/cabinet/updateCabinet',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除综合柜的基本信息和安装信息,及柜内设备
|
||||
export function deleteCabinet(data) {
|
||||
const delData = {
|
||||
cabinetCode: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/cabinet/deleteCabinet',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除综合柜的基本信息和安装信息,及柜内设备
|
||||
export function deleteCabinetList(data) {
|
||||
const delData = {
|
||||
cabinetCodes: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/cabinet/deleteCabinetList',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 根据cabinetCode查询该综合柜的柜内设备(已选择的设备)
|
||||
export function getInsideDeviceByCabinetCode(data) {
|
||||
return request({
|
||||
url: 'device-service/cabinet/getInsideDeviceByCabinetCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据deptId查询未选择的设备
|
||||
export function getUnCheckDeviceByDeptId(data) {
|
||||
return request({
|
||||
url: 'device-service/cabinet/getUnCheckDeviceByDeptId',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 录入综合柜柜内设备的关系
|
||||
export function addCabinetInsideDevice(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/cabinet/addCabinetInsideDevice',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/*
|
||||
动环模块 权限操作api
|
||||
*/
|
||||
|
||||
// 根据筛选条件查询综合柜柜内动环设备的列表信息
|
||||
export function getMoveDeviceList(data) {
|
||||
return request({
|
||||
url: 'device-service/inside/getMoveDeviceList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 录入综合柜柜内动环设备的基本信息
|
||||
export function addInsideMove(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/inside/addInsideMove',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改综合柜的柜内动环设备信息
|
||||
export function updateMoveDevice(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/inside/updateMoveDevice',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/*
|
||||
柜内设备 权限操作api
|
||||
*/
|
||||
|
||||
// 根据筛选条件查询综合柜柜内设备的列表信息
|
||||
export function getInsideDeviceList(data) {
|
||||
return request({
|
||||
url: 'device-service/inside/getInsideDeviceList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 录入综合柜柜内设备的基本信息
|
||||
export function addInsideDevice(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/inside/addInsideDevice',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改综合柜的柜内设备信息
|
||||
export function updateInsideDevice(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/inside/updateInsideDevice',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除动环模块和柜内设备
|
||||
export function deleteInsideCabinet(data) {
|
||||
const delData = {
|
||||
deviceCode: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/inside/deleteCabinet',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除动环模块和柜内设备
|
||||
export function deleteInsideDeviceList(data) {
|
||||
const delData = {
|
||||
deviceCodes: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/inside/deleteInsideDeviceList',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 发送设备写操作命令
|
||||
export function sendDeviceParam(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'snmp-service/param/sendDeviceParam',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据deviceCode查询综合柜中设备的实时遥调/控数据
|
||||
export function getDeviceRemoteParamByCode(data) {
|
||||
return request({
|
||||
url: 'snmp-service/param/getDeviceRemoteParamByCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from 'qs'
|
||||
/*
|
||||
管理台-设备类型 权限操作api
|
||||
*/
|
||||
|
||||
// 根据typeId查询设备类型信息
|
||||
export function getTypeById(data) {
|
||||
return request({
|
||||
url: 'device-service/type/getTypeById',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据筛选项查询设备类型列表
|
||||
export function getTypeList(data) {
|
||||
return request({
|
||||
url: 'device-service/type/getTypeList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 录入设备类型信息
|
||||
export function addType(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/type/addType',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除设备类型信息
|
||||
export function deleteType(data) {
|
||||
const delData = {
|
||||
typeById: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/type/deleteType',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除设备类型信息
|
||||
export function deleteTypeList(data) {
|
||||
const delData = {
|
||||
typeIds: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/type/deleteTypeList',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 修改设备类型信息
|
||||
export function updateType(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/type/updateType',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from 'qs'
|
||||
/*
|
||||
管理台-综合柜设备参数 权限操作api
|
||||
*/
|
||||
|
||||
// 根据typeCode查询综合柜内设备的参数名称信息
|
||||
export function getDictionaryByCode(data) {
|
||||
return request({
|
||||
url: 'device-service/dictionary/getDictionaryByCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询综合柜内设备的类型数据
|
||||
export function getDictionaryType(data) {
|
||||
return request({
|
||||
url: 'device-service/dictionary/getDictionaryType',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
import request from "@/utils/request";
|
||||
|
||||
// export function clearAlarmStatus(alarmId) {
|
||||
// return request({
|
||||
// url: "alarm-service/alarm/clearAlarmStatus?alarmId=" + alarmId,
|
||||
// method: "post",
|
||||
// });
|
||||
// }
|
||||
|
||||
// 获取平台状态统计
|
||||
export function getDeviceStatusInfo() {
|
||||
return request({
|
||||
url: "device-service/home/getDeviceStatusInfo",
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 获取平台故障数量统计
|
||||
export function getDeviceAlarmInfo() {
|
||||
return request({
|
||||
url: "device-service/home/getDeviceAlarmInfo",
|
||||
method: "get",
|
||||
});
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from 'qs'
|
||||
/*
|
||||
管理台-系统日志 权限操作api
|
||||
*/
|
||||
|
||||
// 获取日志列表
|
||||
export function getLogList(data) {
|
||||
return request({
|
||||
url: 'user-service/log/getLogList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增日志
|
||||
export function saveLog(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/log/saveLog',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
|
||||
// 登录
|
||||
export function loginByUsername(username, password) {
|
||||
const data = qs.stringify({
|
||||
userName: username,
|
||||
password,
|
||||
isApp: true,
|
||||
})
|
||||
return request({
|
||||
url: 'user-service/user/getUserLogin',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function logout() {
|
||||
return request({
|
||||
url: 'user-service/user/signOut',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用户的web菜单资源
|
||||
export function getUserInfo(token) {
|
||||
const data = qs.stringify({
|
||||
Authorization: token
|
||||
})
|
||||
return request({
|
||||
url: 'user-service/appPermission/getAppPermission',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 获取APP等参数
|
||||
export function getAppConfig(data) {
|
||||
return request({
|
||||
url: 'device-service/logo/getAppConfig',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 配置APP版本等参数
|
||||
export function setAppConfig(data) {
|
||||
return request({
|
||||
url: 'device-service/logo/setAppConfig',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
/*
|
||||
系统管理-菜单管理 权限操作api
|
||||
*/
|
||||
|
||||
|
||||
// 获得web当前机构的菜单树
|
||||
export function getMenuList() {
|
||||
return request({
|
||||
url: 'user-service/permission/getDeptPermissionTree',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改web菜单
|
||||
export function editSubmitApi(formData) {
|
||||
const data = JSON.stringify(formData)
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/permission/updatePermission',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增web菜单
|
||||
export function addSubmitApi(formData) {
|
||||
const data = JSON.stringify(formData)
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/permission/savePermission',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除web菜单
|
||||
export function delSubmitApi(delData) {
|
||||
const data = {
|
||||
permissionIds: delData
|
||||
}
|
||||
return request({
|
||||
url: 'user-service/permission/removePermission',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获得app当前机构的菜单树
|
||||
export function getAppMenuList() {
|
||||
return request({
|
||||
url: 'user-service/appPermission/getAppDeptPermissionTree',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改app菜单
|
||||
export function editAppSubmitApi(formData) {
|
||||
const data = qs.stringify(formData)
|
||||
return request({
|
||||
url: 'user-service/appPermission/updatePermission',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增app菜单
|
||||
export function addAppSubmitApi(formData) {
|
||||
const data = qs.stringify(formData)
|
||||
return request({
|
||||
url: 'user-service/appPermission/savePermission',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除app菜单
|
||||
export function delAppSubmitApi(delData) {
|
||||
const data = {
|
||||
permissionIds: delData
|
||||
}
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/appPermission/removePermission',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
|
||||
/*
|
||||
系统管理-角色管理 权限操作api
|
||||
*/
|
||||
|
||||
|
||||
// 查询所有角色列表
|
||||
export function getRoleList(data) {
|
||||
return request({
|
||||
url: 'user-service/role/getRoleList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增角色
|
||||
export function addSubmitApi(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/role/saveRole',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改角色
|
||||
export function editSubmitApi(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/role/updateRole',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
export function delSubmitRoleApi(dataForm) {
|
||||
const delData = {
|
||||
Roleids: dataForm
|
||||
}
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/role/removeRole',
|
||||
method: 'get',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 获取设置web角色权限的菜单信息和权限信息
|
||||
export function getRolePermissionTree(data) {
|
||||
const resource = {
|
||||
roleId: data
|
||||
}
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/permission/getWebRolePermissionInfoByRoleId',
|
||||
method: 'get',
|
||||
params: resource
|
||||
})
|
||||
}
|
||||
|
||||
// 设置web角色权限
|
||||
export function setResourceSubmitApi(dataForm) {
|
||||
const data = qs.stringify(dataForm)
|
||||
return request({
|
||||
url: 'user-service/permission/saveWebRolePermission',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取设置app角色权限的菜单信息和权限信息
|
||||
export function getAppRolePermissionTree(data) {
|
||||
const resource = {
|
||||
roleId: data
|
||||
}
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/appPermission/getAppRolePermissionInfoByRoleId',
|
||||
method: 'get',
|
||||
params: resource
|
||||
})
|
||||
}
|
||||
|
||||
// 设置app角色权限
|
||||
export function setAppResourceSubmitApi(dataForm) {
|
||||
const data = qs.stringify(dataForm)
|
||||
return request({
|
||||
url: 'user-service/appPermission/saveAppRolePermission',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from 'qs'
|
||||
/*
|
||||
管理台-站址管理 权限操作api
|
||||
*/
|
||||
|
||||
// 根据siteId查询站址信息
|
||||
export function getSiteById(data) {
|
||||
return request({
|
||||
url: 'device-service/site/getSiteById',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据siteId查询站址列表
|
||||
export function getSiteList(data) {
|
||||
return request({
|
||||
url: 'device-service/site/getSiteList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据siteId查询未选择的综合柜
|
||||
export function getUnChoiceDevice(data) {
|
||||
return request({
|
||||
url: 'device-service/site/getUnChoiceDevice',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据siteId查询已选择的综合柜
|
||||
export function getHasChoiceDevice(data) {
|
||||
return request({
|
||||
url: 'device-service/site/getHasChoiceDevice',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 录入站址信息
|
||||
export function addSite(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/site/addSite',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 录入综合柜站址关系
|
||||
export function addSiteDevice(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/site/addSiteDevice',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除站址信息
|
||||
export function deleteSite(data) {
|
||||
const delData = {
|
||||
siteById: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/site/deleteSite',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除站址信息
|
||||
export function deleteSiteList(data) {
|
||||
const delData = {
|
||||
siteIds: data
|
||||
}
|
||||
return request({
|
||||
url: 'device-service/site/deleteSiteList',
|
||||
method: 'delete',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
// 修改站址信息
|
||||
export function updateSite(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'device-service/site/updateSite',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,145 @@
|
|||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
/*
|
||||
工单、巡检 api
|
||||
*/
|
||||
|
||||
// 新:查询工单、巡检列表
|
||||
export function getTask(data) {
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/getTaskList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新:查询单个工单、巡检
|
||||
export function getTaskInfo(data) {
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/getTask',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取单个任务的设备列表
|
||||
export function getDeviceByTaskId(data) {
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/getDeviceByTaskId',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新:工单新建
|
||||
export function insertOrderTask(dataForm) {
|
||||
const data = JSON.stringify(dataForm)
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/insertOrderTask',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新:工单编辑
|
||||
export function updateOrderTask(dataForm) {
|
||||
const data = JSON.stringify(dataForm)
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/updateTask',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新:巡检新建
|
||||
export function insertInspectionTask(dataForm) {
|
||||
const data = JSON.stringify(dataForm)
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/insertInspectionTask',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新:巡检编辑
|
||||
export function updateInspectionTask(dataForm) {
|
||||
const data = JSON.stringify(dataForm)
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/updateInspectionTask',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新:申请验收任务
|
||||
export function applyAcceptanceTask(data) {
|
||||
return request({
|
||||
url: 'trajectory-service/acceptance/applyAcceptanceTask',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新:发布或中止工单
|
||||
export function releaseTask(data) {
|
||||
return request({
|
||||
url: 'trajectory-service/ttask/releaseTask',
|
||||
method: 'post',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取工单、巡检-历史轨迹
|
||||
export function getTaskTrajectoryList(data) {
|
||||
return request({
|
||||
url: "trajectory-service/trajectory/getTaskTrajectoryList",
|
||||
method: "get",
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 新增工单、巡检-历史轨迹
|
||||
export function insertTrajectory(data) {
|
||||
return request({
|
||||
url: 'trajectory-service/trajectory/insertTrajectory',
|
||||
method: 'post',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除(工单-历史轨迹)音频、视频、图片等文件
|
||||
export function deleteFileByUrl(dataForm) {
|
||||
let data = {
|
||||
host: 'http://http://116.236.50.106:8701/',
|
||||
fileUrl: dataForm.fileUrl
|
||||
}
|
||||
data = qs.stringify(data)
|
||||
return request({
|
||||
url: 'trajectory-service/file/deleteFileByUrl',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据条件查询平台所有的设备列表信息
|
||||
export function getDeviceList(data) {
|
||||
return request({
|
||||
url: 'device-service/cabinet/getDeviceList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除单个任务
|
||||
export function deleteTask(dataForm) {
|
||||
const data = qs.stringify(dataForm);
|
||||
return request({
|
||||
url: "trajectory-service/ttask/deleteTask",
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from 'qs'
|
||||
/*
|
||||
管理台-运营统计 权限操作api
|
||||
*/
|
||||
|
||||
// 获取个人平台任务信息
|
||||
export function getPersonTaskInfo(data) {
|
||||
return request({
|
||||
url: 'trajectory-service/taskStatistics/getPersonTaskInfo',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from 'qs'
|
||||
/*
|
||||
系统管理-菜单管理 权限操作api
|
||||
*/
|
||||
|
||||
|
||||
// 根据thresholdId查询阀值信息
|
||||
export function getThresholdById(data) {
|
||||
return request({
|
||||
url: 'alarm-service/threshold/getThresholdById',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据设备参数查询阀值信息
|
||||
export function getThresholdByDictionary(data) {
|
||||
return request({
|
||||
url: 'alarm-service/threshold/getThresholdByDictionary',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改阀值信息
|
||||
export function updateThreshold(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'alarm-service/threshold/updateThreshold',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
import qs from "qs";
|
||||
|
||||
// 时间同步
|
||||
export function setTimeSync(data) {
|
||||
data = qs.stringify(data);
|
||||
return request({
|
||||
url: "platform-service/deviceInfo/setTimeSync",
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 绑定xml文件
|
||||
export function updateDeviceInfoByXML(data) {
|
||||
data = qs.stringify(data);
|
||||
return request({
|
||||
url: "platform-service/deviceInfo/updateDeviceInfoByXML",
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 上传
|
||||
export function uploadFile(data, url) {
|
||||
var fileData = new FormData();
|
||||
fileData.append("file", data);
|
||||
fileData.append("host", url);
|
||||
return request({
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
url: "trajectory-service/file/uploadFile",
|
||||
method: "post",
|
||||
data: fileData,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除下载地址
|
||||
export function deleteFile(dataForm, url) {
|
||||
let data = {
|
||||
host: url,
|
||||
fileUrl: dataForm,
|
||||
};
|
||||
data = qs.stringify(data);
|
||||
return request({
|
||||
url: "trajectory-service/file/deleteFileByUrl",
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 上传更新设备信息
|
||||
export function uploadDeviceList(data) {
|
||||
var fileData = new FormData();
|
||||
fileData.append("file", data);
|
||||
return request({
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
url: "platform-service/deviceInfo/saveDeviceInfoList",
|
||||
method: "post",
|
||||
data: fileData,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 根据文件模板批量新增设备
|
||||
export function upgradeSaveDeviceList(data, deptId) {
|
||||
var fileData = new FormData();
|
||||
fileData.append("file", data);
|
||||
fileData.append("deptId", deptId);
|
||||
return request({
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
url: "platform-service/deviceInfo/upgradeSaveDeviceList",
|
||||
method: "post",
|
||||
data: fileData,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 上传更新点位属性信息
|
||||
export function uploadPointList(data, deptId) {
|
||||
var fileData = new FormData();
|
||||
fileData.append("file", data);
|
||||
fileData.append("deptId", deptId);
|
||||
return request({
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
url: "platform-service/deviceInfo/updatePointPropertyInfo",
|
||||
method: "post",
|
||||
data: fileData,
|
||||
});
|
||||
}
|
||||
|
||||
// 停止Netty通讯
|
||||
export function closeNetty() {
|
||||
return request({
|
||||
url: "platform-service/deviceInfo/closeNetty",
|
||||
method: "post",
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 查询app版本
|
||||
export function getRedisByPrex(data) {
|
||||
return request({
|
||||
url: 'platform-service/operate/getRedisByPrex',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询app版本
|
||||
export function setRedisByPrex(data) {
|
||||
return request({
|
||||
url: 'platform-service/operate/setRedisByPrex',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
import request from '@/utils/request'
|
||||
import { httpUser } from '@/utils/api'
|
||||
const https = httpUser()
|
||||
|
||||
export function editSubmitApi(data) {
|
||||
// const data = qs.stringify(dataForm)
|
||||
return request({
|
||||
url: https + 'user/updateSysuser',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
import request from '@/utils/request'
|
||||
// import qs from "qs";
|
||||
|
||||
/*
|
||||
系统管理-用户管理 权限操作api
|
||||
*/
|
||||
|
||||
|
||||
// 查询用户列表
|
||||
export function getUserList(data) {
|
||||
return request({
|
||||
url: 'user-service/user/getUserList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据userName查询用户信息
|
||||
export function getUserByUserName(data) {
|
||||
return request({
|
||||
url: 'user-service/user/getUserByUserName',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增
|
||||
export function addSubmitApi(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/user/saveSysuser',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改
|
||||
export function editSubmitApi(data) {
|
||||
return request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
url: 'user-service/user/updateSysuser',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除
|
||||
export function delSubmitUserApi(data) {
|
||||
const delData = {
|
||||
userIds: data
|
||||
}
|
||||
return request({
|
||||
url: 'user-service/user/removeSysuser',
|
||||
method: 'get',
|
||||
params: delData
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 获取用户操作记录
|
||||
export function getOperationRecord(params) {
|
||||
|
||||
return request({
|
||||
url: 'user-service/log/getLogList',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,451 @@
|
|||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 3904805 */
|
||||
src: url('iconfont.woff2?t=1698305604885') format('woff2'),
|
||||
url('iconfont.woff?t=1698305604885') format('woff'),
|
||||
url('iconfont.ttf?t=1698305604885') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-family: "iconfont" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-yuyan1:before {
|
||||
content: "\e886";
|
||||
}
|
||||
|
||||
.icon-yonghuleixing:before {
|
||||
content: "\e887";
|
||||
}
|
||||
|
||||
.icon-quanxian:before {
|
||||
content: "\e888";
|
||||
}
|
||||
|
||||
.icon-nicheng:before {
|
||||
content: "\e889";
|
||||
}
|
||||
|
||||
.icon-banben:before {
|
||||
content: "\e88a";
|
||||
}
|
||||
|
||||
.icon-mima:before {
|
||||
content: "\e88b";
|
||||
}
|
||||
|
||||
.icon-dianhua:before {
|
||||
content: "\e88c";
|
||||
}
|
||||
|
||||
.icon-group:before {
|
||||
content: "\e885";
|
||||
}
|
||||
|
||||
.icon-huijuewangluologo:before {
|
||||
content: "\e884";
|
||||
}
|
||||
|
||||
.icon-lixianshebei:before {
|
||||
content: "\e880";
|
||||
}
|
||||
|
||||
.icon-zaixianshebei:before {
|
||||
content: "\e881";
|
||||
}
|
||||
|
||||
.icon-guzhangshebei:before {
|
||||
content: "\e882";
|
||||
}
|
||||
|
||||
.icon-zongshu:before {
|
||||
content: "\e883";
|
||||
}
|
||||
|
||||
.icon-yingjianshengji:before {
|
||||
content: "\e87c";
|
||||
}
|
||||
|
||||
.icon-dianjia:before {
|
||||
content: "\e87d";
|
||||
}
|
||||
|
||||
.icon-wangguan:before {
|
||||
content: "\e87e";
|
||||
}
|
||||
|
||||
.icon-ruanjianshengji:before {
|
||||
content: "\e87f";
|
||||
}
|
||||
|
||||
.icon-xinbanben:before {
|
||||
content: "\e879";
|
||||
}
|
||||
|
||||
.icon-zidingyi:before {
|
||||
content: "\e87b";
|
||||
}
|
||||
|
||||
.icon-HJNE:before {
|
||||
content: "\e87a";
|
||||
}
|
||||
|
||||
.icon-yangan:before {
|
||||
content: "\e877";
|
||||
}
|
||||
|
||||
.icon-fengjifengshan:before {
|
||||
content: "\e878";
|
||||
}
|
||||
|
||||
.icon-you:before {
|
||||
content: "\e875";
|
||||
}
|
||||
|
||||
.icon-zuo:before {
|
||||
content: "\e876";
|
||||
}
|
||||
|
||||
.icon-wode_touxiang:before {
|
||||
content: "\e874";
|
||||
}
|
||||
|
||||
.icon-ditu:before {
|
||||
content: "\e872";
|
||||
}
|
||||
|
||||
.icon-liebiao:before {
|
||||
content: "\e873";
|
||||
}
|
||||
|
||||
.icon-shouye_renwutongzhi:before {
|
||||
content: "\e871";
|
||||
}
|
||||
|
||||
.icon-gongzuotai_gongdan:before {
|
||||
content: "\e86f";
|
||||
}
|
||||
|
||||
.icon-gongzuotai_xunjian:before {
|
||||
content: "\e870";
|
||||
}
|
||||
|
||||
.icon-wode_new:before {
|
||||
content: "\e86e";
|
||||
}
|
||||
|
||||
.icon-wode_yonghunicheng:before {
|
||||
content: "\e868";
|
||||
}
|
||||
|
||||
.icon-wode_dianhuahaoma:before {
|
||||
content: "\e869";
|
||||
}
|
||||
|
||||
.icon-wode_dangqianbanben:before {
|
||||
content: "\e86a";
|
||||
}
|
||||
|
||||
.icon-wode_yonghuleixing:before {
|
||||
content: "\e86b";
|
||||
}
|
||||
|
||||
.icon-wode_yonghuquanxian:before {
|
||||
content: "\e86c";
|
||||
}
|
||||
|
||||
.icon-wode_yuyan:before {
|
||||
content: "\e86d";
|
||||
}
|
||||
|
||||
.icon-appmima:before {
|
||||
content: "\e866";
|
||||
}
|
||||
|
||||
.icon-appyonghuming:before {
|
||||
content: "\e867";
|
||||
}
|
||||
|
||||
.icon-appgongzuotai:before {
|
||||
content: "\e863";
|
||||
}
|
||||
|
||||
.icon-appwode:before {
|
||||
content: "\e864";
|
||||
}
|
||||
|
||||
.icon-appshouye:before {
|
||||
content: "\e865";
|
||||
}
|
||||
|
||||
.icon-daoxu:before {
|
||||
content: "\e787";
|
||||
}
|
||||
|
||||
.icon-zhengxu:before {
|
||||
content: "\e788";
|
||||
}
|
||||
|
||||
.icon-chakan:before {
|
||||
content: "\e860";
|
||||
}
|
||||
|
||||
.icon-paifa:before {
|
||||
content: "\e861";
|
||||
}
|
||||
|
||||
.icon-zhongzhi:before {
|
||||
content: "\e862";
|
||||
}
|
||||
|
||||
.icon-yichuli:before {
|
||||
content: "\e85e";
|
||||
}
|
||||
|
||||
.icon-daichuli:before {
|
||||
content: "\e85f";
|
||||
}
|
||||
|
||||
.icon-danguiti_guzhang:before {
|
||||
content: "\e858";
|
||||
}
|
||||
|
||||
.icon-danguiti_zhengchang:before {
|
||||
content: "\e859";
|
||||
}
|
||||
|
||||
.icon-danguiti_gaojing:before {
|
||||
content: "\e85a";
|
||||
}
|
||||
|
||||
.icon-duoguiti_guzhang:before {
|
||||
content: "\e85b";
|
||||
}
|
||||
|
||||
.icon-duoguiti_zhengchang:before {
|
||||
content: "\e85c";
|
||||
}
|
||||
|
||||
.icon-duoguiti_gaojing:before {
|
||||
content: "\e85d";
|
||||
}
|
||||
|
||||
.icon-touxiang:before {
|
||||
content: "\e855";
|
||||
}
|
||||
|
||||
.icon-bukejian:before {
|
||||
content: "\e856";
|
||||
}
|
||||
|
||||
.icon-kejian:before {
|
||||
content: "\e857";
|
||||
}
|
||||
|
||||
.icon-wenshiduzhi:before {
|
||||
content: "\e853";
|
||||
}
|
||||
|
||||
.icon-wenshidukedu:before {
|
||||
content: "\e854";
|
||||
}
|
||||
|
||||
.icon-gaojing:before {
|
||||
content: "\e852";
|
||||
}
|
||||
|
||||
.icon-guanlitai_caidanguanli:before {
|
||||
content: "\e848";
|
||||
}
|
||||
|
||||
.icon-guanlitai_pingtairizhi:before {
|
||||
content: "\e849";
|
||||
}
|
||||
|
||||
.icon-guanlitai_zhanzhiguanli:before {
|
||||
content: "\e84a";
|
||||
}
|
||||
|
||||
.icon-guanlitai_jiaoseguanli:before {
|
||||
content: "\e84b";
|
||||
}
|
||||
|
||||
.icon-guanlitai_yuzhiguanli:before {
|
||||
content: "\e84c";
|
||||
}
|
||||
|
||||
.icon-guanlitai_shebeileixing:before {
|
||||
content: "\e84d";
|
||||
}
|
||||
|
||||
.icon-guanlitai_shebeiguanli:before {
|
||||
content: "\e84e";
|
||||
}
|
||||
|
||||
.icon-guanlitai_yonghuguanli:before {
|
||||
content: "\e84f";
|
||||
}
|
||||
|
||||
.icon-guanlitai_quyuguanli:before {
|
||||
content: "\e850";
|
||||
}
|
||||
|
||||
.icon-shanchu:before {
|
||||
content: "\e851";
|
||||
}
|
||||
|
||||
.icon-biaoti:before {
|
||||
content: "\e847";
|
||||
}
|
||||
|
||||
.icon-daohangsuofang:before {
|
||||
content: "\e846";
|
||||
}
|
||||
|
||||
.icon-a--:before {
|
||||
content: "\e844";
|
||||
}
|
||||
|
||||
.icon-a-:before {
|
||||
content: "\e845";
|
||||
}
|
||||
|
||||
.icon-xia:before {
|
||||
content: "\e842";
|
||||
}
|
||||
|
||||
.icon-shang:before {
|
||||
content: "\e843";
|
||||
}
|
||||
|
||||
.icon-danguiti:before {
|
||||
content: "\e832";
|
||||
}
|
||||
|
||||
.icon-duoguiti:before {
|
||||
content: "\e833";
|
||||
}
|
||||
|
||||
.icon-UPS:before {
|
||||
content: "\e834";
|
||||
}
|
||||
|
||||
.icon-dianchi:before {
|
||||
content: "\e835";
|
||||
}
|
||||
|
||||
.icon-guangfu:before {
|
||||
content: "\e836";
|
||||
}
|
||||
|
||||
.icon-fanglei:before {
|
||||
content: "\e837";
|
||||
}
|
||||
|
||||
.icon-shipin:before {
|
||||
content: "\e838";
|
||||
}
|
||||
|
||||
.icon-menjin:before {
|
||||
content: "\e839";
|
||||
}
|
||||
|
||||
.icon-peidian:before {
|
||||
content: "\e83a";
|
||||
}
|
||||
|
||||
.icon-xiaofang:before {
|
||||
content: "\e83b";
|
||||
}
|
||||
|
||||
.icon-wenshidu:before {
|
||||
content: "\e83c";
|
||||
}
|
||||
|
||||
.icon-dianyuan:before {
|
||||
content: "\e83d";
|
||||
}
|
||||
|
||||
.icon-qiti:before {
|
||||
content: "\e83e";
|
||||
}
|
||||
|
||||
.icon-shuijin:before {
|
||||
content: "\e83f";
|
||||
}
|
||||
|
||||
.icon-kongtiao:before {
|
||||
content: "\e840";
|
||||
}
|
||||
|
||||
.icon-lishiyunwei:before {
|
||||
content: "\e841";
|
||||
}
|
||||
|
||||
.icon-logo:before {
|
||||
content: "\e831";
|
||||
}
|
||||
|
||||
.icon-guanlitai:before {
|
||||
content: "\e826";
|
||||
}
|
||||
|
||||
.icon-yuyan:before {
|
||||
content: "\e827";
|
||||
}
|
||||
|
||||
.icon-bianji:before {
|
||||
content: "\e828";
|
||||
}
|
||||
|
||||
.icon-tuichu:before {
|
||||
content: "\e829";
|
||||
}
|
||||
|
||||
.icon-yonghu:before {
|
||||
content: "\e82a";
|
||||
}
|
||||
|
||||
.icon-xiangqian:before {
|
||||
content: "\e82b";
|
||||
}
|
||||
|
||||
.icon-xianghou:before {
|
||||
content: "\e82c";
|
||||
}
|
||||
|
||||
.icon-tongzhi:before {
|
||||
content: "\e82d";
|
||||
}
|
||||
|
||||
.icon-guanbi:before {
|
||||
content: "\e82e";
|
||||
}
|
||||
|
||||
.icon-gengduo:before {
|
||||
content: "\e82f";
|
||||
}
|
||||
|
||||
.icon-sousuo:before {
|
||||
content: "\e830";
|
||||
}
|
||||
|
||||
.icon-shouye:before {
|
||||
content: "\e822";
|
||||
}
|
||||
|
||||
.icon-jiguiliebiao:before {
|
||||
content: "\e823";
|
||||
}
|
||||
|
||||
.icon-GIS:before {
|
||||
content: "\e824";
|
||||
}
|
||||
|
||||
.icon-yunwei:before {
|
||||
content: "\e825";
|
||||
}
|
||||
|
|
@ -0,0 +1,772 @@
|
|||
{
|
||||
"id": "3904805",
|
||||
"name": "综合柜",
|
||||
"font_family": "iconfont",
|
||||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "37608902",
|
||||
"name": "语言",
|
||||
"font_class": "yuyan1",
|
||||
"unicode": "e886",
|
||||
"unicode_decimal": 59526
|
||||
},
|
||||
{
|
||||
"icon_id": "37608901",
|
||||
"name": "用户类型",
|
||||
"font_class": "yonghuleixing",
|
||||
"unicode": "e887",
|
||||
"unicode_decimal": 59527
|
||||
},
|
||||
{
|
||||
"icon_id": "37608900",
|
||||
"name": "权限",
|
||||
"font_class": "quanxian",
|
||||
"unicode": "e888",
|
||||
"unicode_decimal": 59528
|
||||
},
|
||||
{
|
||||
"icon_id": "37608898",
|
||||
"name": "昵称",
|
||||
"font_class": "nicheng",
|
||||
"unicode": "e889",
|
||||
"unicode_decimal": 59529
|
||||
},
|
||||
{
|
||||
"icon_id": "37608899",
|
||||
"name": "版本",
|
||||
"font_class": "banben",
|
||||
"unicode": "e88a",
|
||||
"unicode_decimal": 59530
|
||||
},
|
||||
{
|
||||
"icon_id": "37608897",
|
||||
"name": "密码",
|
||||
"font_class": "mima",
|
||||
"unicode": "e88b",
|
||||
"unicode_decimal": 59531
|
||||
},
|
||||
{
|
||||
"icon_id": "37608896",
|
||||
"name": "电话",
|
||||
"font_class": "dianhua",
|
||||
"unicode": "e88c",
|
||||
"unicode_decimal": 59532
|
||||
},
|
||||
{
|
||||
"icon_id": "37504849",
|
||||
"name": "group",
|
||||
"font_class": "group",
|
||||
"unicode": "e885",
|
||||
"unicode_decimal": 59525
|
||||
},
|
||||
{
|
||||
"icon_id": "37504835",
|
||||
"name": "汇珏网络logo",
|
||||
"font_class": "huijuewangluologo",
|
||||
"unicode": "e884",
|
||||
"unicode_decimal": 59524
|
||||
},
|
||||
{
|
||||
"icon_id": "37316667",
|
||||
"name": "离线设备",
|
||||
"font_class": "lixianshebei",
|
||||
"unicode": "e880",
|
||||
"unicode_decimal": 59520
|
||||
},
|
||||
{
|
||||
"icon_id": "37316666",
|
||||
"name": "在线设备",
|
||||
"font_class": "zaixianshebei",
|
||||
"unicode": "e881",
|
||||
"unicode_decimal": 59521
|
||||
},
|
||||
{
|
||||
"icon_id": "37316665",
|
||||
"name": "故障设备",
|
||||
"font_class": "guzhangshebei",
|
||||
"unicode": "e882",
|
||||
"unicode_decimal": 59522
|
||||
},
|
||||
{
|
||||
"icon_id": "37316664",
|
||||
"name": "总数",
|
||||
"font_class": "zongshu",
|
||||
"unicode": "e883",
|
||||
"unicode_decimal": 59523
|
||||
},
|
||||
{
|
||||
"icon_id": "37193675",
|
||||
"name": "硬件升级",
|
||||
"font_class": "yingjianshengji",
|
||||
"unicode": "e87c",
|
||||
"unicode_decimal": 59516
|
||||
},
|
||||
{
|
||||
"icon_id": "37193673",
|
||||
"name": "电价",
|
||||
"font_class": "dianjia",
|
||||
"unicode": "e87d",
|
||||
"unicode_decimal": 59517
|
||||
},
|
||||
{
|
||||
"icon_id": "37193674",
|
||||
"name": "网关",
|
||||
"font_class": "wangguan",
|
||||
"unicode": "e87e",
|
||||
"unicode_decimal": 59518
|
||||
},
|
||||
{
|
||||
"icon_id": "37193672",
|
||||
"name": "软件升级",
|
||||
"font_class": "ruanjianshengji",
|
||||
"unicode": "e87f",
|
||||
"unicode_decimal": 59519
|
||||
},
|
||||
{
|
||||
"icon_id": "37193748",
|
||||
"name": "新版本",
|
||||
"font_class": "xinbanben",
|
||||
"unicode": "e879",
|
||||
"unicode_decimal": 59513
|
||||
},
|
||||
{
|
||||
"icon_id": "36497519",
|
||||
"name": "自定义",
|
||||
"font_class": "zidingyi",
|
||||
"unicode": "e87b",
|
||||
"unicode_decimal": 59515
|
||||
},
|
||||
{
|
||||
"icon_id": "35963639",
|
||||
"name": "HJNE",
|
||||
"font_class": "HJNE",
|
||||
"unicode": "e87a",
|
||||
"unicode_decimal": 59514
|
||||
},
|
||||
{
|
||||
"icon_id": "35216418",
|
||||
"name": "烟感",
|
||||
"font_class": "yangan",
|
||||
"unicode": "e877",
|
||||
"unicode_decimal": 59511
|
||||
},
|
||||
{
|
||||
"icon_id": "35216419",
|
||||
"name": "风机风扇",
|
||||
"font_class": "fengjifengshan",
|
||||
"unicode": "e878",
|
||||
"unicode_decimal": 59512
|
||||
},
|
||||
{
|
||||
"icon_id": "35211988",
|
||||
"name": "右",
|
||||
"font_class": "you",
|
||||
"unicode": "e875",
|
||||
"unicode_decimal": 59509
|
||||
},
|
||||
{
|
||||
"icon_id": "35211989",
|
||||
"name": "左",
|
||||
"font_class": "zuo",
|
||||
"unicode": "e876",
|
||||
"unicode_decimal": 59510
|
||||
},
|
||||
{
|
||||
"icon_id": "34930510",
|
||||
"name": "我的_头像",
|
||||
"font_class": "wode_touxiang",
|
||||
"unicode": "e874",
|
||||
"unicode_decimal": 59508
|
||||
},
|
||||
{
|
||||
"icon_id": "34929375",
|
||||
"name": "地图",
|
||||
"font_class": "ditu",
|
||||
"unicode": "e872",
|
||||
"unicode_decimal": 59506
|
||||
},
|
||||
{
|
||||
"icon_id": "34929378",
|
||||
"name": "列表",
|
||||
"font_class": "liebiao",
|
||||
"unicode": "e873",
|
||||
"unicode_decimal": 59507
|
||||
},
|
||||
{
|
||||
"icon_id": "34927748",
|
||||
"name": "首页_任务通知",
|
||||
"font_class": "shouye_renwutongzhi",
|
||||
"unicode": "e871",
|
||||
"unicode_decimal": 59505
|
||||
},
|
||||
{
|
||||
"icon_id": "34927685",
|
||||
"name": "工作台_工单",
|
||||
"font_class": "gongzuotai_gongdan",
|
||||
"unicode": "e86f",
|
||||
"unicode_decimal": 59503
|
||||
},
|
||||
{
|
||||
"icon_id": "34927697",
|
||||
"name": "工作台_巡检",
|
||||
"font_class": "gongzuotai_xunjian",
|
||||
"unicode": "e870",
|
||||
"unicode_decimal": 59504
|
||||
},
|
||||
{
|
||||
"icon_id": "34927350",
|
||||
"name": "我的_new",
|
||||
"font_class": "wode_new",
|
||||
"unicode": "e86e",
|
||||
"unicode_decimal": 59502
|
||||
},
|
||||
{
|
||||
"icon_id": "34927277",
|
||||
"name": "我的_用户昵称",
|
||||
"font_class": "wode_yonghunicheng",
|
||||
"unicode": "e868",
|
||||
"unicode_decimal": 59496
|
||||
},
|
||||
{
|
||||
"icon_id": "34927286",
|
||||
"name": "我的_电话号码",
|
||||
"font_class": "wode_dianhuahaoma",
|
||||
"unicode": "e869",
|
||||
"unicode_decimal": 59497
|
||||
},
|
||||
{
|
||||
"icon_id": "34927287",
|
||||
"name": "我的_当前版本",
|
||||
"font_class": "wode_dangqianbanben",
|
||||
"unicode": "e86a",
|
||||
"unicode_decimal": 59498
|
||||
},
|
||||
{
|
||||
"icon_id": "34927288",
|
||||
"name": "我的_用户类型",
|
||||
"font_class": "wode_yonghuleixing",
|
||||
"unicode": "e86b",
|
||||
"unicode_decimal": 59499
|
||||
},
|
||||
{
|
||||
"icon_id": "34927289",
|
||||
"name": "我的_用户权限",
|
||||
"font_class": "wode_yonghuquanxian",
|
||||
"unicode": "e86c",
|
||||
"unicode_decimal": 59500
|
||||
},
|
||||
{
|
||||
"icon_id": "34927290",
|
||||
"name": "我的_语言",
|
||||
"font_class": "wode_yuyan",
|
||||
"unicode": "e86d",
|
||||
"unicode_decimal": 59501
|
||||
},
|
||||
{
|
||||
"icon_id": "34927175",
|
||||
"name": "app密码",
|
||||
"font_class": "appmima",
|
||||
"unicode": "e866",
|
||||
"unicode_decimal": 59494
|
||||
},
|
||||
{
|
||||
"icon_id": "34927176",
|
||||
"name": "app用户名",
|
||||
"font_class": "appyonghuming",
|
||||
"unicode": "e867",
|
||||
"unicode_decimal": 59495
|
||||
},
|
||||
{
|
||||
"icon_id": "34927085",
|
||||
"name": "app工作台",
|
||||
"font_class": "appgongzuotai",
|
||||
"unicode": "e863",
|
||||
"unicode_decimal": 59491
|
||||
},
|
||||
{
|
||||
"icon_id": "34927086",
|
||||
"name": "app我的",
|
||||
"font_class": "appwode",
|
||||
"unicode": "e864",
|
||||
"unicode_decimal": 59492
|
||||
},
|
||||
{
|
||||
"icon_id": "34927087",
|
||||
"name": "app首页",
|
||||
"font_class": "appshouye",
|
||||
"unicode": "e865",
|
||||
"unicode_decimal": 59493
|
||||
},
|
||||
{
|
||||
"icon_id": "26422859",
|
||||
"name": "倒序",
|
||||
"font_class": "daoxu",
|
||||
"unicode": "e787",
|
||||
"unicode_decimal": 59271
|
||||
},
|
||||
{
|
||||
"icon_id": "26422860",
|
||||
"name": "正序",
|
||||
"font_class": "zhengxu",
|
||||
"unicode": "e788",
|
||||
"unicode_decimal": 59272
|
||||
},
|
||||
{
|
||||
"icon_id": "34659079",
|
||||
"name": "查看",
|
||||
"font_class": "chakan",
|
||||
"unicode": "e860",
|
||||
"unicode_decimal": 59488
|
||||
},
|
||||
{
|
||||
"icon_id": "34659080",
|
||||
"name": "派发",
|
||||
"font_class": "paifa",
|
||||
"unicode": "e861",
|
||||
"unicode_decimal": 59489
|
||||
},
|
||||
{
|
||||
"icon_id": "34659108",
|
||||
"name": "终止",
|
||||
"font_class": "zhongzhi",
|
||||
"unicode": "e862",
|
||||
"unicode_decimal": 59490
|
||||
},
|
||||
{
|
||||
"icon_id": "34633183",
|
||||
"name": "已处理",
|
||||
"font_class": "yichuli",
|
||||
"unicode": "e85e",
|
||||
"unicode_decimal": 59486
|
||||
},
|
||||
{
|
||||
"icon_id": "34633194",
|
||||
"name": "待处理",
|
||||
"font_class": "daichuli",
|
||||
"unicode": "e85f",
|
||||
"unicode_decimal": 59487
|
||||
},
|
||||
{
|
||||
"icon_id": "34573227",
|
||||
"name": "单柜体_故障",
|
||||
"font_class": "danguiti_guzhang",
|
||||
"unicode": "e858",
|
||||
"unicode_decimal": 59480
|
||||
},
|
||||
{
|
||||
"icon_id": "34573228",
|
||||
"name": "单柜体_正常",
|
||||
"font_class": "danguiti_zhengchang",
|
||||
"unicode": "e859",
|
||||
"unicode_decimal": 59481
|
||||
},
|
||||
{
|
||||
"icon_id": "34573229",
|
||||
"name": "单柜体_告警",
|
||||
"font_class": "danguiti_gaojing",
|
||||
"unicode": "e85a",
|
||||
"unicode_decimal": 59482
|
||||
},
|
||||
{
|
||||
"icon_id": "34573230",
|
||||
"name": "多柜体_故障",
|
||||
"font_class": "duoguiti_guzhang",
|
||||
"unicode": "e85b",
|
||||
"unicode_decimal": 59483
|
||||
},
|
||||
{
|
||||
"icon_id": "34573231",
|
||||
"name": "多柜体_正常",
|
||||
"font_class": "duoguiti_zhengchang",
|
||||
"unicode": "e85c",
|
||||
"unicode_decimal": 59484
|
||||
},
|
||||
{
|
||||
"icon_id": "34573232",
|
||||
"name": "多柜体_告警",
|
||||
"font_class": "duoguiti_gaojing",
|
||||
"unicode": "e85d",
|
||||
"unicode_decimal": 59485
|
||||
},
|
||||
{
|
||||
"icon_id": "34548393",
|
||||
"name": "头像",
|
||||
"font_class": "touxiang",
|
||||
"unicode": "e855",
|
||||
"unicode_decimal": 59477
|
||||
},
|
||||
{
|
||||
"icon_id": "34548402",
|
||||
"name": "不可见",
|
||||
"font_class": "bukejian",
|
||||
"unicode": "e856",
|
||||
"unicode_decimal": 59478
|
||||
},
|
||||
{
|
||||
"icon_id": "34548403",
|
||||
"name": "可见",
|
||||
"font_class": "kejian",
|
||||
"unicode": "e857",
|
||||
"unicode_decimal": 59479
|
||||
},
|
||||
{
|
||||
"icon_id": "34535845",
|
||||
"name": "温湿度值",
|
||||
"font_class": "wenshiduzhi",
|
||||
"unicode": "e853",
|
||||
"unicode_decimal": 59475
|
||||
},
|
||||
{
|
||||
"icon_id": "34535846",
|
||||
"name": "温湿度刻度",
|
||||
"font_class": "wenshidukedu",
|
||||
"unicode": "e854",
|
||||
"unicode_decimal": 59476
|
||||
},
|
||||
{
|
||||
"icon_id": "34511067",
|
||||
"name": "告警",
|
||||
"font_class": "gaojing",
|
||||
"unicode": "e852",
|
||||
"unicode_decimal": 59474
|
||||
},
|
||||
{
|
||||
"icon_id": "34466456",
|
||||
"name": "管理台_菜单管理",
|
||||
"font_class": "guanlitai_caidanguanli",
|
||||
"unicode": "e848",
|
||||
"unicode_decimal": 59464
|
||||
},
|
||||
{
|
||||
"icon_id": "34466457",
|
||||
"name": "管理台_平台日志",
|
||||
"font_class": "guanlitai_pingtairizhi",
|
||||
"unicode": "e849",
|
||||
"unicode_decimal": 59465
|
||||
},
|
||||
{
|
||||
"icon_id": "34466458",
|
||||
"name": "管理台_站址管理",
|
||||
"font_class": "guanlitai_zhanzhiguanli",
|
||||
"unicode": "e84a",
|
||||
"unicode_decimal": 59466
|
||||
},
|
||||
{
|
||||
"icon_id": "34466459",
|
||||
"name": "管理台_角色管理",
|
||||
"font_class": "guanlitai_jiaoseguanli",
|
||||
"unicode": "e84b",
|
||||
"unicode_decimal": 59467
|
||||
},
|
||||
{
|
||||
"icon_id": "34466460",
|
||||
"name": "管理台_阈值管理",
|
||||
"font_class": "guanlitai_yuzhiguanli",
|
||||
"unicode": "e84c",
|
||||
"unicode_decimal": 59468
|
||||
},
|
||||
{
|
||||
"icon_id": "34466461",
|
||||
"name": "管理台_设备类型",
|
||||
"font_class": "guanlitai_shebeileixing",
|
||||
"unicode": "e84d",
|
||||
"unicode_decimal": 59469
|
||||
},
|
||||
{
|
||||
"icon_id": "34466462",
|
||||
"name": "管理台_设备管理",
|
||||
"font_class": "guanlitai_shebeiguanli",
|
||||
"unicode": "e84e",
|
||||
"unicode_decimal": 59470
|
||||
},
|
||||
{
|
||||
"icon_id": "34466463",
|
||||
"name": "管理台_用户管理",
|
||||
"font_class": "guanlitai_yonghuguanli",
|
||||
"unicode": "e84f",
|
||||
"unicode_decimal": 59471
|
||||
},
|
||||
{
|
||||
"icon_id": "34466464",
|
||||
"name": "管理台_区域管理",
|
||||
"font_class": "guanlitai_quyuguanli",
|
||||
"unicode": "e850",
|
||||
"unicode_decimal": 59472
|
||||
},
|
||||
{
|
||||
"icon_id": "34466469",
|
||||
"name": "删除",
|
||||
"font_class": "shanchu",
|
||||
"unicode": "e851",
|
||||
"unicode_decimal": 59473
|
||||
},
|
||||
{
|
||||
"icon_id": "34433810",
|
||||
"name": "标题",
|
||||
"font_class": "biaoti",
|
||||
"unicode": "e847",
|
||||
"unicode_decimal": 59463
|
||||
},
|
||||
{
|
||||
"icon_id": "34431157",
|
||||
"name": "导航缩放",
|
||||
"font_class": "daohangsuofang",
|
||||
"unicode": "e846",
|
||||
"unicode_decimal": 59462
|
||||
},
|
||||
{
|
||||
"icon_id": "34429470",
|
||||
"name": "-",
|
||||
"font_class": "a--",
|
||||
"unicode": "e844",
|
||||
"unicode_decimal": 59460
|
||||
},
|
||||
{
|
||||
"icon_id": "34429471",
|
||||
"name": "+",
|
||||
"font_class": "a-",
|
||||
"unicode": "e845",
|
||||
"unicode_decimal": 59461
|
||||
},
|
||||
{
|
||||
"icon_id": "34419671",
|
||||
"name": "下",
|
||||
"font_class": "xia",
|
||||
"unicode": "e842",
|
||||
"unicode_decimal": 59458
|
||||
},
|
||||
{
|
||||
"icon_id": "34419672",
|
||||
"name": "上",
|
||||
"font_class": "shang",
|
||||
"unicode": "e843",
|
||||
"unicode_decimal": 59459
|
||||
},
|
||||
{
|
||||
"icon_id": "34418798",
|
||||
"name": "单柜体",
|
||||
"font_class": "danguiti",
|
||||
"unicode": "e832",
|
||||
"unicode_decimal": 59442
|
||||
},
|
||||
{
|
||||
"icon_id": "34418799",
|
||||
"name": "多柜体",
|
||||
"font_class": "duoguiti",
|
||||
"unicode": "e833",
|
||||
"unicode_decimal": 59443
|
||||
},
|
||||
{
|
||||
"icon_id": "34418846",
|
||||
"name": "UPS",
|
||||
"font_class": "UPS",
|
||||
"unicode": "e834",
|
||||
"unicode_decimal": 59444
|
||||
},
|
||||
{
|
||||
"icon_id": "34418847",
|
||||
"name": "电池",
|
||||
"font_class": "dianchi",
|
||||
"unicode": "e835",
|
||||
"unicode_decimal": 59445
|
||||
},
|
||||
{
|
||||
"icon_id": "34418848",
|
||||
"name": "光伏",
|
||||
"font_class": "guangfu",
|
||||
"unicode": "e836",
|
||||
"unicode_decimal": 59446
|
||||
},
|
||||
{
|
||||
"icon_id": "34418849",
|
||||
"name": "防雷",
|
||||
"font_class": "fanglei",
|
||||
"unicode": "e837",
|
||||
"unicode_decimal": 59447
|
||||
},
|
||||
{
|
||||
"icon_id": "34418850",
|
||||
"name": "视频",
|
||||
"font_class": "shipin",
|
||||
"unicode": "e838",
|
||||
"unicode_decimal": 59448
|
||||
},
|
||||
{
|
||||
"icon_id": "34418851",
|
||||
"name": "门禁",
|
||||
"font_class": "menjin",
|
||||
"unicode": "e839",
|
||||
"unicode_decimal": 59449
|
||||
},
|
||||
{
|
||||
"icon_id": "34418852",
|
||||
"name": "配电",
|
||||
"font_class": "peidian",
|
||||
"unicode": "e83a",
|
||||
"unicode_decimal": 59450
|
||||
},
|
||||
{
|
||||
"icon_id": "34418853",
|
||||
"name": "消防",
|
||||
"font_class": "xiaofang",
|
||||
"unicode": "e83b",
|
||||
"unicode_decimal": 59451
|
||||
},
|
||||
{
|
||||
"icon_id": "34418854",
|
||||
"name": "温湿度",
|
||||
"font_class": "wenshidu",
|
||||
"unicode": "e83c",
|
||||
"unicode_decimal": 59452
|
||||
},
|
||||
{
|
||||
"icon_id": "34418855",
|
||||
"name": "电源",
|
||||
"font_class": "dianyuan",
|
||||
"unicode": "e83d",
|
||||
"unicode_decimal": 59453
|
||||
},
|
||||
{
|
||||
"icon_id": "34418856",
|
||||
"name": "气体",
|
||||
"font_class": "qiti",
|
||||
"unicode": "e83e",
|
||||
"unicode_decimal": 59454
|
||||
},
|
||||
{
|
||||
"icon_id": "34418857",
|
||||
"name": "水浸",
|
||||
"font_class": "shuijin",
|
||||
"unicode": "e83f",
|
||||
"unicode_decimal": 59455
|
||||
},
|
||||
{
|
||||
"icon_id": "34418858",
|
||||
"name": "空调",
|
||||
"font_class": "kongtiao",
|
||||
"unicode": "e840",
|
||||
"unicode_decimal": 59456
|
||||
},
|
||||
{
|
||||
"icon_id": "34418905",
|
||||
"name": "历史运维",
|
||||
"font_class": "lishiyunwei",
|
||||
"unicode": "e841",
|
||||
"unicode_decimal": 59457
|
||||
},
|
||||
{
|
||||
"icon_id": "34417686",
|
||||
"name": "logo",
|
||||
"font_class": "logo",
|
||||
"unicode": "e831",
|
||||
"unicode_decimal": 59441
|
||||
},
|
||||
{
|
||||
"icon_id": "34416876",
|
||||
"name": "管理台",
|
||||
"font_class": "guanlitai",
|
||||
"unicode": "e826",
|
||||
"unicode_decimal": 59430
|
||||
},
|
||||
{
|
||||
"icon_id": "34416877",
|
||||
"name": "语言",
|
||||
"font_class": "yuyan",
|
||||
"unicode": "e827",
|
||||
"unicode_decimal": 59431
|
||||
},
|
||||
{
|
||||
"icon_id": "34416882",
|
||||
"name": "编辑",
|
||||
"font_class": "bianji",
|
||||
"unicode": "e828",
|
||||
"unicode_decimal": 59432
|
||||
},
|
||||
{
|
||||
"icon_id": "34416883",
|
||||
"name": "退出",
|
||||
"font_class": "tuichu",
|
||||
"unicode": "e829",
|
||||
"unicode_decimal": 59433
|
||||
},
|
||||
{
|
||||
"icon_id": "34416884",
|
||||
"name": "用户",
|
||||
"font_class": "yonghu",
|
||||
"unicode": "e82a",
|
||||
"unicode_decimal": 59434
|
||||
},
|
||||
{
|
||||
"icon_id": "34416910",
|
||||
"name": "向前",
|
||||
"font_class": "xiangqian",
|
||||
"unicode": "e82b",
|
||||
"unicode_decimal": 59435
|
||||
},
|
||||
{
|
||||
"icon_id": "34416911",
|
||||
"name": "向后",
|
||||
"font_class": "xianghou",
|
||||
"unicode": "e82c",
|
||||
"unicode_decimal": 59436
|
||||
},
|
||||
{
|
||||
"icon_id": "34416912",
|
||||
"name": "通知",
|
||||
"font_class": "tongzhi",
|
||||
"unicode": "e82d",
|
||||
"unicode_decimal": 59437
|
||||
},
|
||||
{
|
||||
"icon_id": "34416919",
|
||||
"name": "关闭",
|
||||
"font_class": "guanbi",
|
||||
"unicode": "e82e",
|
||||
"unicode_decimal": 59438
|
||||
},
|
||||
{
|
||||
"icon_id": "34416920",
|
||||
"name": "更多",
|
||||
"font_class": "gengduo",
|
||||
"unicode": "e82f",
|
||||
"unicode_decimal": 59439
|
||||
},
|
||||
{
|
||||
"icon_id": "34416921",
|
||||
"name": "搜索",
|
||||
"font_class": "sousuo",
|
||||
"unicode": "e830",
|
||||
"unicode_decimal": 59440
|
||||
},
|
||||
{
|
||||
"icon_id": "34416051",
|
||||
"name": "首页",
|
||||
"font_class": "shouye",
|
||||
"unicode": "e822",
|
||||
"unicode_decimal": 59426
|
||||
},
|
||||
{
|
||||
"icon_id": "34416096",
|
||||
"name": "机柜列表",
|
||||
"font_class": "jiguiliebiao",
|
||||
"unicode": "e823",
|
||||
"unicode_decimal": 59427
|
||||
},
|
||||
{
|
||||
"icon_id": "34416097",
|
||||
"name": "GIS",
|
||||
"font_class": "GIS",
|
||||
"unicode": "e824",
|
||||
"unicode_decimal": 59428
|
||||
},
|
||||
{
|
||||
"icon_id": "34416098",
|
||||
"name": "运维",
|
||||
"font_class": "yunwei",
|
||||
"unicode": "e825",
|
||||
"unicode_decimal": 59429
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve" width="40" height="40">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#040000;}
|
||||
.st1{fill:url(#SVGID_1_);}
|
||||
.st2{opacity:0.3;fill:#FFFFFF;}
|
||||
.st3{fill:url(#SVGID_2_);}
|
||||
.st4{fill:#939498;}
|
||||
.st5{display:none;opacity:0.3;fill:#FFFFFF;}
|
||||
.st6{fill:#DD4D11;}
|
||||
</style>
|
||||
<g id="单柜体">
|
||||
<g>
|
||||
<ellipse class="st0" cx="26.2" cy="49.2" rx="7.3" ry="2.8"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.0795" y1="0.9059" x2="26.0795" y2="46.4513">
|
||||
<stop offset="0" style="stop-color:#F08856"/>
|
||||
<stop offset="0.2108" style="stop-color:#D24D17"/>
|
||||
<stop offset="0.8" style="stop-color:#D24D17"/>
|
||||
<stop offset="1" style="stop-color:#A53D24"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M41.5,15.4C41.5,6.9,34.6,0,26.1,0c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7
|
||||
c0,1.1,0.9,1.9,1.9,1.9c1.1,0,1.9-0.9,1.9-1.9l2-17.7C36.6,28.5,41.5,22.5,41.5,15.4z"/>
|
||||
<path class="st2" d="M25.4,48l-2-17.7C16.8,28.5,12,22.5,12,15.4c0-8.3,6.5-15,14.7-15.4c-0.2,0-0.5,0-0.7,0
|
||||
c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9L24,48c0,1.1,0.9,1.9,1.9,1.9c0.3,0,0.5-0.1,0.7-0.1
|
||||
C25.9,49.5,25.4,48.8,25.4,48z"/>
|
||||
<path class="st0" d="M26.1,0.1c-0.2,0-0.5,0-0.7,0C33.5,0.4,40,7,40,15.2c0,7.1-4.9,13.1-11.4,14.9l-2,17.7
|
||||
c0,0.8-0.5,1.5-1.2,1.8c0.2,0.1,0.5,0.1,0.7,0.1c1.1,0,1.9-0.9,1.9-1.9l2-17.7c6.6-1.8,11.4-7.7,11.4-14.9
|
||||
C41.5,6.7,34.6,0.1,26.1,0.1z"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.0792" y1="5.4233" x2="26.0792" y2="23.9909">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<circle class="st3" cx="26.1" cy="14.9" r="11.1"/>
|
||||
<path class="st4" d="M26.1,26.2c-6.3,0-11.3-5.1-11.3-11.3c0-6.3,5.1-11.3,11.3-11.3c6.3,0,11.3,5.1,11.3,11.3
|
||||
C37.4,21.2,32.3,26.2,26.1,26.2z M26.1,4.1c-5.9,0-10.8,4.8-10.8,10.8c0,5.9,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
|
||||
C36.9,9,32,4.1,26.1,4.1z"/>
|
||||
</g>
|
||||
<path class="st5" d="M39.9,9.8c-2.2-5.5-7.6-9.4-13.8-9.4c-7.7,0-14,5.8-14.8,13.3C15.4,14.9,26.3,16.7,39.9,9.8z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st6" d="M21.7,8.9v12.1l2.6,2.5V6.9L21.7,8.9z M22.2,20.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S22.3,20,22.2,20.1L22.2,20.1z M22.2,19.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,19.3,22.3,19.4,22.2,19.4L22.2,19.4z M22.2,18.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,18.6,22.3,18.7,22.2,18.7L22.2,18.7z M22.2,18c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.9,22.3,18,22.2,18L22.2,18z M22.2,17.3c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.2,22.3,17.3,22.2,17.3L22.2,17.3z M22.2,16.7c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.2-0.2s0.1,0.1,0.1,0.2
|
||||
C22.3,16.6,22.3,16.6,22.2,16.7L22.2,16.7z M22.2,16c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.9,22.3,16,22.2,16L22.2,16z M22.2,15.3c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.2,22.3,15.3,22.2,15.3L22.2,15.3z M22.2,14.6c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,14.5,22.3,14.6,22.2,14.6L22.2,14.6z M22.2,13.9c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.8,22.3,13.9,22.2,13.9L22.2,13.9z M22.2,13.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.2,22.3,13.2,22.2,13.3L22.2,13.3z M22.2,12.6c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,12.5,22.3,12.6,22.2,12.6L22.2,12.6z M22.2,11.9c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.8,22.3,11.9,22.2,11.9L22.2,11.9z M22.2,11.2c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.1,22.3,11.2,22.2,11.2L22.2,11.2z M22.2,10.5c-0.1,0-0.1,0-0.2-0.1v-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,10.4,22.3,10.5,22.2,10.5L22.2,10.5z M22.6,20.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,20.3,22.7,20.4,22.6,20.4L22.6,20.4z M22.6,19.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,19.6,22.7,19.7,22.6,19.7L22.6,19.7z M22.6,19.1c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.7,19,22.7,19.1,22.6,19.1L22.6,19.1z M22.6,18.4c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,18.3,22.7,18.4,22.6,18.4L22.6,18.4z M22.6,17.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,17.6,22.7,17.6,22.6,17.7L22.6,17.7z M22.6,17c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.9,22.7,17,22.6,17L22.6,17z M22.6,16.3c-0.1,0-0.1-0.1-0.1-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.2,22.7,16.3,22.6,16.3L22.6,16.3z M22.6,15.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,15.6,22.7,15.7,22.6,15.7L22.6,15.7z M22.6,15c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.8,22.7,15,22.6,15L22.6,15z M22.6,14.3c-0.1-0.1-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.2,22.7,14.2,22.6,14.3L22.6,14.3z M22.6,13.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,13.5,22.7,13.6,22.6,13.6L22.6,13.6z M22.6,12.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.8,22.7,12.9,22.6,12.9L22.6,12.9z M22.6,12.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.2,22.7,12.3,22.6,12.3L22.6,12.3z M22.6,11.5c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,11.4,22.7,11.5,22.6,11.5L22.6,11.5z M22.6,10.9c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.7,22.7,10.8,22.6,10.9L22.6,10.9z M22.6,10.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.1,22.7,10.1,22.6,10.2L22.6,10.2z M23.1,20.6c-0.1,0-0.1-0.1-0.1-0.2c-0.1,0,0-0.1,0.1-0.1s0.1,0.1,0.1,0.2
|
||||
C23.2,20.5,23.2,20.6,23.1,20.6L23.1,20.6z M23.1,20C23,20,23,19.9,23,19.8s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,20,23.1,20L23.1,20z M23.1,19.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,19.2,23.2,19.3,23.1,19.3L23.1,19.3z M23.1,18.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,18.6,23.2,18.6,23.1,18.7L23.1,18.7z M23.1,17.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.8,23.2,17.9,23.1,17.9L23.1,17.9z M23.1,17.2C23,17.2,23,17.1,23,17s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.1,23.2,17.2,23.1,17.2L23.1,17.2z M23.1,16.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,16.5,23.2,16.6,23.1,16.6L23.1,16.6z M23.1,15.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,15.9,23.1,15.9L23.1,15.9z M23.1,15.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,15.2,23.2,15.2,23.1,15.3L23.1,15.3z M23.1,14.5c-0.1,0-0.2,0-0.2-0.1s0-0.2,0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1
|
||||
c0,0.1-0.1,0.2-0.1,0.2V14.5z M23.1,13.8c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.7,23.2,13.8,23.1,13.8L23.1,13.8z M23.1,13.2c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.1,23.2,13.2,23.1,13.2L23.1,13.2z M23.1,12.5c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.1,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,12.4,23.2,12.5,23.1,12.5L23.1,12.5z M23.1,11.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,11.8,23.1,11.9L23.1,11.9z M23.1,11.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11,23.2,11.1,23.1,11.1L23.1,11.1z M23.1,10.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1l-0.1,0.1V10.4z
|
||||
M23.1,9.8c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.8z"/>
|
||||
<path class="st6" d="M30.8,10.1V7.2l-6.1-0.3v16.5l6.1-0.3V10.7h-5.2v-0.6H30.8z M29.6,8.1c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5S29.1,9,29.1,8.7c0-0.1,0.1-0.3,0.2-0.4C29.3,8.2,29.5,8.1,29.6,8.1L29.6,8.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.3 KiB |
|
@ -0,0 +1,155 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve" width="40" height="40">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#040000;}
|
||||
.st1{fill:url(#SVGID_1_);}
|
||||
.st2{opacity:0.3;fill:#FFFFFF;}
|
||||
.st3{fill:url(#SVGID_2_);}
|
||||
.st4{fill:#939498;}
|
||||
.st5{display:none;opacity:0.3;fill:#FFFFFF;}
|
||||
.st6{display:none;}
|
||||
.st7{display:inline;}
|
||||
.st8{fill:#DD4D11;}
|
||||
</style>
|
||||
<g id="单柜体">
|
||||
<g>
|
||||
<ellipse class="st0" cx="26.2" cy="49.2" rx="7.3" ry="2.8"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.0795" y1="0.9059" x2="26.0795" y2="46.4513">
|
||||
<stop offset="0" style="stop-color:#F08856"/>
|
||||
<stop offset="0.2108" style="stop-color:#D24D17"/>
|
||||
<stop offset="0.8" style="stop-color:#D24D17"/>
|
||||
<stop offset="1" style="stop-color:#A53D24"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M41.5,15.4C41.5,6.9,34.6,0,26.1,0c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7
|
||||
c0,1.1,0.9,1.9,1.9,1.9c1.1,0,1.9-0.9,1.9-1.9l2-17.7C36.6,28.5,41.5,22.5,41.5,15.4z"/>
|
||||
<path class="st2" d="M25.4,48l-2-17.7C16.8,28.5,12,22.5,12,15.4c0-8.3,6.5-15,14.7-15.4c-0.2,0-0.5,0-0.7,0
|
||||
c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9L24,48c0,1.1,0.9,1.9,1.9,1.9c0.3,0,0.5-0.1,0.7-0.1
|
||||
C25.9,49.5,25.4,48.8,25.4,48z"/>
|
||||
<path class="st0" d="M26.1,0.1c-0.2,0-0.5,0-0.7,0C33.5,0.4,40,7,40,15.2c0,7.1-4.9,13.1-11.4,14.9l-2,17.7
|
||||
c0,0.8-0.5,1.5-1.2,1.8c0.2,0.1,0.5,0.1,0.7,0.1c1.1,0,1.9-0.9,1.9-1.9l2-17.7c6.6-1.8,11.4-7.7,11.4-14.9
|
||||
C41.5,6.7,34.6,0.1,26.1,0.1z"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.0792" y1="5.4233" x2="26.0792" y2="23.9909">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<circle class="st3" cx="26.1" cy="14.9" r="11.1"/>
|
||||
<path class="st4" d="M26.1,26.2c-6.3,0-11.3-5.1-11.3-11.3c0-6.3,5.1-11.3,11.3-11.3c6.3,0,11.3,5.1,11.3,11.3
|
||||
C37.4,21.2,32.3,26.2,26.1,26.2z M26.1,4.1c-5.9,0-10.8,4.8-10.8,10.8c0,5.9,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
|
||||
C36.9,9,32,4.1,26.1,4.1z"/>
|
||||
</g>
|
||||
<path class="st5" d="M39.9,9.8c-2.2-5.5-7.6-9.4-13.8-9.4c-7.7,0-14,5.8-14.8,13.3C15.4,14.9,26.3,16.7,39.9,9.8z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g class="st6">
|
||||
<g class="st7">
|
||||
<path class="st8" d="M21.7,8.9v12.1l2.6,2.5V6.9L21.7,8.9z M22.2,20.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S22.3,20,22.2,20.1L22.2,20.1z M22.2,19.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,19.3,22.3,19.4,22.2,19.4L22.2,19.4z M22.2,18.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,18.6,22.3,18.7,22.2,18.7L22.2,18.7z M22.2,18c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.9,22.3,18,22.2,18L22.2,18z M22.2,17.3c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.2,22.3,17.3,22.2,17.3L22.2,17.3z M22.2,16.7c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.2-0.2s0.1,0.1,0.1,0.2
|
||||
C22.3,16.6,22.3,16.6,22.2,16.7L22.2,16.7z M22.2,16c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.9,22.3,16,22.2,16L22.2,16z M22.2,15.3c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.2,22.3,15.3,22.2,15.3L22.2,15.3z M22.2,14.6c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,14.5,22.3,14.6,22.2,14.6L22.2,14.6z M22.2,13.9c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.8,22.3,13.9,22.2,13.9L22.2,13.9z M22.2,13.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.2,22.3,13.2,22.2,13.3L22.2,13.3z M22.2,12.6c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,12.5,22.3,12.6,22.2,12.6L22.2,12.6z M22.2,11.9c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.8,22.3,11.9,22.2,11.9L22.2,11.9z M22.2,11.2c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.1,22.3,11.2,22.2,11.2L22.2,11.2z M22.2,10.5c-0.1,0-0.1,0-0.2-0.1v-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,10.4,22.3,10.5,22.2,10.5L22.2,10.5z M22.6,20.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,20.3,22.7,20.4,22.6,20.4L22.6,20.4z M22.6,19.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,19.6,22.7,19.7,22.6,19.7L22.6,19.7z M22.6,19.1c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.7,19,22.7,19.1,22.6,19.1L22.6,19.1z M22.6,18.4c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,18.3,22.7,18.4,22.6,18.4L22.6,18.4z M22.6,17.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,17.6,22.7,17.6,22.6,17.7L22.6,17.7z M22.6,17c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.9,22.7,17,22.6,17L22.6,17z M22.6,16.3c-0.1,0-0.1-0.1-0.1-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.2,22.7,16.3,22.6,16.3L22.6,16.3z M22.6,15.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,15.6,22.7,15.7,22.6,15.7L22.6,15.7z M22.6,15c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.8,22.7,15,22.6,15L22.6,15z M22.6,14.3c-0.1-0.1-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.2,22.7,14.2,22.6,14.3L22.6,14.3z M22.6,13.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,13.5,22.7,13.6,22.6,13.6L22.6,13.6z M22.6,12.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.8,22.7,12.9,22.6,12.9L22.6,12.9z M22.6,12.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.2,22.7,12.3,22.6,12.3L22.6,12.3z M22.6,11.5c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,11.4,22.7,11.5,22.6,11.5L22.6,11.5z M22.6,10.9c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.7,22.7,10.8,22.6,10.9L22.6,10.9z M22.6,10.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.1,22.7,10.1,22.6,10.2L22.6,10.2z M23.1,20.6c-0.1,0-0.1-0.1-0.1-0.2c-0.1,0,0-0.1,0.1-0.1s0.1,0.1,0.1,0.2
|
||||
C23.2,20.5,23.2,20.6,23.1,20.6L23.1,20.6z M23.1,20C23,20,23,19.9,23,19.8s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,20,23.1,20L23.1,20z M23.1,19.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,19.2,23.2,19.3,23.1,19.3L23.1,19.3z M23.1,18.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,18.6,23.2,18.6,23.1,18.7L23.1,18.7z M23.1,17.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.8,23.2,17.9,23.1,17.9L23.1,17.9z M23.1,17.2C23,17.2,23,17.1,23,17s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.1,23.2,17.2,23.1,17.2L23.1,17.2z M23.1,16.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,16.5,23.2,16.6,23.1,16.6L23.1,16.6z M23.1,15.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,15.9,23.1,15.9L23.1,15.9z M23.1,15.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,15.2,23.2,15.2,23.1,15.3L23.1,15.3z M23.1,14.5c-0.1,0-0.2,0-0.2-0.1s0-0.2,0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1
|
||||
c0,0.1-0.1,0.2-0.1,0.2V14.5z M23.1,13.8c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.7,23.2,13.8,23.1,13.8L23.1,13.8z M23.1,13.2c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.1,23.2,13.2,23.1,13.2L23.1,13.2z M23.1,12.5c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.1,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,12.4,23.2,12.5,23.1,12.5L23.1,12.5z M23.1,11.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,11.8,23.1,11.9L23.1,11.9z M23.1,11.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11,23.2,11.1,23.1,11.1L23.1,11.1z M23.1,10.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1l-0.1,0.1V10.4z
|
||||
M23.1,9.8c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.8z"/>
|
||||
<path class="st8" d="M30.8,10.1V7.2l-6.1-0.3v16.5l6.1-0.3V10.7h-5.2v-0.6H30.8z M29.6,8.1c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5S29.1,9,29.1,8.7c0-0.1,0.1-0.3,0.2-0.4C29.3,8.2,29.5,8.1,29.6,8.1L29.6,8.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st8" d="M19.5,8.8v11.7l2.5,2.4v-16L19.5,8.8z M20,19.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C20.1,19.6,20.1,19.6,20,19.7L20,19.7z M20,19c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0.1,0,0.2,0.1,0.1,0.2C20.1,18.9,20.1,19,20,19
|
||||
L20,19z M20,18.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,18.3,20,18.3L20,18.3z M20,17.7
|
||||
c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,17.6,20.1,17.7,20,17.7L20,17.7z M20,17
|
||||
c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,16.9,20.1,17,20,17L20,17z M20,16.4
|
||||
c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2C20.1,16.3,20.1,16.3,20,16.4L20,16.4z M20,15.7
|
||||
c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,15.7,20,15.7L20,15.7z M20,15c-0.1,0-0.2-0.1-0.2-0.1
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,14.9,20.1,15,20,15L20,15z M20,14.4c-0.1,0-0.1-0.1-0.1-0.2
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,14.3,20.1,14.4,20,14.4L20,14.4z M20,13.7c-0.1,0-0.1-0.1-0.1-0.2
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,13.7,20,13.7L20,13.7z M20,13.1c-0.1-0.1-0.2-0.1-0.2-0.2
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,13,20.1,13,20,13.1L20,13.1z M20,12.4c-0.1,0-0.1-0.1-0.1-0.2
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,12.3,20.1,12.4,20,12.4L20,12.4z M20,11.7c-0.1,0-0.1-0.1-0.1-0.2
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,11.7,20,11.7L20,11.7z M20,11.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.1,11,20.1,11.1,20,11.1L20,11.1z M20,10.4c-0.1,0-0.1,0-0.1-0.1v-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C20.1,10.3,20.1,10.4,20,10.4L20,10.4z M20.5,20c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,19.9,20.5,20,20.5,20L20.5,20z M20.5,19.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,19.3,20.5,19.3L20.5,19.3z M20.5,18.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,18.6,20.5,18.7,20.5,18.7L20.5,18.7z M20.5,18c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,17.9,20.5,18,20.5,18L20.5,18z M20.5,17.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,17.3,20.5,17.3,20.5,17.4L20.5,17.4z M20.5,16.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,16.6,20.5,16.7,20.5,16.7L20.5,16.7z M20.5,16c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,15.9,20.5,16,20.5,16L20.5,16z M20.5,15.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,15.4,20.5,15.4L20.5,15.4z M20.5,14.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,14.7,20.5,14.7L20.5,14.7z M20.5,14.1c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,14,20.5,14,20.5,14.1L20.5,14.1z M20.5,13.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,13.3,20.5,13.4,20.5,13.4L20.5,13.4z M20.5,12.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,12.7,20.5,12.7L20.5,12.7z M20.5,12.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,12,20.5,12.1,20.5,12.1L20.5,12.1z M20.5,11.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,11.3,20.5,11.4,20.5,11.4L20.5,11.4z M20.5,10.8c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C20.6,10.6,20.5,10.7,20.5,10.8L20.5,10.8z M20.5,10.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C20.6,10,20.5,10,20.5,10.1L20.5,10.1z M20.9,20.2c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,20.1,21,20.2,20.9,20.2L20.9,20.2z M20.9,19.6c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,19.5,21,19.6,20.9,19.6L20.9,19.6z M20.9,18.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,18.8,21,18.9,20.9,18.9L20.9,18.9z M20.9,18.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,18.2,21,18.2,20.9,18.3L20.9,18.3z M20.9,17.6c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,17.5,21,17.6,20.9,17.6L20.9,17.6z M20.9,16.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,16.8,21,16.9,20.9,16.9L20.9,16.9z M20.9,16.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2
|
||||
s0.2,0.1,0.2,0.2C21.1,16.2,21,16.3,20.9,16.3L20.9,16.3z M20.9,15.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S21,15.6,20.9,15.6L20.9,15.6z M20.9,15c-0.1-0.1-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,14.9,21,14.9,20.9,15L20.9,15z M20.9,14.3c-0.1,0-0.2,0-0.2-0.1c0-0.1,0-0.2,0.1-0.2v-0.1l0.1-0.1
|
||||
c0.1,0,0.1,0,0.1,0.1V14c0,0.1-0.1,0.2-0.1,0.2V14.3z M20.9,13.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,13.5,21,13.6,20.9,13.6L20.9,13.6z M20.9,13c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,12.9,21,13,20.9,13L20.9,13z M20.9,12.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,12.2,21,12.3,20.9,12.3L20.9,12.3z M20.9,11.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,11.6,21,11.6,20.9,11.7L20.9,11.7z M20.9,11c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,10.9,21,11,20.9,11L20.9,11z M20.9,10.3c-0.1,0-0.2-0.1-0.1-0.2V10l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1
|
||||
l-0.1,0.1V10.3z M20.9,9.7c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.7z"/>
|
||||
<path class="st8" d="M27.8,10.3v-3l-5.3-0.4v16l5.3-0.3V10.8l-4.5-0.2V10L27.8,10.3z M26.7,8.1c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5c-0.3,0-0.5-0.2-0.5-0.5c0-0.1,0.1-0.3,0.2-0.4C26.4,8.2,26.5,8.1,26.7,8.1L26.7,8.1z"/>
|
||||
<path class="st8" d="M31.9,10.5v0.6l-3.7-0.2v11.7l4.3-0.3V7.5l-4.3-0.3v3L31.9,10.5z M29.3,8.2c0.1,0,0.3,0.1,0.4,0.2
|
||||
c0.1,0.1,0.2,0.2,0.2,0.4c0,0.3-0.2,0.5-0.5,0.5s-0.5-0.2-0.5-0.5C28.8,8.5,29,8.2,29.3,8.2L29.3,8.2z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,98 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve" width="40" height="40">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#040000;}
|
||||
.st1{fill:url(#SVGID_1_);}
|
||||
.st2{opacity:0.3;fill:#FFFFFF;}
|
||||
.st3{fill:url(#SVGID_2_);}
|
||||
.st4{fill:#939498;}
|
||||
.st5{display:none;opacity:0.3;fill:#FFFFFF;}
|
||||
.st6{fill:#E99F28;}
|
||||
</style>
|
||||
<g id="单柜体">
|
||||
<g>
|
||||
<ellipse class="st0" cx="26.2" cy="49.3" rx="7.3" ry="2.8"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.0795" y1="0.9854" x2="26.0795" y2="46.5307">
|
||||
<stop offset="0" style="stop-color:#F2E636"/>
|
||||
<stop offset="0.1381" style="stop-color:#ECA621"/>
|
||||
<stop offset="0.7002" style="stop-color:#ECA621"/>
|
||||
<stop offset="1" style="stop-color:#D67A17"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M41.5,15.5c0-8.5-6.9-15.4-15.4-15.4c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7
|
||||
c0,1.1,0.9,1.9,1.9,1.9c1.1,0,1.9-0.9,1.9-1.9l2-17.7C36.6,28.6,41.5,22.6,41.5,15.5z"/>
|
||||
<path class="st2" d="M25.4,48.1l-2-17.7C16.8,28.6,12,22.6,12,15.5c0-8.3,6.5-15,14.7-15.4c-0.2,0-0.5,0-0.7,0
|
||||
c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7c0,1.1,0.9,1.9,1.9,1.9c0.3,0,0.5-0.1,0.7-0.1
|
||||
C25.9,49.6,25.4,48.9,25.4,48.1z"/>
|
||||
<path class="st0" d="M26.1,0.1c-0.2,0-0.5,0-0.7,0C33.5,0.5,40,7.1,40,15.3c0,7.1-4.9,13.1-11.4,14.9l-2,17.7
|
||||
c0,0.8-0.5,1.5-1.2,1.8c0.2,0.1,0.5,0.1,0.7,0.1c1.1,0,1.9-0.9,1.9-1.9l2-17.7c6.6-1.8,11.4-7.7,11.4-14.9
|
||||
C41.5,6.8,34.6,0.1,26.1,0.1z"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.0792" y1="5.5027" x2="26.0792" y2="24.0703">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<circle class="st3" cx="26.1" cy="15" r="11.1"/>
|
||||
<path class="st4" d="M26.1,26.3c-6.3,0-11.3-5.1-11.3-11.3c0-6.3,5.1-11.3,11.3-11.3c6.3,0,11.3,5.1,11.3,11.3
|
||||
C37.4,21.2,32.3,26.3,26.1,26.3z M26.1,4.2C20.1,4.2,15.3,9,15.3,15c0,5.9,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
|
||||
C36.9,9,32,4.2,26.1,4.2z"/>
|
||||
</g>
|
||||
<path class="st5" d="M39.9,9.9c-2.2-5.5-7.6-9.4-13.8-9.4c-7.7,0-14,5.8-14.8,13.3C15.4,15,26.3,16.8,39.9,9.9z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st6" d="M21.7,8.9V21l2.6,2.5V7L21.7,8.9z M22.2,20.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,20.1,22.3,20.1,22.2,20.2L22.2,20.2z M22.2,19.5c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.3,19.4,22.3,19.5,22.2,19.5L22.2,19.5z M22.2,18.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,18.6,22.3,18.7,22.2,18.7L22.2,18.7z M22.2,18.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,18,22.3,18.1,22.2,18.1L22.2,18.1z M22.2,17.4c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,17.3,22.3,17.4,22.2,17.4L22.2,17.4z M22.2,16.8c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.2-0.2
|
||||
s0.1,0.1,0.1,0.2C22.3,16.7,22.3,16.7,22.2,16.8L22.2,16.8z M22.2,16.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,16,22.3,16.1,22.2,16.1L22.2,16.1z M22.2,15.3c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,15.2,22.3,15.3,22.2,15.3L22.2,15.3z M22.2,14.7c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,14.6,22.3,14.7,22.2,14.7L22.2,14.7z M22.2,14c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,13.9,22.3,14,22.2,14L22.2,14z M22.2,13.4c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,13.3,22.3,13.3,22.2,13.4L22.2,13.4z M22.2,12.7c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,12.6,22.3,12.7,22.2,12.7L22.2,12.7z M22.2,11.9c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,11.8,22.3,11.9,22.2,11.9L22.2,11.9z M22.2,11.3c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,11.2,22.3,11.3,22.2,11.3L22.2,11.3z M22.2,10.6c-0.1,0-0.1,0-0.2-0.1v-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.3,10.5,22.3,10.6,22.2,10.6L22.2,10.6z M22.6,20.5c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,20.4,22.7,20.5,22.6,20.5L22.6,20.5z M22.6,19.8c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,19.7,22.7,19.8,22.6,19.8L22.6,19.8z M22.6,19.2c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S22.7,19.2,22.6,19.2L22.6,19.2z M22.6,18.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,18.3,22.7,18.4,22.6,18.4L22.6,18.4z M22.6,17.8c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,17.7,22.7,17.7,22.6,17.8L22.6,17.8z M22.6,17.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,17,22.7,17.1,22.6,17.1L22.6,17.1z M22.6,16.4c-0.1,0-0.1-0.1-0.1-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,16.3,22.7,16.4,22.6,16.4L22.6,16.4z M22.6,15.8c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,15.6,22.7,15.8,22.6,15.8L22.6,15.8z M22.6,15c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,14.9,22.7,15,22.6,15L22.6,15z M22.6,14.4c-0.1-0.1-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,14.3,22.7,14.3,22.6,14.4L22.6,14.4z M22.6,13.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,13.6,22.7,13.7,22.6,13.7L22.6,13.7z M22.6,13c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,12.9,22.7,13,22.6,13L22.6,13z M22.6,12.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,12.2,22.7,12.4,22.6,12.4L22.6,12.4z M22.6,11.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,11.5,22.7,11.6,22.6,11.6L22.6,11.6z M22.6,11c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.7,10.8,22.7,10.9,22.6,11L22.6,11z M22.6,10.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.7,10.2,22.7,10.2,22.6,10.3L22.6,10.3z M23.1,20.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1,0,0-0.1,0.1-0.1
|
||||
s0.1,0.1,0.1,0.2C23.2,20.6,23.2,20.7,23.1,20.7L23.1,20.7z M23.1,20.1C23,20.1,23,20,23,19.9c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S23.2,20.1,23.1,20.1L23.1,20.1z M23.1,19.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C23.2,19.3,23.2,19.4,23.1,19.4L23.1,19.4z M23.1,18.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.2,0.1-0.2
|
||||
s0.1,0.1,0.1,0.2C23.2,18.6,23.2,18.6,23.1,18.7L23.1,18.7z M23.1,18C23,18,23,17.9,23,17.8s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S23.2,18,23.1,18L23.1,18z M23.1,17.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,17.3,23.1,17.3L23.1,17.3z M23.1,16.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,16.6,23.2,16.7,23.1,16.7L23.1,16.7z M23.1,16C23,16,23,15.9,23,15.8c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,16,23.1,16L23.1,16z M23.1,15.3c-0.1-0.1-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,15.2,23.2,15.2,23.1,15.3L23.1,15.3z M23.1,14.6c-0.1,0-0.2,0-0.2-0.1c0-0.1,0-0.2,0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1
|
||||
v0.1c0,0.1-0.1,0.2-0.1,0.2V14.6z M23.1,13.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.8,23.2,13.9,23.1,13.9L23.1,13.9z M23.1,13.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.2,23.2,13.3,23.1,13.3L23.1,13.3z M23.1,12.6c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.1,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,12.6,23.1,12.6L23.1,12.6z M23.1,11.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11.8,23.2,11.8,23.1,11.9L23.1,11.9z M23.1,11.2c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11.1,23.2,11.2,23.1,11.2L23.1,11.2z M23.1,10.5c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1l-0.1,0.1V10.5z
|
||||
M23.1,9.9c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.9z"/>
|
||||
<path class="st6" d="M30.8,10.2V7.3L24.7,7v16.5l6.1-0.3V10.8h-5.2v-0.6H30.8z M29.6,8.2c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5s-0.5-0.2-0.5-0.5c0-0.1,0.1-0.3,0.2-0.4C29.3,8.3,29.5,8.2,29.6,8.2L29.6,8.2z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.2 KiB |
|
@ -0,0 +1,153 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve" width="40" height="40">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#040000;}
|
||||
.st1{fill:url(#SVGID_1_);}
|
||||
.st2{opacity:0.3;fill:#FFFFFF;}
|
||||
.st3{fill:url(#SVGID_2_);}
|
||||
.st4{fill:#939498;}
|
||||
.st5{display:none;opacity:0.3;fill:#FFFFFF;}
|
||||
.st6{display:none;}
|
||||
.st7{display:inline;fill:#E99F28;}
|
||||
.st8{fill:#E99F28;}
|
||||
</style>
|
||||
<g id="单柜体">
|
||||
<g>
|
||||
<ellipse class="st0" cx="26.2" cy="49.3" rx="7.3" ry="2.8"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.0795" y1="0.9854" x2="26.0795" y2="46.5307">
|
||||
<stop offset="0" style="stop-color:#F2E636"/>
|
||||
<stop offset="0.1381" style="stop-color:#ECA621"/>
|
||||
<stop offset="0.7002" style="stop-color:#ECA621"/>
|
||||
<stop offset="1" style="stop-color:#D67A17"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M41.5,15.5c0-8.5-6.9-15.4-15.4-15.4c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7
|
||||
c0,1.1,0.9,1.9,1.9,1.9c1.1,0,1.9-0.9,1.9-1.9l2-17.7C36.6,28.6,41.5,22.6,41.5,15.5z"/>
|
||||
<path class="st2" d="M25.4,48.1l-2-17.7C16.8,28.6,12,22.6,12,15.5c0-8.3,6.5-15,14.7-15.4c-0.2,0-0.5,0-0.7,0
|
||||
c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7c0,1.1,0.9,1.9,1.9,1.9c0.3,0,0.5-0.1,0.7-0.1
|
||||
C25.9,49.6,25.4,48.9,25.4,48.1z"/>
|
||||
<path class="st0" d="M26.1,0.1c-0.2,0-0.5,0-0.7,0C33.5,0.5,40,7.1,40,15.3c0,7.1-4.9,13.1-11.4,14.9l-2,17.7
|
||||
c0,0.8-0.5,1.5-1.2,1.8c0.2,0.1,0.5,0.1,0.7,0.1c1.1,0,1.9-0.9,1.9-1.9l2-17.7c6.6-1.8,11.4-7.7,11.4-14.9
|
||||
C41.5,6.8,34.6,0.1,26.1,0.1z"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.0792" y1="5.5027" x2="26.0792" y2="24.0703">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<circle class="st3" cx="26.1" cy="15" r="11.1"/>
|
||||
<path class="st4" d="M26.1,26.3c-6.3,0-11.3-5.1-11.3-11.3c0-6.3,5.1-11.3,11.3-11.3c6.3,0,11.3,5.1,11.3,11.3
|
||||
C37.4,21.2,32.3,26.3,26.1,26.3z M26.1,4.2C20.1,4.2,15.3,9,15.3,15c0,5.9,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
|
||||
C36.9,9,32,4.2,26.1,4.2z"/>
|
||||
</g>
|
||||
<path class="st5" d="M39.9,9.9c-2.2-5.5-7.6-9.4-13.8-9.4c-7.7,0-14,5.8-14.8,13.3C15.4,15,26.3,16.8,39.9,9.9z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g class="st6">
|
||||
<path class="st7" d="M21.7,8.9V21l2.6,2.5V7L21.7,8.9z M22.2,20.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,20.1,22.3,20.1,22.2,20.2L22.2,20.2z M22.2,19.5c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.3,19.4,22.3,19.5,22.2,19.5L22.2,19.5z M22.2,18.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,18.6,22.3,18.7,22.2,18.7L22.2,18.7z M22.2,18.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,18,22.3,18.1,22.2,18.1L22.2,18.1z M22.2,17.4c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,17.3,22.3,17.4,22.2,17.4L22.2,17.4z M22.2,16.8c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.2-0.2
|
||||
s0.1,0.1,0.1,0.2C22.3,16.7,22.3,16.7,22.2,16.8L22.2,16.8z M22.2,16.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,16,22.3,16.1,22.2,16.1L22.2,16.1z M22.2,15.3c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,15.2,22.3,15.3,22.2,15.3L22.2,15.3z M22.2,14.7c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,14.6,22.3,14.7,22.2,14.7L22.2,14.7z M22.2,14c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,13.9,22.3,14,22.2,14L22.2,14z M22.2,13.4c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,13.3,22.3,13.3,22.2,13.4L22.2,13.4z M22.2,12.7c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,12.6,22.3,12.7,22.2,12.7L22.2,12.7z M22.2,11.9c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,11.8,22.3,11.9,22.2,11.9L22.2,11.9z M22.2,11.3c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.3,11.2,22.3,11.3,22.2,11.3L22.2,11.3z M22.2,10.6c-0.1,0-0.1,0-0.2-0.1v-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.3,10.5,22.3,10.6,22.2,10.6L22.2,10.6z M22.6,20.5c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,20.4,22.7,20.5,22.6,20.5L22.6,20.5z M22.6,19.8c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,19.7,22.7,19.8,22.6,19.8L22.6,19.8z M22.6,19.2c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S22.7,19.2,22.6,19.2L22.6,19.2z M22.6,18.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,18.3,22.7,18.4,22.6,18.4L22.6,18.4z M22.6,17.8c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,17.7,22.7,17.7,22.6,17.8L22.6,17.8z M22.6,17.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,17,22.7,17.1,22.6,17.1L22.6,17.1z M22.6,16.4c-0.1,0-0.1-0.1-0.1-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,16.3,22.7,16.4,22.6,16.4L22.6,16.4z M22.6,15.8c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,15.6,22.7,15.8,22.6,15.8L22.6,15.8z M22.6,15c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,14.9,22.7,15,22.6,15L22.6,15z M22.6,14.4c-0.1-0.1-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,14.3,22.7,14.3,22.6,14.4L22.6,14.4z M22.6,13.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,13.6,22.7,13.7,22.6,13.7L22.6,13.7z M22.6,13c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,12.9,22.7,13,22.6,13L22.6,13z M22.6,12.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,12.2,22.7,12.4,22.6,12.4L22.6,12.4z M22.6,11.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C22.8,11.5,22.7,11.6,22.6,11.6L22.6,11.6z M22.6,11c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.7,10.8,22.7,10.9,22.6,11L22.6,11z M22.6,10.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C22.7,10.2,22.7,10.2,22.6,10.3L22.6,10.3z M23.1,20.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1,0,0-0.1,0.1-0.1
|
||||
s0.1,0.1,0.1,0.2C23.2,20.6,23.2,20.7,23.1,20.7L23.1,20.7z M23.1,20.1C23,20.1,23,20,23,19.9c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S23.2,20.1,23.1,20.1L23.1,20.1z M23.1,19.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C23.2,19.3,23.2,19.4,23.1,19.4L23.1,19.4z M23.1,18.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.2,0.1-0.2
|
||||
s0.1,0.1,0.1,0.2C23.2,18.6,23.2,18.6,23.1,18.7L23.1,18.7z M23.1,18C23,18,23,17.9,23,17.8s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S23.2,18,23.1,18L23.1,18z M23.1,17.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,17.3,23.1,17.3L23.1,17.3z M23.1,16.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,16.6,23.2,16.7,23.1,16.7L23.1,16.7z M23.1,16C23,16,23,15.9,23,15.8c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,16,23.1,16L23.1,16z M23.1,15.3c-0.1-0.1-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,15.2,23.2,15.2,23.1,15.3L23.1,15.3z M23.1,14.6c-0.1,0-0.2,0-0.2-0.1c0-0.1,0-0.2,0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1
|
||||
v0.1c0,0.1-0.1,0.2-0.1,0.2V14.6z M23.1,13.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.8,23.2,13.9,23.1,13.9L23.1,13.9z M23.1,13.3c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.2,23.2,13.3,23.1,13.3L23.1,13.3z M23.1,12.6c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.1,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,12.6,23.1,12.6L23.1,12.6z M23.1,11.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11.8,23.2,11.8,23.1,11.9L23.1,11.9z M23.1,11.2c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11.1,23.2,11.2,23.1,11.2L23.1,11.2z M23.1,10.5c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1l-0.1,0.1V10.5z
|
||||
M23.1,9.9c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.9z"/>
|
||||
<path class="st7" d="M30.8,10.2V7.3L24.7,7v16.5l6.1-0.3V10.8h-5.2v-0.6H30.8z M29.6,8.2c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5s-0.5-0.2-0.5-0.5c0-0.1,0.1-0.3,0.2-0.4C29.3,8.3,29.5,8.2,29.6,8.2L29.6,8.2z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st8" d="M19.5,8.8v11.7l2.5,2.4v-16L19.5,8.8z M20,19.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.1,19.6,20.1,19.6,20,19.7L20,19.7z M20,19c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0.1,0,0.2,0.1,0.1,0.2
|
||||
C20.1,18.9,20.1,19,20,19L20,19z M20,18.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C20.1,18.2,20.1,18.3,20,18.3L20,18.3z M20,17.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C20.1,17.6,20.1,17.7,20,17.7L20,17.7z M20,17c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C20.1,16.9,20.1,17,20,17L20,17z M20,16.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C20.1,16.3,20.1,16.3,20,16.4L20,16.4z M20,15.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S20.1,15.7,20,15.7L20,15.7z M20,15c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,14.9,20.1,15,20,15
|
||||
L20,15z M20,14.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,14.3,20.1,14.4,20,14.4L20,14.4z
|
||||
M20,13.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,13.7,20,13.7L20,13.7z M20,13.1
|
||||
c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,13,20.1,13,20,13.1L20,13.1z M20,12.4
|
||||
c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,12.3,20.1,12.4,20,12.4L20,12.4z M20,11.7
|
||||
c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,11.7,20,11.7L20,11.7z M20,11.1c-0.1,0-0.2-0.1-0.2-0.2
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,11,20.1,11.1,20,11.1L20,11.1z M20,10.4c-0.1,0-0.1,0-0.1-0.1v-0.1
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2C20.1,10.3,20.1,10.4,20,10.4L20,10.4z M20.5,20c-0.1,0-0.1-0.1-0.1-0.2
|
||||
s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.6,19.9,20.5,20,20.5,20L20.5,20z M20.5,19.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,19.2,20.5,19.3,20.5,19.3L20.5,19.3z M20.5,18.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,18.6,20.5,18.7,20.5,18.7L20.5,18.7z M20.5,18c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,17.9,20.5,18,20.5,18L20.5,18z M20.5,17.4c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,17.3,20.5,17.3,20.5,17.4L20.5,17.4z M20.5,16.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,16.6,20.5,16.7,20.5,16.7L20.5,16.7z M20.5,16c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,15.9,20.5,16,20.5,16L20.5,16z M20.5,15.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,15.4,20.5,15.4L20.5,15.4z M20.5,14.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,14.7,20.5,14.7L20.5,14.7z M20.5,14.1c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,14,20.5,14,20.5,14.1L20.5,14.1z M20.5,13.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,13.3,20.5,13.4,20.5,13.4L20.5,13.4z M20.5,12.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,12.7,20.5,12.7L20.5,12.7z M20.5,12.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,12,20.5,12.1,20.5,12.1L20.5,12.1z M20.5,11.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,11.3,20.5,11.4,20.5,11.4L20.5,11.4z M20.5,10.8c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C20.6,10.6,20.5,10.7,20.5,10.8L20.5,10.8z M20.5,10.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C20.6,10,20.5,10,20.5,10.1L20.5,10.1z M20.9,20.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,20.1,21,20.2,20.9,20.2L20.9,20.2z M20.9,19.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,19.5,21,19.6,20.9,19.6L20.9,19.6z M20.9,18.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,18.8,21,18.9,20.9,18.9L20.9,18.9z M20.9,18.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,18.2,21,18.2,20.9,18.3L20.9,18.3z M20.9,17.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,17.5,21,17.6,20.9,17.6L20.9,17.6z M20.9,16.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,16.8,21,16.9,20.9,16.9L20.9,16.9z M20.9,16.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2
|
||||
s0.2,0.1,0.2,0.2C21.1,16.2,21,16.3,20.9,16.3L20.9,16.3z M20.9,15.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S21,15.6,20.9,15.6L20.9,15.6z M20.9,15c-0.1-0.1-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,14.9,21,14.9,20.9,15L20.9,15z M20.9,14.3c-0.1,0-0.2,0-0.2-0.1c0-0.1,0-0.2,0.1-0.2v-0.1l0.1-0.1
|
||||
c0.1,0,0.1,0,0.1,0.1V14c0,0.1-0.1,0.2-0.1,0.2V14.3z M20.9,13.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,13.5,21,13.6,20.9,13.6L20.9,13.6z M20.9,13c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,12.9,21,13,20.9,13L20.9,13z M20.9,12.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,12.2,21,12.3,20.9,12.3L20.9,12.3z M20.9,11.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,11.6,21,11.6,20.9,11.7L20.9,11.7z M20.9,11c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,10.9,21,11,20.9,11L20.9,11z M20.9,10.3c-0.1,0-0.2-0.1-0.1-0.2V10l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1
|
||||
l-0.1,0.1V10.3z M20.9,9.7c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.7z"/>
|
||||
<path class="st8" d="M27.8,10.3v-3l-5.3-0.4v16l5.3-0.3V10.8l-4.5-0.2V10L27.8,10.3z M26.7,8.1c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5c-0.3,0-0.5-0.2-0.5-0.5c0-0.1,0.1-0.3,0.2-0.4C26.4,8.2,26.5,8.1,26.7,8.1L26.7,8.1z"/>
|
||||
<path class="st8" d="M31.9,10.5v0.6l-3.7-0.2v11.7l4.3-0.3V7.5l-4.3-0.3v3L31.9,10.5z M29.3,8.2c0.1,0,0.3,0.1,0.4,0.2
|
||||
c0.1,0.1,0.2,0.2,0.2,0.4c0,0.3-0.2,0.5-0.5,0.5s-0.5-0.2-0.5-0.5C28.8,8.5,29,8.2,29.3,8.2L29.3,8.2z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve" width="40" height="40">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#040000;}
|
||||
.st1{fill:url(#SVGID_1_);}
|
||||
.st2{opacity:0.3;fill:#FFFFFF;}
|
||||
.st3{fill:url(#SVGID_2_);}
|
||||
.st4{fill:#939498;}
|
||||
.st5{fill:#69B82D;}
|
||||
</style>
|
||||
<g id="单柜体">
|
||||
<ellipse class="st0" cx="26.2" cy="49.2" rx="7.3" ry="2.8"/>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.0795" y1="0.9059" x2="26.0795" y2="46.4513">
|
||||
<stop offset="0" style="stop-color:#94C865"/>
|
||||
<stop offset="0.1135" style="stop-color:#51A336"/>
|
||||
<stop offset="0.8" style="stop-color:#51A336"/>
|
||||
<stop offset="1" style="stop-color:#346E35"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M41.5,15.4C41.5,6.9,34.6,0,26.1,0c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7
|
||||
c0,1.1,0.9,1.9,1.9,1.9c1.1,0,1.9-0.9,1.9-1.9l2-17.7C36.6,28.5,41.5,22.5,41.5,15.4z"/>
|
||||
<path class="st2" d="M25.4,48l-2-17.7C16.8,28.5,12,22.5,12,15.4c0-8.3,6.5-15,14.7-15.4c-0.2,0-0.5,0-0.7,0
|
||||
c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9L24,48c0,1.1,0.9,1.9,1.9,1.9c0.3,0,0.5-0.1,0.7-0.1
|
||||
C25.9,49.5,25.4,48.8,25.4,48z"/>
|
||||
<path class="st0" d="M26.1,0c-0.2,0-0.5,0-0.7,0C33.5,0.4,40,7,40,15.2c0,7.1-4.9,13.1-11.4,14.9l-2,17.7c0,0.8-0.5,1.5-1.2,1.8
|
||||
c0.2,0.1,0.5,0.1,0.7,0.1c1.1,0,1.9-0.9,1.9-1.9l2-17.7c6.6-1.8,11.4-7.7,11.4-14.9C41.5,6.7,34.6,0,26.1,0z"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.0792" y1="5.4233" x2="26.0792" y2="23.9909">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<circle class="st3" cx="26.1" cy="14.9" r="11.1"/>
|
||||
<path class="st4" d="M26.1,26.2c-6.3,0-11.3-5.1-11.3-11.3c0-6.3,5.1-11.3,11.3-11.3c6.3,0,11.3,5.1,11.3,11.3
|
||||
C37.4,21.2,32.3,26.2,26.1,26.2z M26.1,4.1c-5.9,0-10.8,4.8-10.8,10.8c0,5.9,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
|
||||
C36.9,9,32,4.1,26.1,4.1z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st5" d="M21.7,8.9v12.1l2.6,2.5V6.9L21.7,8.9z M22.2,20.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S22.3,20,22.2,20.1L22.2,20.1z M22.2,19.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,19.3,22.3,19.4,22.2,19.4L22.2,19.4z M22.2,18.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,18.6,22.3,18.7,22.2,18.7L22.2,18.7z M22.2,18c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.9,22.3,18,22.2,18L22.2,18z M22.2,17.3c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.2,22.3,17.3,22.2,17.3L22.2,17.3z M22.2,16.7c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.2-0.2s0.1,0.1,0.1,0.2
|
||||
C22.3,16.6,22.3,16.6,22.2,16.7L22.2,16.7z M22.2,16c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.9,22.3,16,22.2,16L22.2,16z M22.2,15.3c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.2,22.3,15.3,22.2,15.3L22.2,15.3z M22.2,14.6c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,14.5,22.3,14.6,22.2,14.6L22.2,14.6z M22.2,13.9c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.8,22.3,13.9,22.2,13.9L22.2,13.9z M22.2,13.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.2,22.3,13.2,22.2,13.3L22.2,13.3z M22.2,12.6c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,12.5,22.3,12.6,22.2,12.6L22.2,12.6z M22.2,11.9c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.8,22.3,11.9,22.2,11.9L22.2,11.9z M22.2,11.2c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.1,22.3,11.2,22.2,11.2L22.2,11.2z M22.2,10.5c-0.1,0-0.1,0-0.2-0.1v-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,10.4,22.3,10.5,22.2,10.5L22.2,10.5z M22.6,20.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,20.3,22.7,20.4,22.6,20.4L22.6,20.4z M22.6,19.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,19.6,22.7,19.7,22.6,19.7L22.6,19.7z M22.6,19.1c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.7,19,22.7,19.1,22.6,19.1L22.6,19.1z M22.6,18.4c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,18.3,22.7,18.4,22.6,18.4L22.6,18.4z M22.6,17.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,17.6,22.7,17.6,22.6,17.7L22.6,17.7z M22.6,17c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.9,22.7,17,22.6,17L22.6,17z M22.6,16.3c-0.1,0-0.1-0.1-0.1-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.2,22.7,16.3,22.6,16.3L22.6,16.3z M22.6,15.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,15.6,22.7,15.7,22.6,15.7L22.6,15.7z M22.6,15c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.8,22.7,15,22.6,15L22.6,15z M22.6,14.3c-0.1-0.1-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.2,22.7,14.2,22.6,14.3L22.6,14.3z M22.6,13.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,13.5,22.7,13.6,22.6,13.6L22.6,13.6z M22.6,12.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.8,22.7,12.9,22.6,12.9L22.6,12.9z M22.6,12.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.2,22.7,12.3,22.6,12.3L22.6,12.3z M22.6,11.5c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,11.4,22.7,11.5,22.6,11.5L22.6,11.5z M22.6,10.9c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.7,22.7,10.8,22.6,10.9L22.6,10.9z M22.6,10.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.1,22.7,10.1,22.6,10.2L22.6,10.2z M23.1,20.6c-0.1,0-0.1-0.1-0.1-0.2c-0.1,0,0-0.1,0.1-0.1s0.1,0.1,0.1,0.2
|
||||
C23.2,20.5,23.2,20.6,23.1,20.6L23.1,20.6z M23.1,20C23,20,23,19.9,23,19.8s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,20,23.1,20L23.1,20z M23.1,19.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,19.2,23.2,19.3,23.1,19.3L23.1,19.3z M23.1,18.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,18.6,23.2,18.6,23.1,18.7L23.1,18.7z M23.1,17.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.8,23.2,17.9,23.1,17.9L23.1,17.9z M23.1,17.2C23,17.2,23,17.1,23,17s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.1,23.2,17.2,23.1,17.2L23.1,17.2z M23.1,16.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,16.5,23.2,16.6,23.1,16.6L23.1,16.6z M23.1,15.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,15.9,23.1,15.9L23.1,15.9z M23.1,15.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,15.2,23.2,15.2,23.1,15.3L23.1,15.3z M23.1,14.5c-0.1,0-0.2,0-0.2-0.1s0-0.2,0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1
|
||||
c0,0.1-0.1,0.2-0.1,0.2V14.5z M23.1,13.8c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.7,23.2,13.8,23.1,13.8L23.1,13.8z M23.1,13.2c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.1,23.2,13.2,23.1,13.2L23.1,13.2z M23.1,12.5c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.1,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,12.4,23.2,12.5,23.1,12.5L23.1,12.5z M23.1,11.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,11.8,23.1,11.9L23.1,11.9z M23.1,11.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11,23.2,11.1,23.1,11.1L23.1,11.1z M23.1,10.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1l-0.1,0.1V10.4z
|
||||
M23.1,9.8c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.8z"/>
|
||||
<path class="st5" d="M30.8,10.1V7.2l-6.1-0.3v16.5l6.1-0.3V10.7h-5.2v-0.6H30.8z M29.6,8.1c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5S29.1,9,29.1,8.7c0-0.1,0.1-0.3,0.2-0.4C29.3,8.2,29.5,8.1,29.6,8.1L29.6,8.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.0 KiB |
|
@ -0,0 +1,148 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve" width="40" height="40">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.2;fill:#040000;}
|
||||
.st1{fill:url(#SVGID_1_);}
|
||||
.st2{opacity:0.3;fill:#FFFFFF;}
|
||||
.st3{fill:url(#SVGID_2_);}
|
||||
.st4{fill:#939498;}
|
||||
.st5{display:none;}
|
||||
.st6{display:inline;}
|
||||
.st7{fill:#69B82D;}
|
||||
</style>
|
||||
<g id="单柜体">
|
||||
<ellipse class="st0" cx="26.2" cy="49.2" rx="7.3" ry="2.8"/>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.0795" y1="0.9059" x2="26.0795" y2="46.4513">
|
||||
<stop offset="0" style="stop-color:#94C865"/>
|
||||
<stop offset="0.1135" style="stop-color:#51A336"/>
|
||||
<stop offset="0.8" style="stop-color:#51A336"/>
|
||||
<stop offset="1" style="stop-color:#346E35"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M41.5,15.4C41.5,6.9,34.6,0,26.1,0c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9l2,17.7
|
||||
c0,1.1,0.9,1.9,1.9,1.9c1.1,0,1.9-0.9,1.9-1.9l2-17.7C36.6,28.5,41.5,22.5,41.5,15.4z"/>
|
||||
<path class="st2" d="M25.4,48l-2-17.7C16.8,28.5,12,22.5,12,15.4c0-8.3,6.5-15,14.7-15.4c-0.2,0-0.5,0-0.7,0
|
||||
c-8.5,0-15.4,6.9-15.4,15.4c0,7.1,4.9,13.1,11.4,14.9L24,48c0,1.1,0.9,1.9,1.9,1.9c0.3,0,0.5-0.1,0.7-0.1
|
||||
C25.9,49.5,25.4,48.8,25.4,48z"/>
|
||||
<path class="st0" d="M26.1,0c-0.2,0-0.5,0-0.7,0C33.5,0.4,40,7,40,15.2c0,7.1-4.9,13.1-11.4,14.9l-2,17.7c0,0.8-0.5,1.5-1.2,1.8
|
||||
c0.2,0.1,0.5,0.1,0.7,0.1c1.1,0,1.9-0.9,1.9-1.9l2-17.7c6.6-1.8,11.4-7.7,11.4-14.9C41.5,6.7,34.6,0,26.1,0z"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.0792" y1="5.4233" x2="26.0792" y2="23.9909">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#FFFFFF"/>
|
||||
</linearGradient>
|
||||
<circle class="st3" cx="26.1" cy="14.9" r="11.1"/>
|
||||
<path class="st4" d="M26.1,26.2c-6.3,0-11.3-5.1-11.3-11.3c0-6.3,5.1-11.3,11.3-11.3c6.3,0,11.3,5.1,11.3,11.3
|
||||
C37.4,21.2,32.3,26.2,26.1,26.2z M26.1,4.1c-5.9,0-10.8,4.8-10.8,10.8c0,5.9,4.8,10.8,10.8,10.8c5.9,0,10.8-4.8,10.8-10.8
|
||||
C36.9,9,32,4.1,26.1,4.1z"/>
|
||||
</g>
|
||||
<g class="st5">
|
||||
<g class="st6">
|
||||
<path class="st7" d="M21.7,8.9v12.1l2.6,2.5V6.9L21.7,8.9z M22.2,20.1c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S22.3,20,22.2,20.1L22.2,20.1z M22.2,19.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,19.3,22.3,19.4,22.2,19.4L22.2,19.4z M22.2,18.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,18.6,22.3,18.7,22.2,18.7L22.2,18.7z M22.2,18c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.9,22.3,18,22.2,18L22.2,18z M22.2,17.3c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,17.2,22.3,17.3,22.2,17.3L22.2,17.3z M22.2,16.7c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.2-0.2s0.1,0.1,0.1,0.2
|
||||
C22.3,16.6,22.3,16.6,22.2,16.7L22.2,16.7z M22.2,16c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.9,22.3,16,22.2,16L22.2,16z M22.2,15.3c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,15.2,22.3,15.3,22.2,15.3L22.2,15.3z M22.2,14.6c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,14.5,22.3,14.6,22.2,14.6L22.2,14.6z M22.2,13.9c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.8,22.3,13.9,22.2,13.9L22.2,13.9z M22.2,13.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,13.2,22.3,13.2,22.2,13.3L22.2,13.3z M22.2,12.6c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,12.5,22.3,12.6,22.2,12.6L22.2,12.6z M22.2,11.9c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.8,22.3,11.9,22.2,11.9L22.2,11.9z M22.2,11.2c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.3,11.1,22.3,11.2,22.2,11.2L22.2,11.2z M22.2,10.5c-0.1,0-0.1,0-0.2-0.1v-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.3,10.4,22.3,10.5,22.2,10.5L22.2,10.5z M22.6,20.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,20.3,22.7,20.4,22.6,20.4L22.6,20.4z M22.6,19.7c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,19.6,22.7,19.7,22.6,19.7L22.6,19.7z M22.6,19.1c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.7,19,22.7,19.1,22.6,19.1L22.6,19.1z M22.6,18.4c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,18.3,22.7,18.4,22.6,18.4L22.6,18.4z M22.6,17.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,17.6,22.7,17.6,22.6,17.7L22.6,17.7z M22.6,17c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.9,22.7,17,22.6,17L22.6,17z M22.6,16.3c-0.1,0-0.1-0.1-0.1-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,16.2,22.7,16.3,22.6,16.3L22.6,16.3z M22.6,15.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,15.6,22.7,15.7,22.6,15.7L22.6,15.7z M22.6,15c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.8,22.7,15,22.6,15L22.6,15z M22.6,14.3c-0.1-0.1-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,14.2,22.7,14.2,22.6,14.3L22.6,14.3z M22.6,13.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,13.5,22.7,13.6,22.6,13.6L22.6,13.6z M22.6,12.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.8,22.7,12.9,22.6,12.9L22.6,12.9z M22.6,12.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,12.2,22.7,12.3,22.6,12.3L22.6,12.3z M22.6,11.5c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C22.8,11.4,22.7,11.5,22.6,11.5L22.6,11.5z M22.6,10.9c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.7,22.7,10.8,22.6,10.9L22.6,10.9z M22.6,10.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2
|
||||
C22.7,10.1,22.7,10.1,22.6,10.2L22.6,10.2z M23.1,20.6c-0.1,0-0.1-0.1-0.1-0.2c-0.1,0,0-0.1,0.1-0.1s0.1,0.1,0.1,0.2
|
||||
C23.2,20.5,23.2,20.6,23.1,20.6L23.1,20.6z M23.1,20C23,20,23,19.9,23,19.8s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,20,23.1,20L23.1,20z M23.1,19.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,19.2,23.2,19.3,23.1,19.3L23.1,19.3z M23.1,18.7c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,18.6,23.2,18.6,23.1,18.7L23.1,18.7z M23.1,17.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.8,23.2,17.9,23.1,17.9L23.1,17.9z M23.1,17.2C23,17.2,23,17.1,23,17s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,17.1,23.2,17.2,23.1,17.2L23.1,17.2z M23.1,16.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C23.2,16.5,23.2,16.6,23.1,16.6L23.1,16.6z M23.1,15.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,15.9,23.1,15.9L23.1,15.9z M23.1,15.3c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,15.2,23.2,15.2,23.1,15.3L23.1,15.3z M23.1,14.5c-0.1,0-0.2,0-0.2-0.1s0-0.2,0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1
|
||||
c0,0.1-0.1,0.2-0.1,0.2V14.5z M23.1,13.8c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.7,23.2,13.8,23.1,13.8L23.1,13.8z M23.1,13.2c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,13.1,23.2,13.2,23.1,13.2L23.1,13.2z M23.1,12.5c-0.1,0-0.1-0.1-0.1-0.2c-0.1-0.1,0-0.1,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,12.4,23.2,12.5,23.1,12.5L23.1,12.5z M23.1,11.9c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S23.2,11.8,23.1,11.9L23.1,11.9z M23.1,11.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C23.2,11,23.2,11.1,23.1,11.1L23.1,11.1z M23.1,10.4c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1l-0.1,0.1V10.4z
|
||||
M23.1,9.8c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.8z"/>
|
||||
<path class="st7" d="M30.8,10.1V7.2l-6.1-0.3v16.5l6.1-0.3V10.7h-5.2v-0.6H30.8z M29.6,8.1c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5S29.1,9,29.1,8.7c0-0.1,0.1-0.3,0.2-0.4C29.3,8.2,29.5,8.1,29.6,8.1L29.6,8.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st7" d="M19.5,8.8v11.7l2.5,2.4v-16L19.5,8.8z M20,19.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.1,19.6,20.1,19.6,20,19.7L20,19.7z M20,19c-0.1,0-0.2-0.1-0.1-0.2v-0.1l0.1-0.1c0.1,0,0.2,0.1,0.1,0.2
|
||||
C20.1,18.9,20.1,19,20,19L20,19z M20,18.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C20.1,18.2,20.1,18.3,20,18.3L20,18.3z M20,17.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C20.1,17.6,20.1,17.7,20,17.7L20,17.7z M20,17c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
C20.1,16.9,20.1,17,20,17L20,17z M20,16.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2s0.1,0.1,0.1,0.2
|
||||
C20.1,16.3,20.1,16.3,20,16.4L20,16.4z M20,15.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2
|
||||
S20.1,15.7,20,15.7L20,15.7z M20,15c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,14.9,20.1,15,20,15
|
||||
L20,15z M20,14.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,14.3,20.1,14.4,20,14.4L20,14.4z
|
||||
M20,13.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,13.7,20,13.7L20,13.7z M20,13.1
|
||||
c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,13,20.1,13,20,13.1L20,13.1z M20,12.4
|
||||
c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,12.3,20.1,12.4,20,12.4L20,12.4z M20,11.7
|
||||
c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2S20.1,11.7,20,11.7L20,11.7z M20,11.1c-0.1,0-0.2-0.1-0.2-0.2
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.1,11,20.1,11.1,20,11.1L20,11.1z M20,10.4c-0.1,0-0.1,0-0.1-0.1v-0.1
|
||||
c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2C20.1,10.3,20.1,10.4,20,10.4L20,10.4z M20.5,20c-0.1,0-0.1-0.1-0.1-0.2
|
||||
s0.1-0.2,0.1-0.2c0.1,0,0.1,0.1,0.1,0.2C20.6,19.9,20.5,20,20.5,20L20.5,20z M20.5,19.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,19.2,20.5,19.3,20.5,19.3L20.5,19.3z M20.5,18.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,18.6,20.5,18.7,20.5,18.7L20.5,18.7z M20.5,18c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,17.9,20.5,18,20.5,18L20.5,18z M20.5,17.4c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,17.3,20.5,17.3,20.5,17.4L20.5,17.4z M20.5,16.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,16.6,20.5,16.7,20.5,16.7L20.5,16.7z M20.5,16c-0.1,0-0.2-0.1-0.2-0.1c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,15.9,20.5,16,20.5,16L20.5,16z M20.5,15.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,15.4,20.5,15.4L20.5,15.4z M20.5,14.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,14.7,20.5,14.7L20.5,14.7z M20.5,14.1c-0.1-0.1-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,14,20.5,14,20.5,14.1L20.5,14.1z M20.5,13.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,13.3,20.5,13.4,20.5,13.4L20.5,13.4z M20.5,12.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S20.5,12.7,20.5,12.7L20.5,12.7z M20.5,12.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,12,20.5,12.1,20.5,12.1L20.5,12.1z M20.5,11.4c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C20.6,11.3,20.5,11.4,20.5,11.4L20.5,11.4z M20.5,10.8c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C20.6,10.6,20.5,10.7,20.5,10.8L20.5,10.8z M20.5,10.1c-0.1,0-0.2-0.1-0.2-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.2,0.1,0.1,0.2C20.6,10,20.5,10,20.5,10.1L20.5,10.1z M20.9,20.2c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,20.1,21,20.2,20.9,20.2L20.9,20.2z M20.9,19.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,19.5,21,19.6,20.9,19.6L20.9,19.6z M20.9,18.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,18.8,21,18.9,20.9,18.9L20.9,18.9z M20.9,18.3c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,18.2,21,18.2,20.9,18.3L20.9,18.3z M20.9,17.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,17.5,21,17.6,20.9,17.6L20.9,17.6z M20.9,16.9c-0.1,0-0.1-0.1-0.1-0.2s0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,16.8,21,16.9,20.9,16.9L20.9,16.9z M20.9,16.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0.1-0.2
|
||||
s0.2,0.1,0.2,0.2C21.1,16.2,21,16.3,20.9,16.3L20.9,16.3z M20.9,15.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2S21,15.6,20.9,15.6L20.9,15.6z M20.9,15c-0.1-0.1-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,14.9,21,14.9,20.9,15L20.9,15z M20.9,14.3c-0.1,0-0.2,0-0.2-0.1c0-0.1,0-0.2,0.1-0.2v-0.1l0.1-0.1
|
||||
c0.1,0,0.1,0,0.1,0.1V14c0,0.1-0.1,0.2-0.1,0.2V14.3z M20.9,13.6c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,13.5,21,13.6,20.9,13.6L20.9,13.6z M20.9,13c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,12.9,21,13,20.9,13L20.9,13z M20.9,12.3c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,12.2,21,12.3,20.9,12.3L20.9,12.3z M20.9,11.7c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,11.6,21,11.6,20.9,11.7L20.9,11.7z M20.9,11c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2
|
||||
c0.1,0,0.1,0.1,0.1,0.2C21.1,10.9,21,11,20.9,11L20.9,11z M20.9,10.3c-0.1,0-0.2-0.1-0.1-0.2V10l0.1-0.1c0,0,0.1,0,0.1,0.1v0.1
|
||||
l-0.1,0.1V10.3z M20.9,9.7c-0.1,0-0.2-0.1-0.1-0.2c0-0.1,0.1-0.2,0.1-0.2c0.1,0,0.2,0.1,0.1,0.2c0,0-0.1,0.1-0.1,0V9.7z"/>
|
||||
<path class="st7" d="M27.8,10.3v-3l-5.3-0.4v16l5.3-0.3V10.8l-4.5-0.2V10L27.8,10.3z M26.7,8.1c0.3,0,0.5,0.2,0.5,0.5
|
||||
c0,0.3-0.2,0.5-0.5,0.5c-0.3,0-0.5-0.2-0.5-0.5c0-0.1,0.1-0.3,0.2-0.4C26.4,8.2,26.5,8.1,26.7,8.1L26.7,8.1z"/>
|
||||
<path class="st7" d="M31.9,10.5v0.6l-3.7-0.2v11.7l4.3-0.3V7.5l-4.3-0.3v3L31.9,10.5z M29.3,8.2c0.1,0,0.3,0.1,0.4,0.2
|
||||
c0.1,0.1,0.2,0.2,0.2,0.4c0,0.3-0.2,0.5-0.5,0.5s-0.5-0.2-0.5-0.5C28.8,8.5,29,8.2,29.3,8.2L29.3,8.2z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 108 32" style="enable-background:new 0 0 108 32;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#2CD04A;}
|
||||
.st2{fill:url(#SVGID_1_);}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="0" class="st0" width="32" height="32"/>
|
||||
<path class="st1" d="M61.3,12.6H74v2.8H43.1v-2.8h14V8.8h-8.3c-0.8,1.2-1.5,2.1-2.2,2.8h-3.2c1.8-2.9,3-5.5,3.7-7.5h4.5
|
||||
c-0.3,0.6-0.6,1.2-1,2h6.5V3.4h4.2V6h11v2.8h-11V12.6z M71.8,17.8v11.3H45.4V17.8H71.8z M49.6,26.4h18v-6h-18V26.4z"/>
|
||||
<path class="st1" d="M93.2,7.7v3.2c0,1.5-0.6,2.6-1.7,3.2c-0.8,0.4-2.1,0.6-3.7,0.6v-1.9c0.5,0,0.9-0.2,1.2-0.4
|
||||
c0.2-0.3,0.4-0.7,0.4-1.2V9.6h-8c-0.3,0.3-0.5,0.6-0.8,0.9h6.6v3.9h-8.7v-3.1H77c0.9-1.2,1.6-2.6,2-4.1h4.2
|
||||
c-0.1,0.2-0.2,0.4-0.3,0.5H93.2z M94.8,15.6H108v2.1H77.1v-2.1h13.4v-1h4.4V15.6z M91.1,6.1v1.2h-3.7V6.1h-3.2v0.7h-3.8V6.1h-3.1
|
||||
V4.2h3.1V3.4h3.8v0.9h3.2V3.4h3.7v0.9h3v1.8H91.1z M105.3,18.7v1.6H79.6v-1.6H105.3z M105.3,21.3v1.6H79.6v-1.6H105.3z
|
||||
M105.3,23.9v5.2H79.6v-5.2H105.3z M81.6,12.9h2.5v-1.1h-2.5V12.9z M83.8,27.2h17.4v-1.4H83.8V27.2z M106.3,6.7
|
||||
c-0.4,2-1.4,3.6-3,4.7c1.4,0.5,2.9,0.8,4.7,0.9v2.5c-2.9-0.3-5.3-1-7.3-1.9c-1.8,0.7-4.1,1.2-6.9,1.5v-2.4c1.6-0.2,3-0.4,4.1-0.7
|
||||
c-0.7-0.5-1.4-1.3-2.1-2.1h-2.5c1-1.7,1.9-3.6,2.6-5.7h4.1c-0.2,0.4-0.4,0.8-0.6,1.2h8.3v2.2H106.3z M102.6,6.7h-4.8
|
||||
c-0.4,0.5-0.6,0.8-0.8,1h1.8c0.4,0.9,0.9,1.6,1.7,2.2C101.6,9.1,102.3,8.1,102.6,6.7z"/>
|
||||
<radialGradient id="SVGID_1_" cx="16.0017" cy="16" r="16" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" style="stop-color:#FFDD98"/>
|
||||
<stop offset="1" style="stop-color:#FFC255"/>
|
||||
</radialGradient>
|
||||
<path class="st2" d="M16,0C7.2,0,0,7.2,0,16c0,8.8,7.2,16,16,16c8.8,0,16-7.2,16-16C32,7.2,24.8,0,16,0L16,0z M18.2,26.7h-4.4
|
||||
v-2.6h4.4V26.7z M18.2,21.3h-4.4v-16h4.4V21.3z M18.2,21.3"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1685343108233" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11230" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M604.633441 511.693258l399.903417-399.871348a66.511603 66.511603 0 0 0 0-92.038717 65.485387 65.485387 0 0 0-93.738387 0L511.664716 418.852809 111.793369 19.751124a63.561233 63.561233 0 0 0-92.038717 0 63.561233 63.561233 0 0 0 0 92.070786l399.101685 399.903417L19.722582 910.794943a65.485387 65.485387 0 0 0 0 93.706318 66.511603 66.511603 0 0 0 92.070787 0l399.903416-399.871347L910.766402 1004.565399a66.255049 66.255049 0 0 0 93.706317-93.738387z" p-id="11231"></path></svg>
|
After Width: | Height: | Size: 812 B |
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 108 32" style="enable-background:new 0 0 108 32;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{display:none;fill:#606060;}
|
||||
.st1{fill:url(#SVGID_1_);}
|
||||
.st2{fill:#2CD04A;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="-0.1" class="st0" width="32" height="32"/>
|
||||
<radialGradient id="SVGID_1_" cx="15.9063" cy="16" r="14.8543" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" style="stop-color:#70FA61"/>
|
||||
<stop offset="1" style="stop-color:#34C649"/>
|
||||
</radialGradient>
|
||||
<path class="st1" d="M16.1,32c-2.2,0-4-1.8-4-4h8.1C20.1,30.2,18.3,32,16.1,32L16.1,32z M28.2,26.1H3.6c-0.7,0-1.3-0.6-1.3-1.3
|
||||
v-0.4c0-0.7,0.5-1.4,1.1-1.5c0.8-0.7,1.3-1.9,1.3-3.2c0-0.1,0-0.2,0-0.3h0v-6.1c0-5.4,3.8-9.9,8.8-11c0,0,0-0.1,0-0.1
|
||||
c0-1.3,1.1-2.4,2.4-2.4s2.4,1.1,2.4,2.4c0,0,0,0.1,0,0.1c5.1,1.1,8.8,5.6,8.8,11v6.3h0c0,0.1,0,0.2,0,0.3c0,1.4,0.5,2.6,1.3,3.2
|
||||
c0.6,0.1,1.1,0.6,1.1,1.3v0.4C29.5,25.5,28.9,26.1,28.2,26.1L28.2,26.1z M28.2,26.1"/>
|
||||
<g>
|
||||
<path class="st2" d="M48.3,10.6h2.1v19h-4.1V12.5c-0.1,0.1-0.3,0.2-0.6,0.4h-3.2c3-3.3,5.1-6.5,6.2-9.6h4.7
|
||||
C52.1,6,50.4,8.4,48.3,10.6z M65.2,25.9h7.6v2.7H53.3v-2.7H61v-8.8h-8.5v-2.8H61V7.6h-7.5V4.8h12.1c2.9,0,5.2-0.3,7-0.9v2.7
|
||||
c-1.8,0.6-4.1,0.9-7,0.9h-0.4v6.8h8.4v2.8h-8.4V25.9z"/>
|
||||
<path class="st2" d="M96.8,12.7c2.4,0.5,6,0.9,10.8,1.3v2.9c-4.6-0.5-7.4-0.8-8.3-1c-2.8-0.4-5.2-0.9-7.2-1.5
|
||||
c-3.9,1.1-9,1.9-15.4,2.5V14c4.1-0.2,7.8-0.7,11-1.4c-1.9-0.9-3.6-2-5.2-3.2c-0.8,0.7-1.5,1.2-2.1,1.7h-3.3
|
||||
c2.8-2.5,4.8-5.1,6-7.8h4.7c-0.5,0.8-0.9,1.3-1.2,1.7h18v2.8C102.5,9.8,99.9,11.4,96.8,12.7z M90.4,18.1h14.5v5.3
|
||||
c0,2.4-0.6,4.1-1.8,5c-1,0.7-2.8,1.1-5.3,1.2v-2.5c1.1-0.1,1.9-0.4,2.3-0.8c0.5-0.5,0.7-1.2,0.7-2.3v-3.2H89.2
|
||||
c-0.9,1.8-2,3.4-3.3,5c-1.3,1.6-2.7,2.8-4,3.7h-4c3-2.5,5.3-5.4,7-8.7h-6.4v-2.8H86c0.3-1,0.5-1.7,0.6-2.2h4.5
|
||||
C91,16.6,90.7,17.3,90.4,18.1z M92.1,11.5c2.9-1,5.4-2.2,7.7-3.7H84.3c-0.4,0.4-0.7,0.7-1,0.9h3.2C88.3,9.9,90.2,10.8,92.1,11.5
|
||||
z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -0,0 +1,56 @@
|
|||
<template>
|
||||
<div class="address-list">
|
||||
<van-radio-group v-model="address_id" @change="onChange">
|
||||
<van-cell v-for="(item, idx) in lists" :key="item.address_id" class="address-item" @click="setAddress(idx)">
|
||||
<van-radio :name="idx">
|
||||
<div class="address-name">{{item.receive_name}}, {{item.mobile}}</div>
|
||||
<div class="address-vice">{{item.province}} {{item.city}} {{item.area}} {{item.address}}</div>
|
||||
</van-radio>
|
||||
<div slot="right-icon" @click="editAddress(item.address_id)"><van-icon name="edit" /></div>
|
||||
</van-cell>
|
||||
</van-radio-group>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import utils from '../utils';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
lists: { type: Array, required: true },
|
||||
selectedId:{type: Number, default: 0}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
address_id: 0
|
||||
};
|
||||
},
|
||||
mouted() {
|
||||
if(this.selectedId>0){
|
||||
this.address_id = this.selectedId
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onChange(idx) {
|
||||
utils.log(idx)
|
||||
//this.$emit('pick',this.lists[idx])
|
||||
},
|
||||
setAddress(idx) {
|
||||
this.$emit('pick',this.lists[idx])
|
||||
},
|
||||
editAddress(id) {
|
||||
this.$router.push('/member/address/detail?id='+id)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.address-item {
|
||||
.address-name {
|
||||
font-size: 16px;
|
||||
}
|
||||
.address-vice {
|
||||
font-size: 13px;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,145 @@
|
|||
<template>
|
||||
<div ref="listRoot">
|
||||
<van-grid class="goods-list" :column-num="columnNum" :gutter="gutter" :border="false">
|
||||
<van-grid-item v-for="goods in lists" :key="goods.id" :to="'/credit/detail/'+goods.id">
|
||||
<div class="goods-item" :style="'width:'+itemSize+'px'">
|
||||
<img fit="scale-down" :width="itemSize" :height="itemSize" v-lazy="goods.image" />
|
||||
<h4 class="card-title van-multi-ellipsis--l2">{{goods.title}}</h4>
|
||||
<div class="prodinfo">
|
||||
<div class="price">{{coculate(goods, percent, credit_rate)}} + {{credit(goods, percent, credit_rate)}}<van-icon name="diamond-o"></van-icon></div>
|
||||
<div class="buybtn">
|
||||
<van-icon name="cart-o"></van-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-grid-item>
|
||||
</van-grid>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props: {
|
||||
lists: { type: Array, required: true },
|
||||
gutter: { type: Number, default: 10 },
|
||||
boxWidth: { type: Number, default: 0 },
|
||||
columnNum: { type: Number, default: 2 }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
origWidth:0
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
itemSize() {
|
||||
let width = this.boxWidth > 0 ?
|
||||
this.boxWidth :
|
||||
this.origWidth;
|
||||
if (width > 0) {
|
||||
return (
|
||||
(width -
|
||||
(this.columnNum + 1) * this.gutter) /
|
||||
this.columnNum
|
||||
);
|
||||
}
|
||||
return 200;
|
||||
},
|
||||
credit_rate() {
|
||||
if(!this.$store.state.config){
|
||||
return 1;
|
||||
}
|
||||
if(!this.$store.state.config.credit_rate){
|
||||
return 1;
|
||||
}
|
||||
return this.$store.state.config.credit_rate
|
||||
},
|
||||
percent() {
|
||||
if(!this.$store.state.config){
|
||||
return 0;
|
||||
}
|
||||
if(!this.$store.state.config.deduction){
|
||||
return 0;
|
||||
}
|
||||
return this.$store.state.config.deduction
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.origWidth = this.$refs.listRoot.offsetWidth;
|
||||
},
|
||||
methods: {
|
||||
coculate(goods, percent, credit_rate) {
|
||||
if(goods.credit_rate){
|
||||
credit_rate = goods.credit_rate
|
||||
}
|
||||
return goods.price - Math.round(this.credit(goods, percent, credit_rate)*100/credit_rate)*0.01
|
||||
},
|
||||
credit(goods, percent, credit_rate) {
|
||||
if(goods.credit_rate){
|
||||
credit_rate = goods.credit_rate
|
||||
}
|
||||
return Math.round(goods.price*percent*0.01*credit_rate)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.goods-list{
|
||||
.van-grid-item{
|
||||
.van-grid-item__content{
|
||||
padding:0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.goods-item {
|
||||
background: #fff;
|
||||
border-radius:5px;
|
||||
overflow: hidden;
|
||||
|
||||
.card-title {
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
padding:0 5px;
|
||||
box-sizing: border-box;
|
||||
margin:5px 0;
|
||||
width: 100%;
|
||||
}
|
||||
.prodinfo{
|
||||
display:flex;
|
||||
flex-direction: row;
|
||||
line-height:32px;
|
||||
.price{
|
||||
flex:1;
|
||||
color:#b18856;
|
||||
font-size:14px;
|
||||
width:40%;
|
||||
font-weight:bold;
|
||||
white-space: nowrap;
|
||||
&:before{
|
||||
content:"¥";
|
||||
font-size:10px;
|
||||
}
|
||||
.van-icon{
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
.buybtn{
|
||||
padding-top:5px;
|
||||
padding-right:5px;
|
||||
}
|
||||
}
|
||||
.my-btn{
|
||||
flex:0 0 80px;
|
||||
border:0;
|
||||
background:url(/static/home/img_fillet_rectangle_three.png) center center no-repeat;
|
||||
color:#fff;
|
||||
background-size:contain;
|
||||
line-height:32px;
|
||||
height:32px;
|
||||
width: 80px;
|
||||
.van-icon{
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
|
@ -0,0 +1,50 @@
|
|||
<template>
|
||||
<div class="info-block">
|
||||
<div v-if="title != ''" class="info-head">
|
||||
<div class="info-head-text">{{title}}</div>
|
||||
</div>
|
||||
<slot name="header"></slot>
|
||||
<div class="info-content">
|
||||
<slot />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props: {
|
||||
title: { type: String, default: '' }
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.info-block{
|
||||
border-radius:5px;
|
||||
background:#fff;
|
||||
box-shadow: 1px 1px 5px 2px rgba(0,0,0,.02);
|
||||
.info-head{
|
||||
padding-top:20px;
|
||||
.info-head-text{
|
||||
background:url(/static/home/img_fillet_rectangle.png) right center no-repeat;
|
||||
background-size:cover;
|
||||
line-height: 2em;
|
||||
color: #fff;
|
||||
text-indent: 1em;
|
||||
padding-right:1.5em;
|
||||
float: left;
|
||||
}
|
||||
&:after{
|
||||
content:"";
|
||||
display: block;
|
||||
height:0;
|
||||
clear:both;
|
||||
}
|
||||
}
|
||||
.info-content{
|
||||
padding:20px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,119 @@
|
|||
<template>
|
||||
<div ref="listRoot">
|
||||
<van-grid class="product-list" :column-num="columnNum" :gutter="gutter" :border="false">
|
||||
<van-grid-item v-for="product in lists" :key="product.id" :to="'/product/detail/'+product.id">
|
||||
<div class="product-item" :style="{width:itemSize+'px'}">
|
||||
<img fit="scale-down" :width="itemSize" :height="itemSize" v-lazy="product.image" />
|
||||
<h4 class="card-title van-ellipsis">{{product.title}}</h4>
|
||||
<div class="prodinfo">
|
||||
<div class="price-group">
|
||||
<div class="price">{{product.min_price}}</div>
|
||||
</div>
|
||||
<van-button class="my-btn"><van-icon name="cart-o"></van-icon></van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-grid-item>
|
||||
</van-grid>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
export default {
|
||||
props: {
|
||||
lists: { type: Array, required: true },
|
||||
gutter: { type: Number, default: 10 },
|
||||
boxWidth: { type: Number, default: 0 },
|
||||
columnNum: { type: Number, default: 2 }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
origWidth:0
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
itemSize() {
|
||||
let width = this.boxWidth > 0 ?
|
||||
this.boxWidth :
|
||||
this.origWidth;
|
||||
if (width > 0) {
|
||||
return (
|
||||
(width -
|
||||
(this.columnNum + 1) * this.gutter) /
|
||||
this.columnNum
|
||||
);
|
||||
}
|
||||
return 200;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
//utils.log(this.$refs.listRoot)
|
||||
this.origWidth = this.$refs.listRoot.offsetWidth;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.product-list{
|
||||
.van-grid-item{
|
||||
.van-grid-item__content{
|
||||
padding:0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.product-item {
|
||||
background: #fff;
|
||||
border-radius:5px;
|
||||
overflow: hidden;
|
||||
|
||||
.card-title {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
margin: 5px;
|
||||
}
|
||||
.prodinfo{
|
||||
display:flex;
|
||||
flex-direction: row;
|
||||
line-height:32px;
|
||||
.price-group{
|
||||
flex:1;
|
||||
}
|
||||
.price{
|
||||
color:#b18856;
|
||||
font-size:16px;
|
||||
line-height: 40px;
|
||||
width:40%;
|
||||
font-weight:bold;
|
||||
white-space: nowrap;
|
||||
&:before{
|
||||
content:"¥";
|
||||
font-size:10px;
|
||||
}
|
||||
}
|
||||
.market-price{
|
||||
color:#999999;
|
||||
font-size:12px;
|
||||
line-height: 14px;
|
||||
width:10%;
|
||||
white-space: nowrap;
|
||||
text-align: left;
|
||||
text-decoration: line-through;
|
||||
&:before{
|
||||
content:"¥";
|
||||
font-size:8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.my-btn{
|
||||
flex:0 0 80px;
|
||||
border:0;
|
||||
background-size:contain;
|
||||
line-height:32px;
|
||||
height:32px;
|
||||
width: 80px;
|
||||
.van-icon{
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
|
@ -0,0 +1,317 @@
|
|||
<template>
|
||||
<div class="register">
|
||||
<div class="banner">
|
||||
<van-swipe :autoplay="3000">
|
||||
<van-swipe-item v-for="(image, index) in banners" :key="index" @click="gotoUrl(image.url)">
|
||||
<van-image :src="image.image" fit="cover" />
|
||||
</van-swipe-item>
|
||||
</van-swipe>
|
||||
</div>
|
||||
<div class="register-form">
|
||||
<van-cell-group>
|
||||
<van-field v-model="nickname" left-icon="contact" placeholder="请填写昵称" />
|
||||
<van-field v-model="mobile" left-icon="phone-o" placeholder="请输入手机号" />
|
||||
<van-field v-model="smsCode" center clearable left-icon="passed" placeholder="请输入短信验证码">
|
||||
<van-button slot="button" size="small" :disabled="iscounting > 0" type="info" @click="sendSMS(mobile)">发送验证码<span v-if="iscounting>0">({{iscounting}})</span></van-button>
|
||||
</van-field>
|
||||
<van-field v-model="password" left-icon="bag-o" placeholder="请填写密码" />
|
||||
<van-cell icon="location-o" is-link @click="pickAddress" :value="areas" />
|
||||
</van-cell-group>
|
||||
<div class="submit-btn">
|
||||
<van-button type="danger" size="large" @click="bindMobile">立即注册</van-button>
|
||||
<van-button class="margin-top" type="default" block @click="onCloseRegister">暂不注册</van-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-popup v-model="showAddressPicker" position="bottom">
|
||||
<van-picker
|
||||
ref="addPicker"
|
||||
:loading="addressLoading"
|
||||
:show-toolbar="true"
|
||||
:columns="addressColumns"
|
||||
@cancel="areaCancel"
|
||||
@change="areaChange"
|
||||
@confirm="setAddress"
|
||||
/>
|
||||
</van-popup>
|
||||
<van-popup class="transbackground" :close-on-click-overlay="false" v-model="showRewardSend">
|
||||
<div class="popimgbox">
|
||||
<van-image
|
||||
width="20rem"
|
||||
height="20rem"
|
||||
fit="contain"
|
||||
:src="rewardImage"
|
||||
@click="hideRewardSend"
|
||||
/>
|
||||
</div>
|
||||
</van-popup>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import utils from '../utils';
|
||||
|
||||
|
||||
let areaList = null;
|
||||
let areaTree = {};
|
||||
let loaded = false;
|
||||
let areaDelay = 0;
|
||||
let interval=0;
|
||||
export default {
|
||||
props: {
|
||||
lists: { type: Array }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
banners:[],
|
||||
nickname:'',
|
||||
smsCode: "",
|
||||
mobile: "",
|
||||
password: "",
|
||||
pickedAreas: [],
|
||||
iscounting:0,
|
||||
addressLoading: true,
|
||||
showAddressPicker: false,
|
||||
addressColumns: [
|
||||
{
|
||||
values: [],
|
||||
defaultIndex: 0
|
||||
},
|
||||
{
|
||||
values: [],
|
||||
defaultIndex: 0
|
||||
},
|
||||
{
|
||||
values: [],
|
||||
defaultIndex: 0
|
||||
}
|
||||
],
|
||||
showRewardSend: false,
|
||||
rewardImage: '/static/red-packet.png',
|
||||
isSubmiting: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
member() {
|
||||
return this.$store.state.userinfo;
|
||||
},
|
||||
areas() {
|
||||
let vals = this.pickedAreas;
|
||||
return vals.length > 0 ? vals.join("/") : "请选择地区";
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.loadData();
|
||||
interval = setInterval(()=>{
|
||||
if(this.iscounting>0){
|
||||
this.iscounting -= 1;
|
||||
}
|
||||
if(this.member && this.member.nickname && !this.nickname){
|
||||
this.nickname = this.member.nickname.substring(0,8)
|
||||
}
|
||||
},1000);
|
||||
},
|
||||
destroyed() {
|
||||
loaded = false;
|
||||
areaList = null;
|
||||
areaTree = {};
|
||||
clearInterval(interval)
|
||||
},
|
||||
methods: {
|
||||
loadData() {
|
||||
this.$api.post('common/advs',{flag:'register'}).then(json=>{
|
||||
this.banners = utils.fixListImage(json.data);
|
||||
})
|
||||
},
|
||||
closeRegister(){
|
||||
this.$store.commit('setRegisterState',0)
|
||||
},
|
||||
loadAddress() {
|
||||
loaded = true;
|
||||
axios
|
||||
.get("static/area.json", { baseURL: "/" })
|
||||
.then(res => {
|
||||
areaList = res.data;
|
||||
this.initAddress();
|
||||
this.addressLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
//console.log(err)
|
||||
this.$toast.fail("地区信息加载失败");
|
||||
loaded = false;
|
||||
});
|
||||
},
|
||||
initAddress() {
|
||||
areaTree = utils.sortAddressTree(areaList);
|
||||
|
||||
this.$refs.addPicker.setColumnValues(0, areaTree["00"]);
|
||||
|
||||
const areas = [];
|
||||
if (this.member.province && areaTree[this.member.province]) {
|
||||
this.$refs.addPicker.setColumnValue(0, this.member.province);
|
||||
}
|
||||
|
||||
let province = this.$refs.addPicker.getColumnValue(0);
|
||||
if (province && areaTree[province]) {
|
||||
this.$refs.addPicker.setColumnValues(1, areaTree[province]);
|
||||
areas.push(province)
|
||||
}
|
||||
if (this.member.city) {
|
||||
this.$refs.addPicker.setColumnValue(1, this.member.city);
|
||||
}
|
||||
let city = this.$refs.addPicker.getColumnValue(1);
|
||||
if (city && areaTree[city]) {
|
||||
this.$refs.addPicker.setColumnValues(2, areaTree[city]);
|
||||
areas.push(city)
|
||||
}else{
|
||||
this.$refs.addPicker.setColumnValues(2, []);
|
||||
}
|
||||
if (this.member.county) {
|
||||
this.$refs.addPicker.setColumnValue(2, this.member.county);
|
||||
areas.push(this.member.county)
|
||||
}
|
||||
this.pickedAreas = areas;
|
||||
},
|
||||
areaCancel() {
|
||||
this.showAddressPicker = false;
|
||||
},
|
||||
pickAddress() {
|
||||
this.showAddressPicker = true;
|
||||
if (!loaded) {
|
||||
this.loadAddress();
|
||||
}
|
||||
},
|
||||
areaChange(picker, values, idx) {
|
||||
if (!loaded) return;
|
||||
clearTimeout(areaDelay);
|
||||
areaDelay = setTimeout(() => {
|
||||
if (idx < 1 && areaTree[values[0]]) {
|
||||
picker.setColumnValues(1, areaTree[values[0]]);
|
||||
}
|
||||
if (idx < 2 && areaTree[values[1]]) {
|
||||
picker.setColumnValues(2, areaTree[values[1]]);
|
||||
}
|
||||
}, 400);
|
||||
},
|
||||
setAddress(values) {
|
||||
this.showAddressPicker = false;
|
||||
this.pickedAreas = values;
|
||||
},
|
||||
bindMobile() {
|
||||
if(this.isSubmiting)return;
|
||||
if(!this.nickname){
|
||||
this.$toast.fail('请填写昵称')
|
||||
return
|
||||
}
|
||||
if(!this.mobile){
|
||||
this.$toast.fail('请填写手机号码')
|
||||
return
|
||||
}
|
||||
if(this.member.mobile_bind && this.mobile == this.member.mobile){
|
||||
this.$toast.fail('手机号码未变更')
|
||||
return
|
||||
}
|
||||
if(!this.mobile.match(/^1[3-9]\d{9}$/)){
|
||||
this.$toast.fail('手机号码格式错误')
|
||||
return
|
||||
}
|
||||
if(!this.smsCode){
|
||||
this.$toast.fail('请填写验证码')
|
||||
return
|
||||
}
|
||||
if(!this.password){
|
||||
this.$toast.fail('请填写密码')
|
||||
return
|
||||
}
|
||||
if(!this.pickedAreas.length){
|
||||
//this.$toast.fail('请选择地区')
|
||||
//return
|
||||
}
|
||||
this.isSubmiting=true
|
||||
this.$api.post('member/mobile_register',
|
||||
{
|
||||
nickname:this.nickname,
|
||||
mobile:this.mobile,
|
||||
code:this.smsCode,
|
||||
password:this.password,
|
||||
areas: this.pickedAreas.join('/')
|
||||
}).then(result=>{
|
||||
this.isSubmiting=false
|
||||
this.$toast.success(result.msg||'注册成功');
|
||||
|
||||
if(result.data && result.data.is_set_agent){
|
||||
if(result.data.image){
|
||||
this.rewardImage = utils.fixImageUrl(result.data.image)
|
||||
}
|
||||
this.showRewardSend=true
|
||||
}else{
|
||||
this.$store.dispatch("updateUserinfo");
|
||||
this.$store.commit('setRegisterState',0)
|
||||
}
|
||||
}).catch(err=>{
|
||||
this.isSubmiting=false
|
||||
this.$toast.fail(err.msg||'注册失败');
|
||||
this.smsCode = ''
|
||||
})
|
||||
},
|
||||
hideRewardSend(){
|
||||
this.showRewardSend = false
|
||||
|
||||
this.$store.dispatch("updateUserinfo");
|
||||
this.$store.commit('setRegisterState',0)
|
||||
this.$router.push('/member/agent')
|
||||
},
|
||||
sendSMS(mobile) {
|
||||
if(!mobile){
|
||||
this.$toast.fail('请填写手机号码')
|
||||
return
|
||||
}
|
||||
if(!mobile.match(/^1[3-9]\d{9}$/)){
|
||||
this.$toast.fail('手机号码格式错误')
|
||||
return
|
||||
}
|
||||
this.$api.post('member/smscode',{mobile:mobile}).then(result=>{
|
||||
this.$toast.success(result.msg||'发送成功');
|
||||
this.iscounting = 60
|
||||
}).catch(err=>{
|
||||
this.$toast.fail(err.msg||'发送失败');
|
||||
})
|
||||
},
|
||||
onCloseRegister(){
|
||||
this.$store.commit('setRegisterState',0)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scpoed>
|
||||
.register{
|
||||
background: rgba(0,0,0,.5);
|
||||
.banner{
|
||||
min-height: 100px;
|
||||
}
|
||||
.register-form{
|
||||
margin:30px 20px;
|
||||
padding: 10px;
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
.submit-btn{
|
||||
margin:20px 0;
|
||||
width:auto;
|
||||
}
|
||||
}
|
||||
|
||||
.van-cell-group{
|
||||
.van-cell{
|
||||
border:0;
|
||||
border-radius:5px;
|
||||
background:#eee;
|
||||
margin:10px 0;
|
||||
}
|
||||
}
|
||||
.popimgbox,.transbackground{
|
||||
background:transparent;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,37 @@
|
|||
<template>
|
||||
<!-- symbol方式引用彩色图标,就得这么写 -->
|
||||
<!-- :class="iconClass" ===》图标的基础样式,一般用于规定大小之类的,可以不要
|
||||
<use :xlink:href="whatName"></use> ===》设置图标名称,不同名称的图标不一样
|
||||
-->
|
||||
<svg class="icon" :class="iconClass" aria-hidden="true">
|
||||
<use :xlink:href="whatName"></use>
|
||||
</svg>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "cjIcon",
|
||||
// 传入组件的参数
|
||||
props: {
|
||||
// 基础类名 一般为icon、iconfont之类的,用于规定图标基础大小
|
||||
iconClass: String,
|
||||
// 图标名称
|
||||
iconName: String,
|
||||
},
|
||||
computed: {
|
||||
// 通过计算属性,给传进来的图表名前面加上 # ,然后显示在上面
|
||||
whatName() {
|
||||
return `#${this.iconName}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.icon {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
vertical-align: -0.15em;
|
||||
fill: currentColor;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
const BASE_URL = process.env.NODE_ENV == 'production' ?
|
||||
'http://cms.qisosoft.net/' :
|
||||
'http://cms.test.com/';
|
||||
|
||||
const USER_AGENT = navigator.userAgent;
|
||||
|
||||
export default {
|
||||
root: process.env.NODE_ENV == 'production' ?'/':'/',
|
||||
|
||||
debugLevel: process.env.NODE_ENV == 'production' ? 2 : 0,
|
||||
|
||||
version: '20200624',
|
||||
|
||||
server : '/api/',
|
||||
|
||||
imgServer : BASE_URL,
|
||||
|
||||
appid : 'web',
|
||||
|
||||
wxid: 'uH7bPMGXHr',
|
||||
|
||||
isWechat: USER_AGENT.indexOf('MicroMessenger')>-1,
|
||||
|
||||
signPackageUrl: '',
|
||||
signPackage: null,
|
||||
|
||||
mobileRegexp: /^1[3-9]\d{9}$/,
|
||||
|
||||
emailRegexp: /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
|
||||
};
|
|
@ -0,0 +1,13 @@
|
|||
import permission from './permission'
|
||||
|
||||
const install = function(Vue) {
|
||||
Vue.directive('permission', permission)
|
||||
}
|
||||
|
||||
if (window.Vue) {
|
||||
window['permission'] = permission
|
||||
Vue.use(install); // eslint-disable-line
|
||||
}
|
||||
|
||||
permission.install = install
|
||||
export default permission
|
|
@ -0,0 +1,47 @@
|
|||
import store from '@/store'
|
||||
import { Notification } from 'element-ui'
|
||||
import { i18n } from '@/lang/index';
|
||||
|
||||
export default {
|
||||
inserted(el, binding, vnode) {
|
||||
console.log(vnode);
|
||||
const { value } = binding
|
||||
// const roles = store.getters && store.getters.roles
|
||||
const roles = store.getters && store.getters.butPermission
|
||||
|
||||
// console.log(store)
|
||||
if (value && value instanceof Array && value.length > 0) {
|
||||
const permissionRoles = value
|
||||
// console.log(value)
|
||||
// console.log(permissionRoles);
|
||||
const hasPermission = roles.some(role => {
|
||||
return permissionRoles.includes(role)
|
||||
})
|
||||
|
||||
if (!hasPermission) {
|
||||
// console.log(hasPermission);
|
||||
// el.parentNode && el.parentNode.removeChild(el)
|
||||
|
||||
// store.state.user.permissionFlag[permissionRoles] = true
|
||||
// $(el).wrap(
|
||||
// "<div style='cursor:not-allowed;display:inline-block'></div>"
|
||||
// )
|
||||
el.style.pointerEvents = 'none'
|
||||
el.style.color = '#e5e3e3'
|
||||
el.addEventListener('click', () => {
|
||||
Notification({
|
||||
title: i18n.t('title.fail'),
|
||||
message: i18n.t('permission'),
|
||||
type: 'error',
|
||||
duration: 3000
|
||||
})
|
||||
})
|
||||
}
|
||||
// else {
|
||||
// store.state.user.permissionFlag[permissionRoles] = false
|
||||
// }
|
||||
} else {
|
||||
throw new Error(`need roles! Like v-permission="['admin','editor']"`)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
import waves from './waves'
|
||||
|
||||
const install = function(Vue) {
|
||||
Vue.directive('waves', waves)
|
||||
}
|
||||
|
||||
if (window.Vue) {
|
||||
window.waves = waves
|
||||
Vue.use(install); // eslint-disable-line
|
||||
}
|
||||
|
||||
waves.install = install
|
||||
export default waves
|
|
@ -0,0 +1,26 @@
|
|||
.waves-ripple {
|
||||
position: absolute;
|
||||
border-radius: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.15);
|
||||
background-clip: padding-box;
|
||||
pointer-events: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-transform: scale(0);
|
||||
-ms-transform: scale(0);
|
||||
transform: scale(0);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.waves-ripple.z-active {
|
||||
opacity: 0;
|
||||
-webkit-transform: scale(2);
|
||||
-ms-transform: scale(2);
|
||||
transform: scale(2);
|
||||
-webkit-transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out;
|
||||
transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out;
|
||||
transition: opacity 1.2s ease-out, transform 0.6s ease-out;
|
||||
transition: opacity 1.2s ease-out, transform 0.6s ease-out, -webkit-transform 0.6s ease-out;
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
import './waves.css'
|
||||
|
||||
const context = '@@wavesContext'
|
||||
|
||||
function handleClick(el, binding) {
|
||||
function handle(e) {
|
||||
const customOpts = Object.assign({}, binding.value)
|
||||
const opts = Object.assign(
|
||||
{
|
||||
ele: el, // 波纹作用元素
|
||||
type: 'hit', // hit 点击位置扩散 center中心点扩展
|
||||
color: 'rgba(0, 0, 0, 0.15)' // 波纹颜色
|
||||
},
|
||||
customOpts
|
||||
)
|
||||
const target = opts.ele
|
||||
if (target) {
|
||||
target.style.position = 'relative'
|
||||
target.style.overflow = 'hidden'
|
||||
const rect = target.getBoundingClientRect()
|
||||
let ripple = target.querySelector('.waves-ripple')
|
||||
if (!ripple) {
|
||||
ripple = document.createElement('span')
|
||||
ripple.className = 'waves-ripple'
|
||||
ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px'
|
||||
target.appendChild(ripple)
|
||||
} else {
|
||||
ripple.className = 'waves-ripple'
|
||||
}
|
||||
switch (opts.type) {
|
||||
case 'center':
|
||||
ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + 'px'
|
||||
ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + 'px'
|
||||
break
|
||||
default:
|
||||
ripple.style.top =
|
||||
(e.pageY - rect.top - ripple.offsetHeight / 2 - document.documentElement.scrollTop ||
|
||||
document.body.scrollTop) + 'px'
|
||||
ripple.style.left =
|
||||
(e.pageX - rect.left - ripple.offsetWidth / 2 - document.documentElement.scrollLeft ||
|
||||
document.body.scrollLeft) + 'px'
|
||||
}
|
||||
ripple.style.backgroundColor = opts.color
|
||||
ripple.className = 'waves-ripple z-active'
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
if (!el[context]) {
|
||||
el[context] = {
|
||||
removeHandle: handle
|
||||
}
|
||||
} else {
|
||||
el[context].removeHandle = handle
|
||||
}
|
||||
|
||||
return handle
|
||||
}
|
||||
|
||||
export default {
|
||||
bind(el, binding) {
|
||||
el.addEventListener('click', handleClick(el, binding), false)
|
||||
},
|
||||
update(el, binding) {
|
||||
el.removeEventListener('click', el[context].removeHandle, false)
|
||||
el.addEventListener('click', handleClick(el, binding), false)
|
||||
},
|
||||
unbind(el) {
|
||||
el.removeEventListener('click', el[context].removeHandle, false)
|
||||
el[context] = null
|
||||
delete el[context]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
|
||||
import utils from "./utils";
|
||||
|
||||
const transGoods = (product)=>{
|
||||
|
||||
product.image=utils.fixImageUrl(product.image);
|
||||
product.picture=product.image;
|
||||
|
||||
product.has_spec = utils.countObject( product.spec_data ) > 0;
|
||||
product.has_prop = utils.countObject( product.prop_data ) > 0;
|
||||
product.content = utils.parseHtml(product.content)
|
||||
|
||||
if(product.levels && product.levels instanceof Array){
|
||||
product.levels = product.levels.map(item=>{
|
||||
return parseInt(item)
|
||||
})
|
||||
}
|
||||
|
||||
return product;
|
||||
}
|
||||
|
||||
const transSku = (skus, product)=>{
|
||||
var sku={
|
||||
tree:[],
|
||||
list:[],
|
||||
price: product.min_price,
|
||||
stock_num: product.storage, // 商品总库存
|
||||
collection_id: 0,
|
||||
none_sku: true,
|
||||
messages:[],
|
||||
hide_stock: false
|
||||
}
|
||||
if(skus && skus.length > 0){
|
||||
skus = utils.fixListImage(skus)
|
||||
skus.forEach(item=>{
|
||||
var skuitem={
|
||||
id: item.sku_id,
|
||||
price: item.price * 100,
|
||||
stock_num: item.storage
|
||||
}
|
||||
if(item.specs){
|
||||
for(var k in item.specs){
|
||||
skuitem[k]=item.specs[k];
|
||||
}
|
||||
}
|
||||
sku.list.push(skuitem)
|
||||
})
|
||||
if(product.has_spec){
|
||||
sku.none_sku=false;
|
||||
for(var k in product.spec_data){
|
||||
var treeItem={
|
||||
k:product.spec_data[k].title,
|
||||
k_s:k,
|
||||
v:product.spec_data[k].data.map(dataItem=>{
|
||||
return {
|
||||
id: dataItem,
|
||||
name: dataItem
|
||||
}
|
||||
})
|
||||
}
|
||||
sku.tree.push(treeItem);
|
||||
}
|
||||
|
||||
}else{
|
||||
sku.collection_id=skus[0].sku_id;
|
||||
sku.price = parseFloat(skus[0].price);
|
||||
sku.none_sku=true;
|
||||
}
|
||||
}
|
||||
utils.log(sku,'debug')
|
||||
return sku;
|
||||
}
|
||||
|
||||
export default {
|
||||
transGoods:transGoods,
|
||||
transSku:transSku
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
export default {
|
||||
credit:'积分',
|
||||
money:'余额',
|
||||
reward:'佣金'
|
||||
}
|
|
@ -0,0 +1,617 @@
|
|||
export default {
|
||||
name: 'HJ-Intelligent Energy Management System',
|
||||
deskName: 'HJ-Intelligent Energy Management Console',
|
||||
// 通用
|
||||
currency: {
|
||||
staging: 'Staging',
|
||||
home: 'Home',
|
||||
settings: 'Settings',
|
||||
alarm: 'Alarm',
|
||||
device: 'Device',
|
||||
map: 'Map',
|
||||
video: 'Live',
|
||||
playback: 'Playback',
|
||||
record: 'Snap Record',
|
||||
},
|
||||
title: {
|
||||
success: 'Succese',
|
||||
warning: 'Warning',
|
||||
error: 'Error',
|
||||
fail: 'Failure',
|
||||
pointOut: 'Prompt', // Prompt/Hint/Information
|
||||
delete: 'Remove',
|
||||
cancel: 'Cancel',
|
||||
confirm: 'Confirm',
|
||||
addSuccess: 'Add Successfully',
|
||||
editSuccess: 'Edit Successfully',
|
||||
deleteSuccess: 'Remove Successfully',
|
||||
setUpSuccess: 'Set Successfully',
|
||||
releaseSuccess: 'Release Success',
|
||||
notBeen: 'The function has not been launched yet~',
|
||||
signOut: 'Confirm logout?',
|
||||
oneData: 'Select a data record please',
|
||||
delPointOut: 'Please comfirm to remove that route permanently?',
|
||||
delPointOutDeviceType: 'Please comfirm to remove that device information permanently?',
|
||||
delPointOutDepartment: 'Please comfirm to remove that that area information permanently?',
|
||||
delPointOutSite: 'Please comfirm to remove that site information permanently?',
|
||||
delPointOutRole: 'Please comfirm to remove that role information permanently?',
|
||||
delPointOutUser: 'Please comfirm to remove that user information permanently?',
|
||||
publish: 'Whether to publish',
|
||||
delPointOutWork: 'Please comfirm to remove that WorkCard information permanently?',
|
||||
delPointOutPatrol: 'Please comfirm to remove that Inspect information permanently?',
|
||||
fullTime: 'Select Full Time',
|
||||
timeContrast: 'The start time should be less than the end time',
|
||||
relistTip: 'You have been logged out, you can cancel staying on this page or log in again',
|
||||
},
|
||||
// 通用按钮
|
||||
btn: {
|
||||
save: 'Save',
|
||||
cancel: 'Cancel',
|
||||
define: 'OK',
|
||||
search: 'Search',
|
||||
resetting: 'Reset',
|
||||
add: 'Add',
|
||||
leadingOut: 'Export',
|
||||
delete: 'Remove',
|
||||
addDevice: 'New Device',
|
||||
relist: 'Relist',
|
||||
},
|
||||
// 表单
|
||||
table: {
|
||||
index: '',
|
||||
operate: 'Operation',
|
||||
moreOperate: 'More',
|
||||
edit: 'Edit',
|
||||
create: 'New',
|
||||
delete: 'Remove',
|
||||
change: 'Update',
|
||||
check: 'Check',
|
||||
release: 'Release',
|
||||
checkAll: 'CheckAll',
|
||||
optional: 'Options',
|
||||
selected: 'Selected',
|
||||
longitude: 'Longitude',
|
||||
latitude: 'Latitude',
|
||||
address: 'Address',
|
||||
datetime: 'choose a date',
|
||||
noMore: `There's no more`,
|
||||
notMandatory: '(Not mandatory)',
|
||||
},
|
||||
// 通用类型
|
||||
type: {
|
||||
fu: 'parent',
|
||||
zi: 'Child',
|
||||
yes: 'Yes',
|
||||
no: 'No',
|
||||
open: 'Switch On',
|
||||
close: 'Switch Off',
|
||||
cache: 'Cache',
|
||||
noCache: 'no Cache',
|
||||
read: 'Read',
|
||||
write: 'Read',
|
||||
dispose: 'Configure',
|
||||
notHave: 'none', // none/no,
|
||||
processed: 'Processed',
|
||||
processing: 'Processing',
|
||||
untreated: 'Untreated',
|
||||
Initiate: 'Initiate',
|
||||
},
|
||||
// 校验
|
||||
validate: {
|
||||
phone: 'Please input the mobile phone number',
|
||||
phoneFormat: 'incorrect format of mobile phone number',
|
||||
pswLimit: 'please Enter a 6-8 digit and alpha passcode',
|
||||
pswConfirm: 'please confirm the passcode',
|
||||
pswError: 'mismached passcode',
|
||||
limitValue: 'please enter the lower limit',
|
||||
limitValueFormat: 'The lower limit cannot be greater than the upper limit',
|
||||
long1and20: 'Between 1 and 20 characters in length',
|
||||
},
|
||||
// 图片上传
|
||||
photoUp: {
|
||||
pDel: 'please remove the old image first!',
|
||||
format: 'Error image format!',
|
||||
size: 'image size can notHave greater than 5 MB!',
|
||||
},
|
||||
// 通用查询
|
||||
listQuery: {
|
||||
deptId: 'Area',
|
||||
siteCode: 'Site',
|
||||
cabinetCode: 'Cabinet',
|
||||
},
|
||||
//登录模块语言
|
||||
login: {
|
||||
title: 'Welcome to login',
|
||||
username: 'User',
|
||||
password: 'Password',
|
||||
imageStr: 'Verification code',
|
||||
signOut: 'Logout',
|
||||
welcome: 'Welcome! ',
|
||||
login: 'Sign in', // Login
|
||||
logining: 'Logging in ...',
|
||||
desk: 'Management Console',
|
||||
replace: 'Next',
|
||||
},
|
||||
home: {
|
||||
hello: 'Hello',
|
||||
overview: 'Equipment Overview',
|
||||
notify: 'Notify',
|
||||
index: 'Home',
|
||||
gisMap: 'GIS Resource',
|
||||
cabinetList: 'Cabinet Lists',
|
||||
deviceManage: 'Device (Manage)',
|
||||
integrated: 'Cabinet',
|
||||
movingRing: 'FSU Module',
|
||||
insideCabinet: 'Devices in Cabinet',
|
||||
deviceType: 'Device Type',
|
||||
threshold: 'Threshold',
|
||||
area: 'Area',
|
||||
site: 'Sites',
|
||||
user: 'Users',
|
||||
role: 'Roles',
|
||||
menu: 'Menu',
|
||||
platformLog: 'Logging',
|
||||
operation: 'Maintenance',
|
||||
alarm: 'Alarm',
|
||||
deviceLog: 'Log',
|
||||
personal: 'Personal Info.',
|
||||
refresh: 'Refresh',
|
||||
close: 'Close',
|
||||
closeOthers: 'Close others',
|
||||
closeAll: 'Close all',
|
||||
onlineRate: 'Online Rate',
|
||||
devTotal: 'Total',
|
||||
devFaulty: 'Faulty',
|
||||
onlineQuantity: 'Online',
|
||||
offlineQuantity: 'Offline',
|
||||
devAlarm: 'Alarm',
|
||||
noNews: 'No new news',
|
||||
passEdit: 'Edit PassWord',
|
||||
},
|
||||
personal: {
|
||||
tasks: 'Personal tasks',
|
||||
completedOrder: 'Completed WorkCard',
|
||||
unfinishedOrders: 'Unfinished WorkCard',
|
||||
completedPatrol: 'Completed Inspect',
|
||||
unfinishedPatrol: 'Unfinished Inspect',
|
||||
rate: 'online rate',
|
||||
log: 'log',
|
||||
time: 'time',
|
||||
},
|
||||
// 设备
|
||||
device: {
|
||||
deviceId: 'Device ID',
|
||||
deviceCode: 'Device SN.',
|
||||
deviceName: 'Device Name',
|
||||
typeName: 'Device Type',
|
||||
typeCode: 'Type Code',
|
||||
cabinetId: 'Cabinet ID',
|
||||
cabinetType: 'Cabinet Type',
|
||||
cabinetType1: 'Single-Cabinet',
|
||||
cabinetType2: 'Double-Cabinet',
|
||||
data: 'Basic Information',
|
||||
device: 'Devices in Cabinet',
|
||||
// 综合柜
|
||||
assetNum: 'Asset Code.',
|
||||
serialNum: 'SN.',
|
||||
sysNum: 'System Code',
|
||||
installTime: 'Installation time',
|
||||
proTime: 'Production Date',
|
||||
photo: 'Photo',
|
||||
factory: 'Manufacturer',
|
||||
// 柜内设备
|
||||
cabinetCode: 'Cabinet',
|
||||
model: 'Model',
|
||||
director: 'Responsor',
|
||||
phone: 'Mobile',
|
||||
owner: 'Owner',
|
||||
// 动环模块
|
||||
online: 'Status',
|
||||
onLine: 'Online',
|
||||
outLine: 'Offline',
|
||||
rssi: 'RSSI',
|
||||
operator: 'Operator',
|
||||
software: 'Software',
|
||||
hardware: 'Hardware Info.',
|
||||
power: 'Power',
|
||||
network: 'Network',
|
||||
portCount: 'Interface count',
|
||||
company: 'Maintainer',
|
||||
agent: 'Personnel',
|
||||
agentPhone: 'Mobile',
|
||||
logonTime: 'Registration Date',
|
||||
host: 'IP Address',
|
||||
port: 'Port'
|
||||
|
||||
},
|
||||
// 设备详情
|
||||
deviceInfo: {
|
||||
switchInfo: 'Switch Info',
|
||||
noneDevice: 'None Device',
|
||||
teleadjusting: 'Tuning',
|
||||
telecommand: 'Telecommand',
|
||||
onOff: 'On/off',
|
||||
monitor: 'Monitor',
|
||||
},
|
||||
// 设备类型
|
||||
deviceType: {
|
||||
typeName: 'Device Type',
|
||||
typeCode: 'Type Code',
|
||||
icon: 'Icon',
|
||||
uploadIcon: 'Upload Icon',
|
||||
|
||||
addAType: 'Create root type',
|
||||
addSon: 'Create child type',
|
||||
delSon: 'Please remove child type first',
|
||||
},
|
||||
// 阀值管理页
|
||||
threshold: {
|
||||
parameterName: 'Parameter',
|
||||
setting: 'Threshold',
|
||||
paramType: 'Parameter type',
|
||||
paramType1: 'Anolog Signal',
|
||||
paramType2: 'Digital Signal',
|
||||
maxVal: 'Upper limit',
|
||||
minVal: 'Lower limit',
|
||||
alarm: 'Alarm value',
|
||||
timeGap: 'Interval(min)',
|
||||
alarmLevel: 'Alarm Level',
|
||||
one: 'Level-A',
|
||||
two: 'Level-B',
|
||||
three: 'Level-C',
|
||||
alarmInfo: 'Detail',
|
||||
},
|
||||
// 区域管理
|
||||
department: {
|
||||
deptName: 'Area',
|
||||
deptCode: 'Area code',
|
||||
deptType: 'Area type',
|
||||
deptPid: 'Parent area',
|
||||
province: 'Province',
|
||||
city: 'City',
|
||||
district: 'District',
|
||||
street: 'Street',
|
||||
},
|
||||
// 站点管理页
|
||||
site: {
|
||||
siteId: 'Site ID',
|
||||
siteName: 'Site name',
|
||||
siteCode: 'Site code',
|
||||
picture: 'Picture',
|
||||
createTime: 'Create time',
|
||||
director: 'Responsor',
|
||||
associated: 'Associated-device',
|
||||
addSite: 'Add site',
|
||||
},
|
||||
// 菜单管理页
|
||||
menu: {
|
||||
addToplevel: 'New Root item',
|
||||
addChild: 'New Child item',
|
||||
permissionName: 'Item name',
|
||||
permissionType: 'Permission',
|
||||
permissionNameEn: 'English name',
|
||||
path: 'Path',
|
||||
component: 'Component',
|
||||
icon: 'Icon',
|
||||
code: 'Authority code',
|
||||
buttonCode: 'Authority for button',
|
||||
alwaysShow: 'Visible',
|
||||
noCache: 'PageCache',
|
||||
route: 'Route-level',
|
||||
nameKey: 'Key-Name',
|
||||
oneData: 'One Record',
|
||||
},
|
||||
// 角色管理页
|
||||
role: {
|
||||
roleId: 'Role id',
|
||||
roleName: 'Role name',
|
||||
roleDescript: 'Role description',
|
||||
roleCode: 'Role Code',
|
||||
userName: 'User name',
|
||||
setResources: 'Resource',
|
||||
setWeb: 'Web Resource',
|
||||
setApp: 'APP resource',
|
||||
},
|
||||
// 用户管理页
|
||||
user: {
|
||||
user: 'User',
|
||||
userName: 'User name',
|
||||
nickName: 'Nick name',
|
||||
phone: 'Mobile',
|
||||
userType: 'User type',
|
||||
permissionLevel: 'Permission',
|
||||
remark: 'Memo',
|
||||
roleName: 'Role',
|
||||
enabled: 'Activation status',
|
||||
password: 'User password',
|
||||
pswAgain: 'Confirm',
|
||||
createRole: 'Please create a role first',
|
||||
admin: 'Normal',
|
||||
superAdmin: 'Super administator',
|
||||
},
|
||||
// 菜单类型
|
||||
permissionType: {
|
||||
list: 'list',
|
||||
menu: 'menu',
|
||||
button: 'button',
|
||||
joggle: 'interface',
|
||||
},
|
||||
// 平台日志
|
||||
platformLog: {
|
||||
userName: 'Operator',
|
||||
ip: 'IP address',
|
||||
createDate: 'Operare time',
|
||||
},
|
||||
// 机柜弹窗
|
||||
cabinet: {
|
||||
details: 'details',
|
||||
basicInfo: 'Basic', // Basic information
|
||||
installInfo: 'Install', // Install information
|
||||
moveDevice: 'FSU module',
|
||||
cabinetInfo: 'Cabinet information',
|
||||
history: 'History',
|
||||
more: 'More',
|
||||
info: {
|
||||
// 基本信息
|
||||
assetNum: 'Assst code',
|
||||
sysNum: 'System code',
|
||||
serialNum: 'SN.',
|
||||
factory: 'Manufacturer',
|
||||
proTime: 'Production date',
|
||||
// 安装信息
|
||||
longitude: 'Longitude',
|
||||
siteName: 'Site name',
|
||||
latitude: 'Latitude',
|
||||
siteCode: 'Site id',
|
||||
director: 'Responsor',
|
||||
address: 'Address',
|
||||
// 动环信息
|
||||
software: 'Software',
|
||||
imei: 'IMEI',
|
||||
operator: 'Operator',
|
||||
hardware: 'Hardware',
|
||||
imsi: 'IMSI',
|
||||
company: 'Maintainer',
|
||||
power: 'Power',
|
||||
logonTime: 'Registration time',
|
||||
agent: 'personnel',
|
||||
rssi: 'RSSI',
|
||||
network: 'Network Status',
|
||||
phone: 'Mobile',
|
||||
portCount: 'Interface count',
|
||||
online: 'Status',
|
||||
onLine: 'Online',
|
||||
outLine: 'Offline',
|
||||
},
|
||||
sensor: {
|
||||
deviceName: 'Device Name',
|
||||
model: 'Model',
|
||||
factory: 'Manufacturer',
|
||||
director: 'Responsor',
|
||||
phone: 'Mobile',
|
||||
owner: 'Owner',
|
||||
// 温湿度监控
|
||||
monitoring: 'Temperature & Humidity',
|
||||
temperature: 'Temperature',
|
||||
humidity: 'Humidity',
|
||||
status: 'Sensor Status',
|
||||
noData: 'No data',
|
||||
},
|
||||
UPS: {
|
||||
monitor: 'UPS monitoring',
|
||||
data1: 'Input Power voltage',
|
||||
data2: 'Power voltage',
|
||||
data3: 'Output Power voltage',
|
||||
data4: 'Load voltage', // Working voltage
|
||||
data5: 'Fault voltage',
|
||||
data6: 'Bypass Mode',
|
||||
data7: 'Ouput load',
|
||||
data8: 'UPS Fault',
|
||||
data9: 'Battery Voltage',
|
||||
data10: 'Model',
|
||||
data11: 'Battery load %',
|
||||
data12: 'UPS Mode',
|
||||
data13: 'Environment Temperature',
|
||||
data14: 'UPS Status',
|
||||
data15: 'Input power frequency',
|
||||
data16: 'Buzzer', // Alarm
|
||||
},
|
||||
battery: {
|
||||
monitor: 'Battery monitoring',
|
||||
data1: 'Measure Address',
|
||||
data2: 'Voltage',
|
||||
data3: 'Internal resistance',
|
||||
data4: 'Temperature',
|
||||
data5: 'Working state',
|
||||
data6: 'Battery charging',
|
||||
data7: 'Battery discharging',
|
||||
},
|
||||
powerSupply: {
|
||||
monitor: 'Power monitoring',
|
||||
voltage: 'Voltage',
|
||||
current: 'Current',
|
||||
activePower: 'Active Power',
|
||||
reactivePower: 'Reactive Power',
|
||||
apparentPower: 'Apparent Power',
|
||||
powerFactor: 'Power Factor',
|
||||
data1: 'A Phase',
|
||||
data2: 'B Phase',
|
||||
data3: 'C Phase',
|
||||
data4: 'A-Phase Voltage',
|
||||
data5: 'B-Phase Voltage',
|
||||
data6: 'C-Phase Voltage',
|
||||
data7: 'A-Phase Current',
|
||||
data8: 'B-Phase Current',
|
||||
data9: 'C-Phase Current',
|
||||
data10: 'A-Phase Active Power',
|
||||
data11: 'B-Phase Active Power',
|
||||
data12: 'C-Phase Active Power',
|
||||
data13: 'A-Phase Reactive Power',
|
||||
data14: 'B-Phase Reactive Power',
|
||||
data15: 'C-Phase Reactive Power',
|
||||
data16: 'A-Phase Apparent Power',
|
||||
data17: 'B-Phase Apparent Power',
|
||||
data18: 'C-Phase Apparent Power',
|
||||
data19: 'A-Phase Power Factor',
|
||||
data20: 'B-Phase Power Factor',
|
||||
data21: 'C-Phase Power Factor',
|
||||
data22: 'remote regulating',
|
||||
data23: 'On/oFF',
|
||||
},
|
||||
air: {
|
||||
data1: 'Status',
|
||||
data2: 'Upper Temperature',
|
||||
data3: 'lower Temperature',
|
||||
data4: 'Setting Temperature',
|
||||
data5: 'Upper current',
|
||||
data6: 'Lower current',
|
||||
data7: 'Current Current',
|
||||
data8: 'Temperature of air inlet',
|
||||
data9: 'Temperature of air outlet',
|
||||
data10: 'Apeed',
|
||||
data11: 'Low',
|
||||
data12: 'Middle',
|
||||
data13: 'High',
|
||||
data14: 'Mode',
|
||||
data15: 'Cooling',
|
||||
data16: 'Heating',
|
||||
data17: 'Fresh',
|
||||
},
|
||||
electric: {
|
||||
data1: 'branch',
|
||||
data2: 'voltage',
|
||||
data3: 'current',
|
||||
data4: 'Switch',
|
||||
data5: 'on',
|
||||
data6: 'off',
|
||||
},
|
||||
video: {
|
||||
data5: 'live',
|
||||
data6: 'playback',
|
||||
data7: 'PTZ',
|
||||
data1: 'Zoom',
|
||||
data2: 'focal length',
|
||||
data3: 'Aperture',
|
||||
},
|
||||
water: {
|
||||
monitor: 'monitoring',
|
||||
}
|
||||
},
|
||||
// 机柜列表
|
||||
cabinetList: {
|
||||
deviceCode: 'Code',
|
||||
typeName: 'Type',
|
||||
siteName: 'Site',
|
||||
serialNum: 'Site Code', // Site ID
|
||||
deptName: 'Area',
|
||||
},
|
||||
//告警
|
||||
alarm: {
|
||||
alarmInfo: 'Alarm Info.',
|
||||
alarmLevel: 'Alarm level',
|
||||
uploadTime: 'Alarm time',
|
||||
notification: 'Alarm notification',
|
||||
status: 'Alarm status',
|
||||
reset: 'reset',
|
||||
leve1: 'Level 1', // alarm
|
||||
leve2: 'Level 2', // alarm
|
||||
leve3: 'Level 3', // alarm
|
||||
normal: 'normal',
|
||||
fault: 'fault',
|
||||
on: 'on',
|
||||
off: 'off',
|
||||
yes: 'yes',
|
||||
no: 'no',
|
||||
},
|
||||
task: {
|
||||
unpublished: 'Unpublished',
|
||||
notStarted: 'NotStarted',
|
||||
inProgress: 'InProgress',
|
||||
suspend: 'Suspend',
|
||||
complete: 'Complete',
|
||||
failed: 'Failed',
|
||||
toBeAccepted: 'ToBeAccepted',
|
||||
timedOut: 'TimeOut',
|
||||
receive: 'Receive',
|
||||
release: 'Release',
|
||||
|
||||
install: 'Install',
|
||||
dismantle: 'Dismantle',
|
||||
fault: 'Fault',
|
||||
other: 'Other',
|
||||
|
||||
workOrder: 'WorkCard',
|
||||
patrol: 'Inspect',
|
||||
sonPatrol: 'Sub-task',
|
||||
workOrderName: 'Name',
|
||||
patrolName: 'Name',
|
||||
workOrderDevice: 'Devices',
|
||||
patrolDevice: 'Device',
|
||||
addWorkOrder: 'Add WorkCard',
|
||||
addPatrol: 'Add Task',
|
||||
editWorkOrder: 'Edit WorkCard',
|
||||
editPatrol: 'Edit Task',
|
||||
checkWorkOrder: 'Check',
|
||||
checkPatrol: 'Check',
|
||||
sonCheckPatrol: 'Sub-Check',
|
||||
workOrderInfo: 'Info',
|
||||
patrolInfo: 'Info',
|
||||
sonPatrolInfo: 'Sub-Info',
|
||||
workOrderIllustrate: 'Instructions',
|
||||
patrolIllustrate: 'Instructions',
|
||||
workOrderStatus: 'Status',
|
||||
patrolStatus: 'Status',
|
||||
cycle: 'Cycle',
|
||||
sendReceive: 'Send-Receive',
|
||||
workOrderType: 'Types',
|
||||
workOrderTypeOther: "When the WorkCard type is 'Other'",
|
||||
description: ', Please enter a type description',
|
||||
receivePhone: 'Receive Phone',
|
||||
receiveName: 'Recipient',
|
||||
checkName: 'Inspector',
|
||||
applicationForAcceptance: 'Submit',
|
||||
deviceNotEntered: 'Note: Some devices have not been recorded yet',
|
||||
checkSuccess: 'Successfully applied for acceptance',
|
||||
notDevHistorical: 'There are still devices that have not entered history records!',
|
||||
leastOneDevice: 'Please select at least one device',
|
||||
entry: 'Entry',
|
||||
entrySuccess: 'Entry Success',
|
||||
},
|
||||
upload: {
|
||||
targetDevice: 'Target Device',
|
||||
operatorPosition: 'Operator Position',
|
||||
distanceDevice: 'Distance Device',
|
||||
photo: 'Photo',
|
||||
video: 'Video',
|
||||
audio: 'Audio',
|
||||
characters: 'Characters',
|
||||
uploadFile: 'Upload File',
|
||||
uploading: 'File upload in progress',
|
||||
uploadFail: 'Upload Failed',
|
||||
doNotOperate: 'Do not perform other operations',
|
||||
locationFile: 'Failed to obtain the current location',
|
||||
refuseToLocate: 'User rejects geolocation request',
|
||||
imageFormat: 'Please upload a file in image format',
|
||||
videoFormat: 'Please upload a file in video format',
|
||||
audioFormat: 'Please upload a file in audio format',
|
||||
},
|
||||
historical: {
|
||||
source: 'source',
|
||||
name: 'name',
|
||||
originator: 'Original',
|
||||
userName: 'Operator',
|
||||
Nohistoricaldata: 'No data',
|
||||
historicalTrajectory: 'Trace',
|
||||
positiveRequence: 'positive requence',
|
||||
ReverseOrder: 'Reverse order',
|
||||
},
|
||||
pSelect: 'Please choose ',
|
||||
pEnter: 'Please enter ',
|
||||
lang: 'Lang',
|
||||
changelangtip: 'Language switched',
|
||||
currentVersion: 'Current version',
|
||||
updateVersion: 'Update',
|
||||
startTime: 'Start Time',
|
||||
endTime: 'End Time',
|
||||
permission: 'No permission'
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
import Vue from 'vue'
|
||||
import VueI18n from 'vue-i18n'
|
||||
import { Locale } from 'vant'
|
||||
import enUS from 'vant/lib/locale/lang/en-US'
|
||||
import zhCN from 'vant/lib/locale/lang/zh-CN'
|
||||
import enLocale from './en'
|
||||
import zhLocale from './zh'
|
||||
|
||||
Vue.use(VueI18n)
|
||||
|
||||
const messages = {
|
||||
en: {
|
||||
...enUS,
|
||||
...enLocale
|
||||
},
|
||||
zh: {
|
||||
...zhCN,
|
||||
...zhLocale
|
||||
}
|
||||
}
|
||||
|
||||
const i18n = new VueI18n({
|
||||
locale: 'en', // 设置默认语言
|
||||
messages: messages // 设置资源文件对象
|
||||
})
|
||||
|
||||
// 更新vant组件库本身的语言变化,支持国际化
|
||||
function vantLocales(lang) {
|
||||
if (lang === 'en') {
|
||||
Locale.use(lang, enUS)
|
||||
} else if (lang === 'zh') {
|
||||
Locale.use(lang, zhCN)
|
||||
}
|
||||
}
|
||||
|
||||
export { i18n, vantLocales }
|
|
@ -0,0 +1,618 @@
|
|||
export default {
|
||||
name: '汇珏智慧能源管控系统',
|
||||
deskName: '汇珏智慧能源管理台',
|
||||
// 通用
|
||||
currency: {
|
||||
staging: '工作台',
|
||||
home: '首页',
|
||||
settings: '我的',
|
||||
alarm: '告警',
|
||||
device: '设备',
|
||||
map: '地图',
|
||||
video: '实时监控',
|
||||
playback: '回放',
|
||||
record: '抓拍记录',
|
||||
startTime: '开始时间'
|
||||
},
|
||||
title: {
|
||||
success: '成功',
|
||||
warning: '警告',
|
||||
error: '错误',
|
||||
fail: '失败',
|
||||
pointOut: '提示',
|
||||
delete: '删除',
|
||||
cancel: '取消',
|
||||
confirm: '确认',
|
||||
addSuccess: '添加成功',
|
||||
editSuccess: '编辑成功',
|
||||
deleteSuccess: '删除成功',
|
||||
setUpSuccess: '设置成功',
|
||||
releaseSuccess: '发布成功',
|
||||
notBeen: '功能暂未上线~',
|
||||
signOut: '确定退出登录?',
|
||||
oneData: '请选择一条数据',
|
||||
delPointOut: '此操作将永久删除该路由, 是否继续?',
|
||||
delPointOutDeviceType: '此操作将永久删除该设备类型信息, 是否继续?',
|
||||
delPointOutDepartment: '此操作将永久删除该区域信息, 是否继续?',
|
||||
delPointOutSite: '此操作将永久删除该站点信息, 是否继续?',
|
||||
delPointOutRole: '此操作将永久删除该角色信息, 是否继续?',
|
||||
delPointOutUser: '此操作将永久删除该用户信息, 是否继续?',
|
||||
publish: '是否发布',
|
||||
delPointOutWork: '此操作将永久删除该工单信息, 是否继续?',
|
||||
delPointOutPatrol: '此操作将永久删除该巡检信息, 是否继续?',
|
||||
fullTime: '选择完整时间',
|
||||
timeContrast: '开始时间要小于结束时间',
|
||||
relistTip: '你已被登出,可以取消继续留在该页面,或者重新登录',
|
||||
},
|
||||
// 通用按钮
|
||||
btn: {
|
||||
save: '保 存',
|
||||
cancel: '取 消',
|
||||
define: '确 定',
|
||||
search: '搜 索',
|
||||
resetting: '重 置',
|
||||
add: '添 加',
|
||||
leadingOut: '导 出',
|
||||
delete: '删 除',
|
||||
addDevice: '创建设备',
|
||||
relist: '重新登录',
|
||||
},
|
||||
// 表单
|
||||
table: {
|
||||
index: '序号',
|
||||
operate: '操作',
|
||||
moreOperate: '更多操作',
|
||||
edit: '编辑',
|
||||
create: '新增',
|
||||
delete: '删除',
|
||||
change: '更改',
|
||||
check: '查看',
|
||||
release: '发布',
|
||||
checkAll: '全选',
|
||||
optional: '可选项',
|
||||
selected: '已选项',
|
||||
longitude: '经度',
|
||||
latitude: '纬度',
|
||||
address: '地址',
|
||||
datetime: '选择日期',
|
||||
noMore: '没有更多了',
|
||||
notMandatory: '(非必填)',
|
||||
},
|
||||
// 通用类型
|
||||
type: {
|
||||
fu: '父级',
|
||||
zi: '子级',
|
||||
yes: '是',
|
||||
no: '否',
|
||||
open: '开',
|
||||
close: '关',
|
||||
cache: '缓存',
|
||||
noCache: '不缓存',
|
||||
read: '读',
|
||||
write: '写',
|
||||
dispose: '配置',
|
||||
notHave: '无',
|
||||
processed: '已处理',
|
||||
processing: '处理中',
|
||||
untreated: '未处理',
|
||||
Initiate: '发起工单'
|
||||
},
|
||||
// 校验
|
||||
validate: {
|
||||
phone: '请输入手机号码',
|
||||
phoneFormat: '手机号码格式不对',
|
||||
pswLimit: '请输入6~8位用户密码',
|
||||
pswConfirm: '请再次输入密码',
|
||||
pswError: '两次输入密码不一致!',
|
||||
limitValue: '请输入下限值',
|
||||
limitValueFormat: '下限值不能大于上限值',
|
||||
long1and20: '长度在 1 到 20 个字符',
|
||||
},
|
||||
// 图片上传
|
||||
photoUp: {
|
||||
pDel: '请先删除原来的图片!',
|
||||
format: '上传图片格式不对!',
|
||||
size: '上传图片大小不能超过 5MB!',
|
||||
},
|
||||
// 通用查询
|
||||
listQuery: {
|
||||
deptId: '所属区域',
|
||||
siteCode: '所属站址',
|
||||
cabinetCode: '所属综合柜',
|
||||
},
|
||||
//登录模块语言
|
||||
login: {
|
||||
title: '欢迎登录',
|
||||
username: '用户名',
|
||||
password: '密码',
|
||||
imageStr: '验证码',
|
||||
signOut: '退出登录',
|
||||
welcome: '欢迎您!',
|
||||
login: '登 录',
|
||||
logining: '登 录 中...',
|
||||
desk: '管理台',
|
||||
replace: '看不清?换一张',
|
||||
},
|
||||
home: {
|
||||
hello: '你好',
|
||||
overview: '设备概况',
|
||||
notify: '消息通知',
|
||||
index: '首页',
|
||||
gisMap: 'GIS资源',
|
||||
cabinetList: '机柜列表',
|
||||
deviceManage: '设备管理',
|
||||
integrated: '综合柜',
|
||||
movingRing: '动环模块',
|
||||
insideCabinet: '柜内设备',
|
||||
deviceType: '设备类型',
|
||||
threshold: '阀值管理',
|
||||
area: '区域管理',
|
||||
site: '站址管理',
|
||||
user: '用户管理',
|
||||
role: '角色管理',
|
||||
menu: '菜单管理',
|
||||
platformLog: '平台日志',
|
||||
operation: '运维',
|
||||
alarm: '告警',
|
||||
deviceLog: '设备运行日志',
|
||||
personal: '个人中心',
|
||||
refresh: '刷新',
|
||||
close: '关闭',
|
||||
closeOthers: '关闭其他',
|
||||
closeAll: '关闭所有',
|
||||
devAlarm: '告警设备数',
|
||||
onlineRate: '在线率',
|
||||
devTotal: '设备总数',
|
||||
devFaulty: '故障设备',
|
||||
onlineQuantity: '在线设备',
|
||||
offlineQuantity: '离线设备',
|
||||
noNews: '暂无新消息',
|
||||
passEdit: '修改密码',
|
||||
},
|
||||
personal: {
|
||||
tasks: '个人任务',
|
||||
completedOrder: '已完成工单',
|
||||
unfinishedOrders: '未完成工单',
|
||||
completedPatrol: '已完成巡检',
|
||||
unfinishedPatrol: '未完成巡检',
|
||||
rate: '在线率',
|
||||
log: '操作日志',
|
||||
time: '时间',
|
||||
},
|
||||
// 设备
|
||||
device: {
|
||||
deviceId: '设备ID',
|
||||
deviceCode: '设备编号',
|
||||
deviceName: '设备名称',
|
||||
typeName: '设备类型',
|
||||
typeCode: '所创设备类型',
|
||||
cabinetId: '机柜ID',
|
||||
cabinetType: '柜体类型',
|
||||
cabinetType1: '单柜体',
|
||||
cabinetType2: '多柜体',
|
||||
data: '基础信息',
|
||||
device: '柜内设备',
|
||||
// 综合柜
|
||||
assetNum: '资产编号',
|
||||
serialNum: '序列号',
|
||||
sysNum: '系统编号',
|
||||
installTime: '安装时间',
|
||||
proTime: '生产日期',
|
||||
photo: '照片',
|
||||
factory: '厂家',
|
||||
// 柜内设备
|
||||
cabinetCode: '所属综合柜',
|
||||
model: '型号',
|
||||
director: '负责人',
|
||||
phone: '联系方式',
|
||||
owner: '业主',
|
||||
// 动环模块
|
||||
online: '在线状态',
|
||||
onLine: '在线',
|
||||
outLine: '离线',
|
||||
rssi: '信号强度',
|
||||
operator: '运营商',
|
||||
software: '软件信息',
|
||||
hardware: '硬件信息',
|
||||
power: '功率',
|
||||
network: '网络状态',
|
||||
portCount: '接口数量',
|
||||
company: '代维公司',
|
||||
agent: '代维人姓名',
|
||||
agentPhone: '代维人电话',
|
||||
logonTime: '注册时间',
|
||||
host: 'IP地址',
|
||||
port: '端口号'
|
||||
|
||||
},
|
||||
// 设备详情
|
||||
deviceInfo: {
|
||||
switchInfo: '切换信息',
|
||||
noneDevice: '暂无设备',
|
||||
teleadjusting: '遥调',
|
||||
telecommand: '遥控',
|
||||
onOff: '开/关',
|
||||
monitor: '监控',
|
||||
},
|
||||
// 设备类型
|
||||
deviceType: {
|
||||
typeName: '设备类型',
|
||||
typeCode: '类型编码',
|
||||
icon: '图标',
|
||||
uploadIcon: '上传图标',
|
||||
|
||||
addAType: '创建一级类型',
|
||||
addSon: '添加子级',
|
||||
delSon: '请先删除子级',
|
||||
},
|
||||
// 阀值管理页
|
||||
threshold: {
|
||||
parameterName: '参数名称',
|
||||
setting: '阀值设置',
|
||||
paramType: '参数类型',
|
||||
paramType1: '模拟量',
|
||||
paramType2: '开关量',
|
||||
maxVal: '上限值',
|
||||
minVal: '下限值',
|
||||
alarm: '告警值',
|
||||
timeGap: '时间间隔(min)',
|
||||
alarmLevel: '告警等级',
|
||||
one: '1级',
|
||||
two: '2级',
|
||||
three: '3级',
|
||||
alarmInfo: '告警明细',
|
||||
},
|
||||
// 区域管理
|
||||
department: {
|
||||
deptName: '区域名称',
|
||||
deptCode: '区域编号',
|
||||
deptType: '区域级别',
|
||||
deptPid: '上级区域',
|
||||
province: '省',
|
||||
city: '市',
|
||||
district: '区/县',
|
||||
street: '街道',
|
||||
},
|
||||
// 站点管理页
|
||||
site: {
|
||||
siteId: '站点ID',
|
||||
siteName: '站点名称',
|
||||
siteCode: '站点编号',
|
||||
picture: '图片',
|
||||
createTime: '创建时间',
|
||||
director: '负责人',
|
||||
associated: '关联设备',
|
||||
addSite: '创建站址',
|
||||
},
|
||||
// 菜单管理页
|
||||
menu: {
|
||||
addToplevel: '新增顶级',
|
||||
addChild: '新增子级',
|
||||
permissionName: '菜单名称',
|
||||
permissionType: '权限类型',
|
||||
permissionNameEn: '菜单英文名称',
|
||||
path: '路径',
|
||||
component: '组件名',
|
||||
icon: '图标',
|
||||
code: '权限码',
|
||||
buttonCode: '按钮权限码',
|
||||
alwaysShow: '始终显示',
|
||||
noCache: '页面缓存',
|
||||
route: '路由等级',
|
||||
nameKey: '名称KEY值',
|
||||
oneData: '一条数据'
|
||||
},
|
||||
// 角色管理页
|
||||
role: {
|
||||
roleId: '角色ID',
|
||||
roleName: '角色名称',
|
||||
roleDescript: '角色描述',
|
||||
roleCode: '角色标识',
|
||||
userName: '用户名称',
|
||||
setResources: '设置资源',
|
||||
setWeb: '设置web资源',
|
||||
setApp: '设置app资源'
|
||||
},
|
||||
// 用户管理页
|
||||
user: {
|
||||
user: '用户',
|
||||
userName: '用户名称',
|
||||
nickName: '用户昵称',
|
||||
phone: '用户电话',
|
||||
userType: '用户类型',
|
||||
permissionLevel: '用户权限',
|
||||
remark: '用户备注',
|
||||
roleName: '用户角色',
|
||||
enabled: '激活状态',
|
||||
password: '用户密码',
|
||||
pswAgain: '确认密码',
|
||||
createRole: '请先创建角色',
|
||||
admin: '普通管理员',
|
||||
superAdmin: '超级管理员'
|
||||
},
|
||||
// 菜单类型
|
||||
permissionType: {
|
||||
list: '列表',
|
||||
menu: '菜单',
|
||||
button: '按钮',
|
||||
joggle: '接口'
|
||||
},
|
||||
// 平台日志
|
||||
platformLog: {
|
||||
userName: '操作人',
|
||||
ip: 'IP地址',
|
||||
createDate: '操作时间',
|
||||
},
|
||||
// 机柜弹窗
|
||||
cabinet: {
|
||||
details: '机柜详情',
|
||||
basicInfo: '基本信息',
|
||||
installInfo: '安装信息',
|
||||
moveDevice: '动环模块',
|
||||
cabinetInfo: '机柜信息',
|
||||
history: '历史运维',
|
||||
more: '更多',
|
||||
info: {
|
||||
// 基本信息
|
||||
assetNum: '资产编号',
|
||||
sysNum: '系统编号',
|
||||
serialNum: '序列号',
|
||||
factory: '厂家',
|
||||
proTime: '出厂日期',
|
||||
// 安装信息
|
||||
longitude: '经度',
|
||||
siteName: '站址名称',
|
||||
latitude: '纬度',
|
||||
siteCode: '站址ID',
|
||||
director: '代维负责人',
|
||||
address: '地址',
|
||||
// 动环信息
|
||||
software: '软件信息',
|
||||
imei: 'IMEI',
|
||||
operator: '运营商',
|
||||
hardware: '硬件信息',
|
||||
imsi: 'IMSI',
|
||||
company: '代维公司',
|
||||
power: '功率',
|
||||
logonTime: '注册时间',
|
||||
agent: '代维人姓名',
|
||||
rssi: '信号强度',
|
||||
network: '网络状态',
|
||||
phone: '代维人电话',
|
||||
portCount: '接口数量',
|
||||
online: '在线状态',
|
||||
onLine: '在线',
|
||||
outLine: '离线',
|
||||
},
|
||||
sensor: {
|
||||
deviceName: '设备名称',
|
||||
model: '型号',
|
||||
factory: '厂家',
|
||||
director: '负责人',
|
||||
phone: '联系方式',
|
||||
owner: '业主信息',
|
||||
// 温湿度监控
|
||||
monitoring: '温湿度监控',
|
||||
temperature: '温度',
|
||||
humidity: '湿度',
|
||||
status: '传感器状态',
|
||||
noData: '暂无'
|
||||
},
|
||||
UPS: {
|
||||
monitor: 'UPS监控',
|
||||
data1: '输入市电电压',
|
||||
data2: '市电电压',
|
||||
data3: '输出工作电压',
|
||||
data4: '工作电压',
|
||||
data5: '故障电压',
|
||||
data6: '旁路模式',
|
||||
data7: '输出负载',
|
||||
data8: 'UPS故障',
|
||||
data9: '电池电压',
|
||||
data10: '机型属性',
|
||||
data11: '电池负载百分比',
|
||||
data12: 'UPS模式',
|
||||
data13: '环境温度',
|
||||
data14: 'UPS状态',
|
||||
data15: '输入市电频率',
|
||||
data16: '蜂鸣器',
|
||||
},
|
||||
battery: {
|
||||
monitor: '电池监控',
|
||||
data1: '测量地址',
|
||||
data2: '电压',
|
||||
data3: '内阻',
|
||||
data4: '温度',
|
||||
data5: '工作状态',
|
||||
data6: '充电',
|
||||
data7: '放电',
|
||||
},
|
||||
powerSupply: {
|
||||
monitor: '电源监测',
|
||||
data1: 'A相',
|
||||
data2: 'B相',
|
||||
data3: 'C相',
|
||||
voltage: '电压',
|
||||
current: '电流',
|
||||
activePower: '有功功率',
|
||||
reactivePower: '无功功率',
|
||||
apparentPower: '视在功率',
|
||||
powerFactor: '功率因子',
|
||||
data4: 'A相电压',
|
||||
data5: 'B相电压',
|
||||
data6: 'C相电压',
|
||||
data7: 'A相电流',
|
||||
data8: 'B相电流',
|
||||
data9: 'C相电流',
|
||||
data10: 'A相有功功率',
|
||||
data11: 'B相有功功率',
|
||||
data12: 'C相有功功率',
|
||||
data13: 'A相无功功率',
|
||||
data14: 'B相无功功率',
|
||||
data15: 'C相无功功率',
|
||||
data16: 'A相视在功率',
|
||||
data17: 'B相视在功率',
|
||||
data18: 'C相视在功率',
|
||||
data19: 'A相功率因子',
|
||||
data20: 'B相功率因子',
|
||||
data21: 'C相功率因子',
|
||||
data22: '遥 调',
|
||||
data23: '开 / 关',
|
||||
},
|
||||
air: {
|
||||
data1: '空调状态',
|
||||
data2: '上限温度',
|
||||
data3: '下限温度',
|
||||
data4: '当前温度设置',
|
||||
data5: '上限电流',
|
||||
data6: '下限电流',
|
||||
data7: '当前电流',
|
||||
data8: '进风口温度',
|
||||
data9: '出风口温度',
|
||||
data10: '风速',
|
||||
data11: '低',
|
||||
data12: '中',
|
||||
data13: '高',
|
||||
data14: '模式',
|
||||
data15: '制冷',
|
||||
data16: '制热',
|
||||
data17: '通风',
|
||||
},
|
||||
electric: {
|
||||
data1: '支路',
|
||||
data2: '电压',
|
||||
data3: '电流',
|
||||
data4: '开关',
|
||||
data5: '开',
|
||||
data6: '关',
|
||||
},
|
||||
video: {
|
||||
data5: '实 况',
|
||||
data6: '回 放',
|
||||
data7: '云台',
|
||||
data1: '变焦',
|
||||
data2: '焦距',
|
||||
data3: '光圈',
|
||||
},
|
||||
water: {
|
||||
monitor: 'monitoring',
|
||||
},
|
||||
},
|
||||
// 机柜列表
|
||||
cabinetList: {
|
||||
deviceCode: '机柜编号',
|
||||
typeName: '机柜类型',
|
||||
siteName: '站址名称',
|
||||
serialNum: '站址ID',
|
||||
deptName: '区域',
|
||||
},
|
||||
//告警
|
||||
alarm: {
|
||||
alarmInfo: '告警信息',
|
||||
alarmLevel: '告警等级',
|
||||
uploadTime: '告警时间',
|
||||
notification: '告警通知',
|
||||
status: '告警状态',
|
||||
reset: '恢复',
|
||||
leve1: '一级告警',
|
||||
leve2: '二级告警',
|
||||
leve3: '三级告警',
|
||||
normal: '正常',
|
||||
fault: '故障',
|
||||
on: '开',
|
||||
off: '关',
|
||||
yes: '是',
|
||||
no: '否',
|
||||
},
|
||||
task: {
|
||||
unpublished: '未发布',
|
||||
notStarted: '未开始',
|
||||
inProgress: '进行中',
|
||||
suspend: '中止',
|
||||
complete: '完成',
|
||||
failed: '未通过',
|
||||
toBeAccepted: '待验收',
|
||||
timedOut: '已超时',
|
||||
receive: '接收',
|
||||
release: '发起',
|
||||
|
||||
install: '安装',
|
||||
dismantle: '拆除',
|
||||
fault: '故障',
|
||||
other: '其他',
|
||||
|
||||
workOrder: '工单',
|
||||
patrol: '巡检',
|
||||
sonPatrol: '子巡检',
|
||||
workOrderName: '工单名称',
|
||||
patrolName: '巡检名称',
|
||||
workOrderDevice: '工单设备',
|
||||
patrolDevice: '巡检设备',
|
||||
addWorkOrder: '新建工单',
|
||||
addPatrol: '新建巡检',
|
||||
editWorkOrder: '编辑工单',
|
||||
editPatrol: '编辑巡检',
|
||||
checkWorkOrder: '查看工单',
|
||||
checkPatrol: '查看巡检',
|
||||
sonCheckPatrol: '子巡检查看',
|
||||
workOrderInfo: '工单信息',
|
||||
patrolInfo: '巡检信息',
|
||||
sonPatrolInfo: '子巡检信息',
|
||||
workOrderIllustrate: '工单说明',
|
||||
patrolIllustrate: '巡检说明',
|
||||
workOrderStatus: '工单状态',
|
||||
patrolStatus: '巡检状态',
|
||||
cycle: '巡检周期',
|
||||
sendReceive: '收发方式',
|
||||
workOrderType: '工单类型',
|
||||
workOrderTypeOther: "工单类型为'其他'时",
|
||||
description: ', 请输入类型描述',
|
||||
receivePhone: '接收人电话',
|
||||
receiveName: '接收人',
|
||||
checkName: '验收人',
|
||||
applicationForAcceptance: '申请验收',
|
||||
deviceNotEntered: '尚有设备未录入',
|
||||
checkSuccess: '申请验收成功',
|
||||
notDevHistorical: '还有设备没有录入历史记录!',
|
||||
leastOneDevice: '请选择至少一个设备',
|
||||
entry: '录入',
|
||||
entrySuccess: '录入成功'
|
||||
},
|
||||
upload: {
|
||||
targetDevice: '目标设备',
|
||||
operatorPosition: '操作人位置',
|
||||
distanceDevice: '距离设备',
|
||||
photo: '照片',
|
||||
video: '视频',
|
||||
audio: '音频',
|
||||
characters: '文字',
|
||||
uploadFile: '点击上传文件',
|
||||
uploading: '文件上传中',
|
||||
uploadFail: '上传失败',
|
||||
doNotOperate: '请勿进行其他操作',
|
||||
locationFile: '获取当前位置失败',
|
||||
refuseToLocate: '用户拒绝地理定位请求',
|
||||
imageFormat: '请上传图片格式的文件',
|
||||
videoFormat: '请上传视频格式的文件',
|
||||
audioFormat: '请上传音频格式的文件',
|
||||
},
|
||||
historical: {
|
||||
source: '信息来源',
|
||||
name: '名称',
|
||||
originator: '发起人',
|
||||
userName: '操作人',
|
||||
Nohistoricaldata: '无历史数据',
|
||||
historicalTrajectory: '历史轨迹',
|
||||
positiveRequence: '正序',
|
||||
ReverseOrder: '倒序',
|
||||
},
|
||||
pSelect: '请选择',
|
||||
pEnter: '请输入',
|
||||
lang: '语言',
|
||||
changelangtip: '语言已切换',
|
||||
currentVersion: '当前版本',
|
||||
updateVersion: '更新版本',
|
||||
startTime: '开始日期',
|
||||
endTime: '结束日期',
|
||||
permission: '暂无此权限'
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
import Vue from "vue"
|
||||
import Vant from "vant"
|
||||
import { Lazyload } from 'vant';
|
||||
import "vant/lib/index.css"
|
||||
import 'vant/lib/index.less'
|
||||
|
||||
|
||||
import router from "./router"
|
||||
import store from "./store"
|
||||
|
||||
import App from "./App.vue"
|
||||
import InfoBlock from "./components/InfoBlock.vue"
|
||||
import ProductList from "./components/ProductList.vue"
|
||||
import GoodsList from "./components/GoodsList.vue"
|
||||
import AddressList from "./components/AddressList.vue"
|
||||
import Register from "./components/Register.vue"
|
||||
import Splash from "./views/Splash.vue"
|
||||
|
||||
Vue.use(Vant)
|
||||
Vue.use(Lazyload)
|
||||
Vue.component("info-block", InfoBlock)
|
||||
Vue.component("product-list", ProductList)
|
||||
Vue.component("goods-list", GoodsList)
|
||||
Vue.component("address-list", AddressList)
|
||||
Vue.component("register", Register)
|
||||
Vue.component("v-splash", Splash)
|
||||
|
||||
// 引入element
|
||||
import Element from "element-ui"
|
||||
Vue.use(Element)
|
||||
|
||||
// 阿里巴巴图标库
|
||||
import "@/assets/fonts/iconfont.css"
|
||||
import "@/assets/fonts/iconfont.js"
|
||||
// 公共样式
|
||||
import "@/styles/index.scss" // global css
|
||||
|
||||
// 引入中英文
|
||||
import { i18n, vantLocales } from "./lang/index"
|
||||
// vant-ui组件国际化
|
||||
vantLocales(i18n.locale)
|
||||
// permission control
|
||||
import "./utils/permission"
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
/* 路由异常错误处理,尝试解析一个异步组件时发生错误,重新渲染目标页面 */
|
||||
// router.onError((error) => {
|
||||
// const pattern = /Loading chunk (\d)+ failed/g;
|
||||
// const isChunkLoadFailed = error.message.match(pattern);
|
||||
// const targetPath = router.history.pending.fullPath;
|
||||
// console.log(targetPath)
|
||||
// if (isChunkLoadFailed) {
|
||||
// router.replace(targetPath);
|
||||
// }
|
||||
// });
|
||||
|
||||
new Vue({
|
||||
router,
|
||||
store,
|
||||
i18n,
|
||||
render: (h) => h(App)
|
||||
}).$mount("#app")
|
|
@ -0,0 +1,110 @@
|
|||
import Vue from "vue"
|
||||
import Router from "vue-router"
|
||||
import Index from '@/views/Index.vue'
|
||||
|
||||
Vue.use(Router)
|
||||
|
||||
/* Layout */
|
||||
|
||||
export const constantRoutes = [{
|
||||
path: '/',
|
||||
component: Index,
|
||||
children: [
|
||||
{
|
||||
path: 'home',
|
||||
name: 'index',
|
||||
component: () => import("@/views/home/Index"),
|
||||
},
|
||||
// {
|
||||
// path: "/404",
|
||||
// component: () => import("@/views/errorPage/404"),
|
||||
// hidden: true,
|
||||
// },
|
||||
// {
|
||||
// path: "/401",
|
||||
// component: () => import("@/views/errorPage/401"),
|
||||
// hidden: true,
|
||||
// },
|
||||
{
|
||||
path: "/homePage",
|
||||
component: () => import('@/views/homePage/Index.vue'),
|
||||
hidden: true,
|
||||
meta: {
|
||||
title: "工作台",
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/setUp",
|
||||
component: () => import("@/views/setUp/Index"),
|
||||
hidden: true,
|
||||
meta: {
|
||||
title: "我的",
|
||||
}
|
||||
},
|
||||
// {
|
||||
// path: 'credit',
|
||||
// name: 'index-credit',
|
||||
// component: () => import( /* webpackChunkName: "product" */ '@/views/credit/Index.vue')
|
||||
// },
|
||||
// {
|
||||
// path: 'cart',
|
||||
// name: 'index-cart',
|
||||
// component: () => import( /* webpackChunkName: "product" */ '@/views/order/Cart.vue')
|
||||
// },
|
||||
// {
|
||||
// path: 'member',
|
||||
// name: 'index-member',
|
||||
// component: () => import( /* webpackChunkName: "member" */ '@/views/member/Index.vue')
|
||||
// }
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/playblack',
|
||||
name: 'playblack',
|
||||
component: () => import( /* webpackChunkName: "product" */ '@/views/device/playblack'),
|
||||
hidden: true,
|
||||
meta: {
|
||||
title: "playblack",
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/record',
|
||||
name: 'record',
|
||||
component: () => import( /* webpackChunkName: "product" */ '@/views/device/record'),
|
||||
hidden: true,
|
||||
meta: {
|
||||
title: "record",
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/login",
|
||||
component: () => import("@/views/login/Index"),
|
||||
hidden: true,
|
||||
},
|
||||
// {
|
||||
// path: '/pass',
|
||||
// name: 'setUp-pass',
|
||||
// component: () => import( /* webpackChunkName: "member" */ '@/views/setUp/passWord.vue')
|
||||
// },
|
||||
|
||||
|
||||
{
|
||||
path: '/deviceInfo',
|
||||
name: 'deviceInfo',
|
||||
component: () => import( /* webpackChunkName: "member" */ '@/views/device/Info.vue')
|
||||
},
|
||||
|
||||
|
||||
]
|
||||
const originalPush = Router.prototype.push
|
||||
//修改原型对象中的push方法
|
||||
Router.prototype.push = function push(location) {
|
||||
return originalPush.call(this, location).catch((err) => err)
|
||||
}
|
||||
export default new Router({
|
||||
mode: "hash",
|
||||
scrollBehavior: () => ({
|
||||
y: 0,
|
||||
}),
|
||||
routes: constantRoutes,
|
||||
})
|
|
@ -0,0 +1,15 @@
|
|||
const getters = {
|
||||
sidebar: state => state.app.sidebar,
|
||||
token: state => state.user.token,
|
||||
userName: state => state.user.userName,
|
||||
visitedViews: state => state.tagsView.visitedViews,
|
||||
cachedViews: state => state.tagsView.cachedViews,
|
||||
roles: state => state.user.roles,
|
||||
butPermission: state => state.user.butPermission,
|
||||
permissionList: state => state.user.permissionList,
|
||||
permissionLevel: state => state.user.permissionLevel,
|
||||
permission_routes: state => state.permission.routes,
|
||||
admin_routes: state => state.permission.adminRoutes,
|
||||
urls: state => state.user.urls,
|
||||
}
|
||||
export default getters
|
|
@ -0,0 +1,30 @@
|
|||
import Vue from "vue"
|
||||
import Vuex from "vuex"
|
||||
import getters from "./getters"
|
||||
import app from "./modules/app"
|
||||
import gis from "./modules/gis"
|
||||
import user from "./modules/user"
|
||||
import map from "./modules/map"
|
||||
import permission from "./modules/permission"
|
||||
import tagsView from "./modules/tagsView"
|
||||
import alarm from "./modules/alarm"
|
||||
import device from "./modules/device"
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
export default new Vuex.Store({
|
||||
modules: {
|
||||
app,
|
||||
user,
|
||||
gis,
|
||||
permission,
|
||||
tagsView,
|
||||
map,
|
||||
alarm,
|
||||
device,
|
||||
},
|
||||
getters,
|
||||
state: {},
|
||||
mutations: {},
|
||||
actions: {},
|
||||
})
|
|
@ -0,0 +1,7 @@
|
|||
const alarm = {
|
||||
state: {
|
||||
workForm: null,
|
||||
workDialog: false
|
||||
}
|
||||
};
|
||||
export default alarm;
|
|
@ -0,0 +1,24 @@
|
|||
import Cookies from "js-cookie"
|
||||
|
||||
const app = {
|
||||
state: {
|
||||
isCollapse: Cookies.get("isCollapse") ? !!+Cookies.get("isCollapse") : false,
|
||||
},
|
||||
mutations: {
|
||||
TOGGLE_SIDEBAR: (state) => {
|
||||
state.isCollapse = !state.isCollapse
|
||||
if (state.isCollapse) {
|
||||
Cookies.set("isCollapse", 1)
|
||||
} else {
|
||||
Cookies.set("isCollapse", 0)
|
||||
}
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
toggleSideBar({ commit }) {
|
||||
commit("TOGGLE_SIDEBAR")
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default app
|
|
@ -0,0 +1,26 @@
|
|||
const device = {
|
||||
state: {
|
||||
deviceId: null,
|
||||
deviceName: null,
|
||||
deviceCode: null,
|
||||
regulatCode: null,
|
||||
signType: null,
|
||||
actionType: null,
|
||||
action: {
|
||||
text: null,
|
||||
value: null
|
||||
},
|
||||
dispatcherName: 'receiveName', // 工单默认方式 接收'receiveName' 发起'releaseName'
|
||||
orderForm: {}, // 新建工单选择设备时,回显已填写的工单信息
|
||||
patrolForm: {}, // 新建巡检选择设备时,回显已填写的巡检信息
|
||||
addDeviceList: [], // 工单、巡检用 新添加的设备列表
|
||||
checkedDeviceList: [], // 工单、巡检用: 已经选中的设备列表
|
||||
orderType: null, // 工单状态 新增修改
|
||||
patrolType: null, // 工单状态 新增修改
|
||||
alarmOrder: 'normal', // alarm 告警工单 normal 正常工单
|
||||
moveCode: null,
|
||||
deviceSerial: null,
|
||||
channelNo: null,
|
||||
}
|
||||
};
|
||||
export default device;
|
|
@ -0,0 +1,8 @@
|
|||
const alarm = {
|
||||
state: {
|
||||
form: null,
|
||||
deviceId: '',
|
||||
deviceName: 'HJ0001'
|
||||
}
|
||||
};
|
||||
export default alarm;
|