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

329 lines
8.9 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
  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. <SearchAcrives />
  15. </div>
  16. </el-col>
  17. <el-col :xs="24" :sm="24" :lg="8">
  18. <!-- <div class="chart-wrapper">
  19. <pie-chart />
  20. </div> -->
  21. <div class="container-left" style="height: 100%;margin: 0">
  22. <span class="right-top-line" />
  23. <span class="left-bottom-line" />
  24. <h3 class=" table-title">
  25. <p class="title-arrow">
  26. <svg-icon icon-class="a-3Dkufang" class-name="warehouse-svg" />3D库房
  27. </p>
  28. </h3>
  29. <div class="warehouse-tab">
  30. <ul class="warehouse-nav">
  31. <li @click="changeActiveTab(0)">
  32. <span />
  33. <p>全景图</p>
  34. </li>
  35. <li @click="changeActiveTab(1)">
  36. <span />
  37. <p>档案库</p>
  38. </li>
  39. <li @click="changeActiveTab(2)">
  40. <span />
  41. <p>整理室</p>
  42. </li>
  43. <li @click="changeActiveTab(3)">
  44. <span />
  45. <p>阅览室</p>
  46. </li>
  47. </ul>
  48. </div>
  49. </div>
  50. </el-col>
  51. </el-row>
  52. <el-row :gutter="20" style="margin-bottom:20px;height: calc(50vh - 251px);">
  53. <el-col :xs="24" :sm="24" :lg="8">
  54. <!-- 待办事项 -->
  55. <div class="container-wrap">
  56. <span class="right-top-line" />
  57. <span class="left-bottom-line" />
  58. <h3 class="table-title">
  59. <p class="title-arrow">
  60. <svg-icon icon-class="tongzhigonggao" class-name="warehouse-svg" />待办事项
  61. </p>
  62. </h3>
  63. <div style="height: calc(100% - 40px);overflow-y: auto;overflow-x: hidden;">
  64. <ul v-if="waitBorrowerData.length !== 0" class="todo-list">
  65. <li v-for="(item,index) in waitBorrowerData" :key="index">
  66. <el-tooltip class="item" effect="dark" :content="item.title" :enterable="false" placement="top">
  67. <p>温馨提示{{ item.title }}</p>
  68. </el-tooltip>
  69. <span>{{ item.update_time | parseTime }}</span>
  70. </li>
  71. </ul>
  72. <div v-else class="empty-main">
  73. <svg-icon icon-class="empty" class-name="empty-img" />
  74. <p>暂无数据</p>
  75. </div>
  76. </div>
  77. </div>
  78. </el-col>
  79. <el-col :xs="24" :sm="24" :lg="8">
  80. <!-- 门禁记录 -->
  81. <security-door :height="'calc(100% - 40px)'" />
  82. </el-col>
  83. <el-col :xs="24" :sm="24" :lg="8">
  84. <!-- 报警记录 -->
  85. <warehouse-warning :height="'calc(100% - 40px)'" />
  86. </el-col>
  87. </el-row>
  88. <el-row :gutter="20" style="height: calc(50vh - 251px);">
  89. <el-col :xs="24" :sm="24" :lg="8">
  90. <!-- 档案借阅 -->
  91. <div class="container-wrap">
  92. <span class="right-top-line" />
  93. <span class="left-bottom-line" />
  94. <h3 class="table-title">
  95. <p class="title-arrow">档案借阅</p>
  96. </h3>
  97. <div class="chart-wrapper">
  98. <lend-across :lend-data="lendData" />
  99. </div>
  100. </div>
  101. </el-col>
  102. <el-col :xs="24" :sm="24" :lg="8">
  103. <!-- 档案类别 -->
  104. <div class="container-wrap">
  105. <span class="right-top-line" />
  106. <span class="left-bottom-line" />
  107. <h3 class="table-title">
  108. <p class="title-arrow">档案类别</p>
  109. </h3>
  110. <div class="chart-wrapper">
  111. <cate-pie :cate-data="cateData" />
  112. </div>
  113. </div>
  114. </el-col>
  115. <el-col :xs="24" :sm="24" :lg="8">
  116. <!-- 档案类别 -->
  117. <div class="container-wrap">
  118. <span class="right-top-line" />
  119. <span class="left-bottom-line" />
  120. <h3 class="table-title">
  121. <p class="title-arrow">档案类型</p>
  122. </h3>
  123. <div class="chart-wrapper">
  124. <type-pie :type-data="typeData" />
  125. </div>
  126. </div>
  127. </el-col>
  128. </el-row>
  129. </div>
  130. </div>
  131. </template>
  132. <script>
  133. import PanelGroup from './dashboard/PanelGroup'
  134. import lendAcross from '@/views/components/echarts/lendAcross.vue'
  135. import catePie from '@/views/components/echarts/catePie.vue'
  136. import typePie from '@/views/components/echarts/typePie.vue'
  137. import WarehouseWarning from '@/views/components/WarehouseWarning'
  138. import SecurityDoor from '@/views/components/SecurityDoor'
  139. import SearchAcrives from '@/views/archivesManage/archivesSearch/index'
  140. import { statisticsCrud } from '@/views/system/archiveStatistics/mixins/statistics'
  141. import { FetchWaitBorrower } from '@/api/archivesManage/lendManage'
  142. export default {
  143. name: 'Dashboard',
  144. components: {
  145. WarehouseWarning,
  146. SecurityDoor,
  147. PanelGroup,
  148. lendAcross,
  149. catePie,
  150. typePie,
  151. SearchAcrives
  152. },
  153. mixins: [statisticsCrud],
  154. data() {
  155. return {
  156. waitBorrowerData: []
  157. }
  158. },
  159. created() {
  160. this.getWaitBorrower()
  161. },
  162. methods: {
  163. // handleSetLineChartData(type) {
  164. // this.lineChartData = lineChartData[type]
  165. // },
  166. getWaitBorrower() {
  167. FetchWaitBorrower().then(data => {
  168. if (data) {
  169. this.waitBorrowerData = data
  170. }
  171. })
  172. },
  173. changeActiveTab(id) {
  174. this.$router.push({
  175. name: 'warehouse3D',
  176. params: {
  177. roomId: id
  178. }
  179. })
  180. }
  181. }
  182. }
  183. </script>
  184. <style rel="stylesheet/scss" lang="scss" scoped>
  185. @import "~@/assets/styles/lend-manage.scss";
  186. .dashboard-editor-container {
  187. padding: 20px;
  188. background-color: #031435;
  189. position: relative;
  190. .chart-wrapper {
  191. height: calc(100% - 40px);
  192. }
  193. }
  194. @media (max-width: 1024px) {
  195. .chart-wrapper {
  196. padding: 8px;
  197. }
  198. }
  199. .warehouse-tab {
  200. color: #fff;
  201. .warehouse-nav {
  202. display: flex;
  203. justify-content: space-around;
  204. position: absolute;
  205. bottom: 15px;
  206. z-index: 11;
  207. width: 100%;
  208. padding: 0;
  209. li {
  210. display: flex;
  211. flex-direction: column;
  212. align-items: center;
  213. flex-wrap: nowrap;
  214. align-content: center;
  215. justify-content: center;
  216. height: 90px;
  217. text-align: right;
  218. font-size: 14px;
  219. position: relative;
  220. &:hover {
  221. cursor: pointer;
  222. }
  223. span {
  224. width: 72px;
  225. height: 52px;
  226. margin-bottom: 7px;
  227. }
  228. p {
  229. text-align: left;
  230. }
  231. &:first-child span {
  232. background: url("~@/assets/images/tab_fullview_logo.png") no-repeat;
  233. }
  234. &:nth-child(2) span {
  235. background: url("~@/assets/images/tab_archives_logo.png") no-repeat;
  236. }
  237. &:nth-child(3) span {
  238. background: url("~@/assets/images/tab_collate_logo.png") no-repeat;
  239. }
  240. &:nth-child(4) span {
  241. background: url("~@/assets/images/tab_read_logo.png") no-repeat;
  242. }
  243. }
  244. }
  245. }
  246. .el-col {
  247. height: 100%;
  248. }
  249. .container-left,
  250. .container-right,
  251. .container-wrap,
  252. .el-card,
  253. .header-container-wrap {
  254. min-height: 100%;
  255. }
  256. .warehose-el-table ::v-deep .el-table__header-wrapper {
  257. box-shadow: inset 0px 0px 6px 1px #339cff;
  258. background: none !important;
  259. }
  260. .container-wrap {
  261. min-height: auto;
  262. height: 100%;
  263. // overflow: hidden;
  264. }
  265. .todo-list {
  266. padding: 0 20px;
  267. & li {
  268. height: 42px;
  269. line-height: 42px;
  270. margin-bottom: 10px;
  271. font-size: 13px;
  272. color: #ffffff;
  273. background: #02255f;
  274. box-shadow: inset 0px 0px 6px 1px #339cff;
  275. border-radius: 26px;
  276. opacity: 1;
  277. cursor: pointer;
  278. & p {
  279. display: inline-block;
  280. width: calc(100% - 140px);
  281. padding-left: 10px;
  282. text-overflow: ellipsis;
  283. overflow: hidden;
  284. white-space: nowrap;
  285. word-break: break-all;
  286. }
  287. & span {
  288. float: right;
  289. padding-right: 10px;
  290. }
  291. }
  292. }
  293. ::v-deep
  294. .el-table--striped
  295. .el-table__body
  296. tr.el-table__row--striped
  297. td.el-table__cell {
  298. background: #02255f;
  299. }
  300. .search-area {
  301. width: 100%;
  302. height: 100%;
  303. margin: 0;
  304. display: flex;
  305. align-items: center;
  306. justify-content: center;
  307. }
  308. ::v-deep .search-main{
  309. padding: 0 62px;
  310. .head-container{
  311. padding: 0;
  312. width: 100% !important;
  313. .search-input {
  314. width: 100% !important;
  315. }
  316. .input-with-select{
  317. width: 100% !important;
  318. }
  319. }
  320. }
  321. .empty-main{
  322. height: 100%;
  323. }
  324. </style>