index.vue 34 KB

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