quick-launch.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. <template>
  2. <div class="home-container">
  3. <el-card class="home-container__card">
  4. <div class="title">
  5. <span>
  6. 快速发起
  7. </span>
  8. </div>
  9. <div class="content" v-if="sysType == 3">
  10. <div class="content-icon" @click="inPage('cg')">
  11. <i class="tradingIcon icon-purchase" style="color:#75CD28"></i>
  12. <span>采购</span>
  13. </div>
  14. <div class="content-icon" @click="inPage('xs')">
  15. <i class="tradingIcon icon-sales" style="color:#409EFF"></i>
  16. <span>销售</span>
  17. </div>
  18. <div class="content-icon" @click="inPage('sh')">
  19. <i class="tradingIcon icon-receipt" style="color:#921939"></i>
  20. <span>收货</span>
  21. </div>
  22. <div class="content-icon" @click="inPage('fh')">
  23. <i class="tradingIcon icon-ship" style="color:#143056"></i>
  24. <span>发货</span>
  25. </div>
  26. <div class="content-icon" @click="inPage('sqfk')">
  27. <i class="tradingIcon icon-apply" style="color:#BE3216"></i>
  28. <span>付费申请</span>
  29. </div>
  30. <div class="content-icon" @click="inPage('ff')">
  31. <i class="tradingIcon icon-pay" style="color:#7E8270"></i>
  32. <span>付费</span>
  33. </div>
  34. <div class="content-icon" @click="inPage('sf')">
  35. <i class="tradingIcon icon-charge" style="color:#4D6016"></i>
  36. <span>收费</span>
  37. </div>
  38. </div>
  39. <div class="content" v-if="sysType == 999">
  40. <div class="content-icon" @click="inPage('xs')">
  41. <i class="tradingIcon icon-sales" style="color:#57927a"></i>
  42. <span>销售订单</span>
  43. </div>
  44. <div class="content-icon" @click="inPage('ck')">
  45. <i class="tradingIcon icon-sales" style="color:#576892"></i>
  46. <span>出库任务</span>
  47. </div>
  48. <div class="content-icon" @click="inPage('ckgd')">
  49. <i class="tradingIcon icon-receipt" style="color:#57927a"></i>
  50. <span>出库工单</span>
  51. </div>
  52. <div class="content-icon" @click="inPage('rk')">
  53. <i class="tradingIcon icon-ship" style="color:#576892"></i>
  54. <span>入库工单</span>
  55. </div>
  56. </div>
  57. <div class="content" v-if="sysType == 11 && tenantNumber == 883868">
  58. <div class="content-icon" @click="inPage('xs')" v-if="menuAll.includes('1649222564150513666')">
  59. <i class="tradingIcon icon-sales" style="color:#57927a"></i>
  60. <span>销售订单(L)</span>
  61. </div>
  62. <div class="content-icon" @click="inPage('ck')" v-if="menuAll.includes('1649222726755291138')">
  63. <i class="tradingIcon icon-sales" style="color:#576892"></i>
  64. <span>出库任务(L)</span>
  65. </div>
  66. <div class="content-icon" @click="inPage('ckgd')" v-if="menuAll.includes('1649222873652400129')">
  67. <i class="tradingIcon icon-receipt" style="color:#57927a"></i>
  68. <span>出库工单(L)</span>
  69. </div>
  70. <div class="content-icon" @click="inPage('cgdd')" v-if="menuAll.includes('1649221237009813506')">
  71. <i class="tradingIcon icon-ship" style="color:#576892"></i>
  72. <span>采购订单(L)</span>
  73. </div>
  74. <div class="content-icon" @click="inPage('rkrw')" v-if="menuAll.includes('1649221831804063745')">
  75. <i class="tradingIcon icon-ship" style="color:#576892"></i>
  76. <span>入库任务(L)</span>
  77. </div>
  78. <div class="content-icon" @click="inPage('rk')" v-if="menuAll.includes('1649221486306660353')">
  79. <i class="tradingIcon icon-ship" style="color:#576892"></i>
  80. <span>采购入库(L)</span>
  81. </div>
  82. </div>
  83. <div class="content" v-else-if="sysType == 11">
  84. <div class="content-icon" @click="inPage('xs')" v-if="menuAll.includes('1649222227737972738')">
  85. <i class="tradingIcon icon-sales" style="color:#57927a"></i>
  86. <span>销售订单</span>
  87. </div>
  88. <div class="content-icon" @click="inPage('ck')" v-if="menuAll.includes('1649222227737972738')">
  89. <i class="tradingIcon icon-sales" style="color:#576892"></i>
  90. <span>出库任务</span>
  91. </div>
  92. <div class="content-icon" @click="inPage('ckgd')" v-if="menuAll.includes('1649222227737972738')">
  93. <i class="tradingIcon icon-receipt" style="color:#57927a"></i>
  94. <span>出库工单</span>
  95. </div>
  96. <div class="content-icon" @click="inPage('cgdd')" v-if="menuAll.includes('1649220603598606338')">
  97. <i class="tradingIcon icon-ship" style="color:#576892"></i>
  98. <span>采购订单</span>
  99. </div>
  100. <div class="content-icon" @click="inPage('rkrw')" v-if="menuAll.includes('1649220603598606338')">
  101. <i class="tradingIcon icon-ship" style="color:#576892"></i>
  102. <span>入库任务</span>
  103. </div>
  104. <div class="content-icon" @click="inPage('rk')" v-if="menuAll.includes('1649221486306660353')">
  105. <i class="tradingIcon icon-ship" style="color:#576892"></i>
  106. <span>采购入库</span>
  107. </div>
  108. </div>
  109. <!-- <div class="content" v-if="sysType == 5">
  110. <div class="content-icon" @click="inPage('zy')">
  111. <i class="tradingIcon icon-pay" style="color:#57927a"></i>
  112. <span>主营业务</span>
  113. </div>
  114. <div class="content-icon" @click="inPage('yf')">
  115. <i class="tradingIcon icon-pay" style="color:#576892"></i>
  116. <span>业绩分析</span>
  117. </div>
  118. <div class="content-icon" @click="inPage('tj')">
  119. <i class="tradingIcon icon-pay" style="color:#57927a"></i>
  120. <span>统计列表</span>
  121. </div>
  122. <div class="content-icon" @click="inPage('fw')">
  123. <i class="tradingIcon icon-pay" style="color:#576892"></i>
  124. <span>服务项目</span>
  125. </div>
  126. <div class="content-icon" @click="inPage('sp')">
  127. <i class="tradingIcon icon-pay" style="color:#57927a"></i>
  128. <span>商品信息</span>
  129. </div>
  130. <div class="content-icon" @click="inPage('fy')">
  131. <i class="tradingIcon icon-pay" style="color:#576892"></i>
  132. <span>费用详情</span>
  133. </div>
  134. </div> -->
  135. <div class="content2" v-if="sysType === 5" v-loading="loading">
  136. <div class="content2-item">
  137. <div class="card">
  138. <div class="card-title card-title1">
  139. <span>
  140. </span>
  141. </div>
  142. <div class="card-content">
  143. <span class="card-content-text">销售机会</span>
  144. </div>
  145. </div>
  146. </div>
  147. <div class="divider" />
  148. <div class="content2-item">
  149. <div class="card">
  150. <div class="card-title card-title2">
  151. <span>
  152. </span>
  153. </div>
  154. <div class="card-content">
  155. <span class="card-content-text">主营业务</span>
  156. </div>
  157. </div>
  158. </div>
  159. <div class="divider" />
  160. <div class="content2-item">
  161. <div class="card">
  162. <div class="card-title card-title3">
  163. <span>
  164. </span>
  165. </div>
  166. <div class="card-content">
  167. <span class="card-content-text">任务</span>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <div class="content" v-if="sysType == 4 || sysType == 2">
  173. <div class="content-icon" @click="inPage('bj')" v-if="sysType == 4&&roleName!='采购'" v-show="menuAll.includes('1452458513768214529')">
  174. <i class="tradingIcon icon-sales" style="color:#606266"></i>
  175. <span>报价</span>
  176. </div>
  177. <div class="content-icon" @click="inPage('xs')" v-if="roleName!='采购'" v-show="menuAll.includes('1450016264090353666') || menuAll.includes('1441312491209768961')">
  178. <i class="tradingIcon icon-sales" style="color:#409EFF"></i>
  179. <span>销售</span>
  180. </div>
  181. <div class="content-icon" @click="inPage('cg')" v-if="menuAll.includes('1450016028588572673') || menuAll.includes('1448934850062209025')">
  182. <i class="tradingIcon icon-purchase" style="color:#75CD28"></i>
  183. <span>采购</span>
  184. </div>
  185. <div class="content-icon" @click="inPage('fh')" v-if="menuAll.includes('1450016865054425090') || menuAll.includes('1448814205181689857')">
  186. <i class="tradingIcon icon-ship" style="color:#143056"></i>
  187. <span v-if="sysType == 4">跟单</span>
  188. <span v-if="sysType == 2">客户收货</span>
  189. </div>
  190. <div class="content-icon" @click="inPage('sh')" v-if="menuAll.includes('1450016559952363522') || menuAll.includes('1447461646420480002')">
  191. <i class="tradingIcon icon-receipt" style="color:#921939"></i>
  192. <span v-if="sysType == 4">收货</span>
  193. <span v-if="sysType == 2">工厂发货</span>
  194. </div>
  195. <div class="content-icon" @click="inPage('sqfk')" v-if="menuAll.includes('1476082159704887297')">
  196. <i class="tradingIcon icon-apply" style="color:#BE3216"></i>
  197. <span>付费申请</span>
  198. </div>
  199. <div class="content-icon" @click="inPage('sf')" v-if="menuAll.includes('1450737630586388482')">
  200. <i class="tradingIcon icon-charge" style="color:#4D6016"></i>
  201. <span>收费</span>
  202. </div>
  203. <div class="content-icon" @click="inPage('ff')" v-if="menuAll.includes('1465162366688710658')">
  204. <i class="tradingIcon icon-charge" style="color:#7E8270"></i>
  205. <span>付费</span>
  206. </div>
  207. <div class="content-icon" @click="inPage('smart')" v-if="sysType == 2">
  208. <div
  209. style="width: 36px;height: 37px;border-radius: 10px;background-color: #0771e3;text-align: center;margin-top: 1px">
  210. <i class="el-icon-basketball" style="color:#FFFFFF;font-size: 26px;line-height: 37px;"></i>
  211. </div>
  212. <span style="margin-top: 4px">智慧大屏</span>
  213. </div>
  214. </div>
  215. <div class="content" v-if="sysType == 6">
  216. <div class="content-icon" @click="inPage('cg')">
  217. <i class="tradingIcon icon-purchase" style="color:#75CD28"></i>
  218. <span>采购</span>
  219. </div>
  220. <div class="content-icon" @click="inPage('xs')">
  221. <i class="tradingIcon icon-sales" style="color:#409EFF"></i>
  222. <span>销售</span>
  223. </div>
  224. </div>
  225. </el-card>
  226. </div>
  227. </template>
  228. <script>
  229. import { getToken } from "@/util/auth";
  230. export default {
  231. name: "basicContainer",
  232. data() {
  233. return {
  234. tenantNumber: -1,
  235. largeScreenToken: '',
  236. roleName:'',
  237. menuAll:[] //所有路由菜单id
  238. };
  239. },
  240. props: {
  241. sysType: Number
  242. },
  243. created() {
  244. this.tenantNumber = JSON.parse(localStorage.getItem('saber-tenantId')).content
  245. //从缓存中获取所有路由信息
  246. let menu = JSON.parse(localStorage.getItem("saber-menuAll")).content
  247. for (let item of menu){
  248. this.menuAll.push(item.id)
  249. if (item.children.length > 0){
  250. this.getMenuId(item.children)
  251. }
  252. }
  253. if (this.sysType == 2) {
  254. this.getWorkDicts('large_screen').then(res => {
  255. this.largeScreenToken = res.data.data[0].dictKey;
  256. })
  257. }
  258. this.roleName=localStorage.getItem("roleName")
  259. },
  260. methods: {
  261. //获取所有路由信息id
  262. getMenuId(array){
  263. for (let item of array){
  264. this.menuAll.push(item.id)
  265. }
  266. },
  267. inPage(type) {
  268. //出口
  269. if (this.sysType == 4) {
  270. switch (type) {
  271. case "bj":
  272. this.$router.push("/exportTrade/customerInquiry/index");
  273. break;
  274. case "xs":
  275. this.$router.push("/exportTrade/salesContract/index");
  276. break;
  277. case "cg":
  278. this.$router.push("/exportTrade/purchaseContract/index");
  279. break;
  280. case "fh":
  281. this.$router.push("/exportTrade/invoice/index");
  282. break;
  283. case "sh":
  284. this.$router.push("/exportTrade/receipt/index");
  285. break;
  286. case "sqfk":
  287. this.$router.push("/financialManagement/paymentRequest/index");
  288. break;
  289. case "sf":
  290. this.$router.push(
  291. "/financialManagement/receiptSettle/receiptSettle"
  292. );
  293. break;
  294. case "ff":
  295. this.$router.push(
  296. "/financialManagement/paymentSettle/paymentSettle"
  297. );
  298. break;
  299. }
  300. } else if (this.sysType == 2) {
  301. switch (type) {
  302. case "xs":
  303. this.$router.push("/businessManagement/salesOrder/index");
  304. break;
  305. case "cg":
  306. this.$router.push("/businessManagement/purchaseOrder/index");
  307. break;
  308. case "fh":
  309. this.$router.push("/businessManagement/deliveryNotice/index");
  310. break;
  311. case "sh":
  312. this.$router.push("/businessManagement/receipt/index");
  313. break;
  314. case "sqfk":
  315. this.$router.push("/financialManagement/paymentRequest/index");
  316. break;
  317. case "sf":
  318. this.$router.push(
  319. "/financialManagement/receiptSettle/receiptSettle"
  320. );
  321. break;
  322. case "ff":
  323. this.$router.push(
  324. "/financialManagement/paymentSettle/paymentSettle"
  325. );
  326. break;
  327. case "smart":
  328. if (((localStorage.getItem("roleName").split(',')).indexOf('数据中心') !== -1) || (localStorage.getItem("roleName").split(',')).indexOf('admin') !== -1) {
  329. window.open('http://119.3.74.195:9527/view/' + this.largeScreenToken + '?token=' + getToken())
  330. } else {
  331. this.$message.error('此帐号无权限');
  332. }
  333. break;
  334. }
  335. } else if (this.sysType == 3) {
  336. switch (type) {
  337. case "xs":
  338. this.$router.push("/salesManagement/salesContract/index");
  339. break;
  340. case "cg":
  341. this.$router.push("/purchase/contract/index");
  342. break;
  343. case "fh":
  344. this.$router.push("/importTrade/invoice/index");
  345. break;
  346. case "sh":
  347. this.$router.push("/importTrade/receipt/index");
  348. break;
  349. case "sqfk":
  350. this.$router.push("/financialManagement/paymentRequest/index");
  351. break;
  352. case "sf":
  353. this.$router.push(
  354. "/financialManagement/receiptSettle/receiptSettle"
  355. );
  356. break;
  357. case "ff":
  358. this.$router.push(
  359. "/financialManagement/paymentSettle/paymentSettle"
  360. );
  361. break;
  362. }
  363. } else if (this.sysType == 5) {
  364. switch (type) {
  365. case "zy":
  366. this.$router.push("/workManagement/main-items/list");
  367. break;
  368. case "yf":
  369. this.$router.push("/workManagement/performanceAnalysis/index");
  370. break;
  371. case "tj":
  372. this.$router.push("/workManagement/receipt/statisticalList");
  373. break;
  374. case "fw":
  375. this.$router.push("/workManagement/service-items/project");
  376. break;
  377. case "sp":
  378. this.$router.push("/basicData/commodityType/index");
  379. break;
  380. case "fy":
  381. this.$router.push("/basicData/basicFeesDesc/index");
  382. break;
  383. }
  384. } else if (this.sysType == 6) {
  385. switch (type) {
  386. case "xs":
  387. this.$router.push("/dealer/sales/index");
  388. break;
  389. case "cg":
  390. this.$router.push("/dealer/purchase/index");
  391. break;
  392. }
  393. }else if (this.sysType == 11) {
  394. switch(type){
  395. case 'xs':
  396. this.$router.push('/tirePartsMall/salesManagement/saleOrder/index');
  397. break;
  398. case 'ck':
  399. this.$router.push('/tirePartsMall/salesManagement/outboundTask/index');
  400. break;
  401. case 'ckgd':
  402. this.$router.push('/tirePartsMall/salesManagement/outboundWorkOrder/index');
  403. break;
  404. case 'cgdd':
  405. this.$router.push('/tirePartsMall/salesManagement/purchaseOrder/index');
  406. break;
  407. case 'rkrw':
  408. this.$router.push('/tirePartsMall/salesManagement/inboundTask/index');
  409. break;
  410. case 'rk':
  411. this.$router.push('/tirePartsMall/purchasingManagement/warehouseEntryOrder/index');
  412. break;
  413. }
  414. }else if(this.sysType == 999){
  415. switch(type){
  416. case 'xs':
  417. this.$router.push('/tirePartsMall/salesManagement/saleOrder/index');
  418. break;
  419. case 'ck':
  420. this.$router.push('/tirePartsMall/salesManagement/outboundTask/index');
  421. break;
  422. case 'ckgd':
  423. this.$router.push('/tirePartsMall/salesManagement/outboundWorkOrder/index');
  424. break;
  425. case 'rk':
  426. this.$router.push('/tirePartsMall/purchasingManagement/warehouseEntryOrder/index');
  427. break;
  428. }
  429. }
  430. }
  431. }
  432. };
  433. </script>
  434. <style lang="scss" scoped>
  435. .home-container {
  436. padding: 5px;
  437. box-sizing: border-box;
  438. height: 100%;
  439. ::v-deep .el-card__body {
  440. padding: 10px 15px;
  441. font-size: 14px;
  442. }
  443. &__card {
  444. width: 100%;
  445. height: 100%;
  446. }
  447. .title {
  448. display: flex;
  449. justify-content: space-between;
  450. }
  451. }
  452. .tradingIcon {
  453. font-size: 36px;
  454. }
  455. .content {
  456. display: flex;
  457. &-icon {
  458. display: flex;
  459. flex-direction: column;
  460. align-items: center;
  461. margin: 1.5vh 1vw 0vh 1vw;
  462. span {
  463. margin-top: 0.2vh;
  464. }
  465. }
  466. }
  467. .content2 {
  468. display: flex;
  469. justify-content: center;
  470. align-items: center;
  471. height: 10vh;
  472. width: 80vw;
  473. .divider {
  474. display: block;
  475. height: 0px;
  476. width: 100%;
  477. margin-top: -20px;
  478. border-top: 1px dashed #dcdfe6;
  479. }
  480. &-item {
  481. margin-left: 1vw;
  482. .card {
  483. width: 100px;
  484. display: flex;
  485. flex-direction: column;
  486. align-items: center;
  487. &-title {
  488. width: 40px;
  489. height: 40px;
  490. text-align: center;
  491. border-radius: 50%;
  492. font-size: 20px;
  493. font-weight: 600;
  494. display: flex;
  495. justify-content: center;
  496. align-items: center;
  497. span {
  498. line-height: 20px;
  499. }
  500. }
  501. &-title1 {
  502. color: #037fe1;
  503. background-color: rgba(3, 127, 225, 0.15);
  504. }
  505. &-title2 {
  506. color: #ffa21e;
  507. background-color: rgba(255, 162, 30, 0.15);
  508. }
  509. &-title3 {
  510. color: #fb5b60;
  511. background-color: rgba(251, 91, 96, 0.15);
  512. }
  513. &-title4 {
  514. color: #42bc6f;
  515. background-color: rgba(66, 188, 111, 0.15);
  516. }
  517. &-content {
  518. display: flex;
  519. flex-direction: column;
  520. margin-top: 4px;
  521. &-text {
  522. color: #909399;
  523. }
  524. }
  525. }
  526. }
  527. }
  528. </style>