index.vue 70 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191
  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: 25px; text-align: center"
  12. ></i>
  13. </div>
  14. <p>常规入库</p>
  15. </li>
  16. <li @click="jump('/business/outStock')">
  17. <div>
  18. <i
  19. class="el-icon-upload2"
  20. style="font-size: 25px; text-align: center"
  21. ></i>
  22. </div>
  23. <p>常规出库</p>
  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/goodsTransfer')">
  44. <div>
  45. <i
  46. class="el-icon-takeaway-box"
  47. style="font-size: 25px; text-align: center"
  48. ></i>
  49. </div>
  50. <p>货权转移</p>
  51. </li>
  52. <li @click="jump('/business/stockTransfer')">
  53. <div>
  54. <i
  55. class="el-icon-connection"
  56. style="font-size: 25px; text-align: center"
  57. ></i>
  58. </div>
  59. <p>库间调拨</p>
  60. </li>
  61. <li @click="smartScreen()" v-if="showDataCenter == 0">
  62. <div>
  63. <i
  64. class="el-icon-s-order"
  65. style="font-size: 25px; text-align: center"
  66. ></i>
  67. </div>
  68. <p>数据中心</p>
  69. </li>
  70. <li @click="jump('/finance/charge')">
  71. <div>
  72. <i
  73. class="el-icon-wallet"
  74. style="font-size: 25px; text-align: center"
  75. ></i>
  76. </div>
  77. <p>收款</p>
  78. </li>
  79. <li @click="jump('/finance/payment')">
  80. <div>
  81. <i
  82. class="el-icon-money"
  83. style="font-size: 25px; text-align: center"
  84. ></i>
  85. </div>
  86. <p>付款</p>
  87. </li>
  88. <li @click="jump('/finance/contrast')">
  89. <div>
  90. <i
  91. class="el-icon-s-management"
  92. style="font-size: 25px; text-align: center"
  93. ></i>
  94. </div>
  95. <p>对账</p>
  96. </li>
  97. <!-- <li @click="jump('/business/goodsTransfer')">-->
  98. <!-- <div>-->
  99. <!-- <i-->
  100. <!-- class="el-icon-takeaway-box"-->
  101. <!-- style="font-size: 50px; text-align: center"-->
  102. <!-- ></i>-->
  103. <!-- <p>货转</p>-->
  104. <!-- </div>-->
  105. <!-- </li>-->
  106. <!-- <li @click="jump('/agreement/agreementStorage')">-->
  107. <!-- <div>-->
  108. <!-- <i-->
  109. <!-- class="el-icon-s-order"-->
  110. <!-- style="font-size: 50px; text-align: center"-->
  111. <!-- ></i>-->
  112. <!-- <p>协议</p>-->
  113. <!-- </div>-->
  114. <!-- </li>-->
  115. <li @click="openDialog('inStock')">
  116. <div>
  117. <i
  118. class="el-icon-s-unfold"
  119. style="font-size: 25px; text-align: center"
  120. ></i>
  121. </div>
  122. <p>快速入库</p>
  123. </li>
  124. <li @click="openDialog('outStock')">
  125. <div>
  126. <i
  127. class="el-icon-s-fold"
  128. style="font-size: 25px; text-align: center"
  129. ></i>
  130. </div>
  131. <p>快速出库</p>
  132. </li>
  133. </ul>
  134. <el-table
  135. ref="remind"
  136. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  137. :cell-style="cellStyle"
  138. :data="remindList"
  139. height="280"
  140. >
  141. <el-table-column :show-overflow-tooltip="true" label="协议到期 客户" prop="fCorpid">
  142. </el-table-column>
  143. <el-table-column :show-overflow-tooltip="true" label="开始日期" prop="fBegindate">
  144. </el-table-column>
  145. <el-table-column :show-overflow-tooltip="true" label="结束日期" prop="fEnddate">
  146. </el-table-column>
  147. <el-table-column :show-overflow-tooltip="true" label="类型" prop="fFeetypeid">
  148. <template slot-scope="scope">
  149. {{ scope.row.fFeetypeid == 0? '仓储费协议': '作业费协议' }}
  150. </template>
  151. </el-table-column>
  152. </el-table>
  153. </div>
  154. <div style="width: 30%">
  155. <div style="width: 100%">
  156. <div style="display: flex">
  157. <div id="box" style="width: 100%; height: 350px"></div>
  158. <el-select
  159. v-model="select"
  160. slot="prepend"
  161. size="mini"
  162. :select="query()"
  163. placeholder="点击切换仓库"
  164. style="position: absolute; width: 8%; right: 1%"
  165. >
  166. <div v-for="(item, index) in warehouse" :key="index">
  167. <el-option
  168. :label="item.fName"
  169. :value="item.fWarehouseid"
  170. ></el-option>
  171. </div>
  172. </el-select>
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. <div style="display: flex; margin-bottom: 40px">
  178. <div style="width: 70%">
  179. <div>
  180. <div
  181. style="
  182. display: flex;
  183. color: #515a6e;
  184. font-weight: 600;
  185. background-color: #f8f8f9;
  186. height: 42.6px;
  187. font-size: 13px;
  188. justify-content: space-between;
  189. border-bottom: 1px dashed #dfe6ec;
  190. "
  191. >
  192. <div class="home_stock_table">客户</div>
  193. <div class="home_stock_table">日期</div>
  194. <div class="home_stock_table">提单号</div>
  195. <div class="home_stock_table">业务类型</div>
  196. <div class="home_stock_table_right">
  197. <div>操作</div>
  198. <el-link type="primary" @click="jump('/morePage/stock')"
  199. >更多></el-link
  200. >
  201. </div>
  202. </div>
  203. <div v-if="tableData.length > 0">
  204. <div
  205. style="
  206. display: flex;
  207. height: 42.6px;
  208. border-bottom: 1px dashed #dfe6ec;
  209. "
  210. v-for="(item, index) in tableData"
  211. :key="index"
  212. v-if="index<5"
  213. >
  214. <div class="home_stock_table"> <p>{{ item.refno1 }}</p></div>
  215. <div class="home_stock_table">
  216. {{ item.sendTime ? item.sendTime.slice(0,10) : item.sendTime}}
  217. </div>
  218. <div class="home_stock_table" @click="approval(item)"><p style="text-align: center;">{{ item.refno3 }}</p></div>
  219. <div class="home_stock_table">
  220. <span v-if="item.refno2 === 'SJRK'">入库</span>
  221. <span v-else-if="item.actId === 1000">费用修改</span>
  222. <span v-else-if="item.refno2 === 'CDZZ'">场地直装</span>
  223. <span v-else-if="item.refno2 === 'SJCK'">出库</span>
  224. <span v-else-if="item.refno2 === 'HQZY'">货转</span>
  225. <span v-else-if="item.refno2 === 'CKDB'">调拨</span>
  226. <span v-else-if="item.refno2 === 'CCF'">仓储费</span>
  227. <span v-else-if="item.refno2 === 'HWTG'">货物通关</span>
  228. <span v-else-if="item.refno2 === 'ZYF'">作业费</span>
  229. <span v-else-if="item.refno2 === 'SF'">收费</span>
  230. <span v-else-if="item.refno2 === 'DZ'">对账</span>
  231. <span v-else-if="item.refno2 === 'FF'">付费</span>
  232. <span v-else-if="item.refno2 === 'JSCCF'">计算仓储费</span>
  233. <span v-else-if="item.refno2 === 'KHDZ'">凯和对账</span>
  234. <span v-else-if="item.refno2 === 'KHSF'">凯和收费</span>
  235. <span v-else-if="item.refno2 === 'KHFF'">凯和付费</span>
  236. <span v-else-if="item.refno2 === 'ApplyFP'">凯和开票申请</span>
  237. <span v-else-if="item.refno2 === 'KHDD'">凯和订单</span>
  238. <span v-else-if="item.refno2 === 'SE'">下单配船</span>
  239. <span v-else-if="item.refno2 === 'SJRKITEM'">入库明细审批</span>
  240. <span v-else-if="item.refno2 === 'SJCKITEM'">出库明细审批</span>
  241. <span v-else-if="item.refno2 === 'XGDD'">申请变更</span>
  242. <span v-else-if="item.refno2 === 'XGTJ'">提交变更</span>
  243. <span v-else-if="item.refno2 === 'DDSC'">申请删单</span>
  244. </div>
  245. <div class="home_stock_table" @click="approval(item)">
  246. 查看详情
  247. </div>
  248. </div>
  249. </div>
  250. <div
  251. v-else
  252. style="
  253. display: flex;
  254. justify-content: center;
  255. height: 213px;
  256. border-bottom: 1px solid #dfe6ec;
  257. "
  258. >
  259. <div style="align-self: center; color: #909399; font-size: 14px">
  260. 暂无数据
  261. </div>
  262. </div>
  263. </div>
  264. <!-- <el-table
  265. :data="tableData"
  266. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  267. :cell-style="cellStyle"
  268. >
  269. <el-table-column
  270. prop="refno1"
  271. :show-overflow-tooltip="true"
  272. label="委托方"
  273. ></el-table-column>
  274. <el-table-column
  275. prop="auditItem"
  276. :show-overflow-tooltip="true"
  277. label="日期"
  278. >
  279. <template slot-scope="scope">
  280. <span v-if="!scope.row.auditItem">无时间</span>
  281. <span v-else>{{ scope.row.auditItem.slice(0, 10) }}</span>
  282. </template>
  283. </el-table-column>
  284. <el-table-column
  285. prop="refno3"
  286. :show-overflow-tooltip="true"
  287. label="提单号"
  288. ></el-table-column>
  289. <el-table-column
  290. prop="refno2"
  291. :show-overflow-tooltip="true"
  292. label="业务类型"
  293. >
  294. <template slot-scope="scope">
  295. <span v-if="scope.row.refno2 === 'SJRK'">入库</span>
  296. <span v-else-if="scope.row.refno2 === 'SJCK'">出库</span>
  297. <span v-else-if="scope.row.refno2 === 'HQZY'">货转</span>
  298. <span v-else-if="scope.row.refno2 === 'CKDB'">调拨</span>
  299. <span v-else-if="scope.row.refno2 === 'CCF'">仓储费</span>
  300. <span v-else-if="scope.row.refno2 === 'HWTG'">货物通关</span>
  301. <span v-else-if="scope.row.refno2 === 'ZYF'">作业费</span>
  302. <span v-else-if="scope.row.refno2 === 'SF'">收费</span>
  303. <span v-else-if="scope.row.refno2 === 'DZ'">对账</span>
  304. <span v-else-if="scope.row.refno2 === 'FF'">付费</span>
  305. <span v-else-if="scope.row.refno2 === 'JSCCF'">计算仓储费</span>
  306. </template>
  307. </el-table-column>
  308. <el-table-column prop="address" label="操作" width="80">
  309. <template slot-scope="scope">
  310. <span style="cursor: pointer" @click="approval(scope.row)"
  311. >查看详情</span
  312. >
  313. </template>
  314. </el-table-column>
  315. </el-table> -->
  316. </div>
  317. <div style="width: 30%">
  318. <el-table
  319. :data="tableDataTwo"
  320. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  321. :cell-style="cellStyle"
  322. style="margin-left: 20px"
  323. >
  324. <el-table-column
  325. prop="noticeTitle"
  326. :show-overflow-tooltip="true"
  327. label="消息中心"
  328. />
  329. <el-table-column prop="address" label="操作" width="80">
  330. <template slot-scope="scope">
  331. <span
  332. @click="querytoDo(scope.row.noticeContent)"
  333. style="cursor: pointer"
  334. >查看详情</span
  335. >
  336. </template>
  337. </el-table-column>
  338. </el-table>
  339. </div>
  340. </div>
  341. <div style="display: flex">
  342. <div style="width: 70%">
  343. <div
  344. id="commoDity"
  345. style="width: 100%; height: 350px; margin-left: 40px"
  346. ></div>
  347. </div>
  348. <div style="width: 30%">
  349. <div id="cargoOwner" style="width: 100%; height: 350px"></div>
  350. </div>
  351. </div>
  352. </div>
  353. <el-dialog
  354. v-if="sysType == 1 || sysType == 3"
  355. title="消息提示"
  356. :visible.sync="dialogVisible"
  357. width="80%"
  358. :before-close="handleClose"
  359. :close-on-click-modal="false"
  360. >
  361. <span
  362. v-html="text"
  363. class="text"
  364. style="max-width: 100%; height: auto"
  365. ></span>
  366. <span slot="footer" class="dialog-footer">
  367. <el-button type="primary" @click="dialogVisible = false"
  368. >关 闭</el-button
  369. >
  370. </span>
  371. </el-dialog>
  372. <div class="home-fleet" v-if="sysType == 2">
  373. <div class="home-left">
  374. <chi-card title="业务看板" iconName="el-icon-s-cooperation">
  375. <div slot="content">
  376. <div class="content-top">
  377. <div class="content-top-left">
  378. <div
  379. style="display: flex; align-self: center; margin-left: 5px"
  380. >
  381. <div style="align-self: center">
  382. <svg
  383. t="1616396514864"
  384. class="icon"
  385. viewBox="0 0 1024 1024"
  386. version="1.1"
  387. xmlns="http://www.w3.org/2000/svg"
  388. p-id="9805"
  389. width="20"
  390. height="20"
  391. >
  392. <path
  393. 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"
  394. p-id="9806"
  395. fill="#000000"
  396. ></path>
  397. </svg>
  398. </div>
  399. <div
  400. style="
  401. align-self: center;
  402. font-size: 16px;
  403. margin: 2px 0 0 5px;
  404. "
  405. >
  406. 今日新增柜数
  407. </div>
  408. </div>
  409. <div
  410. style="
  411. font-size: 36px;
  412. align-self: center;
  413. font-weight: 600;
  414. color: #014da1;
  415. "
  416. >
  417. {{ upperLeftCntrs.planQuantity }}
  418. </div>
  419. </div>
  420. <div class="content-top-right">
  421. <div
  422. style="
  423. display: flex;
  424. align-self: center;
  425. min-width: 120px;
  426. margin-left: 5px;
  427. "
  428. >
  429. <div style="align-self: center">
  430. <svg
  431. t="1616400289333"
  432. class="icon"
  433. viewBox="0 0 1024 1024"
  434. version="1.1"
  435. xmlns="http://www.w3.org/2000/svg"
  436. p-id="22417"
  437. width="20"
  438. height="20"
  439. >
  440. <path
  441. 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"
  442. p-id="22418"
  443. ></path>
  444. </svg>
  445. </div>
  446. <div
  447. style="
  448. align-self: center;
  449. font-size: 16px;
  450. margin: 2px 0 0 5px;
  451. "
  452. >
  453. 未安排柜数
  454. </div>
  455. </div>
  456. <div
  457. style="
  458. font-size: 36px;
  459. align-self: center;
  460. font-weight: 600;
  461. color: #014da1;
  462. "
  463. >
  464. {{ upperLeftCntrs.surplusQuantity }}
  465. </div>
  466. </div>
  467. </div>
  468. <div class="content-bottom">
  469. <div style="display: flex; align-self: center; margin-left: 5px">
  470. <div style="align-self: center">
  471. <svg
  472. t="1616402886142"
  473. class="icon"
  474. viewBox="0 0 1024 1024"
  475. version="1.1"
  476. xmlns="http://www.w3.org/2000/svg"
  477. p-id="31596"
  478. width="24"
  479. height="24"
  480. >
  481. <path
  482. 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"
  483. p-id="31597"
  484. ></path>
  485. <path
  486. 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"
  487. p-id="31598"
  488. ></path>
  489. </svg>
  490. </div>
  491. <div
  492. style="
  493. align-self: center;
  494. font-size: 16px;
  495. margin: 2px 0 0 5px;
  496. width: 110px;
  497. "
  498. >
  499. 今日派车数
  500. </div>
  501. </div>
  502. <div
  503. style="
  504. font-size: 36px;
  505. align-self: center;
  506. font-weight: 600;
  507. color: #014da1;
  508. "
  509. >
  510. {{ fleetData.upperLeftCarQuantity }}
  511. </div>
  512. <div style="align-self: center; color: #409eff">派车详情></div>
  513. </div>
  514. <div class="content-bottom">
  515. <div
  516. style="
  517. display: flex;
  518. align-self: center;
  519. min-width: 120px;
  520. margin-left: 5px;
  521. "
  522. >
  523. <div style="align-self: center">
  524. <svg
  525. t="1616402771353"
  526. class="icon"
  527. viewBox="0 0 1048 1024"
  528. version="1.1"
  529. xmlns="http://www.w3.org/2000/svg"
  530. p-id="29149"
  531. width="20"
  532. height="20"
  533. >
  534. <path
  535. 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"
  536. p-id="29150"
  537. ></path>
  538. </svg>
  539. </div>
  540. <div
  541. style="
  542. align-self: center;
  543. font-size: 16px;
  544. margin: 2px 0 0 5px;
  545. width: 110px;
  546. "
  547. >
  548. 可用车辆数
  549. </div>
  550. </div>
  551. <div
  552. style="
  553. font-size: 36px;
  554. align-self: center;
  555. font-weight: 600;
  556. color: #014da1;
  557. "
  558. >
  559. {{ fleetData.upperLeftOldCarQuantity }}
  560. </div>
  561. <div style="align-self: center; color: #409eff">派车详情></div>
  562. </div>
  563. </div>
  564. </chi-card>
  565. <chi-card
  566. title="新闻公告"
  567. iconName="el-icon-s-cooperation"
  568. :More="true"
  569. @seeMore="jumpMoreNews"
  570. >
  571. <div slot="content" style="height: 260px;" class="jingrun-news">
  572. <div
  573. style="padding: 4px 15px; font-size: 14px"
  574. v-for="(item, index) in tableDataTwo"
  575. :key="index"
  576. :style="{
  577. backgroundColor: index % 2 == 0 ? '#fafbfd' : '#FFFFFF',
  578. }"
  579. @click="openNewsDetails(item.noticeId)"
  580. >
  581. <span style="cursor: pointer">{{ item.noticeTitle }}</span>
  582. </div>
  583. </div>
  584. </chi-card>
  585. </div>
  586. <el-dialog
  587. title="新闻公告"
  588. :visible.sync="newsVisible"
  589. width="700px"
  590. v-dialogDrag
  591. :close-on-click-modal="false">
  592. <h3>{{ newsDetails.noticeTitle }}</h3>
  593. <p class="html-box" v-html="newsDetails.noticeContent"></p>
  594. <span slot="footer">
  595. <el-button @click="newsVisible = false">关闭</el-button>
  596. </span>
  597. </el-dialog>
  598. <div class="home-right">
  599. <chi-card title="运行车辆" iconName="el-icon-s-order" :More="true">
  600. <div slot="content" class="upper-right">
  601. <div
  602. style="display: flex; padding: 4px 15px; font-size: 14px"
  603. v-for="(item, index) in upperRights"
  604. :key="index"
  605. :style="{
  606. backgroundColor: index % 2 == 0 ? '#fafbfd' : '#FFFFFF',
  607. }"
  608. >
  609. <div style="width: 30%" @click="goPage(item.id)">
  610. <el-link type="primary" :underline="false">{{
  611. item.mblno
  612. }}</el-link>
  613. </div>
  614. <div style="width: 20%">{{ item.carregNo }}</div>
  615. <div style="width: 15%; color: #67c23a">
  616. {{ item.orderStatus | statusType }}
  617. </div>
  618. <div
  619. style="
  620. width: 35%;
  621. overflow: hidden;
  622. text-overflow: ellipsis;
  623. white-space: nowrap;
  624. "
  625. >
  626. {{ item.corpName }}
  627. </div>
  628. </div>
  629. </div>
  630. </chi-card>
  631. <chi-card title="业务待办" iconName="el-icon-s-order" :More="true">
  632. <div slot="content" class="upper-right2">
  633. <div
  634. style="
  635. font-size: 14px;
  636. display: flex;
  637. margin: 4px 15px;
  638. border-bottom: 1px dashed #e6ebf5;
  639. "
  640. >
  641. <div style="width: 30%" class="single_line">FK221516485645</div>
  642. <div style="width: 20%" class="single_line">运费运费运费</div>
  643. <div style="width: 15%" class="single_line">李刚</div>
  644. <div style="width: 15%; color: #67c23a" class="single_line">
  645. 待审批
  646. </div>
  647. <div style="width: 20%" class="single_line">2020/10/10</div>
  648. </div>
  649. <div style="font-size: 14px; display: flex; margin: 4px 15px">
  650. <div style="width: 30%" class="single_line">FK221516485645</div>
  651. <div style="width: 20%" class="single_line">运费运费运费</div>
  652. <div style="width: 15%" class="single_line">李刚</div>
  653. <div style="width: 15%; color: #67c23a" class="single_line">
  654. 待审批
  655. </div>
  656. <div style="width: 20%" class="single_line">2020/10/10</div>
  657. </div>
  658. </div>
  659. </chi-card>
  660. <!-- <chi-card title="审核列表" iconName="el-icon-s-order" :More="true">-->
  661. <!-- <div slot="content" class="upper-right2">-->
  662. <!-- <div-->
  663. <!-- style="-->
  664. <!-- font-size: 14px;-->
  665. <!-- display: flex;-->
  666. <!-- margin: 4px 15px;-->
  667. <!-- border-bottom: 1px dashed #e6ebf5;-->
  668. <!-- "-->
  669. <!-- >-->
  670. <!-- <div style="width: 30%" class="single_line">FK221516485645</div>-->
  671. <!-- <div style="width: 20%" class="single_line">运费运费运费</div>-->
  672. <!-- <div style="width: 15%" class="single_line">李刚</div>-->
  673. <!-- <div style="width: 15%; color: #67c23a">待审批</div>-->
  674. <!-- <div style="width: 20%" class="single_line">2020/10/10</div>-->
  675. <!-- </div>-->
  676. <!-- <div style="font-size: 14px; display: flex; margin: 4px 15px">-->
  677. <!-- <div style="width: 30%" class="single_line">FK221516485645</div>-->
  678. <!-- <div style="width: 20%" class="single_line">运费运费运费</div>-->
  679. <!-- <div style="width: 15%" class="single_line">李刚</div>-->
  680. <!-- <div style="width: 15%; color: #67c23a" class="single_line">-->
  681. <!-- 待审批-->
  682. <!-- </div>-->
  683. <!-- <div style="width: 20%" class="single_line">2020/10/10</div>-->
  684. <!-- </div>-->
  685. <!-- </div>-->
  686. <!-- </chi-card>-->
  687. </div>
  688. </div>
  689. <div v-if="sysType == 3">
  690. <div style="width: 100%;">
  691. <div id="distribution" style="width: 100%;height: 300px;"></div>
  692. </div>
  693. <div style="width: 100%;margin: 20px auto;float: left">
  694. <el-table :data="bookingData">
  695. <el-table-column prop="fName" align="center" label="船名"/>
  696. <el-table-column prop="fNo" align="center" label="航次"/>
  697. <el-table-column prop="portofloadName" align="center" label="起运港"/>
  698. <el-table-column prop="distinationName" align="center" label="目的港"/>
  699. <el-table-column prop="fWeight" align="center" label="容量TEU"/>
  700. <el-table-column prop="boxNumber" align="center" label="实装TEU"/>
  701. <el-table-column prop="fETD" align="center" label="预计开船">
  702. <template slot-scope="scope">
  703. <span>{{ scope.row.fETD?scope.row.fETD.slice(0, 10):'' }}</span>
  704. </template>
  705. </el-table-column>
  706. <el-table-column prop="fETA" align="center" label="预计到港">
  707. <template slot-scope="scope">
  708. <span>{{ scope.row.fETA?scope.row.fETA.slice(0, 10):'' }}</span>
  709. </template>
  710. </el-table-column>
  711. <el-table-column prop="fATD" align="center" label="实际开船">
  712. <template slot-scope="scope">
  713. <span>{{ scope.row.fATD?scope.row.fATD.slice(0, 10):'' }}</span>
  714. </template>
  715. </el-table-column>
  716. <el-table-column prop="fATA" align="center" label="实际到港">
  717. <template slot-scope="scope">
  718. <span>{{ scope.row.fATA?scope.row.fATA.slice(0, 10):'' }}</span>
  719. </template>
  720. </el-table-column>
  721. <el-table-column prop="fDays" align="center" label="航程"/>
  722. </el-table>
  723. </div>
  724. <div style="width: 100%;">
  725. <div style="width: 49%;float: left">
  726. <div
  727. style="
  728. display: flex;
  729. color: #515a6e;
  730. font-weight: 600;
  731. background-color: #f8f8f9;
  732. height: 42.6px;
  733. font-size: 13px;
  734. justify-content: space-between;
  735. border-bottom: 1px dashed #dfe6ec;
  736. "
  737. >
  738. <div class="home_stock_table">委托方</div>
  739. <div class="home_stock_table">日期</div>
  740. <div class="home_stock_table">提单号</div>
  741. <div class="home_stock_table">业务类型</div>
  742. <div class="home_stock_table_right">
  743. <div>操作</div>
  744. <el-link type="primary" @click="jump('/morePage/stock')"
  745. >更多></el-link
  746. >
  747. </div>
  748. </div>
  749. <div v-if="tableData.length > 0">
  750. <div
  751. style="display: flex;height: 42.6px;border-bottom: 1px dashed #dfe6ec;"
  752. v-for="(item, index) in tableData"
  753. :key="index"
  754. v-if="index < 5"
  755. >
  756. <div class="home_stock_table"> <p>{{ item.refno1 }}</p></div>
  757. <div class="home_stock_table">
  758. {{ item.sendTime ? item.sendTime.slice(0, 10):'' }}
  759. </div>
  760. <div class="home_stock_table" @click="approval(item)"><p>{{ item.refno3}}</p></div>
  761. <div class="home_stock_table">
  762. <span v-if="item.refno2 === 'SJRK'">入库</span>
  763. <span v-else-if="item.refno2 === 'SJCK'">出库</span>
  764. <span v-else-if="item.refno2 === 'HQZY'">货转</span>
  765. <span v-else-if="item.refno2 === 'CKDB'">调拨</span>
  766. <span v-else-if="item.refno2 === 'CCF'">仓储费</span>
  767. <span v-else-if="item.refno2 === 'HWTG'">货物通关</span>
  768. <span v-else-if="item.refno2 === 'ZYF'">作业费</span>
  769. <span v-else-if="item.refno2 === 'SF'">收费</span>
  770. <span v-else-if="item.refno2 === 'DZ'">对账</span>
  771. <span v-else-if="item.refno2 === 'FF'">付费</span>
  772. <span v-else-if="item.refno2 === 'JSCCF'">计算仓储费</span>
  773. <span v-else-if="item.refno2 === 'KHDZ'">凯和对账</span>
  774. <span v-else-if="item.refno2 === 'KHSF'">凯和收费</span>
  775. <span v-else-if="item.refno2 === 'KHFF'">凯和付费</span>
  776. <span v-else-if="item.refno2 === 'ApplyFP'">凯和开票申请</span>
  777. <span v-else-if="item.refno2 === 'KHDD'">凯和订单</span>
  778. <span v-else-if="item.refno2 === 'SE'">下单配船</span>
  779. <span v-else-if="item.refno2 === 'SJRKITEM'">入库明细审批</span>
  780. <span v-else-if="item.refno2 === 'SJCKITEM'">出库明细审批</span>
  781. <span v-else-if="item.refno2 === 'XGDD'">申请变更</span>
  782. <span v-else-if="item.refno2 === 'XGTJ'">提交变更</span>
  783. <span v-else-if="item.refno2 === 'DDSC'">申请删单</span>
  784. <span v-else-if="item.refno2 === 'FYBG'">费用变更</span>
  785. </div>
  786. <div class="home_stock_table" @click="approval(item)">
  787. 立即审批
  788. </div>
  789. </div>
  790. </div>
  791. <div
  792. v-else
  793. style="
  794. display: flex;
  795. justify-content: center;
  796. height: 213px;
  797. border-bottom: 1px solid #dfe6ec;
  798. "
  799. >
  800. <div style="align-self: center; color: #909399; font-size: 14px">
  801. 暂无数据
  802. </div>
  803. </div>
  804. </div>
  805. <div style="width: 49%;float: right">
  806. <el-table
  807. :data="tableDataTwo"
  808. :header-cell-style="{ borderBottom: '1px dashed #dfe6ec' }"
  809. :cell-style="cellStyle"
  810. style="margin-left: 20px"
  811. >
  812. <el-table-column
  813. prop="noticeTitle"
  814. :show-overflow-tooltip="true"
  815. label="消息中心"
  816. />
  817. <el-table-column prop="address" label="操作" width="80">
  818. <template slot-scope="scope">
  819. <span
  820. @click="querytoDo(scope.row.noticeContent)"
  821. style="cursor: pointer"
  822. >查看详情</span
  823. >
  824. </template>
  825. </el-table-column>
  826. </el-table>
  827. </div>
  828. </div>
  829. <div style="width: 100%;margin: 10px auto;float: left">
  830. <div id="bookingRanking" style="width: 100%;height: 300px;"></div>
  831. </div>
  832. <div style="width: 100%;margin: 10px auto;float: left">
  833. <div id="bookingRankingTwo" style="width: 100%;height: 300px;"></div>
  834. </div>
  835. <!-- 船名航次-->
  836. <div style="width: 100%;margin: 10px auto;float: left">
  837. <div id="voyage" style="width: 100%;height: 350px;"></div>
  838. </div>
  839. </div>
  840. <div style="width: 100%;float: left;" v-if="wealthChart">
  841. <div id="finance" style="width: 100%;height: 600px;"></div>
  842. </div>
  843. <div style="width: 100%;float: left;" v-if="wealthChart">
  844. <div id="arrears" style="width: 100%;height: 600px;"></div>
  845. </div>
  846. <!--快捷入库-->
  847. <fast-in-stock
  848. ref="fastInStock"
  849. v-if="fastInStockVisble"
  850. @closeDialog="closeInStock"
  851. ></fast-in-stock>
  852. <!--快速出库-->
  853. <fast-out-stock
  854. ref="fastOutStock"
  855. v-if="fastOutStockVisble"
  856. @closeDialog="closeOutStock"
  857. ></fast-out-stock>
  858. </div>
  859. </template>
  860. <script>
  861. import { queryHomeInfo } from "@/api/fleet/home";
  862. import chiCard from "./chiCard.vue";
  863. import {
  864. listCorps,
  865. information,
  866. warehouse,
  867. inquiry,
  868. boxDistribution,
  869. shipDynamics,
  870. bookingSpace,
  871. locationRanking,
  872. getProfitData,
  873. remindExpirationData,
  874. getFeeStatistics, getArrearsStatistics
  875. } from "../../src/api/index";
  876. import Cookies from "js-cookie";
  877. import fastInStock from '../../src/components/fastStorage/fastInStock/index'
  878. import fastOutStock from '../../src/components/fastStorage/fastOutStock/index'
  879. import {getToken} from "@/utils/auth";
  880. import {currentLogin} from "@/api/warehouseCheck";
  881. import { getUserProfile } from "@/api/system/user";
  882. export default {
  883. name: "index",
  884. data() {
  885. return {
  886. fastInStockVisble: false,
  887. fastOutStockVisble: false,
  888. wealthChart:false,
  889. bookingData:[],
  890. editModel: {},
  891. // 版本号
  892. version: "3.2.1",
  893. select: "",
  894. text: "",
  895. dialogVisible: false,
  896. tableData: [],
  897. dataList:{
  898. addressName:[],
  899. boxNumber:[],
  900. bookingRanking:{
  901. text:[],
  902. textTwo:[],
  903. data:[],
  904. dataTwo:[]
  905. },
  906. },
  907. boxCMCC:[],
  908. // 利润统计数据获得
  909. profitData: {
  910. xData: [],
  911. seriesData: [],
  912. },
  913. chart: [],
  914. warehouse: [],
  915. master: [],
  916. commodity: [],
  917. commoditytwo: [],
  918. name: [],
  919. tableDataTwo: [],
  920. fleetData: "",
  921. upperLeftCntrs: {},
  922. sysType: "",
  923. upperRights: [],
  924. // 新闻公告详情弹窗
  925. newsVisible: false,
  926. // 新闻公告内容
  927. newsDetails: {
  928. noticeTitle: '',
  929. noticeContent: ''
  930. },
  931. remindList: [],
  932. showDataCenter: "0",
  933. };
  934. },
  935. filters: {
  936. statusType(val) {
  937. switch (val) {
  938. case 10:
  939. return "车队安排";
  940. break;
  941. case 20:
  942. return "司机受理";
  943. break;
  944. case 30:
  945. return "司机出车";
  946. break;
  947. case 40:
  948. return "提箱";
  949. break;
  950. case 50:
  951. return "装卸货";
  952. break;
  953. case 60:
  954. return "还卸柜";
  955. break;
  956. case 70:
  957. return "费用确认";
  958. break;
  959. default:
  960. return "回单";
  961. }
  962. },
  963. },
  964. components: {
  965. chiCard,
  966. fastInStock,
  967. fastOutStock,
  968. },
  969. created() {
  970. this.getConfigKey("data_print_title").then((response) => {
  971. Cookies.set("companyName", response.msg);
  972. });
  973. this.getConfigKey("show.data_center").then((response) => {
  974. this.showDataCenter = response.msg;
  975. });
  976. this.sysType = Cookies.get("sysType");
  977. if (this.sysType == 2) {
  978. queryHomeInfo().then((response) => {
  979. this.fleetData = response.data;
  980. if (response.data.upperRight.length > 0) {
  981. this.upperRights = response.data.upperRight.slice(0, 10);
  982. }
  983. this.upperLeftCntrs = response.data.upperLeftCntrs;
  984. });
  985. }
  986. // console.log(this.sysType);
  987. },
  988. activated() {
  989. this.getList();
  990. this.warehouses();
  991. this.inquiry();
  992. if (this.sysType == 1) {
  993. remindExpirationData().then(res => {
  994. this.remindList = res.rows
  995. })
  996. }
  997. this.dataList.addressName = []
  998. this.dataList.boxNumber = []
  999. this.dataList.bookingRanking.text = []
  1000. this.dataList.bookingRanking.textTwo = []
  1001. this.dataList.bookingRanking.data = []
  1002. this.dataList.bookingRanking.dataTwo = []
  1003. if (Number(this.sysType) === 3){
  1004. let arr=[]
  1005. boxDistribution().then(res =>{
  1006. res.data.forEach(item =>{
  1007. this.dataList.addressName.push(item.addressName)
  1008. this.dataList.boxNumber.push(item.boxNumber)
  1009. if(item.details){
  1010. this.boxCMCC=item.details
  1011. }
  1012. })
  1013. this.boxDistribution()
  1014. })
  1015. let l = 0
  1016. bookingSpace().then(res=>{
  1017. res.data.forEach(item =>{
  1018. this.dataList.bookingRanking.text.push(item.corpName)
  1019. this.dataList.bookingRanking.data.push({
  1020. name: item.corpName,
  1021. type: 'line',
  1022. stack: l,
  1023. 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]
  1024. })
  1025. })
  1026. l++
  1027. this.ranking()
  1028. })
  1029. locationRanking().then(res=>{
  1030. let i = 0
  1031. res.data.forEach(item =>{
  1032. this.dataList.bookingRanking.textTwo.push(item.corpName)
  1033. this.dataList.bookingRanking.dataTwo.push({
  1034. name: item.corpName,
  1035. type: 'line',
  1036. stack: i,
  1037. 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]
  1038. })
  1039. i++
  1040. })
  1041. this.rankingTwo()
  1042. })
  1043. shipDynamics().then(res=>{
  1044. console.log(res)
  1045. this.bookingData = res.data
  1046. })
  1047. this.profitData.xData = []
  1048. this.profitData.seriesData = []
  1049. getProfitData({pageSize: 24, pageNum: 1}).then(res => {
  1050. res.rows.forEach(item => {
  1051. if (!item.shipsName) {
  1052. item.shipsName = ''
  1053. }
  1054. if (!item.voyage) {
  1055. item.voyage = ''
  1056. }
  1057. let name = item.shipsName + '-' + item.voyage
  1058. this.profitData.xData.push(name)
  1059. this.profitData.seriesData.push((Number(item.profit) / 10000).toFixed(2))
  1060. // this.profitData.seriesData.push(item.profit)
  1061. })
  1062. this.oceanVessel()
  1063. })
  1064. }
  1065. getUserProfile().then(res=>{
  1066. for (let item in res.data.roles){
  1067. if (res.data.roles[item].roleKey == "wealthStatistics" || res.data.roles[item].roleKey =="admin"){
  1068. getFeeStatistics().then(res=>{
  1069. this.financeLine(res.data)
  1070. })
  1071. getArrearsStatistics().then(res=>{
  1072. this.customerArrears(res.data)
  1073. })
  1074. this.wealthChart = true
  1075. }
  1076. }
  1077. })
  1078. },
  1079. methods: {
  1080. // 船名航次
  1081. oceanVessel() {
  1082. let myChart = this.$echarts.init(document.getElementById("voyage"));
  1083. const color = ['#EE6666', '#7DD2F3']
  1084. myChart.setOption({
  1085. title: {
  1086. text: '利润统计(前二十四)',
  1087. left: 'center'
  1088. },
  1089. tooltip: {
  1090. trigger: 'axis'
  1091. },
  1092. legend: {
  1093. orient: 'vertical',
  1094. left: 'right',
  1095. data: []
  1096. },
  1097. grid: {
  1098. // left: '10%',
  1099. bottom:'30%'
  1100. },
  1101. xAxis: {
  1102. axisLabel: {
  1103. rotate: 40
  1104. },
  1105. type: 'category',
  1106. boundaryGap: false,
  1107. data: this.profitData.xData,
  1108. // data: ['凯和志诚-02W1', '凯和志诚-02W2', '凯和志诚-03W3', '凯和志诚2111', '凯和志诚2110', '凯和志诚2110-4', '凯和志诚2114', '凯和志诚2116', '凯和志诚2118', '凯和志诚2118A', '凯和志诚2119N', '凯和志诚2120', '凯和志诚2122', '凯和志诚2123', '凯和志诚2124', '凯和志诚2125', '凯和志诚2127', '凯和志诚2126', '凯和志诚2128', '凯和志诚ABC', '凯和志诚2129', '凯和志诚K8101', '凯和志诚K8102', '凯和志诚K8102E',]
  1109. },
  1110. yAxis: {
  1111. type: 'value',
  1112. name: '万元'
  1113. },
  1114. series: [
  1115. {
  1116. type: 'line',
  1117. smooth: false,
  1118. data: this.profitData.seriesData,
  1119. // data:[1000,2112,333,4444,6323,11,234]
  1120. }
  1121. ]
  1122. })
  1123. },
  1124. //箱分布图表
  1125. ranking() {
  1126. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1127. let myChart = this.$echarts.init(document.getElementById("bookingRanking"));
  1128. // 绘制图表
  1129. myChart.setOption({
  1130. title: {
  1131. text: '订舱排名(前十)',
  1132. left: 'center'
  1133. },
  1134. tooltip: {
  1135. trigger: 'axis'
  1136. },
  1137. legend: {
  1138. orient: 'vertical',
  1139. left: 'right',
  1140. data: this.dataList.bookingRanking.text
  1141. },
  1142. grid: {
  1143. left: '3%',
  1144. right: '20%',
  1145. bottom: '3%',
  1146. containLabel: true
  1147. },
  1148. xAxis: {
  1149. type: 'category',
  1150. boundaryGap: false,
  1151. data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
  1152. },
  1153. yAxis: {
  1154. type: 'value'
  1155. },
  1156. series: this.dataList.bookingRanking.data
  1157. });
  1158. },
  1159. //箱分布图表
  1160. rankingTwo() {
  1161. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1162. let myChart = this.$echarts.init(document.getElementById("bookingRankingTwo"));
  1163. // 绘制图表
  1164. myChart.setOption({
  1165. title: {
  1166. text: '应收款排名(前十)',
  1167. left: 'center'
  1168. },
  1169. tooltip: {
  1170. trigger: 'axis'
  1171. },
  1172. legend: {
  1173. orient: 'vertical',
  1174. left: 'right',
  1175. data: this.dataList.bookingRanking.textTwo
  1176. },
  1177. grid: {
  1178. left: '3%',
  1179. right: '20%',
  1180. bottom: '3%',
  1181. containLabel: true
  1182. },
  1183. xAxis: {
  1184. type: 'category',
  1185. boundaryGap: false,
  1186. data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
  1187. },
  1188. yAxis: {
  1189. type: 'value'
  1190. },
  1191. series: this.dataList.bookingRanking.dataTwo
  1192. });
  1193. },
  1194. //箱分布图表
  1195. boxDistribution() {
  1196. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1197. let myChart = this.$echarts.init(document.getElementById("distribution"));
  1198. // 绘制图表
  1199. let _this=this
  1200. myChart.setOption({
  1201. title: {
  1202. text: "箱分布",
  1203. left: "center",
  1204. },
  1205. xAxis: {
  1206. type: 'category',
  1207. data: this.dataList.addressName
  1208. },
  1209. tooltip: {
  1210. trigger: 'axis',
  1211. formatter(params){
  1212. let res=''
  1213. params.forEach(item=>{
  1214. if(item.name=='在船'){
  1215. params.forEach(item=>{
  1216. let data=''
  1217. if(_this.boxCMCC.length>0){
  1218. _this.boxCMCC.forEach(e=>{
  1219. data+=e.f_vsl+':'+e.f_voy+'</br>'
  1220. })
  1221. }else{
  1222. data='-'+'</br>'
  1223. }
  1224. res=item.axisValueLabel+'</br>'+data+item.marker+item.data
  1225. })
  1226. }else{
  1227. params.forEach(item=>{
  1228. res=item.axisValueLabel+'</br>'+item.marker+item.data
  1229. })
  1230. }
  1231. })
  1232. return res
  1233. }
  1234. },
  1235. yAxis: {
  1236. type: 'value'
  1237. },
  1238. toolbox: {
  1239. feature: {
  1240. saveAsImage: {}
  1241. }
  1242. },
  1243. series: [{
  1244. data: this.dataList.boxNumber,
  1245. type: 'line'
  1246. }]
  1247. });
  1248. },
  1249. goPage(id) {
  1250. this.$router.push({
  1251. path: "/track/cabinet",
  1252. query: { id: id },
  1253. });
  1254. },
  1255. //跳转审批页面
  1256. approval(row) {
  1257. console.log(row)
  1258. switch (row.refno2) {
  1259. case "CDZZ": {
  1260. this.$router.push({
  1261. path: "/business/inAndOutStock",
  1262. query: { id: row.billId }
  1263. })
  1264. break;
  1265. }
  1266. case "FYBG": {
  1267. if (this.sysType == 1) {
  1268. this.$router.push({
  1269. path: "/business/costModify",
  1270. query: { id: row.billId }
  1271. })
  1272. } else if (this.sysType == 3) {
  1273. this.$router.push({
  1274. path: "/domesticTrade/costModify",
  1275. query: { id: row.billId }
  1276. })
  1277. }
  1278. break;
  1279. }
  1280. case "SJRK": {
  1281. this.$router.push({
  1282. path: "/business/inStock",
  1283. query: { id: row.billId},
  1284. });
  1285. break;
  1286. }
  1287. case "SJCK": {
  1288. this.$router.push({
  1289. path: "/business/outStock",
  1290. query: { id: row.billId},
  1291. });
  1292. break;
  1293. }
  1294. case "HQZY": {
  1295. this.$router.push({
  1296. path: "/business/goodsTransfer",
  1297. query: { id: row.billId},
  1298. });
  1299. break;
  1300. }
  1301. case "CKDB": {
  1302. this.$router.push({
  1303. path: "/business/stockTransfer",
  1304. query: { id: row.billId},
  1305. });
  1306. break;
  1307. }
  1308. case "HWTG": {
  1309. this.$router.push({
  1310. path: "/business/cargoClearance",
  1311. query: { id: row.billId},
  1312. });
  1313. break;
  1314. }
  1315. case "JSCCF": {
  1316. this.$router.push({
  1317. path: "/business/agreement",
  1318. query: { data: JSON.stringify(row) },
  1319. });
  1320. break;
  1321. }
  1322. case "CCF": {
  1323. this.$router.push({
  1324. path: "/agreement/agreementStorage",
  1325. query: { data: JSON.stringify(row) },
  1326. });
  1327. break;
  1328. }
  1329. case "ZYF": {
  1330. this.$router.push({
  1331. path: "/agreement/agreementTask",
  1332. query: { data: JSON.stringify(row) },
  1333. });
  1334. break;
  1335. }
  1336. case "SF": {
  1337. this.$router.push({
  1338. path: "/finance/charge",
  1339. query: { data: JSON.stringify(row) },
  1340. });
  1341. break;
  1342. }
  1343. case "DZ": {
  1344. this.$router.push({
  1345. path: "/finance/contrast",
  1346. query: { data: JSON.stringify(row) },
  1347. });
  1348. break;
  1349. }
  1350. case "FF": {
  1351. this.$router.push({
  1352. path: "/finance/payment",
  1353. query: { data: JSON.stringify(row) },
  1354. });
  1355. break;
  1356. }
  1357. case "ApplyFP": {
  1358. this.$router.push({
  1359. path: "/finance/chargeInvoice",
  1360. query: { data: JSON.stringify(row) },
  1361. });
  1362. break;
  1363. }
  1364. case "KHDZ": {
  1365. this.$router.push({
  1366. path: "/finance/contrast",
  1367. query: { data: JSON.stringify(row) },
  1368. });
  1369. break;
  1370. }
  1371. case "KHSF": {
  1372. this.$router.push({
  1373. path: "/finance/charge",
  1374. query: { data: JSON.stringify(row) },
  1375. });
  1376. break;
  1377. }
  1378. case "KHFF": {
  1379. this.$router.push({
  1380. path: "/finance/payment",
  1381. query: { data: JSON.stringify(row) },
  1382. });
  1383. break;
  1384. }
  1385. case "KHDD": {
  1386. this.$router.push({
  1387. path: "/domesticTrade/orderInformation",
  1388. query: { list: JSON.stringify(row) },
  1389. });
  1390. break;
  1391. }
  1392. case "SJRKITEM": {
  1393. this.$router.push({
  1394. path: "/business/inStock",
  1395. query: { id: row.billId},
  1396. });
  1397. break;
  1398. }
  1399. case "SJCKITEM": {
  1400. this.$router.push({
  1401. path: "/business/outStock",
  1402. query: { id: row.billId},
  1403. });
  1404. break;
  1405. }
  1406. case "XGDD": {
  1407. this.$router.push({
  1408. path: "/domesticTrade/orderInformation",
  1409. query: {testing:JSON.stringify(row)},
  1410. });
  1411. break;
  1412. }
  1413. case "XGTJ": {
  1414. this.$router.push({
  1415. path: "/domesticTrade/orderInformation",
  1416. query: {testing:JSON.stringify(row)},
  1417. });
  1418. break;
  1419. }
  1420. case "DDSC": {
  1421. this.$router.push({
  1422. path: "/domesticTrade/orderInformation",
  1423. query: {testing:JSON.stringify(row)},
  1424. });
  1425. break;
  1426. }
  1427. default: {
  1428. return this.$message.error("未知错误,无状态");
  1429. }
  1430. }
  1431. },
  1432. inquiry() {
  1433. let data = {
  1434. actId: "",
  1435. auditStatus: 'S'
  1436. };
  1437. inquiry(data).then((res) => {
  1438. res.data.map(e=>{
  1439. if(e.auditItem){
  1440. e.auditItem=e.auditItem.slice(0, 10)
  1441. }
  1442. })
  1443. this.tableData = res.data;
  1444. });
  1445. },
  1446. querytoDo(res) {
  1447. this.dialogVisible = true;
  1448. this.text = res;
  1449. },
  1450. handleClose(done) {
  1451. this.dialogVisible = false;
  1452. },
  1453. firstinventory(fId) {
  1454. // console.log(this.warehouse);
  1455. information(fId).then((response) => {
  1456. this.chart = response.data;
  1457. if (this.chart.whouseList.length !== 0) {
  1458. for (let index of this.chart.corpsListWhouse) {
  1459. this.master.push({
  1460. name: index.fName,
  1461. value: index.fGrossweightD,
  1462. });
  1463. this.name.push(index.fName);
  1464. }
  1465. for (let index of this.chart.goodslistWhouse) {
  1466. this.commodity.push(index.fName);
  1467. this.commoditytwo.push(index.fGrossweightD);
  1468. }
  1469. this.drawLine();
  1470. this.drawLinetwo();
  1471. this.commoDity();
  1472. } else {
  1473. this.chart = {
  1474. corpsListWhouse: [
  1475. {
  1476. balance: 0,
  1477. fCorpid: 58,
  1478. fGrossweightD: 0,
  1479. fName: "展示数据",
  1480. fTotalgross: 10000,
  1481. fWarehouseName: "展示数据",
  1482. },
  1483. ],
  1484. goodslistWhouse: [
  1485. {
  1486. balance: 0,
  1487. fGoodsid: 13,
  1488. fGrossweightD: 0,
  1489. fName: "展示商品",
  1490. fTotalgross: 10000,
  1491. fWarehouseName: "展示数据",
  1492. },
  1493. ],
  1494. whouseList: [
  1495. {
  1496. fGrossweightD: 0,
  1497. fName: "展示数据",
  1498. fTotalgross: 10000,
  1499. fWarehouseid: 36,
  1500. },
  1501. ],
  1502. };
  1503. for (let index of this.chart.corpsListWhouse) {
  1504. this.master.push({
  1505. name: index.fName,
  1506. value: index.fGrossweightD,
  1507. });
  1508. this.name.push(index.fName);
  1509. }
  1510. for (let index of this.chart.goodslistWhouse) {
  1511. this.commodity.push(index.fName);
  1512. this.commoditytwo.push(index.fGrossweightD);
  1513. }
  1514. this.drawLine();
  1515. this.drawLinetwo();
  1516. this.commoDity();
  1517. }
  1518. });
  1519. },
  1520. query() {
  1521. this.master = [];
  1522. this.commodity = [];
  1523. this.commoditytwo = [];
  1524. this.name = [];
  1525. if (this.select === "") {
  1526. return this.select;
  1527. } else {
  1528. information(this.select).then((response) => {
  1529. this.chart = response.data;
  1530. for (let index of this.chart.corpsListWhouse) {
  1531. this.master.push({
  1532. name: index.fName,
  1533. value: index.fGrossweightD,
  1534. });
  1535. this.name.push(index.fName);
  1536. }
  1537. for (let index of this.chart.goodslistWhouse) {
  1538. this.commodity.push(index.fName);
  1539. this.commoditytwo.push(index.fGrossweightD);
  1540. }
  1541. this.drawLine();
  1542. this.drawLinetwo();
  1543. this.commoDity();
  1544. });
  1545. }
  1546. },
  1547. jump(res) {
  1548. this.$router.push({ path: res });
  1549. },
  1550. //设置单元格边框
  1551. cellStyle({ row, column, rowIndex, columnIndex }) {
  1552. return "border-bottom: 1px dashed rgb(223, 230, 236)";
  1553. },
  1554. //查询消息中心
  1555. getList() {
  1556. this.loading = true;
  1557. listCorps(this.queryParams).then((response) => {
  1558. if (response.rows.length > 0) {
  1559. // this.tableDataTwo = response.rows.slice(0, 10);
  1560. this.tableDataTwo = response.rows
  1561. }
  1562. });
  1563. },
  1564. //查询仓库
  1565. warehouses() {
  1566. warehouse().then((response) => {
  1567. this.warehouse = [];
  1568. for (let index of response.rows) {
  1569. this.warehouse.push({
  1570. fName: index.fName,
  1571. fWarehouseid: index.fWarehouseid,
  1572. });
  1573. }
  1574. // console.log(this.warehouse);
  1575. this.firstinventory(this.warehouse[0].fWarehouseid);
  1576. });
  1577. },
  1578. goTarget(href) {
  1579. window.open(href, "_blank");
  1580. },
  1581. //财务图表
  1582. financeLine(data) {
  1583. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1584. let myChart = this.$echarts.init(document.getElementById("finance"));
  1585. // 绘制图表
  1586. myChart.setOption({
  1587. legend: {
  1588. left: '10%',
  1589. top: '4%'
  1590. },
  1591. title: {
  1592. text: "利润分析",
  1593. left: "center",
  1594. subtext: "实时数据"
  1595. },
  1596. tooltip: {},
  1597. color: ["#5470c6","#92cc75","#fac858"],
  1598. dataset: data,
  1599. xAxis: { type: 'category' },
  1600. yAxis: [
  1601. {
  1602. type: 'value',
  1603. scale: true,
  1604. axisLabel: {
  1605. formatter: '{value} 万元'
  1606. }
  1607. }
  1608. ],
  1609. grid: {
  1610. left: "3%",
  1611. right: "4%",
  1612. bottom: "3%",
  1613. containLabel: true,
  1614. },
  1615. // Declare several bar series, each will be mapped
  1616. // to a column of dataset.source by default.
  1617. series: [{ type: 'bar',
  1618. label: {
  1619. show: true,
  1620. position: 'top',
  1621. valueAnimation: true
  1622. }}, { type: 'bar',
  1623. label: {
  1624. show: true,
  1625. position: 'top',
  1626. valueAnimation: true
  1627. }}, { type: 'bar',
  1628. label: {
  1629. show: true,
  1630. position: 'top',
  1631. valueAnimation: true
  1632. }}]
  1633. });
  1634. },
  1635. customerArrears(data){
  1636. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1637. let myChart = this.$echarts.init(document.getElementById("arrears"));
  1638. // 绘制图表
  1639. myChart.setOption({
  1640. tooltip: {
  1641. trigger: 'axis',
  1642. axisPointer: {
  1643. type: 'shadow'
  1644. }
  1645. },
  1646. title: {
  1647. text: "欠款排行",
  1648. left: "center",
  1649. subtext: "实时数据"
  1650. },
  1651. color: ["#3298db"],
  1652. grid: {
  1653. left: '3%',
  1654. right: '4%',
  1655. bottom: '3%',
  1656. containLabel: true
  1657. },
  1658. xAxis: [
  1659. {
  1660. type: 'category',
  1661. data: data.key,
  1662. axisTick: {
  1663. alignWithLabel: true
  1664. }
  1665. }
  1666. ],
  1667. yAxis: [
  1668. {
  1669. type: 'value',
  1670. scale: true,
  1671. axisLabel: {
  1672. formatter: '{value} 万元'
  1673. }
  1674. }
  1675. ],
  1676. series: [
  1677. {
  1678. name: '欠款',
  1679. type: 'bar',
  1680. barWidth: '60%',
  1681. data: data.value,
  1682. label: {
  1683. show: true,
  1684. position: 'top',
  1685. valueAnimation: true
  1686. }
  1687. }
  1688. ]
  1689. })
  1690. },
  1691. //仓库图表
  1692. drawLine() {
  1693. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1694. let myChart = this.$echarts.init(document.getElementById("box"));
  1695. // 绘制图表
  1696. myChart.setOption({
  1697. title: {
  1698. text: this.chart.whouseList[0].fName + "统计",
  1699. subtext: "实时数据",
  1700. left: "center",
  1701. },
  1702. tooltip: {
  1703. trigger: "item",
  1704. formatter: "{a} <br/>{b} : {c} ({d}%)",
  1705. },
  1706. legend: {
  1707. bottom: 10,
  1708. left: "center",
  1709. data: ["空闲库容", "占用库容"],
  1710. },
  1711. series: [
  1712. {
  1713. type: "pie",
  1714. name: "实时数据",
  1715. radius: "65%",
  1716. center: ["50%", "50%"],
  1717. selectedMode: "single",
  1718. data: [
  1719. {
  1720. label: {
  1721. backgroundColor: "#eee",
  1722. borderColor: "#777",
  1723. borderWidth: 1,
  1724. borderRadius: 4,
  1725. rich: {
  1726. title: {
  1727. color: "#eee",
  1728. align: "center",
  1729. },
  1730. abg: {
  1731. backgroundColor: "#333",
  1732. width: "100%",
  1733. align: "right",
  1734. height: 25,
  1735. borderRadius: [4, 4, 0, 0],
  1736. },
  1737. Sunny: {
  1738. height: 30,
  1739. align: "left",
  1740. },
  1741. Cloudy: {
  1742. height: 30,
  1743. align: "left",
  1744. },
  1745. Showers: {
  1746. height: 30,
  1747. align: "left",
  1748. },
  1749. weatherHead: {
  1750. color: "#333",
  1751. height: 24,
  1752. align: "left",
  1753. },
  1754. hr: {
  1755. borderColor: "#777",
  1756. width: "100%",
  1757. borderWidth: 0.5,
  1758. height: 0,
  1759. },
  1760. value: {
  1761. width: 20,
  1762. padding: [0, 20, 0, 30],
  1763. align: "left",
  1764. },
  1765. valueHead: {
  1766. color: "#333",
  1767. width: 20,
  1768. padding: [0, 20, 0, 30],
  1769. align: "center",
  1770. },
  1771. rate: {
  1772. width: 40,
  1773. align: "right",
  1774. padding: [0, 10, 0, 0],
  1775. },
  1776. rateHead: {
  1777. color: "#333",
  1778. width: 40,
  1779. align: "center",
  1780. padding: [0, 10, 0, 0],
  1781. },
  1782. },
  1783. },
  1784. },
  1785. {
  1786. value: this.chart.whouseList[0].fGrossweightD,
  1787. name: "占用库容",
  1788. },
  1789. {
  1790. value: parseFloat(
  1791. this.chart.whouseList[0].fTotalgross -
  1792. this.chart.whouseList[0].fGrossweightD
  1793. ).toFixed(1),
  1794. name: "空闲库容",
  1795. },
  1796. ],
  1797. emphasis: {
  1798. itemStyle: {
  1799. shadowBlur: 10,
  1800. shadowOffsetX: 0,
  1801. shadowColor: "rgba(0, 0, 0, 0.5)",
  1802. },
  1803. },
  1804. },
  1805. ],
  1806. });
  1807. },
  1808. drawLinetwo() {
  1809. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1810. let myChart = this.$echarts.init(document.getElementById("cargoOwner"));
  1811. // 绘制图表
  1812. myChart.setOption({
  1813. title: {
  1814. text: this.chart.whouseList[0].fName + "货权方统计",
  1815. subtext: "实时数据",
  1816. left: "center",
  1817. },
  1818. tooltip: {
  1819. trigger: "item",
  1820. formatter: "{a} <br/>{b}: {c} ({d}%)",
  1821. },
  1822. legend: {
  1823. bottom: 10,
  1824. left: "center",
  1825. data: this.name,
  1826. },
  1827. series: [
  1828. {
  1829. name: "访问来源",
  1830. type: "pie",
  1831. radius: ["40%", "60%"],
  1832. avoidLabelOverlap: false,
  1833. label: {
  1834. show: false,
  1835. position: "center",
  1836. },
  1837. emphasis: {
  1838. label: {
  1839. // show: true,
  1840. fontSize: "30",
  1841. fontWeight: "bold",
  1842. },
  1843. },
  1844. labelLine: {
  1845. show: false,
  1846. },
  1847. data: this.master,
  1848. },
  1849. ],
  1850. });
  1851. },
  1852. smartScreen(){
  1853. currentLogin().then(res=>{
  1854. const role = res.data.roles.some(item => item.roleKey == 'admin' || item.roleKey == 'IDC')
  1855. if (role){
  1856. this.getConfigKey("large.screen").then((response) => {
  1857. if (response.msg) {
  1858. window.open( 'http://119.3.74.195:9527/view/'+ response.msg +'?Authorization=' + getToken())
  1859. } else {
  1860. return this.$message.warning('模板开发中')
  1861. }
  1862. });
  1863. }else {
  1864. this.$message.warning('您无此权限查看面板');
  1865. }
  1866. })
  1867. },
  1868. commoDity() {
  1869. // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
  1870. let myChart = this.$echarts.init(document.getElementById("commoDity"));
  1871. // 绘制图表
  1872. myChart.setOption({
  1873. title: {
  1874. text: this.chart.whouseList[0].fName + "商品统计",
  1875. subtext: "实时数据",
  1876. left: "center",
  1877. },
  1878. color: ["#3398DB"],
  1879. tooltip: {
  1880. trigger: "axis",
  1881. axisPointer: {
  1882. // 坐标轴指示器,坐标轴触发有效
  1883. type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
  1884. },
  1885. },
  1886. grid: {
  1887. left: "3%",
  1888. right: "4%",
  1889. bottom: "3%",
  1890. containLabel: true,
  1891. },
  1892. xAxis: [
  1893. {
  1894. type: "category",
  1895. data: this.commodity,
  1896. axisTick: {
  1897. alignWithLabel: true,
  1898. },
  1899. },
  1900. ],
  1901. yAxis: [
  1902. {
  1903. type: "value"
  1904. },
  1905. ],
  1906. series: [
  1907. {
  1908. name: "实时状态",
  1909. type: "bar",
  1910. barWidth: "60%",
  1911. data: this.commoditytwo,
  1912. label: {
  1913. show: true,
  1914. position: 'top',
  1915. valueAnimation: true
  1916. }
  1917. },
  1918. ],
  1919. });
  1920. },
  1921. openNewsDetails(id) {
  1922. this.tableDataTwo.forEach(item => {
  1923. if (item.noticeId === id) {
  1924. this.newsDetails.noticeTitle = item.noticeTitle;
  1925. this.newsDetails.noticeContent = item.noticeContent
  1926. }
  1927. })
  1928. this.newsVisible = true
  1929. },
  1930. // 跳转到更多公告页面
  1931. jumpMoreNews() {
  1932. this.$router.push({
  1933. path: "/notice/seeMore",
  1934. });
  1935. },
  1936. // 弹窗
  1937. openDialog(name) {
  1938. if (name == 'inStock') {
  1939. this.fastInStockVisble = true
  1940. this.$nextTick(() => {
  1941. this.$refs.fastInStock.init()
  1942. })
  1943. }
  1944. if (name === 'outStock') {
  1945. // this.$message.warning('模块开发中')
  1946. this.fastOutStockVisble = true
  1947. this.$nextTick(() => {
  1948. this.$refs.fastOutStock.init()
  1949. })
  1950. }
  1951. },
  1952. // 关闭
  1953. closeInStock() {
  1954. this.fastInStockVisble = false
  1955. },
  1956. closeOutStock() {
  1957. this.fastOutStockVisble = false
  1958. }
  1959. },
  1960. };
  1961. </script>
  1962. <style scoped lang="scss">
  1963. .block {
  1964. width: 100%;
  1965. display: flex;
  1966. flex-wrap: wrap;
  1967. justify-content: space-around;
  1968. li div:hover {
  1969. background-color: #025184;
  1970. }
  1971. li:nth-child(6) div,
  1972. li:nth-child(7) div,
  1973. li:nth-child(8) div,
  1974. li:nth-child(9) div,
  1975. li:nth-child(10) div {
  1976. background-color: #2f4554;
  1977. }
  1978. li:nth-child(6) div:hover,
  1979. li:nth-child(7) div:hover,
  1980. li:nth-child(8) div:hover,
  1981. li:nth-child(9) div:hover,
  1982. li:nth-child(10) div:hover {
  1983. background-color: #2f4454d1;
  1984. }
  1985. li {
  1986. width: 8%;
  1987. margin-left: 10px;
  1988. text-align: center;
  1989. cursor: pointer;
  1990. margin-bottom: 15px;
  1991. div {
  1992. //margin-top: 18px;
  1993. background-color: #1c84c6;
  1994. color: #ffffff;
  1995. border-radius: 10px;
  1996. height: 35px;
  1997. display: flex;
  1998. align-items: center;
  1999. justify-content: center;
  2000. }
  2001. p {
  2002. font-size: 10px;
  2003. }
  2004. }
  2005. }
  2006. .home {
  2007. blockquote {
  2008. padding: 10px 20px;
  2009. margin: 0 0 20px;
  2010. font-size: 17.5px;
  2011. border-left: 5px solid #eee;
  2012. }
  2013. hr {
  2014. margin-top: 20px;
  2015. margin-bottom: 20px;
  2016. border: 0;
  2017. border-top: 1px solid #eee;
  2018. }
  2019. .col-item {
  2020. margin-bottom: 20px;
  2021. }
  2022. ul {
  2023. padding: 0;
  2024. margin: 0;
  2025. }
  2026. font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  2027. font-size: 13px;
  2028. color: #676a6c;
  2029. overflow-x: hidden;
  2030. ul {
  2031. list-style-type: none;
  2032. }
  2033. h4 {
  2034. margin-top: 0px;
  2035. }
  2036. h2 {
  2037. margin-top: 10px;
  2038. font-size: 26px;
  2039. font-weight: 100;
  2040. }
  2041. p {
  2042. margin-top: 10px;
  2043. b {
  2044. font-weight: 700;
  2045. }
  2046. }
  2047. .update-log {
  2048. ol {
  2049. display: block;
  2050. list-style-type: decimal;
  2051. margin-block-start: 1em;
  2052. margin-block-end: 1em;
  2053. margin-inline-start: 0;
  2054. margin-inline-end: 0;
  2055. padding-inline-start: 40px;
  2056. }
  2057. }
  2058. }
  2059. .home-fleet {
  2060. display: flex;
  2061. .home-left {
  2062. width: 40%;
  2063. padding: 0 10px;
  2064. }
  2065. .home-right {
  2066. width: 60%;
  2067. padding: 0 10px;
  2068. }
  2069. .content-top {
  2070. display: flex;
  2071. .content-top-left {
  2072. display: flex;
  2073. width: 50%;
  2074. height: 100px;
  2075. border-bottom: 1px solid #e6ebf5;
  2076. border-right: 1px solid #e6ebf5;
  2077. padding: 10px;
  2078. justify-content: space-between;
  2079. }
  2080. .content-top-right {
  2081. display: flex;
  2082. width: 50%;
  2083. height: 100px;
  2084. border-bottom: 1px solid #e6ebf5;
  2085. padding: 10px;
  2086. justify-content: space-between;
  2087. }
  2088. }
  2089. .content-bottom {
  2090. display: flex;
  2091. height: 81px;
  2092. border-bottom: 1px solid #e6ebf5;
  2093. padding: 10px;
  2094. justify-content: space-between;
  2095. }
  2096. .content-bottom:last-child {
  2097. border-bottom: 0px;
  2098. }
  2099. .upper-right {
  2100. padding: 10px 0;
  2101. //height: 260px;
  2102. height: 417px;
  2103. }
  2104. .upper-right2 {
  2105. padding: 10px 0;
  2106. height: 104px;
  2107. }
  2108. }
  2109. .single_line {
  2110. overflow: hidden;
  2111. text-overflow: ellipsis;
  2112. white-space: nowrap;
  2113. }
  2114. @media screen and (max-width: 920px) {
  2115. .home-fleet {
  2116. display: flex;
  2117. flex-direction: column;
  2118. .home-left {
  2119. width: 100%;
  2120. }
  2121. .home-right {
  2122. width: 100%;
  2123. }
  2124. }
  2125. }
  2126. </style>
  2127. <style lang="scss">
  2128. .text img {
  2129. max-width: 100%;
  2130. height: auto;
  2131. }
  2132. .home_stock_table {
  2133. display: flex;
  2134. width: 20%;
  2135. justify-content: center;
  2136. align-self: center;
  2137. p{
  2138. display: inline-block;
  2139. white-space: nowrap;
  2140. width: 100%;
  2141. overflow: hidden;
  2142. text-overflow:ellipsis;
  2143. }
  2144. }
  2145. .home_stock_table:hover{
  2146. color: #1c84c6;
  2147. cursor:pointer
  2148. }
  2149. .home_stock_table_right {
  2150. display: flex;
  2151. width: 20%;
  2152. justify-content: space-around;
  2153. align-self: center;
  2154. }
  2155. .jingrun-news {
  2156. overflow: auto;
  2157. }
  2158. .html-box p {
  2159. width: 100%;
  2160. }
  2161. .html-box p img {
  2162. display: block;
  2163. margin: 0 auto;
  2164. max-width: 100% !important;
  2165. }
  2166. </style>