index.vue 44 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378
  1. <template>
  2. <div class="app-container home">
  3. <div v-if="sysType == 1 || sysType == 3">
  4. <div style="display: flex; margin-bottom: 40px">
  5. <div style="width: 70%">
  6. <ul class="block" v-if="sysType == 1 || sysType == 3">
  7. <li @click="jump('/business/inStock')">
  8. <div>
  9. <i
  10. class="el-icon-download"
  11. style="font-size: 50px; text-align: center"
  12. ></i>
  13. <p>入库</p>
  14. </div>
  15. </li>
  16. <li @click="jump('/business/outStock')">
  17. <div>
  18. <i
  19. class="el-icon-upload2"
  20. style="font-size: 50px; text-align: center"
  21. ></i>
  22. <p>出库</p>
  23. </div>
  24. </li>
  25. <li @click="jump('/basicdata/corps')">
  26. <div>
  27. <i
  28. class="el-icon-s-custom"
  29. style="font-size: 50px; text-align: center"
  30. ></i>
  31. <p>新增用户</p>
  32. </div>
  33. </li>
  34. <li @click="jump('/basicdata/goods')">
  35. <div>
  36. <i
  37. class="el-icon-s-cooperation"
  38. style="font-size: 50px; text-align: center"
  39. ></i>
  40. <p>新增商品</p>
  41. </div>
  42. </li>
  43. <li @click="jump('/business/stockTransfer')">
  44. <div>
  45. <i
  46. class="el-icon-connection"
  47. style="font-size: 50px; text-align: center"
  48. ></i>
  49. <p>调拨</p>
  50. </div>
  51. </li>
  52. <li @click="jump('/finance/charge')">
  53. <div>
  54. <i
  55. class="el-icon-wallet"
  56. style="font-size: 50px; text-align: center"
  57. ></i>
  58. <p>收款</p>
  59. </div>
  60. </li>
  61. <li @click="jump('/finance/payment')">
  62. <div>
  63. <i
  64. class="el-icon-money"
  65. style="font-size: 50px; text-align: center"
  66. ></i>
  67. <p>付款</p>
  68. </div>
  69. </li>
  70. <li @click="jump('/finance/contrast')">
  71. <div>
  72. <i
  73. class="el-icon-s-management"
  74. style="font-size: 50px; text-align: center"
  75. ></i>
  76. <p>对账</p>
  77. </div>
  78. </li>
  79. <li @click="jump('/business/goodsTransfer')">
  80. <div>
  81. <i
  82. class="el-icon-takeaway-box"
  83. style="font-size: 50px; text-align: center"
  84. ></i>
  85. <p>货转</p>
  86. </div>
  87. </li>
  88. <li @click="jump('/agreement/agreementStorage')">
  89. <div>
  90. <i
  91. class="el-icon-s-order"
  92. style="font-size: 50px; text-align: center"
  93. ></i>
  94. <p>协议</p>
  95. </div>
  96. </li>
  97. </ul>
  98. </div>
  99. <div style="width: 30%">
  100. <div style="width: 100%">
  101. <div style="display: flex">
  102. <div id="box" style="width: 100%; height: 350px"></div>
  103. <el-select
  104. v-model="select"
  105. slot="prepend"
  106. size="mini"
  107. :select="query()"
  108. placeholder="点击切换仓库"
  109. style="position: absolute; width: 8%; right: 1%"
  110. >
  111. <div v-for="(item, index) in warehouse" :key="index">
  112. <el-option
  113. :label="item.fName"
  114. :value="item.fWarehouseid"
  115. ></el-option>
  116. </div>
  117. </el-select>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. <div style="display: flex; margin-bottom: 40px">
  123. <div style="width: 70%">
  124. <div>
  125. <div
  126. style="
  127. display: flex;
  128. color: #515a6e;
  129. font-weight: 600;
  130. background-color: #f8f8f9;
  131. height: 42.6px;
  132. font-size: 13px;
  133. justify-content: space-between;
  134. border-bottom: 1px dashed #dfe6ec;
  135. "
  136. >
  137. <div class="home_stock_table">委托方</div>
  138. <div class="home_stock_table">日期</div>
  139. <div class="home_stock_table">提单号</div>
  140. <div class="home_stock_table">业务类型</div>
  141. <div class="home_stock_table_right">
  142. <div>操作</div>
  143. <el-link type="primary" @click="jump('/morePage/stock')"
  144. >更多></el-link
  145. >
  146. </div>
  147. </div>
  148. <div v-if="tableData.length > 0">
  149. <div
  150. style="
  151. display: flex;
  152. height: 42.6px;
  153. border-bottom: 1px dashed #dfe6ec;
  154. "
  155. v-for="(item, index) in tableData"
  156. :key="index"
  157. >
  158. <div class="home_stock_table"> <p>{{ item.refno1 }}</p></div>
  159. <div class="home_stock_table">
  160. {{ item.auditItem }}
  161. </div>
  162. <div class="home_stock_table"><p>{{ item.refno1 }}</p></div>
  163. <div class="home_stock_table">
  164. <span v-if="item.refno2 === 'SJRK'">入库</span>
  165. <span v-else-if="item.refno2 === 'SJCK'">出库</span>
  166. <span v-else-if="item.refno2 === 'HQZY'">货转</span>
  167. <span v-else-if="item.refno2 === 'CKDB'">调拨</span>
  168. <span v-else-if="item.refno2 === 'CCF'">仓储费</span>
  169. <span v-else-if="item.refno2 === 'HWTG'">货物通关</span>
  170. <span v-else-if="item.refno2 === 'ZYF'">作业费</span>
  171. <span v-else-if="item.refno2 === 'SF'">收费</span>
  172. <span v-else-if="item.refno2 === 'DZ'">对账</span>
  173. <span v-else-if="item.refno2 === 'FF'">付费</span>
  174. <span v-else-if="item.refno2 === 'JSCCF'">计算仓储费</span>
  175. <span v-else-if="item.refno2 === 'KHDZ'">凯和对账</span>
  176. <span v-else-if="item.refno2 === 'KHSF'">凯和收费</span>
  177. <span v-else-if="item.refno2 === 'KHFF'">凯和付费</span>
  178. <span v-else-if="item.refno2 === 'ApplyFP'">凯和开票申请</span>
  179. </div>
  180. <div class="home_stock_table" @click="approval(item)">
  181. 查看详情
  182. </div>
  183. </div>
  184. </div>
  185. <div
  186. v-else
  187. style="
  188. display: flex;
  189. justify-content: center;
  190. height: 213px;
  191. border-bottom: 1px solid #dfe6ec;
  192. "
  193. >
  194. <div style="align-self: center; color: #909399; font-size: 14px">
  195. 暂无数据
  196. </div>
  197. </div>
  198. </div>
  199. <!-- <el-table
  200. :data="tableData"
  201. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  202. :cell-style="cellStyle"
  203. >
  204. <el-table-column
  205. prop="refno1"
  206. :show-overflow-tooltip="true"
  207. label="委托方"
  208. ></el-table-column>
  209. <el-table-column
  210. prop="auditItem"
  211. :show-overflow-tooltip="true"
  212. label="日期"
  213. >
  214. <template slot-scope="scope">
  215. <span v-if="!scope.row.auditItem">无时间</span>
  216. <span v-else>{{ scope.row.auditItem.slice(0, 10) }}</span>
  217. </template>
  218. </el-table-column>
  219. <el-table-column
  220. prop="refno3"
  221. :show-overflow-tooltip="true"
  222. label="提单号"
  223. ></el-table-column>
  224. <el-table-column
  225. prop="refno2"
  226. :show-overflow-tooltip="true"
  227. label="业务类型"
  228. >
  229. <template slot-scope="scope">
  230. <span v-if="scope.row.refno2 === 'SJRK'">入库</span>
  231. <span v-else-if="scope.row.refno2 === 'SJCK'">出库</span>
  232. <span v-else-if="scope.row.refno2 === 'HQZY'">货转</span>
  233. <span v-else-if="scope.row.refno2 === 'CKDB'">调拨</span>
  234. <span v-else-if="scope.row.refno2 === 'CCF'">仓储费</span>
  235. <span v-else-if="scope.row.refno2 === 'HWTG'">货物通关</span>
  236. <span v-else-if="scope.row.refno2 === 'ZYF'">作业费</span>
  237. <span v-else-if="scope.row.refno2 === 'SF'">收费</span>
  238. <span v-else-if="scope.row.refno2 === 'DZ'">对账</span>
  239. <span v-else-if="scope.row.refno2 === 'FF'">付费</span>
  240. <span v-else-if="scope.row.refno2 === 'JSCCF'">计算仓储费</span>
  241. </template>
  242. </el-table-column>
  243. <el-table-column prop="address" label="操作" width="80">
  244. <template slot-scope="scope">
  245. <span style="cursor: pointer" @click="approval(scope.row)"
  246. >查看详情</span
  247. >
  248. </template>
  249. </el-table-column>
  250. </el-table> -->
  251. </div>
  252. <div style="width: 30%">
  253. <el-table
  254. :data="tableDataTwo"
  255. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  256. :cell-style="cellStyle"
  257. style="margin-left: 20px"
  258. >
  259. <el-table-column
  260. prop="noticeTitle"
  261. :show-overflow-tooltip="true"
  262. label="消息中心"
  263. />
  264. <el-table-column prop="address" label="操作" width="80">
  265. <template slot-scope="scope">
  266. <span
  267. @click="querytoDo(scope.row.noticeContent)"
  268. style="cursor: pointer"
  269. >查看详情</span
  270. >
  271. </template>
  272. </el-table-column>
  273. </el-table>
  274. </div>
  275. </div>
  276. <div style="display: flex">
  277. <div style="width: 70%">
  278. <div
  279. id="commoDity"
  280. style="width: 100%; height: 350px; margin-left: 40px"
  281. ></div>
  282. </div>
  283. <div style="width: 30%">
  284. <div id="cargoOwner" style="width: 100%; height: 350px"></div>
  285. </div>
  286. </div>
  287. </div>
  288. <el-dialog
  289. v-if="sysType == 1 || sysType == 3"
  290. title="消息提示"
  291. :visible.sync="dialogVisible"
  292. width="80%"
  293. :before-close="handleClose"
  294. :close-on-click-modal="false"
  295. >
  296. <span
  297. v-html="text"
  298. class="text"
  299. style="max-width: 100%; height: auto"
  300. ></span>
  301. <span slot="footer" class="dialog-footer">
  302. <el-button type="primary" @click="dialogVisible = false"
  303. >关 闭</el-button
  304. >
  305. </span>
  306. </el-dialog>
  307. <div class="home-fleet" v-if="sysType == 2">
  308. <div class="home-left">
  309. <chi-card title="业务看板" iconName="el-icon-s-cooperation">
  310. <div slot="content">
  311. <div class="content-top">
  312. <div class="content-top-left">
  313. <div
  314. style="display: flex; align-self: center; margin-left: 5px"
  315. >
  316. <div style="align-self: center">
  317. <svg
  318. t="1616396514864"
  319. class="icon"
  320. viewBox="0 0 1024 1024"
  321. version="1.1"
  322. xmlns="http://www.w3.org/2000/svg"
  323. p-id="9805"
  324. width="20"
  325. height="20"
  326. >
  327. <path
  328. 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"
  329. p-id="9806"
  330. fill="#000000"
  331. ></path>
  332. </svg>
  333. </div>
  334. <div
  335. style="
  336. align-self: center;
  337. font-size: 16px;
  338. margin: 2px 0 0 5px;
  339. "
  340. >
  341. 今日新增柜数
  342. </div>
  343. </div>
  344. <div
  345. style="
  346. font-size: 36px;
  347. align-self: center;
  348. font-weight: 600;
  349. color: #014da1;
  350. "
  351. >
  352. {{ upperLeftCntrs.planQuantity }}
  353. </div>
  354. </div>
  355. <div class="content-top-right">
  356. <div
  357. style="
  358. display: flex;
  359. align-self: center;
  360. min-width: 120px;
  361. margin-left: 5px;
  362. "
  363. >
  364. <div style="align-self: center">
  365. <svg
  366. t="1616400289333"
  367. class="icon"
  368. viewBox="0 0 1024 1024"
  369. version="1.1"
  370. xmlns="http://www.w3.org/2000/svg"
  371. p-id="22417"
  372. width="20"
  373. height="20"
  374. >
  375. <path
  376. 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"
  377. p-id="22418"
  378. ></path>
  379. </svg>
  380. </div>
  381. <div
  382. style="
  383. align-self: center;
  384. font-size: 16px;
  385. margin: 2px 0 0 5px;
  386. "
  387. >
  388. 未安排柜数
  389. </div>
  390. </div>
  391. <div
  392. style="
  393. font-size: 36px;
  394. align-self: center;
  395. font-weight: 600;
  396. color: #014da1;
  397. "
  398. >
  399. {{ upperLeftCntrs.surplusQuantity }}
  400. </div>
  401. </div>
  402. </div>
  403. <div class="content-bottom">
  404. <div style="display: flex; align-self: center; margin-left: 5px">
  405. <div style="align-self: center">
  406. <svg
  407. t="1616402886142"
  408. class="icon"
  409. viewBox="0 0 1024 1024"
  410. version="1.1"
  411. xmlns="http://www.w3.org/2000/svg"
  412. p-id="31596"
  413. width="24"
  414. height="24"
  415. >
  416. <path
  417. 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"
  418. p-id="31597"
  419. ></path>
  420. <path
  421. 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"
  422. p-id="31598"
  423. ></path>
  424. </svg>
  425. </div>
  426. <div
  427. style="
  428. align-self: center;
  429. font-size: 16px;
  430. margin: 2px 0 0 5px;
  431. width: 110px;
  432. "
  433. >
  434. 今日派车数
  435. </div>
  436. </div>
  437. <div
  438. style="
  439. font-size: 36px;
  440. align-self: center;
  441. font-weight: 600;
  442. color: #014da1;
  443. "
  444. >
  445. {{ fleetData.upperLeftCarQuantity }}
  446. </div>
  447. <div style="align-self: center; color: #409eff">派车详情></div>
  448. </div>
  449. <div class="content-bottom">
  450. <div
  451. style="
  452. display: flex;
  453. align-self: center;
  454. min-width: 120px;
  455. margin-left: 5px;
  456. "
  457. >
  458. <div style="align-self: center">
  459. <svg
  460. t="1616402771353"
  461. class="icon"
  462. viewBox="0 0 1048 1024"
  463. version="1.1"
  464. xmlns="http://www.w3.org/2000/svg"
  465. p-id="29149"
  466. width="20"
  467. height="20"
  468. >
  469. <path
  470. 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"
  471. p-id="29150"
  472. ></path>
  473. </svg>
  474. </div>
  475. <div
  476. style="
  477. align-self: center;
  478. font-size: 16px;
  479. margin: 2px 0 0 5px;
  480. width: 110px;
  481. "
  482. >
  483. 可用车辆数
  484. </div>
  485. </div>
  486. <div
  487. style="
  488. font-size: 36px;
  489. align-self: center;
  490. font-weight: 600;
  491. color: #014da1;
  492. "
  493. >
  494. {{ fleetData.upperLeftOldCarQuantity }}
  495. </div>
  496. <div style="align-self: center; color: #409eff">派车详情></div>
  497. </div>
  498. </div>
  499. </chi-card>
  500. <chi-card
  501. title="新闻公告"
  502. iconName="el-icon-s-cooperation"
  503. :More="true"
  504. >
  505. <div slot="content" style="height: 260px">
  506. <div
  507. style="padding: 4px 15px; font-size: 14px"
  508. v-for="(item, index) in tableDataTwo"
  509. :key="index"
  510. :style="{
  511. backgroundColor: index % 2 == 0 ? '#fafbfd' : '#FFFFFF',
  512. }"
  513. >
  514. {{ item.noticeTitle }}
  515. </div>
  516. </div>
  517. </chi-card>
  518. </div>
  519. <div class="home-right">
  520. <chi-card title="运行车辆" iconName="el-icon-s-order" :More="true">
  521. <div slot="content" class="upper-right">
  522. <div
  523. style="display: flex; padding: 4px 15px; font-size: 14px"
  524. v-for="(item, index) in upperRights"
  525. :key="index"
  526. :style="{
  527. backgroundColor: index % 2 == 0 ? '#fafbfd' : '#FFFFFF',
  528. }"
  529. >
  530. <div style="width: 30%" @click="goPage(item.id)">
  531. <el-link type="primary" :underline="false">{{
  532. item.mblno
  533. }}</el-link>
  534. </div>
  535. <div style="width: 20%">{{ item.carregNo }}</div>
  536. <div style="width: 15%; color: #67c23a">
  537. {{ item.orderStatus | statusType }}
  538. </div>
  539. <div
  540. style="
  541. width: 35%;
  542. overflow: hidden;
  543. text-overflow: ellipsis;
  544. white-space: nowrap;
  545. "
  546. >
  547. {{ item.corpName }}
  548. </div>
  549. </div>
  550. </div>
  551. </chi-card>
  552. <chi-card title="业务待办" iconName="el-icon-s-order" :More="true">
  553. <div slot="content" class="upper-right2">
  554. <div
  555. style="
  556. font-size: 14px;
  557. display: flex;
  558. margin: 4px 15px;
  559. border-bottom: 1px dashed #e6ebf5;
  560. "
  561. >
  562. <div style="width: 30%" class="single_line">FK221516485645</div>
  563. <div style="width: 20%" class="single_line">运费运费运费</div>
  564. <div style="width: 15%" class="single_line">李刚</div>
  565. <div style="width: 15%; color: #67c23a" class="single_line">
  566. 待审批
  567. </div>
  568. <div style="width: 20%" class="single_line">2020/10/10</div>
  569. </div>
  570. <div style="font-size: 14px; display: flex; margin: 4px 15px">
  571. <div style="width: 30%" class="single_line">FK221516485645</div>
  572. <div style="width: 20%" class="single_line">运费运费运费</div>
  573. <div style="width: 15%" class="single_line">李刚</div>
  574. <div style="width: 15%; color: #67c23a" class="single_line">
  575. 待审批
  576. </div>
  577. <div style="width: 20%" class="single_line">2020/10/10</div>
  578. </div>
  579. </div>
  580. </chi-card>
  581. <chi-card title="审核列表" iconName="el-icon-s-order" :More="true">
  582. <div slot="content" class="upper-right2">
  583. <div
  584. style="
  585. font-size: 14px;
  586. display: flex;
  587. margin: 4px 15px;
  588. border-bottom: 1px dashed #e6ebf5;
  589. "
  590. >
  591. <div style="width: 30%" class="single_line">FK221516485645</div>
  592. <div style="width: 20%" class="single_line">运费运费运费</div>
  593. <div style="width: 15%" class="single_line">李刚</div>
  594. <div style="width: 15%; color: #67c23a">待审批</div>
  595. <div style="width: 20%" class="single_line">2020/10/10</div>
  596. </div>
  597. <div style="font-size: 14px; display: flex; margin: 4px 15px">
  598. <div style="width: 30%" class="single_line">FK221516485645</div>
  599. <div style="width: 20%" class="single_line">运费运费运费</div>
  600. <div style="width: 15%" class="single_line">李刚</div>
  601. <div style="width: 15%; color: #67c23a" class="single_line">
  602. 待审批
  603. </div>
  604. <div style="width: 20%" class="single_line">2020/10/10</div>
  605. </div>
  606. </div>
  607. </chi-card>
  608. </div>
  609. </div>
  610. </div>
  611. </template>
  612. <script>
  613. import { queryHomeInfo } from "@/api/fleet/home";
  614. import chiCard from "./chiCard.vue";
  615. import {
  616. listCorps,
  617. information,
  618. warehouse,
  619. inquiry,
  620. } from "../../src/api/index";
  621. import Cookies from "js-cookie";
  622. export default {
  623. name: "index",
  624. data() {
  625. return {
  626. editModel: {},
  627. // 版本号
  628. version: "3.2.1",
  629. select: "",
  630. text: "",
  631. dialogVisible: false,
  632. tableData: [],
  633. chart: [],
  634. warehouse: [],
  635. master: [],
  636. commodity: [],
  637. commoditytwo: [],
  638. name: [],
  639. tableDataTwo: [],
  640. fleetData: "",
  641. upperLeftCntrs: {},
  642. sysType: "",
  643. upperRights: [],
  644. };
  645. },
  646. filters: {
  647. statusType(val) {
  648. switch (val) {
  649. case 10:
  650. return "车队安排";
  651. break;
  652. case 20:
  653. return "司机受理";
  654. break;
  655. case 30:
  656. return "司机出车";
  657. break;
  658. case 40:
  659. return "提箱";
  660. break;
  661. case 50:
  662. return "装卸货";
  663. break;
  664. case 60:
  665. return "还卸柜";
  666. break;
  667. case 70:
  668. return "费用确认";
  669. break;
  670. default:
  671. return "回单";
  672. }
  673. },
  674. },
  675. components: {
  676. chiCard,
  677. },
  678. created() {
  679. queryHomeInfo().then((response) => {
  680. this.fleetData = response.data;
  681. if (response.data.upperRight.length > 0) {
  682. this.upperRights = response.data.upperRight.slice(0, 10);
  683. }
  684. this.upperLeftCntrs = response.data.upperLeftCntrs;
  685. });
  686. this.sysType = Cookies.get("sysType");
  687. console.log(this.sysType);
  688. },
  689. activated() {
  690. this.getList();
  691. this.warehouses();
  692. this.inquiry();
  693. },
  694. methods: {
  695. goPage(id) {
  696. this.$router.push({
  697. path: "/track/cabinet",
  698. query: { id: id },
  699. });
  700. },
  701. //跳转审批页面
  702. approval(row) {
  703. switch (row.refno2) {
  704. case "SJRK": {
  705. this.$router.push({
  706. path: "/business/inStock",
  707. query: { data: JSON.stringify(row) },
  708. });
  709. break;
  710. }
  711. case "SJCK": {
  712. this.$router.push({
  713. path: "/business/outStock",
  714. query: { data: JSON.stringify(row) },
  715. });
  716. break;
  717. }
  718. case "HQZY": {
  719. this.$router.push({
  720. path: "/business/goodsTransfer",
  721. query: { data: JSON.stringify(row) },
  722. });
  723. break;
  724. }
  725. case "CKDB": {
  726. this.$router.push({
  727. path: "/business/stockTransfer",
  728. query: { data: JSON.stringify(row) },
  729. });
  730. break;
  731. }
  732. case "HWTG": {
  733. this.$router.push({
  734. path: "/business/cargoClearance",
  735. query: { data: JSON.stringify(row) },
  736. });
  737. break;
  738. }
  739. case "JSCCF": {
  740. this.$router.push({
  741. path: "/business/agreement",
  742. query: { data: JSON.stringify(row) },
  743. });
  744. break;
  745. }
  746. case "CCF": {
  747. this.$router.push({
  748. path: "/agreement/agreementStorage",
  749. query: { data: JSON.stringify(row) },
  750. });
  751. break;
  752. }
  753. case "ZYF": {
  754. this.$router.push({
  755. path: "/agreement/agreementTask",
  756. query: { data: JSON.stringify(row) },
  757. });
  758. break;
  759. }
  760. case "SF": {
  761. this.$router.push({
  762. path: "/finance/charge",
  763. query: { data: JSON.stringify(row) },
  764. });
  765. break;
  766. }
  767. case "DZ": {
  768. this.$router.push({
  769. path: "/finance/contrast",
  770. query: { data: JSON.stringify(row) },
  771. });
  772. break;
  773. }
  774. case "FF": {
  775. this.$router.push({
  776. path: "/finance/payment",
  777. query: { data: JSON.stringify(row) },
  778. });
  779. break;
  780. }
  781. case "ApplyFP": {
  782. this.$router.push({
  783. path: "/finance/chargeInvoice",
  784. query: { data: JSON.stringify(row) },
  785. });
  786. break;
  787. }
  788. case "KHDZ": {
  789. this.$router.push({
  790. path: "/finance/contrast",
  791. query: { data: JSON.stringify(row) },
  792. });
  793. break;
  794. }
  795. case "KHSF": {
  796. this.$router.push({
  797. path: "/finance/charge",
  798. query: { data: JSON.stringify(row) },
  799. });
  800. break;
  801. }
  802. case "KHFF": {
  803. this.$router.push({
  804. path: "/finance/payment",
  805. query: { data: JSON.stringify(row) },
  806. });
  807. break;
  808. }
  809. default: {
  810. return this.$message.error("未知错误,无状态");
  811. }
  812. }
  813. },
  814. inquiry() {
  815. let data = {
  816. actId: "",
  817. };
  818. inquiry(data).then((res) => {
  819. res.data.map(e=>{
  820. if(e.auditItem){
  821. e.auditItem=e.auditItem.slice(0, 10)
  822. }
  823. })
  824. this.tableData = res.data;
  825. });
  826. },
  827. querytoDo(res) {
  828. this.dialogVisible = true;
  829. this.text = res;
  830. },
  831. handleClose(done) {
  832. this.dialogVisible = false;
  833. },
  834. firstinventory(fId) {
  835. console.log(this.warehouse);
  836. information(fId).then((response) => {
  837. this.chart = response.data;
  838. if (this.chart.whouseList.length !== 0) {
  839. for (let index of this.chart.corpsListWhouse) {
  840. this.master.push({
  841. name: index.fName,
  842. value: index.fGrossweightD,
  843. });
  844. this.name.push(index.fName);
  845. }
  846. for (let index of this.chart.goodslistWhouse) {
  847. this.commodity.push(index.fName);
  848. this.commoditytwo.push(index.fGrossweightD);
  849. }
  850. this.drawLine();
  851. this.drawLinetwo();
  852. this.commoDity();
  853. } else {
  854. this.chart = {
  855. corpsListWhouse: [
  856. {
  857. balance: 0,
  858. fCorpid: 58,
  859. fGrossweightD: 0,
  860. fName: "展示数据",
  861. fTotalgross: 10000,
  862. fWarehouseName: "展示数据",
  863. },
  864. ],
  865. goodslistWhouse: [
  866. {
  867. balance: 0,
  868. fGoodsid: 13,
  869. fGrossweightD: 0,
  870. fName: "展示商品",
  871. fTotalgross: 10000,
  872. fWarehouseName: "展示数据",
  873. },
  874. ],
  875. whouseList: [
  876. {
  877. fGrossweightD: 0,
  878. fName: "展示数据",
  879. fTotalgross: 10000,
  880. fWarehouseid: 36,
  881. },
  882. ],
  883. };
  884. for (let index of this.chart.corpsListWhouse) {
  885. this.master.push({
  886. name: index.fName,
  887. value: index.fGrossweightD,
  888. });
  889. this.name.push(index.fName);
  890. }
  891. for (let index of this.chart.goodslistWhouse) {
  892. this.commodity.push(index.fName);
  893. this.commoditytwo.push(index.fGrossweightD);
  894. }
  895. this.drawLine();
  896. this.drawLinetwo();
  897. this.commoDity();
  898. }
  899. });
  900. },
  901. query() {
  902. this.master = [];
  903. this.commodity = [];
  904. this.commoditytwo = [];
  905. this.name = [];
  906. if (this.select === "") {
  907. return this.select;
  908. } else {
  909. information(this.select).then((response) => {
  910. this.chart = response.data;
  911. for (let index of this.chart.corpsListWhouse) {
  912. this.master.push({
  913. name: index.fName,
  914. value: index.fGrossweightD,
  915. });
  916. this.name.push(index.fName);
  917. }
  918. for (let index of this.chart.goodslistWhouse) {
  919. this.commodity.push(index.fName);
  920. this.commoditytwo.push(index.fGrossweightD);
  921. }
  922. this.drawLine();
  923. this.drawLinetwo();
  924. this.commoDity();
  925. });
  926. }
  927. },
  928. jump(res) {
  929. this.$router.push({ path: res });
  930. },
  931. //设置单元格边框
  932. cellStyle({ row, column, rowIndex, columnIndex }) {
  933. return "border-bottom: 1px dashed rgb(223, 230, 236)";
  934. },
  935. //查询消息中心
  936. getList() {
  937. this.loading = true;
  938. listCorps(this.queryParams).then((response) => {
  939. if (response.rows.length > 0) {
  940. this.tableDataTwo = response.rows.slice(0, 10);
  941. }
  942. });
  943. },
  944. //查询仓库
  945. warehouses() {
  946. warehouse().then((response) => {
  947. this.warehouse = [];
  948. for (let index of response.rows) {
  949. this.warehouse.push({
  950. fName: index.fName,
  951. fWarehouseid: index.fWarehouseid,
  952. });
  953. }
  954. console.log(this.warehouse);
  955. this.firstinventory(this.warehouse[0].fWarehouseid);
  956. });
  957. },
  958. goTarget(href) {
  959. window.open(href, "_blank");
  960. },
  961. //仓库图表
  962. drawLine() {
  963. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  964. let myChart = this.$echarts.init(document.getElementById("box"));
  965. // 绘制图表
  966. myChart.setOption({
  967. title: {
  968. text: this.chart.whouseList[0].fName + "统计",
  969. subtext: "实时数据",
  970. left: "center",
  971. },
  972. tooltip: {
  973. trigger: "item",
  974. formatter: "{a} <br/>{b} : {c} ({d}%)",
  975. },
  976. legend: {
  977. bottom: 10,
  978. left: "center",
  979. data: ["空闲库容", "占用库容"],
  980. },
  981. series: [
  982. {
  983. type: "pie",
  984. name: "实时数据",
  985. radius: "65%",
  986. center: ["50%", "50%"],
  987. selectedMode: "single",
  988. data: [
  989. {
  990. label: {
  991. backgroundColor: "#eee",
  992. borderColor: "#777",
  993. borderWidth: 1,
  994. borderRadius: 4,
  995. rich: {
  996. title: {
  997. color: "#eee",
  998. align: "center",
  999. },
  1000. abg: {
  1001. backgroundColor: "#333",
  1002. width: "100%",
  1003. align: "right",
  1004. height: 25,
  1005. borderRadius: [4, 4, 0, 0],
  1006. },
  1007. Sunny: {
  1008. height: 30,
  1009. align: "left",
  1010. },
  1011. Cloudy: {
  1012. height: 30,
  1013. align: "left",
  1014. },
  1015. Showers: {
  1016. height: 30,
  1017. align: "left",
  1018. },
  1019. weatherHead: {
  1020. color: "#333",
  1021. height: 24,
  1022. align: "left",
  1023. },
  1024. hr: {
  1025. borderColor: "#777",
  1026. width: "100%",
  1027. borderWidth: 0.5,
  1028. height: 0,
  1029. },
  1030. value: {
  1031. width: 20,
  1032. padding: [0, 20, 0, 30],
  1033. align: "left",
  1034. },
  1035. valueHead: {
  1036. color: "#333",
  1037. width: 20,
  1038. padding: [0, 20, 0, 30],
  1039. align: "center",
  1040. },
  1041. rate: {
  1042. width: 40,
  1043. align: "right",
  1044. padding: [0, 10, 0, 0],
  1045. },
  1046. rateHead: {
  1047. color: "#333",
  1048. width: 40,
  1049. align: "center",
  1050. padding: [0, 10, 0, 0],
  1051. },
  1052. },
  1053. },
  1054. },
  1055. {
  1056. value: this.chart.whouseList[0].fGrossweightD,
  1057. name: "占用库容",
  1058. },
  1059. {
  1060. value: parseFloat(
  1061. this.chart.whouseList[0].fTotalgross -
  1062. this.chart.whouseList[0].fGrossweightD
  1063. ).toFixed(1),
  1064. name: "空闲库容",
  1065. },
  1066. ],
  1067. emphasis: {
  1068. itemStyle: {
  1069. shadowBlur: 10,
  1070. shadowOffsetX: 0,
  1071. shadowColor: "rgba(0, 0, 0, 0.5)",
  1072. },
  1073. },
  1074. },
  1075. ],
  1076. });
  1077. },
  1078. drawLinetwo() {
  1079. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1080. let myChart = this.$echarts.init(document.getElementById("cargoOwner"));
  1081. // 绘制图表
  1082. myChart.setOption({
  1083. title: {
  1084. text: this.chart.whouseList[0].fName + "货权方统计",
  1085. subtext: "实时数据",
  1086. left: "center",
  1087. },
  1088. tooltip: {
  1089. trigger: "item",
  1090. formatter: "{a} <br/>{b}: {c} ({d}%)",
  1091. },
  1092. legend: {
  1093. bottom: 10,
  1094. left: "center",
  1095. data: this.name,
  1096. },
  1097. series: [
  1098. {
  1099. name: "访问来源",
  1100. type: "pie",
  1101. radius: ["40%", "60%"],
  1102. avoidLabelOverlap: false,
  1103. label: {
  1104. show: false,
  1105. position: "center",
  1106. },
  1107. emphasis: {
  1108. label: {
  1109. // show: true,
  1110. fontSize: "30",
  1111. fontWeight: "bold",
  1112. },
  1113. },
  1114. labelLine: {
  1115. show: false,
  1116. },
  1117. data: this.master,
  1118. },
  1119. ],
  1120. });
  1121. },
  1122. commoDity() {
  1123. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1124. let myChart = this.$echarts.init(document.getElementById("commoDity"));
  1125. // 绘制图表
  1126. myChart.setOption({
  1127. title: {
  1128. text: this.chart.whouseList[0].fName + "商品统计",
  1129. subtext: "实时数据",
  1130. left: "center",
  1131. },
  1132. color: ["#3398DB"],
  1133. tooltip: {
  1134. trigger: "axis",
  1135. axisPointer: {
  1136. // 坐标轴指示器,坐标轴触发有效
  1137. type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
  1138. },
  1139. },
  1140. grid: {
  1141. left: "3%",
  1142. right: "4%",
  1143. bottom: "3%",
  1144. containLabel: true,
  1145. },
  1146. xAxis: [
  1147. {
  1148. type: "category",
  1149. data: this.commodity,
  1150. axisTick: {
  1151. alignWithLabel: true,
  1152. },
  1153. },
  1154. ],
  1155. yAxis: [
  1156. {
  1157. type: "value",
  1158. },
  1159. ],
  1160. series: [
  1161. {
  1162. name: "实时状态",
  1163. type: "bar",
  1164. barWidth: "60%",
  1165. data: this.commoditytwo,
  1166. },
  1167. ],
  1168. });
  1169. },
  1170. },
  1171. };
  1172. </script>
  1173. <style scoped lang="scss">
  1174. .block {
  1175. width: 100%;
  1176. display: flex;
  1177. flex-wrap: wrap;
  1178. justify-content: space-around;
  1179. li:hover {
  1180. background-color: #025184;
  1181. }
  1182. li:nth-child(6),
  1183. li:nth-child(7),
  1184. li:nth-child(8),
  1185. li:nth-child(9),
  1186. li:nth-child(10) {
  1187. background-color: #2f4554;
  1188. }
  1189. li:nth-child(6):hover,
  1190. li:nth-child(7):hover,
  1191. li:nth-child(8):hover,
  1192. li:nth-child(9):hover,
  1193. li:nth-child(10):hover {
  1194. background-color: #2f4454d1;
  1195. }
  1196. li {
  1197. width: 18%;
  1198. height: 150px;
  1199. background-color: #1c84c6;
  1200. margin-left: 10px;
  1201. text-align: center;
  1202. color: #ffffff;
  1203. border-radius: 10px;
  1204. cursor: pointer;
  1205. margin-bottom: 15px;
  1206. div {
  1207. margin-top: 40px;
  1208. p {
  1209. font-size: 20px;
  1210. }
  1211. }
  1212. }
  1213. }
  1214. .home {
  1215. blockquote {
  1216. padding: 10px 20px;
  1217. margin: 0 0 20px;
  1218. font-size: 17.5px;
  1219. border-left: 5px solid #eee;
  1220. }
  1221. hr {
  1222. margin-top: 20px;
  1223. margin-bottom: 20px;
  1224. border: 0;
  1225. border-top: 1px solid #eee;
  1226. }
  1227. .col-item {
  1228. margin-bottom: 20px;
  1229. }
  1230. ul {
  1231. padding: 0;
  1232. margin: 0;
  1233. }
  1234. font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  1235. font-size: 13px;
  1236. color: #676a6c;
  1237. overflow-x: hidden;
  1238. ul {
  1239. list-style-type: none;
  1240. }
  1241. h4 {
  1242. margin-top: 0px;
  1243. }
  1244. h2 {
  1245. margin-top: 10px;
  1246. font-size: 26px;
  1247. font-weight: 100;
  1248. }
  1249. p {
  1250. margin-top: 10px;
  1251. b {
  1252. font-weight: 700;
  1253. }
  1254. }
  1255. .update-log {
  1256. ol {
  1257. display: block;
  1258. list-style-type: decimal;
  1259. margin-block-start: 1em;
  1260. margin-block-end: 1em;
  1261. margin-inline-start: 0;
  1262. margin-inline-end: 0;
  1263. padding-inline-start: 40px;
  1264. }
  1265. }
  1266. }
  1267. .home-fleet {
  1268. display: flex;
  1269. .home-left {
  1270. width: 40%;
  1271. padding: 0 10px;
  1272. }
  1273. .home-right {
  1274. width: 60%;
  1275. padding: 0 10px;
  1276. }
  1277. .content-top {
  1278. display: flex;
  1279. .content-top-left {
  1280. display: flex;
  1281. width: 50%;
  1282. height: 100px;
  1283. border-bottom: 1px solid #e6ebf5;
  1284. border-right: 1px solid #e6ebf5;
  1285. padding: 10px;
  1286. justify-content: space-between;
  1287. }
  1288. .content-top-right {
  1289. display: flex;
  1290. width: 50%;
  1291. height: 100px;
  1292. border-bottom: 1px solid #e6ebf5;
  1293. padding: 10px;
  1294. justify-content: space-between;
  1295. }
  1296. }
  1297. .content-bottom {
  1298. display: flex;
  1299. height: 81px;
  1300. border-bottom: 1px solid #e6ebf5;
  1301. padding: 10px;
  1302. justify-content: space-between;
  1303. }
  1304. .content-bottom:last-child {
  1305. border-bottom: 0px;
  1306. }
  1307. .upper-right {
  1308. padding: 10px 0;
  1309. height: 260px;
  1310. }
  1311. .upper-right2 {
  1312. padding: 10px 0;
  1313. height: 104px;
  1314. }
  1315. }
  1316. .single_line {
  1317. overflow: hidden;
  1318. text-overflow: ellipsis;
  1319. white-space: nowrap;
  1320. }
  1321. @media screen and (max-width: 920px) {
  1322. .home-fleet {
  1323. display: flex;
  1324. flex-direction: column;
  1325. .home-left {
  1326. width: 100%;
  1327. }
  1328. .home-right {
  1329. width: 100%;
  1330. }
  1331. }
  1332. }
  1333. </style>
  1334. <style lang="scss">
  1335. .text img {
  1336. max-width: 100%;
  1337. height: auto;
  1338. }
  1339. .home_stock_table {
  1340. display: flex;
  1341. width: 20%;
  1342. justify-content: center;
  1343. align-self: center;
  1344. p{
  1345. display: inline-block;
  1346. white-space: nowrap;
  1347. width: 100%;
  1348. overflow: hidden;
  1349. text-overflow:ellipsis;
  1350. }
  1351. }
  1352. .home_stock_table_right {
  1353. display: flex;
  1354. width: 20%;
  1355. justify-content: space-around;
  1356. align-self: center;
  1357. }
  1358. </style>