【前端】智能库房综合管理系统前端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

471 lines
14 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. <template>
  2. <div class="dashboard-container">
  3. <div class="dashboard-editor-container">
  4. <!-- <github-corner class="github-corner" /> -->
  5. <panel-group />
  6. <!-- <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
  7. <line-chart :chart-data="lineChartData" />
  8. </el-row> -->
  9. <el-row :gutter="20" style="margin-bottom:20px;height: 152px;">
  10. <el-col :xs="24" :sm="24" :lg="16">
  11. <div class="container-left search-area">
  12. <span class="right-top-line" />
  13. <span class="left-bottom-line" />
  14. <div class="search-input">
  15. <!-- v-model="input3" v-model="select"-->
  16. <el-input placeholder="2022,办公室" class="input-with-select">
  17. <el-select slot="prepend" v-model="selectValue">
  18. <el-option label="全目录" value="1" />
  19. <el-option label="订单号" value="2" />
  20. <el-option label="用户电话" value="3" />
  21. </el-select>
  22. <el-button slot="append" icon="el-icon-search" />
  23. </el-input>
  24. </div>
  25. </div>
  26. </el-col>
  27. <el-col :xs="24" :sm="24" :lg="8">
  28. <!-- <div class="chart-wrapper">
  29. <pie-chart />
  30. </div> -->
  31. <div class="container-left" style="height: 100%;margin: 0">
  32. <span class="right-top-line" />
  33. <span class="left-bottom-line" />
  34. <h3 class=" table-title">
  35. <p class="title-arrow">
  36. <svg-icon icon-class="a-3Dkufang" class-name="warehouse-svg" />3D库房
  37. </p>
  38. </h3>
  39. <div class="warehouse-tab">
  40. <ul class="warehouse-nav">
  41. <li @click="changeActiveTab(0)">
  42. <span />
  43. <p>全景图</p>
  44. </li>
  45. <li @click="changeActiveTab(1)">
  46. <span />
  47. <p>档案库</p>
  48. </li>
  49. <li @click="changeActiveTab(2)">
  50. <span />
  51. <p>整理室</p>
  52. </li>
  53. <li @click="changeActiveTab(3)">
  54. <span />
  55. <p>阅览室</p>
  56. </li>
  57. </ul>
  58. </div>
  59. </div>
  60. </el-col>
  61. </el-row>
  62. <el-row :gutter="20" style="margin-bottom:20px;height: calc(50vh - 251px);">
  63. <el-col :xs="24" :sm="24" :lg="8">
  64. <!-- 待办事项 -->
  65. <div class="container-wrap">
  66. <span class="right-top-line" />
  67. <span class="left-bottom-line" />
  68. <h3 class="table-title">
  69. <p class="title-arrow">
  70. <svg-icon icon-class="tongzhigonggao" class-name="warehouse-svg" />待办事项
  71. </p>
  72. </h3>
  73. <div style="height: calc(100% - 40px);overflow-y: auto;overflow-x: hidden;">
  74. <ul class="todo-list">
  75. <li>
  76. <!-- CCCCCCC请及时处理 -->
  77. <p>温馨提示XX已提交了待借申请请及时处理请及时处理请及时处理</p>
  78. <span>2022-5-23 13:30</span>
  79. </li>
  80. <li>
  81. <p>温馨提示XX已提交了待借申请请及时处理</p>
  82. <span>2022-5-23 13:30</span>
  83. </li>
  84. <li>
  85. <p>温馨提示XX已提交了待借申请请及时处理</p>
  86. <span>2022-5-23 13:30</span>
  87. </li>
  88. <li>
  89. <p>温馨提示XX已提交了待借申请请及时处理</p>
  90. <span>2022-5-23 13:30</span>
  91. </li>
  92. <li>
  93. <p>温馨提示XX已提交了待借申请请及时处理</p>
  94. <span>2022-5-23 13:30</span>
  95. </li>
  96. <li>
  97. <p>温馨提示XX已提交了待借申请请及时处理</p>
  98. <span>2022-5-23 13:30</span>
  99. </li>
  100. </ul>
  101. </div>
  102. </div>
  103. </el-col>
  104. <el-col :xs="24" :sm="24" :lg="8">
  105. <!-- 门禁记录 -->
  106. <div class="container-wrap">
  107. <span class="right-top-line" />
  108. <span class="left-bottom-line" />
  109. <h3 class="table-title">
  110. <p class="title-arrow">
  111. <svg-icon icon-class="menjin" class-name="warehouse-svg" />门禁记录
  112. </p>
  113. </h3>
  114. <el-table ref="table2" style="min-width: 100%;" height="100%" :data="tableData" class="warehose-el-table" stripe>
  115. <el-table-column prop="time" label="时间" align="center" min-width="60" />
  116. <el-table-column prop="warehouse" label="库房" align="center" min-width="60" />
  117. <el-table-column prop="warning" label="警情" align="center" :show-overflow-tooltip="true" min-width="85" />
  118. </el-table>
  119. </div>
  120. </el-col>
  121. <el-col :xs="24" :sm="24" :lg="8">
  122. <!-- 报警记录 -->
  123. <div class="container-wrap">
  124. <span class="right-top-line" />
  125. <span class="left-bottom-line" />
  126. <h3 class="table-title">
  127. <p class="title-arrow">
  128. <svg-icon icon-class="alerm" class-name="warehouse-svg" />报警记录
  129. </p>
  130. </h3>
  131. <el-table ref="table" style="min-width: 100%;" height="100%" :data="tableData" class="warehose-el-table" stripe>
  132. <el-table-column prop="time" label="时间" align="center" min-width="60" />
  133. <el-table-column prop="warehouse" label="库房" align="center" min-width="60" />
  134. <el-table-column prop="warning" label="警情" align="center" :show-overflow-tooltip="true" min-width="85" />
  135. </el-table>
  136. </div>
  137. </el-col>
  138. </el-row>
  139. <el-row :gutter="20" style="height: calc(50vh - 251px);">
  140. <el-col :xs="24" :sm="24" :lg="8">
  141. <!-- 档案借阅 -->
  142. <div class="container-wrap">
  143. <span class="right-top-line" />
  144. <span class="left-bottom-line" />
  145. <h3 class="table-title">
  146. <p class="title-arrow">档案借阅</p>
  147. </h3>
  148. <div class="chart-wrapper">
  149. <lend-across :lend-data="lendData" />
  150. </div>
  151. </div>
  152. </el-col>
  153. <el-col :xs="24" :sm="24" :lg="8">
  154. <!-- 档案类别 -->
  155. <div class="container-wrap">
  156. <span class="right-top-line" />
  157. <span class="left-bottom-line" />
  158. <h3 class="table-title">
  159. <p class="title-arrow">档案类别</p>
  160. </h3>
  161. <div class="chart-wrapper">
  162. <cate-pie :cate-data="cateData" />
  163. </div>
  164. </div>
  165. </el-col>
  166. <el-col :xs="24" :sm="24" :lg="8">
  167. <!-- 档案类别 -->
  168. <div class="container-wrap">
  169. <span class="right-top-line" />
  170. <span class="left-bottom-line" />
  171. <h3 class="table-title">
  172. <p class="title-arrow">档案类别</p>
  173. </h3>
  174. <div class="chart-wrapper">
  175. <type-pie :type-data="typeData" />
  176. </div>
  177. </div>
  178. </el-col>
  179. </el-row>
  180. </div>
  181. </div>
  182. </template>
  183. <script>
  184. // import GithubCorner from '@/components/GithubCorner'
  185. import PanelGroup from './dashboard/PanelGroup'
  186. // import LineChart from './dashboard/LineChart'
  187. // import RadarChart from '@/components/Echarts/RadarChart'
  188. // import PieChart from '@/components/Echarts/PieChart'
  189. // import BarChart from '@/components/Echarts/BarChart'
  190. import lendAcross from '@/views/components/echarts/lendAcross.vue'
  191. import catePie from '@/views/components/echarts/catePie.vue'
  192. import typePie from '@/views/components/echarts/typePie.vue'
  193. import data1 from './data1.json'
  194. // const lineChartData = {
  195. // newVisitis: {
  196. // expectedData: [100, 120, 161, 134, 105, 160, 165],
  197. // actualData: [120, 82, 91, 154, 162, 140, 145]
  198. // },
  199. // messages: {
  200. // expectedData: [200, 192, 120, 144, 160, 130, 140],
  201. // actualData: [180, 160, 151, 106, 145, 150, 130]
  202. // },
  203. // purchases: {
  204. // expectedData: [80, 100, 121, 104, 105, 90, 100],
  205. // actualData: [120, 90, 100, 138, 142, 130, 130]
  206. // },
  207. // shoppings: {
  208. // expectedData: [130, 140, 141, 142, 145, 150, 160],
  209. // actualData: [120, 82, 91, 154, 162, 140, 130]
  210. // }
  211. // }
  212. export default {
  213. name: 'Dashboard',
  214. components: {
  215. // GithubCorner,
  216. PanelGroup,
  217. // LineChart,
  218. // RadarChart,
  219. // PieChart
  220. // ,
  221. // BarChart
  222. lendAcross, catePie, typePie
  223. },
  224. data() {
  225. return {
  226. selectValue: '1',
  227. lendData: [18203, 23489, 29034, 104970],
  228. cateData: [1000, 700],
  229. typeData: [1110, 2000, 800, 600, 900]
  230. }
  231. },
  232. created() {
  233. this.getData()
  234. },
  235. methods: {
  236. // handleSetLineChartData(type) {
  237. // this.lineChartData = lineChartData[type]
  238. // },
  239. getData() {
  240. this.tableData = data1.rows
  241. },
  242. changeActiveTab(id) {
  243. this.$router.push({
  244. name: 'warehouse3D',
  245. params: {
  246. roomId: id
  247. }
  248. })
  249. }
  250. }
  251. }
  252. </script>
  253. <style rel="stylesheet/scss" lang="scss" scoped>
  254. @import "~@/assets/styles/lend-manage.scss";
  255. .dashboard-editor-container {
  256. padding: 20px;
  257. background-color: #031435;
  258. position: relative;
  259. // .github-corner {
  260. // position: absolute;
  261. // top: 0;
  262. // border: 0;
  263. // right: 0;
  264. // }
  265. .chart-wrapper {
  266. height: calc(100% - 40px);
  267. // background: #fff;
  268. // padding: 16px 16px 0;
  269. // margin-bottom: 32px;
  270. }
  271. }
  272. @media (max-width: 1024px) {
  273. .chart-wrapper {
  274. padding: 8px;
  275. }
  276. }
  277. // .title-arrow {
  278. // width: 100%;
  279. // &:before{
  280. // left: calc(50% - 100px)
  281. // }
  282. // &:after{
  283. // right: calc(50% - 100px)
  284. // }
  285. // }
  286. .warehouse-tab {
  287. color: #fff;
  288. .warehouse-nav {
  289. display: flex;
  290. justify-content: space-around;
  291. position: absolute;
  292. bottom: 15px;
  293. // left: 20px;
  294. z-index: 11;
  295. // width: calc(100vw - 545px);
  296. width: 100%;
  297. // height: 90px;
  298. // min-height: 90px;
  299. padding: 0;
  300. li {
  301. display: flex;
  302. flex-direction: column;
  303. align-items: center;
  304. flex-wrap: nowrap;
  305. // align-items: center;
  306. align-content: center;
  307. justify-content: center;
  308. // width: 25%;
  309. height: 90px;
  310. // line-height: 90px;
  311. text-align: right;
  312. // padding-right: 20px;
  313. // margin-right: 20px;
  314. font-size: 14px;
  315. position: relative;
  316. &:hover {
  317. cursor: pointer;
  318. }
  319. // background: url('~@/assets/images/warehouse_tab_bg.png') no-repeat;
  320. // background-size: 100% 100%;
  321. span {
  322. width: 72px;
  323. height: 52px;
  324. margin-bottom: 7px;
  325. // position: absolute;
  326. // left: 60px;
  327. // top: 20px;
  328. }
  329. p {
  330. // flex: 1;
  331. text-align: left;
  332. }
  333. &:first-child span {
  334. background: url("~@/assets/images/tab_fullview_logo.png") no-repeat;
  335. }
  336. &:nth-child(2) span {
  337. background: url("~@/assets/images/tab_archives_logo.png") no-repeat;
  338. }
  339. &:nth-child(3) span {
  340. background: url("~@/assets/images/tab_collate_logo.png") no-repeat;
  341. }
  342. &:nth-child(4) span {
  343. background: url("~@/assets/images/tab_read_logo.png") no-repeat;
  344. }
  345. }
  346. // .active-nav{
  347. // color: #fff;
  348. // background: url('~@/assets/images/warehouse_tab_active.png') no-repeat;
  349. // background-size: 100% 100%;
  350. // }
  351. }
  352. }
  353. .search-area {
  354. height: 100%;
  355. margin: 0;
  356. display: flex;
  357. align-items: center;
  358. justify-content: center;
  359. & .search-input {
  360. width: 796px;
  361. ::v-deep.el-input-group {
  362. height: 42px;
  363. & > input {
  364. height: 42px;
  365. border: 1px solid #339cff;
  366. background-color: #021941;
  367. &::placeholder {
  368. color: #fff;
  369. }
  370. }
  371. }
  372. // border: 1px solid #339cff;
  373. // background-color: #021941;
  374. // height: 42px;
  375. // line-height: 42px;
  376. // color: #fff;
  377. & ::v-deep.el-input-group__prepend {
  378. width: 125px;
  379. background-color: #339cff;
  380. border: 1px solid #339cff;
  381. border-radius: 34px;
  382. border-right: 0;
  383. border-top-right-radius: 0;
  384. border-bottom-right-radius: 0;
  385. .el-input__inner {
  386. text-align: center;
  387. color: #fff;
  388. }
  389. }
  390. & ::v-deep.el-input-group__append {
  391. width: 72px;
  392. left: -20px;
  393. text-align: center;
  394. background-color: #339cff;
  395. border: 1px solid #339cff;
  396. border-radius: 34px;
  397. & i {
  398. font-size: 25px;
  399. color: #fff;
  400. }
  401. }
  402. & .el-select .el-input {
  403. width: 130px;
  404. }
  405. & ::v-deep.input-with-select ::v-deep.el-input-group__prepend {
  406. background-color: #fff;
  407. }
  408. }
  409. }
  410. .el-col {
  411. height: 100%;
  412. }
  413. .container-left,
  414. .container-right,
  415. .container-wrap,
  416. .el-card,
  417. .header-container-wrap {
  418. min-height: 100%;
  419. }
  420. .warehose-el-table ::v-deep.el-table__header-wrapper {
  421. box-shadow: inset 0px 0px 6px 1px #339cff;
  422. background: none !important;
  423. }
  424. .container-wrap {
  425. min-height: auto;
  426. height: 100%;
  427. overflow: hidden;
  428. }
  429. .todo-list {
  430. padding: 0 20px;
  431. & li {
  432. background: #02255f;
  433. box-shadow: inset 0px 0px 6px 1px #339cff;
  434. border-radius: 26px 26px 26px 26px;
  435. opacity: 1;
  436. margin-bottom: 10px;
  437. font-size: 13px;
  438. color: #ffffff;
  439. line-height: 42px;
  440. height: 42px;
  441. & p {
  442. font-family: Microsoft YaHei-Regular, Microsoft YaHei;
  443. font-weight: 400;
  444. display: inline-block;
  445. padding-left: 10px;
  446. width: calc(100% - 112px);
  447. text-overflow: ellipsis;
  448. overflow: hidden;
  449. white-space: nowrap;
  450. word-break: break-all;
  451. }
  452. & span {
  453. float: right;
  454. padding-right: 10px;
  455. }
  456. }
  457. }
  458. ::v-deep
  459. .el-table--striped
  460. .el-table__body
  461. tr.el-table__row--striped
  462. td.el-table__cell {
  463. background: #02255f;
  464. }
  465. </style>