index.vue 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186
  1. <template>
  2. <div class="app-container home" v-if="sysType == 1">
  3. <div class="home-fleet">
  4. <div class="home-left">
  5. <chi-card title="业务看板" iconName="el-icon-s-cooperation">
  6. <div slot="content">
  7. <div class="content-top">
  8. <div class="content-top-left">
  9. <div style="display: flex; align-self: center;margin-left: 5px">
  10. <div style="align-self: center">
  11. <svg
  12. t="1616396514864"
  13. class="icon"
  14. viewBox="0 0 1024 1024"
  15. version="1.1"
  16. xmlns="http://www.w3.org/2000/svg"
  17. p-id="9805"
  18. width="20"
  19. height="20"
  20. >
  21. <path
  22. d="M314.324 292.999c24.207 0.095 44.072-19.16 44.72-43.36L359.044 52.6c-0.647-24.2-20.512-43.455-44.72-43.36-23.945 0-43.36 19.415-43.36 43.36l0 197.04C271.012 273.567 290.397 292.952 314.324 292.999L314.324 292.999zM707.923 292.999c24.21 0.095 44.07-19.16 44.72-43.36L752.643 52.6c-0.65-24.2-20.51-43.455-44.72-43.36-23.945 0-43.36 19.415-43.36 43.36l0 197.04C664.563 273.584 683.978 292.999 707.923 292.999L707.923 292.999zM402.084 118.36l219.279 0 0 65.6L402.084 183.96 402.084 118.36 402.084 118.36zM878.003 118.36l-81.52 0 0 65.2 84.64 0c25.2 0.345 45.535 20.72 45.84 45.92l0 152L96.085 381.48 96.085 229.56c0.48-25.232 21-45.472 46.24-45.6l85.2 0 0-65.6-81.36 0c-63.345 0.265-114.592 51.615-114.72 114.96l0 666.558c-0.752 62.69 49.455 114.12 112.152 114.87 0.16 0 0.328 0 0.488 0.01l733.758 0c63.31-0.265 114.545-51.57 114.72-114.88L992.563 233.32C992.432 170.04 941.282 118.712 878.003 118.36L878.003 118.36zM497.929 810.758c-74.175 0.185-134.465-59.815-134.645-133.995-0.177-74.175 59.815-134.465 133.995-134.645 74.175-0.18 134.46 59.815 134.645 133.995 0 0.11 0 0.215 0 0.325C632.023 750.533 572.023 810.658 497.929 810.758L497.929 810.758 497.929 810.758z"
  23. p-id="9806"
  24. fill="#000000"
  25. ></path>
  26. </svg>
  27. </div>
  28. <div
  29. style="
  30. align-self: center;
  31. font-size: 16px;
  32. margin: 2px 0 0 5px;
  33. "
  34. >
  35. 新增柜数
  36. </div>
  37. </div>
  38. <div
  39. style="font-size: 36px; align-self: center; font-weight: 600;color:#014da1"
  40. >
  41. {{ upperLeftCntrs.planQuantity }}
  42. </div>
  43. </div>
  44. <div class="content-top-right">
  45. <div
  46. style="
  47. display: flex;
  48. align-self: center;
  49. min-width: 120px;
  50. margin-left: 5px
  51. "
  52. >
  53. <div style="align-self: center">
  54. <svg
  55. t="1616400289333"
  56. class="icon"
  57. viewBox="0 0 1024 1024"
  58. version="1.1"
  59. xmlns="http://www.w3.org/2000/svg"
  60. p-id="22417"
  61. width="20"
  62. height="20"
  63. >
  64. <path
  65. d="M864.425973 1023.936004 228.305731 1023.936004c-114.296856 0-130.871821-105.529404-133.111681-128.439973l-0.383976-0.575964 0.31998 0c-0.255984-2.367852-0.31998-4.031748-0.31998-4.031748l0-12.351228c-60.604212-36.093744-64.059996-115.320792-64.059996-115.320792L30.750078 126.328104C30.814074 3.967752 158.934067 0 158.934067 0l643.415787 0c64.63596 0 96.441972 38.269608 112.120992 72.63546 71.931504 28.47822 78.779076 117.496656 78.779076 117.496656l0 700.756203C993.249922 890.952315 974.56309 1023.936004 864.425973 1023.936004L864.425973 1023.936004 864.425973 1023.936004zM479.298044 256.687957l0 191.476033L222.994063 448.16399 222.994063 511.968002l256.303981 0 0 191.476033 256.303981-223.410037L479.298044 256.687957 479.298044 256.687957 479.298044 256.687957zM927.782014 129.015937l-64.059996 0 0 748.433223 0 17.470908-46.07712 0L158.934067 894.920067 158.934067 895.944003l0 62.844072 704.787951 0 64.059996 0L927.782014 129.015937 927.782014 129.015937zM927.782014 129.015937"
  66. p-id="22418"
  67. ></path>
  68. </svg>
  69. </div>
  70. <div
  71. style="
  72. align-self: center;
  73. font-size: 16px;
  74. margin: 2px 0 0 5px;
  75. "
  76. >
  77. 未安排柜数
  78. </div>
  79. </div>
  80. <div
  81. style="font-size: 36px; align-self: center; font-weight: 600;color:#014da1"
  82. >
  83. {{ upperLeftCntrs.surplusQuantity }}
  84. </div>
  85. </div>
  86. </div>
  87. <div class="content-bottom">
  88. <div style="display: flex; align-self: center;margin-left: 5px">
  89. <div style="align-self: center">
  90. <svg
  91. t="1616402886142"
  92. class="icon"
  93. viewBox="0 0 1024 1024"
  94. version="1.1"
  95. xmlns="http://www.w3.org/2000/svg"
  96. p-id="31596"
  97. width="24"
  98. height="24"
  99. >
  100. <path
  101. d="M55.3 594.7V851c0 11 9 20 20 20h3.1c10 0 18.3-7.4 19.8-17.2 8.3-55.3 56.1-97.8 113.7-97.8s105.4 42.4 113.7 97.8c1.5 9.9 9.8 17.2 19.8 17.2H386c11 0 20-9 20-20V407c0-11-9-20-20-20H280c-33.1 0-64.8 13.7-87.5 37.9L71.6 553.7c-10.5 11.1-16.3 25.8-16.3 41zM336 478v144c0 11-9 20-20 20H145.3c-11 0-20-9-20-20v-13.6c0-10.5 4.2-20.7 11.6-28.1l85.9-86.7c22.5-22.8 53.2-35.6 85.3-35.6h7.9c11 0 20 8.9 20 20zM467.3 257v574c0 22.1 17.9 40 40 40h175.1c10 0 18.3-7.4 19.8-17.2 8.3-55.3 56.1-97.8 113.7-97.8 63.5 0 115 51.5 115 115 20.4 0 37-16.6 37-37V257c0-22.1-17.9-40-40-40H507.3c-22.1 0-40 17.9-40 40z"
  102. p-id="31597"
  103. ></path>
  104. <path
  105. d="M213.5 797c-45.4-0.8-82.3 36.1-81.5 81.5 0.8 42.8 35.7 77.7 78.5 78.5 45.4 0.8 82.3-36.1 81.5-81.5-0.8-42.8-35.7-77.7-78.5-78.5zM817.5 797c-45.4-0.8-82.3 36.1-81.5 81.5 0.8 42.8 35.7 77.7 78.5 78.5 45.4 0.8 82.3-36.1 81.5-81.5-0.8-42.8-35.7-77.7-78.5-78.5z"
  106. p-id="31598"
  107. ></path>
  108. </svg>
  109. </div>
  110. <div
  111. style="
  112. align-self: center;
  113. font-size: 16px;
  114. margin: 2px 0 0 5px;
  115. width: 110px;
  116. "
  117. >
  118. 今日派车数
  119. </div>
  120. </div>
  121. <div
  122. style="font-size: 36px; align-self: center; font-weight: 600;color:#014da1"
  123. >
  124. {{ fleetData.upperLeftCarQuantity }}
  125. </div>
  126. <div style="align-self: center; color: #409eff">派车详情></div>
  127. </div>
  128. <div class="content-bottom">
  129. <div
  130. style="display: flex; align-self:center; min-width: 120px;margin-left: 5px"
  131. >
  132. <div style="align-self: center">
  133. <svg
  134. t="1616402771353"
  135. class="icon"
  136. viewBox="0 0 1048 1024"
  137. version="1.1"
  138. xmlns="http://www.w3.org/2000/svg"
  139. p-id="29149"
  140. width="20"
  141. height="20"
  142. >
  143. <path
  144. d="M880.931574 1.385265c-82.95439-11.745754-55.058223 55.058223-55.058224 55.058223l60.931101 83.6885c88.093157 106.445898-33.034934 81.486171-33.034934 81.48617-77.081513 36.705482 0 82.95439 0 82.95439h110.116447v496.99223c-49.185346 69.740416-82.95439 0-82.95439 0V470.481328a106.445898 106.445898 0 0 0-82.95439-110.116447H715.022794a34.503153 34.503153 0 0 1-27.896167-27.896166V84.339655c0-41.11014-18.352741-51.387675-54.324113-53.590004S198.209604 30.749651 135.810284 30.749651a55.058223 55.058223 0 0 0-54.324113 55.058223v828.075679c-163.706451 56.526443-27.896166 110.116447-27.896167 110.116447h690.063066c107.914118-73.410964-55.058223-110.116447-55.058223-110.116447v-440.465787l4.404658-4.404657a73.410964 73.410964 0 0 1 105.711788 4.404657v357.511397a122.596311 122.596311 0 0 0 55.058224 82.95439h110.116447a198.209604 198.209604 0 0 0 82.954389-82.95439v-660.69868zM610.045115 345.682688a34.503153 34.503153 0 0 1-34.503154 34.503154H191.602617a34.503153 34.503153 0 0 1-34.503153-34.503154V148.207194a34.503153 34.503153 0 0 1 34.503153-34.503153h383.939344a34.503153 34.503153 0 0 1 34.503154 34.503153z"
  145. p-id="29150"
  146. ></path>
  147. </svg>
  148. </div>
  149. <div
  150. style="
  151. align-self: center;
  152. font-size: 16px;
  153. margin: 2px 0 0 5px;
  154. width: 110px;
  155. "
  156. >
  157. 可用车辆数
  158. </div>
  159. </div>
  160. <div
  161. style="font-size: 36px; align-self: center; font-weight: 600;color:#014da1"
  162. >
  163. {{ fleetData.upperLeftOldCarQuantity }}
  164. </div>
  165. <div style="align-self: center; color: #409eff">派车详情></div>
  166. </div>
  167. </div>
  168. </chi-card>
  169. <chi-card
  170. title="新闻公告"
  171. iconName="el-icon-s-cooperation"
  172. :More="true"
  173. >
  174. <div slot="content" style="height: 312px">
  175. <div style="padding: 5px 5px 0 5px; font-size: 16px">
  176. 【新闻】新闻
  177. </div>
  178. </div>
  179. </chi-card>
  180. </div>
  181. <div class="home-right">
  182. <chi-card title="运行车辆" iconName="el-icon-s-order" :More="true">
  183. <div slot="content" class="upper-right">
  184. <div
  185. style="display: flex; padding: 4px 15px; font-size: 14px"
  186. v-for="(item, index) in upperRights"
  187. :key="index"
  188. :style="{
  189. backgroundColor: index % 2 == 0 ? '#fafbfd' : '#FFFFFF',
  190. }"
  191. >
  192. <div style="width: 30%">{{ item.mblno }}</div>
  193. <div style="width: 20%">{{ item.carregNo }}</div>
  194. <div style="width: 15%; color: #67c23a">
  195. {{ item.orderStatus | statusType }}
  196. </div>
  197. <div
  198. style="
  199. width: 35%;
  200. overflow: hidden;
  201. text-overflow: ellipsis;
  202. white-space: nowrap;
  203. "
  204. >
  205. {{ item.corpName }}
  206. </div>
  207. </div>
  208. </div>
  209. </chi-card>
  210. <chi-card title="业务待办" iconName="el-icon-s-order" :More="true">
  211. <div slot="content" class="upper-right2">
  212. <div
  213. style="
  214. font-size: 14px;
  215. display: flex;
  216. margin: 4px 15px;
  217. border-bottom: 1px dashed #e6ebf5;
  218. "
  219. >
  220. <div style="width: 30%" class="single_line">FK221516485645</div>
  221. <div style="width: 20%" class="single_line">运费运费运费</div>
  222. <div style="width: 15%" class="single_line">李刚</div>
  223. <div style="width: 15%; color: #67c23a" class="single_line">待审批</div>
  224. <div style="width: 20%" class="single_line">2020/10/10</div>
  225. </div>
  226. <div style="font-size: 14px; display: flex; margin: 4px 15px;">
  227. <div style="width: 30%" class="single_line">FK221516485645</div>
  228. <div style="width: 20%" class="single_line">运费运费运费</div>
  229. <div style="width: 15%" class="single_line">李刚</div>
  230. <div style="width: 15%; color: #67c23a" class="single_line">待审批</div>
  231. <div style="width: 20%" class="single_line">2020/10/10</div>
  232. </div>
  233. </div>
  234. </chi-card>
  235. <chi-card title="审核列表" iconName="el-icon-s-order" :More="true">
  236. <div slot="content" class="upper-right2">
  237. <div
  238. style="
  239. font-size: 14px;
  240. display: flex;
  241. margin: 4px 15px;
  242. border-bottom: 1px dashed #e6ebf5;
  243. "
  244. >
  245. <div style="width: 30%" class="single_line">FK221516485645</div>
  246. <div style="width: 20%" class="single_line">运费运费运费</div>
  247. <div style="width: 15%" class="single_line">李刚</div>
  248. <div style="width: 15%; color: #67c23a">待审批</div>
  249. <div style="width: 20%" class="single_line">2020/10/10</div>
  250. </div>
  251. <div style="font-size: 14px; display: flex; margin: 4px 15px;">
  252. <div style="width: 30%" class="single_line">FK221516485645</div>
  253. <div style="width: 20%" class="single_line">运费运费运费</div>
  254. <div style="width: 15%" class="single_line">李刚</div>
  255. <div style="width: 15%; color: #67c23a" class="single_line">待审批</div>
  256. <div style="width: 20%" class="single_line">2020/10/10</div>
  257. </div>
  258. </div>
  259. </chi-card>
  260. </div>
  261. </div>
  262. </div>
  263. <div class="app-container home" v-else>
  264. <ul class="block">
  265. <li @click="jump('/business/inStock')">
  266. <div>
  267. <i
  268. class="el-icon-download"
  269. style="font-size: 50px; text-align: center"
  270. ></i>
  271. <p>入库</p>
  272. </div>
  273. </li>
  274. <li @click="jump('/business/outStock')">
  275. <div>
  276. <i
  277. class="el-icon-upload2"
  278. style="font-size: 50px; text-align: center"
  279. ></i>
  280. <p>出库</p>
  281. </div>
  282. </li>
  283. <li @click="jump('/basicdata/corps')">
  284. <div>
  285. <i
  286. class="el-icon-s-custom"
  287. style="font-size: 50px; text-align: center"
  288. ></i>
  289. <p>新增用户</p>
  290. </div>
  291. </li>
  292. <li @click="jump('/basicdata/goods')">
  293. <div>
  294. <i
  295. class="el-icon-s-cooperation"
  296. style="font-size: 50px; text-align: center"
  297. ></i>
  298. <p>新增商品</p>
  299. </div>
  300. </li>
  301. <li @click="jump('/business/stockTransfer')">
  302. <div>
  303. <i
  304. class="el-icon-connection"
  305. style="font-size: 50px; text-align: center"
  306. ></i>
  307. <p>调拨</p>
  308. </div>
  309. </li>
  310. <li @click="jump('/finance/charge')">
  311. <div>
  312. <i
  313. class="el-icon-wallet"
  314. style="font-size: 50px; text-align: center"
  315. ></i>
  316. <p>收款</p>
  317. </div>
  318. </li>
  319. <li @click="jump('/finance/payment')">
  320. <div>
  321. <i
  322. class="el-icon-money"
  323. style="font-size: 50px; text-align: center"
  324. ></i>
  325. <p>付款</p>
  326. </div>
  327. </li>
  328. <li @click="jump('/finance/contrast')">
  329. <div>
  330. <i
  331. class="el-icon-s-management"
  332. style="font-size: 50px; text-align: center"
  333. ></i>
  334. <p>对账</p>
  335. </div>
  336. </li>
  337. <li @click="jump('/business/goodsTransfer')">
  338. <div>
  339. <i
  340. class="el-icon-takeaway-box"
  341. style="font-size: 50px; text-align: center"
  342. ></i>
  343. <p>货转</p>
  344. </div>
  345. </li>
  346. <li @click="jump('/agreement/agreementStorage')">
  347. <div>
  348. <i
  349. class="el-icon-s-order"
  350. style="font-size: 50px; text-align: center"
  351. ></i>
  352. <p>协议</p>
  353. </div>
  354. </li>
  355. </ul>
  356. <div style="width: 30%; float: right">
  357. <div style="display: flex">
  358. <div id="box" style="width: 100%; height: 350px"></div>
  359. <el-select
  360. v-model="select"
  361. slot="prepend"
  362. size="mini"
  363. :select="query()"
  364. placeholder="点击切换仓库"
  365. style="position: absolute; width: 8%; right: 1%"
  366. >
  367. <div v-for="(item, index) in warehouse" :key="index">
  368. <el-option
  369. :label="item.fName"
  370. :value="item.fWarehouseid"
  371. ></el-option>
  372. </div>
  373. </el-select>
  374. </div>
  375. </div>
  376. <div style="width: 100%; margin-bottom: 50px">
  377. <el-table
  378. :data="tableData"
  379. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  380. :cell-style="cellStyle"
  381. style="width: 67.5%; float: left"
  382. >
  383. <el-table-column
  384. prop="refno1"
  385. :show-overflow-tooltip="true"
  386. label="委托方"
  387. ></el-table-column>
  388. <el-table-column
  389. prop="auditItem"
  390. :show-overflow-tooltip="true"
  391. label="日期"
  392. >
  393. <template slot-scope="scope">
  394. <span v-if="!scope.row.auditItem">无时间</span>
  395. <span v-else>{{ scope.row.auditItem.slice(0, 10) }}</span>
  396. </template>
  397. </el-table-column>
  398. <el-table-column
  399. prop="refno3"
  400. :show-overflow-tooltip="true"
  401. label="提单号"
  402. ></el-table-column>
  403. <el-table-column
  404. prop="refno2"
  405. :show-overflow-tooltip="true"
  406. label="业务类型"
  407. >
  408. <template slot-scope="scope">
  409. <span v-if="scope.row.refno2 === 'SJRK'">入库</span>
  410. <span v-else-if="scope.row.refno2 === 'SJCK'">出库</span>
  411. <span v-else-if="scope.row.refno2 === 'HQZY'">货转</span>
  412. <span v-else-if="scope.row.refno2 === 'CKDB'">调拨</span>
  413. <span v-else-if="scope.row.refno2 === 'CCF'">仓储费</span>
  414. <span v-else-if="scope.row.refno2 === 'HWTG'">货物通关</span>
  415. <span v-else-if="scope.row.refno2 === 'ZYF'">作业费</span>
  416. <span v-else-if="scope.row.refno2 === 'SF'">收费</span>
  417. <span v-else-if="scope.row.refno2 === 'DZ'">对账</span>
  418. <span v-else-if="scope.row.refno2 === 'FF'">付费</span>
  419. <span v-else-if="scope.row.refno2 === 'JSCCF'">计算仓储费</span>
  420. </template>
  421. </el-table-column>
  422. <el-table-column prop="address" label="操作" width="80">
  423. <template slot-scope="scope">
  424. <span style="cursor: pointer" @click="approval(scope.row)"
  425. >查看详情</span
  426. >
  427. </template>
  428. </el-table-column>
  429. </el-table>
  430. <el-table
  431. :data="tableDataTwo"
  432. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  433. :cell-style="cellStyle"
  434. style="width: 30%; float: right; margin-left: 20px"
  435. >
  436. <el-table-column
  437. prop="noticeTitle"
  438. :show-overflow-tooltip="true"
  439. label="消息中心"
  440. />
  441. <el-table-column prop="address" label="操作" width="80">
  442. <template slot-scope="scope">
  443. <span
  444. @click="querytoDo(scope.row.noticeContent)"
  445. style="cursor: pointer"
  446. >查看详情</span
  447. >
  448. </template>
  449. </el-table-column>
  450. </el-table>
  451. </div>
  452. <div style="width: 100%; float: left; margin-top: 20px">
  453. <div style="display: flex">
  454. <div
  455. id="commoDity"
  456. style="width: 68%; height: 350px; margin-left: 40px"
  457. ></div>
  458. <div id="cargoOwner" style="width: 30%; height: 350px"></div>
  459. </div>
  460. </div>
  461. <el-dialog
  462. title="消息提示"
  463. :visible.sync="dialogVisible"
  464. width="80%"
  465. :before-close="handleClose"
  466. :close-on-click-modal="false"
  467. >
  468. <span
  469. v-html="text"
  470. class="text"
  471. style="max-width: 100%; height: auto"
  472. ></span>
  473. <span slot="footer" class="dialog-footer">
  474. <el-button type="primary" @click="dialogVisible = false"
  475. >关 闭</el-button
  476. >
  477. </span>
  478. </el-dialog>
  479. </div>
  480. </template>
  481. <script>
  482. import { queryHomeInfo } from "@/api/fleet/home";
  483. import chiCard from "./chiCard.vue";
  484. import {
  485. listCorps,
  486. information,
  487. warehouse,
  488. inquiry,
  489. } from "../../src/api/index";
  490. export default {
  491. name: "index",
  492. data() {
  493. return {
  494. editModel: {},
  495. // 版本号
  496. version: "3.2.1",
  497. select: "",
  498. text: "",
  499. dialogVisible: false,
  500. tableData: [],
  501. chart: [],
  502. warehouse: [],
  503. master: [],
  504. commodity: [],
  505. commoditytwo: [],
  506. name: [],
  507. tableDataTwo: [],
  508. fleetData: "",
  509. upperLeftCntrs: {},
  510. sysType: "",
  511. upperRights:[]
  512. };
  513. },
  514. filters: {
  515. statusType(val) {
  516. switch (val) {
  517. case 10:
  518. return "车队安排";
  519. break;
  520. case 20:
  521. return "司机受理";
  522. break;
  523. case 30:
  524. return "司机出车";
  525. break;
  526. case 40:
  527. return "提箱";
  528. break;
  529. case 50:
  530. return "装卸货";
  531. break;
  532. case 60:
  533. return "还卸柜子";
  534. break;
  535. case 70:
  536. return "费用确认";
  537. break;
  538. default:
  539. return "回单";
  540. }
  541. },
  542. },
  543. components: {
  544. chiCard,
  545. },
  546. created() {
  547. queryHomeInfo().then((response) => {
  548. this.fleetData = response.data;
  549. if(response.data.upperRight.length>0){
  550. this.upperRights=response.data.upperRight.slice(0 , 10)
  551. }
  552. this.upperLeftCntrs = response.data.upperLeftCntrs;
  553. });
  554. this.getConfigKey("sys.index.systype").then((response) => {
  555. this.sysType = response.msg;
  556. });
  557. },
  558. activated() {
  559. this.getList();
  560. this.warehouses();
  561. this.inquiry();
  562. },
  563. methods: {
  564. //跳转审批页面
  565. approval(row) {
  566. switch (row.refno2) {
  567. case "SJRK": {
  568. this.$router.push({
  569. path: "/business/inStock",
  570. query: { data: JSON.stringify(row) },
  571. });
  572. break;
  573. }
  574. case "SJCK": {
  575. this.$router.push({
  576. path: "/business/outStock",
  577. query: { data: JSON.stringify(row) },
  578. });
  579. break;
  580. }
  581. case "HQZY": {
  582. this.$router.push({
  583. path: "/business/goodsTransfer",
  584. query: { data: JSON.stringify(row) },
  585. });
  586. break;
  587. }
  588. case "CKDB": {
  589. this.$router.push({
  590. path: "/business/stockTransfer",
  591. query: { data: JSON.stringify(row) },
  592. });
  593. break;
  594. }
  595. case "HWTG": {
  596. this.$router.push({
  597. path: "/business/cargoClearance",
  598. query: { data: JSON.stringify(row) },
  599. });
  600. break;
  601. }
  602. case "JSCCF": {
  603. this.$router.push({
  604. path: "/business/agreement",
  605. query: { data: JSON.stringify(row) },
  606. });
  607. break;
  608. }
  609. case "CCF": {
  610. this.$router.push({
  611. path: "/agreement/agreementStorage",
  612. query: { data: JSON.stringify(row) },
  613. });
  614. break;
  615. }
  616. case "ZYF": {
  617. this.$router.push({
  618. path: "/agreement/agreementTask",
  619. query: { data: JSON.stringify(row) },
  620. });
  621. break;
  622. }
  623. case "SF": {
  624. this.$router.push({
  625. path: "/finance/charge",
  626. query: { data: JSON.stringify(row) },
  627. });
  628. break;
  629. }
  630. case "DZ": {
  631. this.$router.push({
  632. path: "/finance/contrast",
  633. query: { data: JSON.stringify(row) },
  634. });
  635. break;
  636. }
  637. case "FF": {
  638. this.$router.push({
  639. path: "/finance/payment",
  640. query: { data: JSON.stringify(row) },
  641. });
  642. break;
  643. }
  644. default: {
  645. return this.$message.error("未知错误,无状态");
  646. }
  647. }
  648. },
  649. inquiry() {
  650. let data = {
  651. actId: "",
  652. };
  653. inquiry(data).then((res) => {
  654. this.tableData = res.data;
  655. });
  656. },
  657. querytoDo(res) {
  658. this.dialogVisible = true;
  659. this.text = res;
  660. },
  661. handleClose(done) {
  662. this.dialogVisible = false;
  663. },
  664. firstinventory(fId) {
  665. console.log(this.warehouse);
  666. information(fId).then((response) => {
  667. this.chart = response.data;
  668. if (this.chart.whouseList.length !== 0) {
  669. for (let index of this.chart.corpsListWhouse) {
  670. this.master.push({
  671. name: index.fName,
  672. value: index.fGrossweightD,
  673. });
  674. this.name.push(index.fName);
  675. }
  676. for (let index of this.chart.goodslistWhouse) {
  677. this.commodity.push(index.fName);
  678. this.commoditytwo.push(index.fGrossweightD);
  679. }
  680. this.drawLine();
  681. this.drawLinetwo();
  682. this.commoDity();
  683. } else {
  684. this.chart = {
  685. corpsListWhouse: [
  686. {
  687. balance: 0,
  688. fCorpid: 58,
  689. fGrossweightD: 0,
  690. fName: "展示数据",
  691. fTotalgross: 10000,
  692. fWarehouseName: "展示数据",
  693. },
  694. ],
  695. goodslistWhouse: [
  696. {
  697. balance: 0,
  698. fGoodsid: 13,
  699. fGrossweightD: 0,
  700. fName: "展示商品",
  701. fTotalgross: 10000,
  702. fWarehouseName: "展示数据",
  703. },
  704. ],
  705. whouseList: [
  706. {
  707. fGrossweightD: 0,
  708. fName: "展示数据",
  709. fTotalgross: 10000,
  710. fWarehouseid: 36,
  711. },
  712. ],
  713. };
  714. for (let index of this.chart.corpsListWhouse) {
  715. this.master.push({
  716. name: index.fName,
  717. value: index.fGrossweightD,
  718. });
  719. this.name.push(index.fName);
  720. }
  721. for (let index of this.chart.goodslistWhouse) {
  722. this.commodity.push(index.fName);
  723. this.commoditytwo.push(index.fGrossweightD);
  724. }
  725. this.drawLine();
  726. this.drawLinetwo();
  727. this.commoDity();
  728. }
  729. });
  730. },
  731. query() {
  732. this.master = [];
  733. this.commodity = [];
  734. this.commoditytwo = [];
  735. this.name = [];
  736. if (this.select === "") {
  737. return this.select;
  738. } else {
  739. information(this.select).then((response) => {
  740. this.chart = response.data;
  741. for (let index of this.chart.corpsListWhouse) {
  742. this.master.push({
  743. name: index.fName,
  744. value: index.fGrossweightD,
  745. });
  746. this.name.push(index.fName);
  747. }
  748. for (let index of this.chart.goodslistWhouse) {
  749. this.commodity.push(index.fName);
  750. this.commoditytwo.push(index.fGrossweightD);
  751. }
  752. this.drawLine();
  753. this.drawLinetwo();
  754. this.commoDity();
  755. });
  756. }
  757. },
  758. jump(res) {
  759. this.$router.push({ path: res });
  760. },
  761. //设置单元格边框
  762. cellStyle({ row, column, rowIndex, columnIndex }) {
  763. return "border-bottom: 1px dashed rgb(223, 230, 236)";
  764. },
  765. //查询消息中心
  766. getList() {
  767. this.loading = true;
  768. listCorps(this.queryParams).then((response) => {
  769. this.tableDataTwo = response.rows;
  770. });
  771. },
  772. //查询仓库
  773. warehouses() {
  774. warehouse().then((response) => {
  775. this.warehouse = [];
  776. for (let index of response.rows) {
  777. this.warehouse.push({
  778. fName: index.fName,
  779. fWarehouseid: index.fWarehouseid,
  780. });
  781. }
  782. console.log(this.warehouse);
  783. this.firstinventory(this.warehouse[0].fWarehouseid);
  784. });
  785. },
  786. goTarget(href) {
  787. window.open(href, "_blank");
  788. },
  789. //仓库图表
  790. drawLine() {
  791. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  792. let myChart = this.$echarts.init(document.getElementById("box"));
  793. // 绘制图表
  794. myChart.setOption({
  795. title: {
  796. text: this.chart.whouseList[0].fName + "统计",
  797. subtext: "实时数据",
  798. left: "center",
  799. },
  800. tooltip: {
  801. trigger: "item",
  802. formatter: "{a} <br/>{b} : {c} ({d}%)",
  803. },
  804. legend: {
  805. bottom: 10,
  806. left: "center",
  807. data: ["空闲库容", "占用库容"],
  808. },
  809. series: [
  810. {
  811. type: "pie",
  812. name: "实时数据",
  813. radius: "65%",
  814. center: ["50%", "50%"],
  815. selectedMode: "single",
  816. data: [
  817. {
  818. label: {
  819. backgroundColor: "#eee",
  820. borderColor: "#777",
  821. borderWidth: 1,
  822. borderRadius: 4,
  823. rich: {
  824. title: {
  825. color: "#eee",
  826. align: "center",
  827. },
  828. abg: {
  829. backgroundColor: "#333",
  830. width: "100%",
  831. align: "right",
  832. height: 25,
  833. borderRadius: [4, 4, 0, 0],
  834. },
  835. Sunny: {
  836. height: 30,
  837. align: "left",
  838. },
  839. Cloudy: {
  840. height: 30,
  841. align: "left",
  842. },
  843. Showers: {
  844. height: 30,
  845. align: "left",
  846. },
  847. weatherHead: {
  848. color: "#333",
  849. height: 24,
  850. align: "left",
  851. },
  852. hr: {
  853. borderColor: "#777",
  854. width: "100%",
  855. borderWidth: 0.5,
  856. height: 0,
  857. },
  858. value: {
  859. width: 20,
  860. padding: [0, 20, 0, 30],
  861. align: "left",
  862. },
  863. valueHead: {
  864. color: "#333",
  865. width: 20,
  866. padding: [0, 20, 0, 30],
  867. align: "center",
  868. },
  869. rate: {
  870. width: 40,
  871. align: "right",
  872. padding: [0, 10, 0, 0],
  873. },
  874. rateHead: {
  875. color: "#333",
  876. width: 40,
  877. align: "center",
  878. padding: [0, 10, 0, 0],
  879. },
  880. },
  881. },
  882. },
  883. {
  884. value: this.chart.whouseList[0].fGrossweightD,
  885. name: "占用库容",
  886. },
  887. {
  888. value: parseFloat(
  889. this.chart.whouseList[0].fTotalgross -
  890. this.chart.whouseList[0].fGrossweightD
  891. ).toFixed(1),
  892. name: "空闲库容",
  893. },
  894. ],
  895. emphasis: {
  896. itemStyle: {
  897. shadowBlur: 10,
  898. shadowOffsetX: 0,
  899. shadowColor: "rgba(0, 0, 0, 0.5)",
  900. },
  901. },
  902. },
  903. ],
  904. });
  905. },
  906. drawLinetwo() {
  907. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  908. let myChart = this.$echarts.init(document.getElementById("cargoOwner"));
  909. // 绘制图表
  910. myChart.setOption({
  911. title: {
  912. text: this.chart.whouseList[0].fName + "货权方统计",
  913. subtext: "实时数据",
  914. left: "center",
  915. },
  916. tooltip: {
  917. trigger: "item",
  918. formatter: "{a} <br/>{b}: {c} ({d}%)",
  919. },
  920. legend: {
  921. bottom: 10,
  922. left: "center",
  923. data: this.name,
  924. },
  925. series: [
  926. {
  927. name: "访问来源",
  928. type: "pie",
  929. radius: ["40%", "60%"],
  930. avoidLabelOverlap: false,
  931. label: {
  932. show: false,
  933. position: "center",
  934. },
  935. emphasis: {
  936. label: {
  937. // show: true,
  938. fontSize: "30",
  939. fontWeight: "bold",
  940. },
  941. },
  942. labelLine: {
  943. show: false,
  944. },
  945. data: this.master,
  946. },
  947. ],
  948. });
  949. },
  950. commoDity() {
  951. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  952. let myChart = this.$echarts.init(document.getElementById("commoDity"));
  953. // 绘制图表
  954. myChart.setOption({
  955. title: {
  956. text: this.chart.whouseList[0].fName + "商品统计",
  957. subtext: "实时数据",
  958. left: "center",
  959. },
  960. color: ["#3398DB"],
  961. tooltip: {
  962. trigger: "axis",
  963. axisPointer: {
  964. // 坐标轴指示器,坐标轴触发有效
  965. type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
  966. },
  967. },
  968. grid: {
  969. left: "3%",
  970. right: "4%",
  971. bottom: "3%",
  972. containLabel: true,
  973. },
  974. xAxis: [
  975. {
  976. type: "category",
  977. data: this.commodity,
  978. axisTick: {
  979. alignWithLabel: true,
  980. },
  981. },
  982. ],
  983. yAxis: [
  984. {
  985. type: "value",
  986. },
  987. ],
  988. series: [
  989. {
  990. name: "实时状态",
  991. type: "bar",
  992. barWidth: "60%",
  993. data: this.commoditytwo,
  994. },
  995. ],
  996. });
  997. },
  998. },
  999. };
  1000. </script>
  1001. <style scoped lang="scss">
  1002. .block {
  1003. width: 68%;
  1004. float: left;
  1005. display: flex;
  1006. flex-wrap: wrap;
  1007. justify-content: space-around;
  1008. height: 350px;
  1009. li:hover {
  1010. background-color: #025184;
  1011. }
  1012. li:nth-child(6),
  1013. li:nth-child(7),
  1014. li:nth-child(8),
  1015. li:nth-child(9),
  1016. li:nth-child(10) {
  1017. background-color: #2f4554;
  1018. }
  1019. li:nth-child(6):hover,
  1020. li:nth-child(7):hover,
  1021. li:nth-child(8):hover,
  1022. li:nth-child(9):hover,
  1023. li:nth-child(10):hover {
  1024. background-color: #2f4454d1;
  1025. }
  1026. li {
  1027. width: 18%;
  1028. height: 150px;
  1029. background-color: #1c84c6;
  1030. margin-left: 10px;
  1031. text-align: center;
  1032. color: #ffffff;
  1033. border-radius: 10px;
  1034. cursor: pointer;
  1035. div {
  1036. margin-top: 40px;
  1037. p {
  1038. font-size: 20px;
  1039. }
  1040. }
  1041. }
  1042. }
  1043. .home {
  1044. blockquote {
  1045. padding: 10px 20px;
  1046. margin: 0 0 20px;
  1047. font-size: 17.5px;
  1048. border-left: 5px solid #eee;
  1049. }
  1050. hr {
  1051. margin-top: 20px;
  1052. margin-bottom: 20px;
  1053. border: 0;
  1054. border-top: 1px solid #eee;
  1055. }
  1056. .col-item {
  1057. margin-bottom: 20px;
  1058. }
  1059. ul {
  1060. padding: 0;
  1061. margin: 0;
  1062. }
  1063. font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  1064. font-size: 13px;
  1065. color: #676a6c;
  1066. overflow-x: hidden;
  1067. ul {
  1068. list-style-type: none;
  1069. }
  1070. h4 {
  1071. margin-top: 0px;
  1072. }
  1073. h2 {
  1074. margin-top: 10px;
  1075. font-size: 26px;
  1076. font-weight: 100;
  1077. }
  1078. p {
  1079. margin-top: 10px;
  1080. b {
  1081. font-weight: 700;
  1082. }
  1083. }
  1084. .update-log {
  1085. ol {
  1086. display: block;
  1087. list-style-type: decimal;
  1088. margin-block-start: 1em;
  1089. margin-block-end: 1em;
  1090. margin-inline-start: 0;
  1091. margin-inline-end: 0;
  1092. padding-inline-start: 40px;
  1093. }
  1094. }
  1095. }
  1096. .home-fleet {
  1097. display: flex;
  1098. .home-left {
  1099. width: 40%;
  1100. padding: 0 10px;
  1101. }
  1102. .home-right {
  1103. width: 60%;
  1104. padding: 0 10px;
  1105. }
  1106. .content-top {
  1107. display: flex;
  1108. .content-top-left {
  1109. display: flex;
  1110. width: 50%;
  1111. height: 100px;
  1112. border-bottom: 1px solid #e6ebf5;
  1113. border-right: 1px solid #e6ebf5;
  1114. padding: 10px;
  1115. justify-content: space-between;
  1116. }
  1117. .content-top-right {
  1118. display: flex;
  1119. width: 50%;
  1120. height: 100px;
  1121. border-bottom: 1px solid #e6ebf5;
  1122. padding: 10px;
  1123. justify-content: space-between;
  1124. }
  1125. }
  1126. .content-bottom {
  1127. display: flex;
  1128. height: 81px;
  1129. border-bottom: 1px solid #e6ebf5;
  1130. padding: 10px;
  1131. justify-content: space-between;
  1132. }
  1133. .upper-right {
  1134. padding: 10px 0;
  1135. height: 260px;
  1136. }
  1137. .upper-right2 {
  1138. padding: 10px 0;
  1139. height: 130px;
  1140. }
  1141. }
  1142. .single_line {
  1143. overflow: hidden;
  1144. text-overflow: ellipsis;
  1145. white-space: nowrap;
  1146. }
  1147. @media screen and (max-width: 920px) {
  1148. .home-fleet {
  1149. display: flex;
  1150. flex-direction: column;
  1151. .home-left {
  1152. width: 100%;
  1153. }
  1154. .home-right {
  1155. width: 100%;
  1156. }
  1157. }
  1158. }
  1159. </style>
  1160. <style>
  1161. .text img {
  1162. max-width: 100%;
  1163. height: auto;
  1164. }
  1165. </style>