index.vue 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741
  1. <template>
  2. <div class="app-container home">
  3. <div v-if="sysType == 1">
  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. v-if="index<5"
  158. >
  159. <div class="home_stock_table"> <p>{{ item.refno1 }}</p></div>
  160. <div class="home_stock_table">
  161. {{ item.sendTime ? item.sendTime.slice(0,10) : item.sendTime}}
  162. </div>
  163. <div class="home_stock_table" @click="approval(item)"><p style="text-align: center;">{{ item.refno3 }}</p></div>
  164. <div class="home_stock_table">
  165. <span v-if="item.refno2 === 'SJRK'">入库</span>
  166. <span v-else-if="item.refno2 === 'SJCK'">出库</span>
  167. <span v-else-if="item.refno2 === 'HQZY'">货转</span>
  168. <span v-else-if="item.refno2 === 'CKDB'">调拨</span>
  169. <span v-else-if="item.refno2 === 'CCF'">仓储费</span>
  170. <span v-else-if="item.refno2 === 'HWTG'">货物通关</span>
  171. <span v-else-if="item.refno2 === 'ZYF'">作业费</span>
  172. <span v-else-if="item.refno2 === 'SF'">收费</span>
  173. <span v-else-if="item.refno2 === 'DZ'">对账</span>
  174. <span v-else-if="item.refno2 === 'FF'">付费</span>
  175. <span v-else-if="item.refno2 === 'JSCCF'">计算仓储费</span>
  176. <span v-else-if="item.refno2 === 'KHDZ'">凯和对账</span>
  177. <span v-else-if="item.refno2 === 'KHSF'">凯和收费</span>
  178. <span v-else-if="item.refno2 === 'KHFF'">凯和付费</span>
  179. <span v-else-if="item.refno2 === 'ApplyFP'">凯和开票申请</span>
  180. <span v-else-if="item.refno2 === 'KHDD'">凯和订单</span>
  181. <span v-else-if="item.refno2 === 'SE'">下单配船</span>
  182. <span v-else-if="item.refno2 === 'SJRKITEM'">入库明细审批</span>
  183. <span v-else-if="item.refno2 === 'SJCKITEM'">出库明细审批</span>
  184. <span v-else-if="item.refno2 === 'XGDD'">申请变更</span>
  185. <span v-else-if="item.refno2 === 'XGTJ'">提交变更</span>
  186. <span v-else-if="item.refno2 === 'DDSC'">申请删单</span>
  187. </div>
  188. <div class="home_stock_table" @click="approval(item)">
  189. 查看详情
  190. </div>
  191. </div>
  192. </div>
  193. <div
  194. v-else
  195. style="
  196. display: flex;
  197. justify-content: center;
  198. height: 213px;
  199. border-bottom: 1px solid #dfe6ec;
  200. "
  201. >
  202. <div style="align-self: center; color: #909399; font-size: 14px">
  203. 暂无数据
  204. </div>
  205. </div>
  206. </div>
  207. <!-- <el-table
  208. :data="tableData"
  209. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  210. :cell-style="cellStyle"
  211. >
  212. <el-table-column
  213. prop="refno1"
  214. :show-overflow-tooltip="true"
  215. label="委托方"
  216. ></el-table-column>
  217. <el-table-column
  218. prop="auditItem"
  219. :show-overflow-tooltip="true"
  220. label="日期"
  221. >
  222. <template slot-scope="scope">
  223. <span v-if="!scope.row.auditItem">无时间</span>
  224. <span v-else>{{ scope.row.auditItem.slice(0, 10) }}</span>
  225. </template>
  226. </el-table-column>
  227. <el-table-column
  228. prop="refno3"
  229. :show-overflow-tooltip="true"
  230. label="提单号"
  231. ></el-table-column>
  232. <el-table-column
  233. prop="refno2"
  234. :show-overflow-tooltip="true"
  235. label="业务类型"
  236. >
  237. <template slot-scope="scope">
  238. <span v-if="scope.row.refno2 === 'SJRK'">入库</span>
  239. <span v-else-if="scope.row.refno2 === 'SJCK'">出库</span>
  240. <span v-else-if="scope.row.refno2 === 'HQZY'">货转</span>
  241. <span v-else-if="scope.row.refno2 === 'CKDB'">调拨</span>
  242. <span v-else-if="scope.row.refno2 === 'CCF'">仓储费</span>
  243. <span v-else-if="scope.row.refno2 === 'HWTG'">货物通关</span>
  244. <span v-else-if="scope.row.refno2 === 'ZYF'">作业费</span>
  245. <span v-else-if="scope.row.refno2 === 'SF'">收费</span>
  246. <span v-else-if="scope.row.refno2 === 'DZ'">对账</span>
  247. <span v-else-if="scope.row.refno2 === 'FF'">付费</span>
  248. <span v-else-if="scope.row.refno2 === 'JSCCF'">计算仓储费</span>
  249. </template>
  250. </el-table-column>
  251. <el-table-column prop="address" label="操作" width="80">
  252. <template slot-scope="scope">
  253. <span style="cursor: pointer" @click="approval(scope.row)"
  254. >查看详情</span
  255. >
  256. </template>
  257. </el-table-column>
  258. </el-table> -->
  259. </div>
  260. <div style="width: 30%">
  261. <el-table
  262. :data="tableDataTwo"
  263. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  264. :cell-style="cellStyle"
  265. style="margin-left: 20px"
  266. >
  267. <el-table-column
  268. prop="noticeTitle"
  269. :show-overflow-tooltip="true"
  270. label="消息中心"
  271. />
  272. <el-table-column prop="address" label="操作" width="80">
  273. <template slot-scope="scope">
  274. <span
  275. @click="querytoDo(scope.row.noticeContent)"
  276. style="cursor: pointer"
  277. >查看详情</span
  278. >
  279. </template>
  280. </el-table-column>
  281. </el-table>
  282. </div>
  283. </div>
  284. <div style="display: flex">
  285. <div style="width: 70%">
  286. <div
  287. id="commoDity"
  288. style="width: 100%; height: 350px; margin-left: 40px"
  289. ></div>
  290. </div>
  291. <div style="width: 30%">
  292. <div id="cargoOwner" style="width: 100%; height: 350px"></div>
  293. </div>
  294. </div>
  295. </div>
  296. <el-dialog
  297. v-if="sysType == 1 || sysType == 3"
  298. title="消息提示"
  299. :visible.sync="dialogVisible"
  300. width="80%"
  301. :before-close="handleClose"
  302. :close-on-click-modal="false"
  303. >
  304. <span
  305. v-html="text"
  306. class="text"
  307. style="max-width: 100%; height: auto"
  308. ></span>
  309. <span slot="footer" class="dialog-footer">
  310. <el-button type="primary" @click="dialogVisible = false"
  311. >关 闭</el-button
  312. >
  313. </span>
  314. </el-dialog>
  315. <div class="home-fleet" v-if="sysType == 2">
  316. <div class="home-left">
  317. <chi-card title="业务看板" iconName="el-icon-s-cooperation">
  318. <div slot="content">
  319. <div class="content-top">
  320. <div class="content-top-left">
  321. <div
  322. style="display: flex; align-self: center; margin-left: 5px"
  323. >
  324. <div style="align-self: center">
  325. <svg
  326. t="1616396514864"
  327. class="icon"
  328. viewBox="0 0 1024 1024"
  329. version="1.1"
  330. xmlns="http://www.w3.org/2000/svg"
  331. p-id="9805"
  332. width="20"
  333. height="20"
  334. >
  335. <path
  336. 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"
  337. p-id="9806"
  338. fill="#000000"
  339. ></path>
  340. </svg>
  341. </div>
  342. <div
  343. style="
  344. align-self: center;
  345. font-size: 16px;
  346. margin: 2px 0 0 5px;
  347. "
  348. >
  349. 今日新增柜数
  350. </div>
  351. </div>
  352. <div
  353. style="
  354. font-size: 36px;
  355. align-self: center;
  356. font-weight: 600;
  357. color: #014da1;
  358. "
  359. >
  360. {{ upperLeftCntrs.planQuantity }}
  361. </div>
  362. </div>
  363. <div class="content-top-right">
  364. <div
  365. style="
  366. display: flex;
  367. align-self: center;
  368. min-width: 120px;
  369. margin-left: 5px;
  370. "
  371. >
  372. <div style="align-self: center">
  373. <svg
  374. t="1616400289333"
  375. class="icon"
  376. viewBox="0 0 1024 1024"
  377. version="1.1"
  378. xmlns="http://www.w3.org/2000/svg"
  379. p-id="22417"
  380. width="20"
  381. height="20"
  382. >
  383. <path
  384. 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"
  385. p-id="22418"
  386. ></path>
  387. </svg>
  388. </div>
  389. <div
  390. style="
  391. align-self: center;
  392. font-size: 16px;
  393. margin: 2px 0 0 5px;
  394. "
  395. >
  396. 未安排柜数
  397. </div>
  398. </div>
  399. <div
  400. style="
  401. font-size: 36px;
  402. align-self: center;
  403. font-weight: 600;
  404. color: #014da1;
  405. "
  406. >
  407. {{ upperLeftCntrs.surplusQuantity }}
  408. </div>
  409. </div>
  410. </div>
  411. <div class="content-bottom">
  412. <div style="display: flex; align-self: center; margin-left: 5px">
  413. <div style="align-self: center">
  414. <svg
  415. t="1616402886142"
  416. class="icon"
  417. viewBox="0 0 1024 1024"
  418. version="1.1"
  419. xmlns="http://www.w3.org/2000/svg"
  420. p-id="31596"
  421. width="24"
  422. height="24"
  423. >
  424. <path
  425. 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"
  426. p-id="31597"
  427. ></path>
  428. <path
  429. 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"
  430. p-id="31598"
  431. ></path>
  432. </svg>
  433. </div>
  434. <div
  435. style="
  436. align-self: center;
  437. font-size: 16px;
  438. margin: 2px 0 0 5px;
  439. width: 110px;
  440. "
  441. >
  442. 今日派车数
  443. </div>
  444. </div>
  445. <div
  446. style="
  447. font-size: 36px;
  448. align-self: center;
  449. font-weight: 600;
  450. color: #014da1;
  451. "
  452. >
  453. {{ fleetData.upperLeftCarQuantity }}
  454. </div>
  455. <div style="align-self: center; color: #409eff">派车详情></div>
  456. </div>
  457. <div class="content-bottom">
  458. <div
  459. style="
  460. display: flex;
  461. align-self: center;
  462. min-width: 120px;
  463. margin-left: 5px;
  464. "
  465. >
  466. <div style="align-self: center">
  467. <svg
  468. t="1616402771353"
  469. class="icon"
  470. viewBox="0 0 1048 1024"
  471. version="1.1"
  472. xmlns="http://www.w3.org/2000/svg"
  473. p-id="29149"
  474. width="20"
  475. height="20"
  476. >
  477. <path
  478. 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"
  479. p-id="29150"
  480. ></path>
  481. </svg>
  482. </div>
  483. <div
  484. style="
  485. align-self: center;
  486. font-size: 16px;
  487. margin: 2px 0 0 5px;
  488. width: 110px;
  489. "
  490. >
  491. 可用车辆数
  492. </div>
  493. </div>
  494. <div
  495. style="
  496. font-size: 36px;
  497. align-self: center;
  498. font-weight: 600;
  499. color: #014da1;
  500. "
  501. >
  502. {{ fleetData.upperLeftOldCarQuantity }}
  503. </div>
  504. <div style="align-self: center; color: #409eff">派车详情></div>
  505. </div>
  506. </div>
  507. </chi-card>
  508. <chi-card
  509. title="新闻公告"
  510. iconName="el-icon-s-cooperation"
  511. :More="true"
  512. >
  513. <div slot="content" style="height: 260px">
  514. <div
  515. style="padding: 4px 15px; font-size: 14px"
  516. v-for="(item, index) in tableDataTwo"
  517. :key="index"
  518. :style="{
  519. backgroundColor: index % 2 == 0 ? '#fafbfd' : '#FFFFFF',
  520. }"
  521. >
  522. {{ item.noticeTitle }}
  523. </div>
  524. </div>
  525. </chi-card>
  526. </div>
  527. <div class="home-right">
  528. <chi-card title="运行车辆" iconName="el-icon-s-order" :More="true">
  529. <div slot="content" class="upper-right">
  530. <div
  531. style="display: flex; padding: 4px 15px; font-size: 14px"
  532. v-for="(item, index) in upperRights"
  533. :key="index"
  534. :style="{
  535. backgroundColor: index % 2 == 0 ? '#fafbfd' : '#FFFFFF',
  536. }"
  537. >
  538. <div style="width: 30%" @click="goPage(item.id)">
  539. <el-link type="primary" :underline="false">{{
  540. item.mblno
  541. }}</el-link>
  542. </div>
  543. <div style="width: 20%">{{ item.carregNo }}</div>
  544. <div style="width: 15%; color: #67c23a">
  545. {{ item.orderStatus | statusType }}
  546. </div>
  547. <div
  548. style="
  549. width: 35%;
  550. overflow: hidden;
  551. text-overflow: ellipsis;
  552. white-space: nowrap;
  553. "
  554. >
  555. {{ item.corpName }}
  556. </div>
  557. </div>
  558. </div>
  559. </chi-card>
  560. <chi-card title="业务待办" iconName="el-icon-s-order" :More="true">
  561. <div slot="content" class="upper-right2">
  562. <div
  563. style="
  564. font-size: 14px;
  565. display: flex;
  566. margin: 4px 15px;
  567. border-bottom: 1px dashed #e6ebf5;
  568. "
  569. >
  570. <div style="width: 30%" class="single_line">FK221516485645</div>
  571. <div style="width: 20%" class="single_line">运费运费运费</div>
  572. <div style="width: 15%" class="single_line">李刚</div>
  573. <div style="width: 15%; color: #67c23a" class="single_line">
  574. 待审批
  575. </div>
  576. <div style="width: 20%" class="single_line">2020/10/10</div>
  577. </div>
  578. <div style="font-size: 14px; display: flex; margin: 4px 15px">
  579. <div style="width: 30%" class="single_line">FK221516485645</div>
  580. <div style="width: 20%" class="single_line">运费运费运费</div>
  581. <div style="width: 15%" class="single_line">李刚</div>
  582. <div style="width: 15%; color: #67c23a" class="single_line">
  583. 待审批
  584. </div>
  585. <div style="width: 20%" class="single_line">2020/10/10</div>
  586. </div>
  587. </div>
  588. </chi-card>
  589. <chi-card title="审核列表" iconName="el-icon-s-order" :More="true">
  590. <div slot="content" class="upper-right2">
  591. <div
  592. style="
  593. font-size: 14px;
  594. display: flex;
  595. margin: 4px 15px;
  596. border-bottom: 1px dashed #e6ebf5;
  597. "
  598. >
  599. <div style="width: 30%" class="single_line">FK221516485645</div>
  600. <div style="width: 20%" class="single_line">运费运费运费</div>
  601. <div style="width: 15%" class="single_line">李刚</div>
  602. <div style="width: 15%; color: #67c23a">待审批</div>
  603. <div style="width: 20%" class="single_line">2020/10/10</div>
  604. </div>
  605. <div style="font-size: 14px; display: flex; margin: 4px 15px">
  606. <div style="width: 30%" class="single_line">FK221516485645</div>
  607. <div style="width: 20%" class="single_line">运费运费运费</div>
  608. <div style="width: 15%" class="single_line">李刚</div>
  609. <div style="width: 15%; color: #67c23a" class="single_line">
  610. 待审批
  611. </div>
  612. <div style="width: 20%" class="single_line">2020/10/10</div>
  613. </div>
  614. </div>
  615. </chi-card>
  616. </div>
  617. </div>
  618. <div v-if="sysType == 3">
  619. <div style="width: 100%;">
  620. <div id="distribution" style="width: 100%;height: 300px;"></div>
  621. </div>
  622. <div style="width: 100%;margin: 20px auto;float: left">
  623. <el-table :data="bookingData">
  624. <el-table-column prop="fName" align="center" label="船名"/>
  625. <el-table-column prop="fNo" align="center" label="航次"/>
  626. <el-table-column prop="portofloadName" align="center" label="起运港"/>
  627. <el-table-column prop="distinationName" align="center" label="目的港"/>
  628. <el-table-column prop="fWeight" align="center" label="容量TEU"/>
  629. <el-table-column prop="boxNumber" align="center" label="实装TEU"/>
  630. <el-table-column prop="fETD" align="center" label="预计开船">
  631. <template slot-scope="scope">
  632. <span>{{ scope.row.fETD?scope.row.fETD.slice(0, 10):'' }}</span>
  633. </template>
  634. </el-table-column>
  635. <el-table-column prop="fETA" align="center" label="预计到港">
  636. <template slot-scope="scope">
  637. <span>{{ scope.row.fETA?scope.row.fETA.slice(0, 10):'' }}</span>
  638. </template>
  639. </el-table-column>
  640. <el-table-column prop="fATD" align="center" label="实际开船">
  641. <template slot-scope="scope">
  642. <span>{{ scope.row.fATD?scope.row.fATD.slice(0, 10):'' }}</span>
  643. </template>
  644. </el-table-column>
  645. <el-table-column prop="fATA" align="center" label="实际到港">
  646. <template slot-scope="scope">
  647. <span>{{ scope.row.fATA?scope.row.fATA.slice(0, 10):'' }}</span>
  648. </template>
  649. </el-table-column>
  650. <el-table-column prop="fDays" align="center" label="航程"/>
  651. </el-table>
  652. </div>
  653. <div style="width: 100%;">
  654. <div style="width: 49%;float: left">
  655. <div
  656. style="
  657. display: flex;
  658. color: #515a6e;
  659. font-weight: 600;
  660. background-color: #f8f8f9;
  661. height: 42.6px;
  662. font-size: 13px;
  663. justify-content: space-between;
  664. border-bottom: 1px dashed #dfe6ec;
  665. "
  666. >
  667. <div class="home_stock_table">委托方</div>
  668. <div class="home_stock_table">日期</div>
  669. <div class="home_stock_table">提单号</div>
  670. <div class="home_stock_table">业务类型</div>
  671. <div class="home_stock_table_right">
  672. <div>操作</div>
  673. <el-link type="primary" @click="jump('/morePage/stock')"
  674. >更多></el-link
  675. >
  676. </div>
  677. </div>
  678. <div v-if="tableData.length > 0">
  679. <div
  680. style="display: flex;height: 42.6px;border-bottom: 1px dashed #dfe6ec;"
  681. v-for="(item, index) in tableData"
  682. :key="index"
  683. >
  684. <div class="home_stock_table"> <p>{{ item.refno1 }}</p></div>
  685. <div class="home_stock_table">
  686. {{ item.sendTime ? item.sendTime.slice(0, 10):'' }}
  687. </div>
  688. <div class="home_stock_table" @click="approval(item)"><p>{{ item.refno3}}</p></div>
  689. <div class="home_stock_table">
  690. <span v-if="item.refno2 === 'SJRK'">入库</span>
  691. <span v-else-if="item.refno2 === 'SJCK'">出库</span>
  692. <span v-else-if="item.refno2 === 'HQZY'">货转</span>
  693. <span v-else-if="item.refno2 === 'CKDB'">调拨</span>
  694. <span v-else-if="item.refno2 === 'CCF'">仓储费</span>
  695. <span v-else-if="item.refno2 === 'HWTG'">货物通关</span>
  696. <span v-else-if="item.refno2 === 'ZYF'">作业费</span>
  697. <span v-else-if="item.refno2 === 'SF'">收费</span>
  698. <span v-else-if="item.refno2 === 'DZ'">对账</span>
  699. <span v-else-if="item.refno2 === 'FF'">付费</span>
  700. <span v-else-if="item.refno2 === 'JSCCF'">计算仓储费</span>
  701. <span v-else-if="item.refno2 === 'KHDZ'">凯和对账</span>
  702. <span v-else-if="item.refno2 === 'KHSF'">凯和收费</span>
  703. <span v-else-if="item.refno2 === 'KHFF'">凯和付费</span>
  704. <span v-else-if="item.refno2 === 'ApplyFP'">凯和开票申请</span>
  705. <span v-else-if="item.refno2 === 'KHDD'">凯和订单</span>
  706. <span v-else-if="item.refno2 === 'SE'">下单配船</span>
  707. <span v-else-if="item.refno2 === 'SJRKITEM'">入库明细审批</span>
  708. <span v-else-if="item.refno2 === 'SJCKITEM'">出库明细审批</span>
  709. <span v-else-if="item.refno2 === 'XGDD'">申请变更</span>
  710. <span v-else-if="item.refno2 === 'XGTJ'">提交变更</span>
  711. <span v-else-if="item.refno2 === 'DDSC'">申请删单</span>
  712. </div>
  713. <div class="home_stock_table" @click="approval(item)">
  714. 立即审批
  715. </div>
  716. </div>
  717. </div>
  718. <div
  719. v-else
  720. style="
  721. display: flex;
  722. justify-content: center;
  723. height: 213px;
  724. border-bottom: 1px solid #dfe6ec;
  725. "
  726. >
  727. <div style="align-self: center; color: #909399; font-size: 14px">
  728. 暂无数据
  729. </div>
  730. </div>
  731. </div>
  732. <div style="width: 49%;height: 200px;float: right">
  733. <el-table
  734. :data="tableDataTwo"
  735. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  736. :cell-style="cellStyle"
  737. style="margin-left: 20px"
  738. >
  739. <el-table-column
  740. prop="noticeTitle"
  741. :show-overflow-tooltip="true"
  742. label="消息中心"
  743. />
  744. <el-table-column prop="address" label="操作" width="80">
  745. <template slot-scope="scope">
  746. <span
  747. @click="querytoDo(scope.row.noticeContent)"
  748. style="cursor: pointer"
  749. >查看详情</span
  750. >
  751. </template>
  752. </el-table-column>
  753. </el-table>
  754. </div>
  755. </div>
  756. <div style="width: 100%;margin: 10px auto;float: left">
  757. <div id="bookingRanking" style="width: 100%;height: 300px;"></div>
  758. </div>
  759. <div style="width: 100%;margin: 10px auto;float: left">
  760. <div id="bookingRankingTwo" style="width: 100%;height: 300px;"></div>
  761. </div>
  762. </div>
  763. </div>
  764. </template>
  765. <script>
  766. import { queryHomeInfo } from "@/api/fleet/home";
  767. import chiCard from "./chiCard.vue";
  768. import {
  769. listCorps,
  770. information,
  771. warehouse,
  772. inquiry,
  773. boxDistribution,
  774. shipDynamics,
  775. bookingSpace,
  776. locationRanking
  777. } from "../../src/api/index";
  778. import Cookies from "js-cookie";
  779. export default {
  780. name: "index",
  781. data() {
  782. return {
  783. bookingData:[],
  784. editModel: {},
  785. // 版本号
  786. version: "3.2.1",
  787. select: "",
  788. text: "",
  789. dialogVisible: false,
  790. tableData: [],
  791. dataList:{
  792. addressName:[],
  793. boxNumber:[],
  794. bookingRanking:{
  795. text:[],
  796. textTwo:[],
  797. data:[],
  798. dataTwo:[]
  799. }
  800. },
  801. chart: [],
  802. warehouse: [],
  803. master: [],
  804. commodity: [],
  805. commoditytwo: [],
  806. name: [],
  807. tableDataTwo: [],
  808. fleetData: "",
  809. upperLeftCntrs: {},
  810. sysType: "",
  811. upperRights: [],
  812. };
  813. },
  814. filters: {
  815. statusType(val) {
  816. switch (val) {
  817. case 10:
  818. return "车队安排";
  819. break;
  820. case 20:
  821. return "司机受理";
  822. break;
  823. case 30:
  824. return "司机出车";
  825. break;
  826. case 40:
  827. return "提箱";
  828. break;
  829. case 50:
  830. return "装卸货";
  831. break;
  832. case 60:
  833. return "还卸柜";
  834. break;
  835. case 70:
  836. return "费用确认";
  837. break;
  838. default:
  839. return "回单";
  840. }
  841. },
  842. },
  843. components: {
  844. chiCard,
  845. },
  846. created() {
  847. this.getConfigKey("data_print_title").then((response) => {
  848. Cookies.set("companyName", response.msg);
  849. });
  850. queryHomeInfo().then((response) => {
  851. this.fleetData = response.data;
  852. if (response.data.upperRight.length > 0) {
  853. this.upperRights = response.data.upperRight.slice(0, 10);
  854. }
  855. this.upperLeftCntrs = response.data.upperLeftCntrs;
  856. });
  857. this.sysType = Cookies.get("sysType");
  858. // console.log(this.sysType);
  859. },
  860. activated() {
  861. this.getList();
  862. this.warehouses();
  863. this.inquiry();
  864. this.dataList.addressName = []
  865. this.dataList.boxNumber = []
  866. this.dataList.bookingRanking.text = []
  867. this.dataList.bookingRanking.textTwo = []
  868. this.dataList.bookingRanking.data = []
  869. this.dataList.bookingRanking.dataTwo = []
  870. if (Number(this.sysType) === 3){
  871. boxDistribution().then(res =>{
  872. res.data.forEach(item =>{
  873. this.dataList.addressName.push(item.addressName)
  874. this.dataList.boxNumber.push(item.boxNumber)
  875. })
  876. this.boxDistribution()
  877. })
  878. bookingSpace().then(res=>{
  879. res.data.forEach(item =>{
  880. this.dataList.bookingRanking.text.push(item.corpName)
  881. this.dataList.bookingRanking.data.push({
  882. name: item.corpName,
  883. type: 'line',
  884. stack: '总量',
  885. data: [item.January, item.February, item.March, item.April, item.May, item.June, item.July,item.August,item.September,item.October,item.November,item.December]
  886. })
  887. })
  888. this.ranking()
  889. })
  890. locationRanking().then(res=>{
  891. res.data.forEach(item =>{
  892. this.dataList.bookingRanking.textTwo.push(item.corpName)
  893. this.dataList.bookingRanking.dataTwo.push({
  894. name: item.corpName,
  895. type: 'line',
  896. stack: '总量',
  897. data: [item.January, item.February, item.March, item.April, item.May, item.June, item.July,item.August,item.September,item.October,item.November,item.December]
  898. })
  899. })
  900. this.rankingTwo()
  901. })
  902. shipDynamics().then(res=>{
  903. console.log(res)
  904. this.bookingData = res.data
  905. })
  906. }
  907. },
  908. methods: {
  909. //箱分布图表
  910. ranking() {
  911. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  912. let myChart = this.$echarts.init(document.getElementById("bookingRanking"));
  913. // 绘制图表
  914. myChart.setOption({
  915. title: {
  916. text: '订舱排名(前十)',
  917. left: 'center'
  918. },
  919. tooltip: {
  920. trigger: 'axis'
  921. },
  922. legend: {
  923. orient: 'vertical',
  924. left: 'right',
  925. data: this.dataList.bookingRanking.text
  926. },
  927. grid: {
  928. left: '3%',
  929. right: '20%',
  930. bottom: '3%',
  931. containLabel: true
  932. },
  933. xAxis: {
  934. type: 'category',
  935. boundaryGap: false,
  936. data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
  937. },
  938. yAxis: {
  939. type: 'value'
  940. },
  941. series: this.dataList.bookingRanking.data
  942. });
  943. },
  944. //箱分布图表
  945. rankingTwo() {
  946. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  947. let myChart = this.$echarts.init(document.getElementById("bookingRankingTwo"));
  948. // 绘制图表
  949. myChart.setOption({
  950. title: {
  951. text: '应收款排名(前十)',
  952. left: 'center'
  953. },
  954. tooltip: {
  955. trigger: 'axis'
  956. },
  957. legend: {
  958. orient: 'vertical',
  959. left: 'right',
  960. data: this.dataList.bookingRanking.textTwo
  961. },
  962. grid: {
  963. left: '3%',
  964. right: '20%',
  965. bottom: '3%',
  966. containLabel: true
  967. },
  968. xAxis: {
  969. type: 'category',
  970. boundaryGap: false,
  971. data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
  972. },
  973. yAxis: {
  974. type: 'value'
  975. },
  976. series: this.dataList.bookingRanking.dataTwo
  977. });
  978. },
  979. //箱分布图表
  980. boxDistribution() {
  981. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  982. let myChart = this.$echarts.init(document.getElementById("distribution"));
  983. // 绘制图表
  984. myChart.setOption({
  985. title: {
  986. text: "箱分布",
  987. left: "center",
  988. },
  989. xAxis: {
  990. type: 'category',
  991. data: this.dataList.addressName
  992. },
  993. tooltip: {
  994. trigger: 'axis'
  995. },
  996. yAxis: {
  997. type: 'value'
  998. },
  999. toolbox: {
  1000. feature: {
  1001. saveAsImage: {}
  1002. }
  1003. },
  1004. series: [{
  1005. data: this.dataList.boxNumber,
  1006. type: 'line'
  1007. }]
  1008. });
  1009. },
  1010. goPage(id) {
  1011. this.$router.push({
  1012. path: "/track/cabinet",
  1013. query: { id: id },
  1014. });
  1015. },
  1016. //跳转审批页面
  1017. approval(row) {
  1018. switch (row.refno2) {
  1019. case "SJRK": {
  1020. this.$router.push({
  1021. path: "/business/inStock",
  1022. query: { id: row.billId},
  1023. });
  1024. break;
  1025. }
  1026. case "SJCK": {
  1027. this.$router.push({
  1028. path: "/business/outStock",
  1029. query: { id: row.billId},
  1030. });
  1031. break;
  1032. }
  1033. case "HQZY": {
  1034. this.$router.push({
  1035. path: "/business/goodsTransfer",
  1036. query: { id: row.billId},
  1037. });
  1038. break;
  1039. }
  1040. case "CKDB": {
  1041. this.$router.push({
  1042. path: "/business/stockTransfer",
  1043. query: { id: row.billId},
  1044. });
  1045. break;
  1046. }
  1047. case "HWTG": {
  1048. this.$router.push({
  1049. path: "/business/cargoClearance",
  1050. query: { id: row.billId},
  1051. });
  1052. break;
  1053. }
  1054. case "JSCCF": {
  1055. this.$router.push({
  1056. path: "/business/agreement",
  1057. query: { data: JSON.stringify(row) },
  1058. });
  1059. break;
  1060. }
  1061. case "CCF": {
  1062. this.$router.push({
  1063. path: "/agreement/agreementStorage",
  1064. query: { data: JSON.stringify(row) },
  1065. });
  1066. break;
  1067. }
  1068. case "ZYF": {
  1069. this.$router.push({
  1070. path: "/agreement/agreementTask",
  1071. query: { data: JSON.stringify(row) },
  1072. });
  1073. break;
  1074. }
  1075. case "SF": {
  1076. this.$router.push({
  1077. path: "/finance/charge",
  1078. query: { data: JSON.stringify(row) },
  1079. });
  1080. break;
  1081. }
  1082. case "DZ": {
  1083. this.$router.push({
  1084. path: "/finance/contrast",
  1085. query: { data: JSON.stringify(row) },
  1086. });
  1087. break;
  1088. }
  1089. case "FF": {
  1090. this.$router.push({
  1091. path: "/finance/payment",
  1092. query: { data: JSON.stringify(row) },
  1093. });
  1094. break;
  1095. }
  1096. case "ApplyFP": {
  1097. this.$router.push({
  1098. path: "/finance/chargeInvoice",
  1099. query: { data: JSON.stringify(row) },
  1100. });
  1101. break;
  1102. }
  1103. case "KHDZ": {
  1104. this.$router.push({
  1105. path: "/finance/contrast",
  1106. query: { data: JSON.stringify(row) },
  1107. });
  1108. break;
  1109. }
  1110. case "KHSF": {
  1111. this.$router.push({
  1112. path: "/finance/charge",
  1113. query: { data: JSON.stringify(row) },
  1114. });
  1115. break;
  1116. }
  1117. case "KHFF": {
  1118. this.$router.push({
  1119. path: "/finance/payment",
  1120. query: { data: JSON.stringify(row) },
  1121. });
  1122. break;
  1123. }
  1124. case "KHDD": {
  1125. this.$router.push({
  1126. path: "/domesticTrade/orderInformation",
  1127. query: { list: JSON.stringify(row) },
  1128. });
  1129. break;
  1130. }
  1131. case "SJRKITEM": {
  1132. this.$router.push({
  1133. path: "/business/inStock",
  1134. query: { id: row.billId},
  1135. });
  1136. break;
  1137. }
  1138. case "SJCKITEM": {
  1139. this.$router.push({
  1140. path: "/business/outStock",
  1141. query: { id: row.billId},
  1142. });
  1143. break;
  1144. }
  1145. case "XGDD": {
  1146. this.$router.push({
  1147. path: "/domesticTrade/orderInformation",
  1148. query: {testing:JSON.stringify(row)},
  1149. });
  1150. break;
  1151. }
  1152. case "XGTJ": {
  1153. this.$router.push({
  1154. path: "/domesticTrade/orderInformation",
  1155. query: {testing:JSON.stringify(row)},
  1156. });
  1157. break;
  1158. }
  1159. case "DDSC": {
  1160. this.$router.push({
  1161. path: "/domesticTrade/orderInformation",
  1162. query: {testing:JSON.stringify(row)},
  1163. });
  1164. break;
  1165. }
  1166. default: {
  1167. return this.$message.error("未知错误,无状态");
  1168. }
  1169. }
  1170. },
  1171. inquiry() {
  1172. let data = {
  1173. actId: "",
  1174. };
  1175. inquiry(data).then((res) => {
  1176. res.data.map(e=>{
  1177. if(e.auditItem){
  1178. e.auditItem=e.auditItem.slice(0, 10)
  1179. }
  1180. })
  1181. this.tableData = res.data;
  1182. });
  1183. },
  1184. querytoDo(res) {
  1185. this.dialogVisible = true;
  1186. this.text = res;
  1187. },
  1188. handleClose(done) {
  1189. this.dialogVisible = false;
  1190. },
  1191. firstinventory(fId) {
  1192. // console.log(this.warehouse);
  1193. information(fId).then((response) => {
  1194. this.chart = response.data;
  1195. if (this.chart.whouseList.length !== 0) {
  1196. for (let index of this.chart.corpsListWhouse) {
  1197. this.master.push({
  1198. name: index.fName,
  1199. value: index.fGrossweightD,
  1200. });
  1201. this.name.push(index.fName);
  1202. }
  1203. for (let index of this.chart.goodslistWhouse) {
  1204. this.commodity.push(index.fName);
  1205. this.commoditytwo.push(index.fGrossweightD);
  1206. }
  1207. this.drawLine();
  1208. this.drawLinetwo();
  1209. this.commoDity();
  1210. } else {
  1211. this.chart = {
  1212. corpsListWhouse: [
  1213. {
  1214. balance: 0,
  1215. fCorpid: 58,
  1216. fGrossweightD: 0,
  1217. fName: "展示数据",
  1218. fTotalgross: 10000,
  1219. fWarehouseName: "展示数据",
  1220. },
  1221. ],
  1222. goodslistWhouse: [
  1223. {
  1224. balance: 0,
  1225. fGoodsid: 13,
  1226. fGrossweightD: 0,
  1227. fName: "展示商品",
  1228. fTotalgross: 10000,
  1229. fWarehouseName: "展示数据",
  1230. },
  1231. ],
  1232. whouseList: [
  1233. {
  1234. fGrossweightD: 0,
  1235. fName: "展示数据",
  1236. fTotalgross: 10000,
  1237. fWarehouseid: 36,
  1238. },
  1239. ],
  1240. };
  1241. for (let index of this.chart.corpsListWhouse) {
  1242. this.master.push({
  1243. name: index.fName,
  1244. value: index.fGrossweightD,
  1245. });
  1246. this.name.push(index.fName);
  1247. }
  1248. for (let index of this.chart.goodslistWhouse) {
  1249. this.commodity.push(index.fName);
  1250. this.commoditytwo.push(index.fGrossweightD);
  1251. }
  1252. this.drawLine();
  1253. this.drawLinetwo();
  1254. this.commoDity();
  1255. }
  1256. });
  1257. },
  1258. query() {
  1259. this.master = [];
  1260. this.commodity = [];
  1261. this.commoditytwo = [];
  1262. this.name = [];
  1263. if (this.select === "") {
  1264. return this.select;
  1265. } else {
  1266. information(this.select).then((response) => {
  1267. this.chart = response.data;
  1268. for (let index of this.chart.corpsListWhouse) {
  1269. this.master.push({
  1270. name: index.fName,
  1271. value: index.fGrossweightD,
  1272. });
  1273. this.name.push(index.fName);
  1274. }
  1275. for (let index of this.chart.goodslistWhouse) {
  1276. this.commodity.push(index.fName);
  1277. this.commoditytwo.push(index.fGrossweightD);
  1278. }
  1279. this.drawLine();
  1280. this.drawLinetwo();
  1281. this.commoDity();
  1282. });
  1283. }
  1284. },
  1285. jump(res) {
  1286. this.$router.push({ path: res });
  1287. },
  1288. //设置单元格边框
  1289. cellStyle({ row, column, rowIndex, columnIndex }) {
  1290. return "border-bottom: 1px dashed rgb(223, 230, 236)";
  1291. },
  1292. //查询消息中心
  1293. getList() {
  1294. this.loading = true;
  1295. listCorps(this.queryParams).then((response) => {
  1296. if (response.rows.length > 0) {
  1297. this.tableDataTwo = response.rows.slice(0, 10);
  1298. }
  1299. });
  1300. },
  1301. //查询仓库
  1302. warehouses() {
  1303. warehouse().then((response) => {
  1304. this.warehouse = [];
  1305. for (let index of response.rows) {
  1306. this.warehouse.push({
  1307. fName: index.fName,
  1308. fWarehouseid: index.fWarehouseid,
  1309. });
  1310. }
  1311. // console.log(this.warehouse);
  1312. this.firstinventory(this.warehouse[0].fWarehouseid);
  1313. });
  1314. },
  1315. goTarget(href) {
  1316. window.open(href, "_blank");
  1317. },
  1318. //仓库图表
  1319. drawLine() {
  1320. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1321. let myChart = this.$echarts.init(document.getElementById("box"));
  1322. // 绘制图表
  1323. myChart.setOption({
  1324. title: {
  1325. text: this.chart.whouseList[0].fName + "统计",
  1326. subtext: "实时数据",
  1327. left: "center",
  1328. },
  1329. tooltip: {
  1330. trigger: "item",
  1331. formatter: "{a} <br/>{b} : {c} ({d}%)",
  1332. },
  1333. legend: {
  1334. bottom: 10,
  1335. left: "center",
  1336. data: ["空闲库容", "占用库容"],
  1337. },
  1338. series: [
  1339. {
  1340. type: "pie",
  1341. name: "实时数据",
  1342. radius: "65%",
  1343. center: ["50%", "50%"],
  1344. selectedMode: "single",
  1345. data: [
  1346. {
  1347. label: {
  1348. backgroundColor: "#eee",
  1349. borderColor: "#777",
  1350. borderWidth: 1,
  1351. borderRadius: 4,
  1352. rich: {
  1353. title: {
  1354. color: "#eee",
  1355. align: "center",
  1356. },
  1357. abg: {
  1358. backgroundColor: "#333",
  1359. width: "100%",
  1360. align: "right",
  1361. height: 25,
  1362. borderRadius: [4, 4, 0, 0],
  1363. },
  1364. Sunny: {
  1365. height: 30,
  1366. align: "left",
  1367. },
  1368. Cloudy: {
  1369. height: 30,
  1370. align: "left",
  1371. },
  1372. Showers: {
  1373. height: 30,
  1374. align: "left",
  1375. },
  1376. weatherHead: {
  1377. color: "#333",
  1378. height: 24,
  1379. align: "left",
  1380. },
  1381. hr: {
  1382. borderColor: "#777",
  1383. width: "100%",
  1384. borderWidth: 0.5,
  1385. height: 0,
  1386. },
  1387. value: {
  1388. width: 20,
  1389. padding: [0, 20, 0, 30],
  1390. align: "left",
  1391. },
  1392. valueHead: {
  1393. color: "#333",
  1394. width: 20,
  1395. padding: [0, 20, 0, 30],
  1396. align: "center",
  1397. },
  1398. rate: {
  1399. width: 40,
  1400. align: "right",
  1401. padding: [0, 10, 0, 0],
  1402. },
  1403. rateHead: {
  1404. color: "#333",
  1405. width: 40,
  1406. align: "center",
  1407. padding: [0, 10, 0, 0],
  1408. },
  1409. },
  1410. },
  1411. },
  1412. {
  1413. value: this.chart.whouseList[0].fGrossweightD,
  1414. name: "占用库容",
  1415. },
  1416. {
  1417. value: parseFloat(
  1418. this.chart.whouseList[0].fTotalgross -
  1419. this.chart.whouseList[0].fGrossweightD
  1420. ).toFixed(1),
  1421. name: "空闲库容",
  1422. },
  1423. ],
  1424. emphasis: {
  1425. itemStyle: {
  1426. shadowBlur: 10,
  1427. shadowOffsetX: 0,
  1428. shadowColor: "rgba(0, 0, 0, 0.5)",
  1429. },
  1430. },
  1431. },
  1432. ],
  1433. });
  1434. },
  1435. drawLinetwo() {
  1436. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1437. let myChart = this.$echarts.init(document.getElementById("cargoOwner"));
  1438. // 绘制图表
  1439. myChart.setOption({
  1440. title: {
  1441. text: this.chart.whouseList[0].fName + "货权方统计",
  1442. subtext: "实时数据",
  1443. left: "center",
  1444. },
  1445. tooltip: {
  1446. trigger: "item",
  1447. formatter: "{a} <br/>{b}: {c} ({d}%)",
  1448. },
  1449. legend: {
  1450. bottom: 10,
  1451. left: "center",
  1452. data: this.name,
  1453. },
  1454. series: [
  1455. {
  1456. name: "访问来源",
  1457. type: "pie",
  1458. radius: ["40%", "60%"],
  1459. avoidLabelOverlap: false,
  1460. label: {
  1461. show: false,
  1462. position: "center",
  1463. },
  1464. emphasis: {
  1465. label: {
  1466. // show: true,
  1467. fontSize: "30",
  1468. fontWeight: "bold",
  1469. },
  1470. },
  1471. labelLine: {
  1472. show: false,
  1473. },
  1474. data: this.master,
  1475. },
  1476. ],
  1477. });
  1478. },
  1479. commoDity() {
  1480. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1481. let myChart = this.$echarts.init(document.getElementById("commoDity"));
  1482. // 绘制图表
  1483. myChart.setOption({
  1484. title: {
  1485. text: this.chart.whouseList[0].fName + "商品统计",
  1486. subtext: "实时数据",
  1487. left: "center",
  1488. },
  1489. color: ["#3398DB"],
  1490. tooltip: {
  1491. trigger: "axis",
  1492. axisPointer: {
  1493. // 坐标轴指示器,坐标轴触发有效
  1494. type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
  1495. },
  1496. },
  1497. grid: {
  1498. left: "3%",
  1499. right: "4%",
  1500. bottom: "3%",
  1501. containLabel: true,
  1502. },
  1503. xAxis: [
  1504. {
  1505. type: "category",
  1506. data: this.commodity,
  1507. axisTick: {
  1508. alignWithLabel: true,
  1509. },
  1510. },
  1511. ],
  1512. yAxis: [
  1513. {
  1514. type: "value",
  1515. },
  1516. ],
  1517. series: [
  1518. {
  1519. name: "实时状态",
  1520. type: "bar",
  1521. barWidth: "60%",
  1522. data: this.commoditytwo,
  1523. },
  1524. ],
  1525. });
  1526. },
  1527. },
  1528. };
  1529. </script>
  1530. <style scoped lang="scss">
  1531. .block {
  1532. width: 100%;
  1533. display: flex;
  1534. flex-wrap: wrap;
  1535. justify-content: space-around;
  1536. li:hover {
  1537. background-color: #025184;
  1538. }
  1539. li:nth-child(6),
  1540. li:nth-child(7),
  1541. li:nth-child(8),
  1542. li:nth-child(9),
  1543. li:nth-child(10) {
  1544. background-color: #2f4554;
  1545. }
  1546. li:nth-child(6):hover,
  1547. li:nth-child(7):hover,
  1548. li:nth-child(8):hover,
  1549. li:nth-child(9):hover,
  1550. li:nth-child(10):hover {
  1551. background-color: #2f4454d1;
  1552. }
  1553. li {
  1554. width: 18%;
  1555. height: 150px;
  1556. background-color: #1c84c6;
  1557. margin-left: 10px;
  1558. text-align: center;
  1559. color: #ffffff;
  1560. border-radius: 10px;
  1561. cursor: pointer;
  1562. margin-bottom: 15px;
  1563. div {
  1564. margin-top: 40px;
  1565. p {
  1566. font-size: 20px;
  1567. }
  1568. }
  1569. }
  1570. }
  1571. .home {
  1572. blockquote {
  1573. padding: 10px 20px;
  1574. margin: 0 0 20px;
  1575. font-size: 17.5px;
  1576. border-left: 5px solid #eee;
  1577. }
  1578. hr {
  1579. margin-top: 20px;
  1580. margin-bottom: 20px;
  1581. border: 0;
  1582. border-top: 1px solid #eee;
  1583. }
  1584. .col-item {
  1585. margin-bottom: 20px;
  1586. }
  1587. ul {
  1588. padding: 0;
  1589. margin: 0;
  1590. }
  1591. font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  1592. font-size: 13px;
  1593. color: #676a6c;
  1594. overflow-x: hidden;
  1595. ul {
  1596. list-style-type: none;
  1597. }
  1598. h4 {
  1599. margin-top: 0px;
  1600. }
  1601. h2 {
  1602. margin-top: 10px;
  1603. font-size: 26px;
  1604. font-weight: 100;
  1605. }
  1606. p {
  1607. margin-top: 10px;
  1608. b {
  1609. font-weight: 700;
  1610. }
  1611. }
  1612. .update-log {
  1613. ol {
  1614. display: block;
  1615. list-style-type: decimal;
  1616. margin-block-start: 1em;
  1617. margin-block-end: 1em;
  1618. margin-inline-start: 0;
  1619. margin-inline-end: 0;
  1620. padding-inline-start: 40px;
  1621. }
  1622. }
  1623. }
  1624. .home-fleet {
  1625. display: flex;
  1626. .home-left {
  1627. width: 40%;
  1628. padding: 0 10px;
  1629. }
  1630. .home-right {
  1631. width: 60%;
  1632. padding: 0 10px;
  1633. }
  1634. .content-top {
  1635. display: flex;
  1636. .content-top-left {
  1637. display: flex;
  1638. width: 50%;
  1639. height: 100px;
  1640. border-bottom: 1px solid #e6ebf5;
  1641. border-right: 1px solid #e6ebf5;
  1642. padding: 10px;
  1643. justify-content: space-between;
  1644. }
  1645. .content-top-right {
  1646. display: flex;
  1647. width: 50%;
  1648. height: 100px;
  1649. border-bottom: 1px solid #e6ebf5;
  1650. padding: 10px;
  1651. justify-content: space-between;
  1652. }
  1653. }
  1654. .content-bottom {
  1655. display: flex;
  1656. height: 81px;
  1657. border-bottom: 1px solid #e6ebf5;
  1658. padding: 10px;
  1659. justify-content: space-between;
  1660. }
  1661. .content-bottom:last-child {
  1662. border-bottom: 0px;
  1663. }
  1664. .upper-right {
  1665. padding: 10px 0;
  1666. height: 260px;
  1667. }
  1668. .upper-right2 {
  1669. padding: 10px 0;
  1670. height: 104px;
  1671. }
  1672. }
  1673. .single_line {
  1674. overflow: hidden;
  1675. text-overflow: ellipsis;
  1676. white-space: nowrap;
  1677. }
  1678. @media screen and (max-width: 920px) {
  1679. .home-fleet {
  1680. display: flex;
  1681. flex-direction: column;
  1682. .home-left {
  1683. width: 100%;
  1684. }
  1685. .home-right {
  1686. width: 100%;
  1687. }
  1688. }
  1689. }
  1690. </style>
  1691. <style lang="scss">
  1692. .text img {
  1693. max-width: 100%;
  1694. height: auto;
  1695. }
  1696. .home_stock_table {
  1697. display: flex;
  1698. width: 20%;
  1699. justify-content: center;
  1700. align-self: center;
  1701. p{
  1702. display: inline-block;
  1703. white-space: nowrap;
  1704. width: 100%;
  1705. overflow: hidden;
  1706. text-overflow:ellipsis;
  1707. }
  1708. }
  1709. .home_stock_table:hover{
  1710. color: #1c84c6;
  1711. cursor:pointer
  1712. }
  1713. .home_stock_table_right {
  1714. display: flex;
  1715. width: 20%;
  1716. justify-content: space-around;
  1717. align-self: center;
  1718. }
  1719. </style>