【前端】智能库房综合管理系统前端项目
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.

460 lines
13 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
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. <warehouse-warning :height="'calc(100% - 40px)'" />
  124. </el-col>
  125. </el-row>
  126. <el-row :gutter="20" style="height: calc(50vh - 251px);">
  127. <el-col :xs="24" :sm="24" :lg="8">
  128. <!-- 档案借阅 -->
  129. <div class="container-wrap">
  130. <span class="right-top-line" />
  131. <span class="left-bottom-line" />
  132. <h3 class="table-title">
  133. <p class="title-arrow">档案借阅</p>
  134. </h3>
  135. <div class="chart-wrapper">
  136. <lend-across :lend-data="lendData" />
  137. </div>
  138. </div>
  139. </el-col>
  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. <cate-pie :cate-data="cateData" />
  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. <type-pie :type-data="typeData" />
  163. </div>
  164. </div>
  165. </el-col>
  166. </el-row>
  167. </div>
  168. </div>
  169. </template>
  170. <script>
  171. // import GithubCorner from '@/components/GithubCorner'
  172. import PanelGroup from './dashboard/PanelGroup'
  173. // import LineChart from './dashboard/LineChart'
  174. // import RadarChart from '@/components/Echarts/RadarChart'
  175. // import PieChart from '@/components/Echarts/PieChart'
  176. // import BarChart from '@/components/Echarts/BarChart'
  177. import lendAcross from '@/views/components/echarts/lendAcross.vue'
  178. import catePie from '@/views/components/echarts/catePie.vue'
  179. import typePie from '@/views/components/echarts/typePie.vue'
  180. import data1 from './data1.json'
  181. import WarehouseWarning from '@/views/components/WarehouseWarning'
  182. // const lineChartData = {
  183. // newVisitis: {
  184. // expectedData: [100, 120, 161, 134, 105, 160, 165],
  185. // actualData: [120, 82, 91, 154, 162, 140, 145]
  186. // },
  187. // messages: {
  188. // expectedData: [200, 192, 120, 144, 160, 130, 140],
  189. // actualData: [180, 160, 151, 106, 145, 150, 130]
  190. // },
  191. // purchases: {
  192. // expectedData: [80, 100, 121, 104, 105, 90, 100],
  193. // actualData: [120, 90, 100, 138, 142, 130, 130]
  194. // },
  195. // shoppings: {
  196. // expectedData: [130, 140, 141, 142, 145, 150, 160],
  197. // actualData: [120, 82, 91, 154, 162, 140, 130]
  198. // }
  199. // }
  200. export default {
  201. name: 'Dashboard',
  202. components: {
  203. // GithubCorner,
  204. WarehouseWarning,
  205. PanelGroup,
  206. // LineChart,
  207. // RadarChart,
  208. // PieChart
  209. // ,
  210. // BarChart
  211. lendAcross, catePie, typePie
  212. },
  213. data() {
  214. return {
  215. selectValue: '1',
  216. lendData: [18203, 23489, 29034, 104970],
  217. cateData: [1000, 700],
  218. typeData: [1110, 2000, 800, 600, 900]
  219. }
  220. },
  221. created() {
  222. this.getData()
  223. },
  224. methods: {
  225. // handleSetLineChartData(type) {
  226. // this.lineChartData = lineChartData[type]
  227. // },
  228. getData() {
  229. this.tableData = data1.rows
  230. },
  231. changeActiveTab(id) {
  232. this.$router.push({
  233. name: 'warehouse3D',
  234. params: {
  235. roomId: id
  236. }
  237. })
  238. }
  239. }
  240. }
  241. </script>
  242. <style rel="stylesheet/scss" lang="scss" scoped>
  243. @import "~@/assets/styles/lend-manage.scss";
  244. .dashboard-editor-container {
  245. padding: 20px;
  246. background-color: #031435;
  247. position: relative;
  248. // .github-corner {
  249. // position: absolute;
  250. // top: 0;
  251. // border: 0;
  252. // right: 0;
  253. // }
  254. .chart-wrapper {
  255. height: calc(100% - 40px);
  256. // background: #fff;
  257. // padding: 16px 16px 0;
  258. // margin-bottom: 32px;
  259. }
  260. }
  261. @media (max-width: 1024px) {
  262. .chart-wrapper {
  263. padding: 8px;
  264. }
  265. }
  266. // .title-arrow {
  267. // width: 100%;
  268. // &:before{
  269. // left: calc(50% - 100px)
  270. // }
  271. // &:after{
  272. // right: calc(50% - 100px)
  273. // }
  274. // }
  275. .warehouse-tab {
  276. color: #fff;
  277. .warehouse-nav {
  278. display: flex;
  279. justify-content: space-around;
  280. position: absolute;
  281. bottom: 15px;
  282. // left: 20px;
  283. z-index: 11;
  284. // width: calc(100vw - 545px);
  285. width: 100%;
  286. // height: 90px;
  287. // min-height: 90px;
  288. padding: 0;
  289. li {
  290. display: flex;
  291. flex-direction: column;
  292. align-items: center;
  293. flex-wrap: nowrap;
  294. // align-items: center;
  295. align-content: center;
  296. justify-content: center;
  297. // width: 25%;
  298. height: 90px;
  299. // line-height: 90px;
  300. text-align: right;
  301. // padding-right: 20px;
  302. // margin-right: 20px;
  303. font-size: 14px;
  304. position: relative;
  305. &:hover {
  306. cursor: pointer;
  307. }
  308. // background: url('~@/assets/images/warehouse_tab_bg.png') no-repeat;
  309. // background-size: 100% 100%;
  310. span {
  311. width: 72px;
  312. height: 52px;
  313. margin-bottom: 7px;
  314. // position: absolute;
  315. // left: 60px;
  316. // top: 20px;
  317. }
  318. p {
  319. // flex: 1;
  320. text-align: left;
  321. }
  322. &:first-child span {
  323. background: url("~@/assets/images/tab_fullview_logo.png") no-repeat;
  324. }
  325. &:nth-child(2) span {
  326. background: url("~@/assets/images/tab_archives_logo.png") no-repeat;
  327. }
  328. &:nth-child(3) span {
  329. background: url("~@/assets/images/tab_collate_logo.png") no-repeat;
  330. }
  331. &:nth-child(4) span {
  332. background: url("~@/assets/images/tab_read_logo.png") no-repeat;
  333. }
  334. }
  335. // .active-nav{
  336. // color: #fff;
  337. // background: url('~@/assets/images/warehouse_tab_active.png') no-repeat;
  338. // background-size: 100% 100%;
  339. // }
  340. }
  341. }
  342. .search-area {
  343. height: 100%;
  344. margin: 0;
  345. display: flex;
  346. align-items: center;
  347. justify-content: center;
  348. & .search-input {
  349. width: 796px;
  350. ::v-deep .el-input-group {
  351. height: 42px;
  352. & > input {
  353. height: 42px;
  354. border: 1px solid #339cff;
  355. background-color: #021941;
  356. &::placeholder {
  357. color: #fff;
  358. }
  359. }
  360. }
  361. // border: 1px solid #339cff;
  362. // background-color: #021941;
  363. // height: 42px;
  364. // line-height: 42px;
  365. // color: #fff;
  366. & ::v-deep .el-input-group__prepend {
  367. width: 125px;
  368. background-color: #339cff;
  369. border: 1px solid #339cff;
  370. border-radius: 34px;
  371. border-right: 0;
  372. border-top-right-radius: 0;
  373. border-bottom-right-radius: 0;
  374. .el-input__inner {
  375. text-align: center;
  376. color: #fff;
  377. }
  378. }
  379. & ::v-deep .el-input-group__append {
  380. width: 72px;
  381. left: -20px;
  382. text-align: center;
  383. background-color: #339cff;
  384. border: 1px solid #339cff;
  385. border-radius: 34px;
  386. & i {
  387. font-size: 25px;
  388. color: #fff;
  389. }
  390. }
  391. & .el-select .el-input {
  392. width: 130px;
  393. }
  394. & ::v-deep .input-with-select ::v-deep .el-input-group__prepend {
  395. background-color: #fff;
  396. }
  397. }
  398. }
  399. .el-col {
  400. height: 100%;
  401. }
  402. .container-left,
  403. .container-right,
  404. .container-wrap,
  405. .el-card,
  406. .header-container-wrap {
  407. min-height: 100%;
  408. }
  409. .warehose-el-table ::v-deep .el-table__header-wrapper {
  410. box-shadow: inset 0px 0px 6px 1px #339cff;
  411. background: none !important;
  412. }
  413. .container-wrap {
  414. min-height: auto;
  415. height: 100%;
  416. overflow: hidden;
  417. }
  418. .todo-list {
  419. padding: 0 20px;
  420. & li {
  421. background: #02255f;
  422. box-shadow: inset 0px 0px 6px 1px #339cff;
  423. border-radius: 26px 26px 26px 26px;
  424. opacity: 1;
  425. margin-bottom: 10px;
  426. font-size: 13px;
  427. color: #ffffff;
  428. line-height: 42px;
  429. height: 42px;
  430. & p {
  431. font-family: Microsoft YaHei-Regular, Microsoft YaHei;
  432. font-weight: 400;
  433. display: inline-block;
  434. padding-left: 10px;
  435. width: calc(100% - 112px);
  436. text-overflow: ellipsis;
  437. overflow: hidden;
  438. white-space: nowrap;
  439. word-break: break-all;
  440. }
  441. & span {
  442. float: right;
  443. padding-right: 10px;
  444. }
  445. }
  446. }
  447. ::v-deep
  448. .el-table--striped
  449. .el-table__body
  450. tr.el-table__row--striped
  451. td.el-table__cell {
  452. background: #02255f;
  453. }
  454. </style>