quick-launch.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
  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: '',
  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. this.$nextTick(data => {
  247. let menu = JSON.parse(localStorage.getItem("saber-menuAll")).content
  248. for (let item of menu){
  249. this.menuAll.push(item.id)
  250. if (item.children.length > 0){
  251. this.getMenuId(item.children)
  252. }
  253. }
  254. })
  255. if (this.sysType == 2) {
  256. this.getWorkDicts('large_screen').then(res => {
  257. this.largeScreenToken = res.data.data[0].dictKey;
  258. })
  259. }
  260. this.roleName=localStorage.getItem("roleName")
  261. },
  262. methods: {
  263. //获取所有路由信息id
  264. getMenuId(array){
  265. for (let item of array){
  266. this.menuAll.push(item.id)
  267. }
  268. },
  269. inPage(type) {
  270. //出口
  271. if (this.sysType == 4) {
  272. switch (type) {
  273. case "bj":
  274. this.$router.push("/exportTrade/customerInquiry/index");
  275. break;
  276. case "xs":
  277. this.$router.push("/exportTrade/salesContract/index");
  278. break;
  279. case "cg":
  280. this.$router.push("/exportTrade/purchaseContract/index");
  281. break;
  282. case "fh":
  283. this.$router.push("/exportTrade/invoice/index");
  284. break;
  285. case "sh":
  286. this.$router.push("/exportTrade/receipt/index");
  287. break;
  288. case "sqfk":
  289. this.$router.push("/financialManagement/paymentRequest/index");
  290. break;
  291. case "sf":
  292. this.$router.push(
  293. "/financialManagement/receiptSettle/receiptSettle"
  294. );
  295. break;
  296. case "ff":
  297. this.$router.push(
  298. "/financialManagement/paymentSettle/paymentSettle"
  299. );
  300. break;
  301. }
  302. } else if (this.sysType == 2) {
  303. switch (type) {
  304. case "xs":
  305. this.$router.push("/businessManagement/salesOrder/index");
  306. break;
  307. case "cg":
  308. this.$router.push("/businessManagement/purchaseOrder/index");
  309. break;
  310. case "fh":
  311. this.$router.push("/businessManagement/deliveryNotice/index");
  312. break;
  313. case "sh":
  314. this.$router.push("/businessManagement/receipt/index");
  315. break;
  316. case "sqfk":
  317. this.$router.push("/financialManagement/paymentRequest/index");
  318. break;
  319. case "sf":
  320. this.$router.push(
  321. "/financialManagement/receiptSettle/receiptSettle"
  322. );
  323. break;
  324. case "ff":
  325. this.$router.push(
  326. "/financialManagement/paymentSettle/paymentSettle"
  327. );
  328. break;
  329. case "smart":
  330. if (((localStorage.getItem("roleName").split(',')).indexOf('数据中心') !== -1) || (localStorage.getItem("roleName").split(',')).indexOf('admin') !== -1) {
  331. window.open('http://119.3.74.195:9527/view/' + this.largeScreenToken + '?token=' + getToken())
  332. } else {
  333. this.$message.error('此帐号无权限');
  334. }
  335. break;
  336. }
  337. } else if (this.sysType == 3) {
  338. switch (type) {
  339. case "xs":
  340. this.$router.push("/salesManagement/salesContract/index");
  341. break;
  342. case "cg":
  343. this.$router.push("/purchase/contract/index");
  344. break;
  345. case "fh":
  346. this.$router.push("/importTrade/invoice/index");
  347. break;
  348. case "sh":
  349. this.$router.push("/importTrade/receipt/index");
  350. break;
  351. case "sqfk":
  352. this.$router.push("/financialManagement/paymentRequest/index");
  353. break;
  354. case "sf":
  355. this.$router.push(
  356. "/financialManagement/receiptSettle/receiptSettle"
  357. );
  358. break;
  359. case "ff":
  360. this.$router.push(
  361. "/financialManagement/paymentSettle/paymentSettle"
  362. );
  363. break;
  364. }
  365. } else if (this.sysType == 5) {
  366. switch (type) {
  367. case "zy":
  368. this.$router.push("/workManagement/main-items/list");
  369. break;
  370. case "yf":
  371. this.$router.push("/workManagement/performanceAnalysis/index");
  372. break;
  373. case "tj":
  374. this.$router.push("/workManagement/receipt/statisticalList");
  375. break;
  376. case "fw":
  377. this.$router.push("/workManagement/service-items/project");
  378. break;
  379. case "sp":
  380. this.$router.push("/basicData/commodityType/index");
  381. break;
  382. case "fy":
  383. this.$router.push("/basicData/basicFeesDesc/index");
  384. break;
  385. }
  386. } else if (this.sysType == 6) {
  387. switch (type) {
  388. case "xs":
  389. this.$router.push("/dealer/sales/index");
  390. break;
  391. case "cg":
  392. this.$router.push("/dealer/purchase/index");
  393. break;
  394. }
  395. }else if (this.sysType == 11) {
  396. switch(type){
  397. case 'xs':
  398. this.$router.push('/tirePartsMall/salesManagement/saleOrder/index');
  399. break;
  400. case 'ck':
  401. this.$router.push('/tirePartsMall/salesManagement/outboundTask/index');
  402. break;
  403. case 'ckgd':
  404. this.$router.push('/tirePartsMall/salesManagement/outboundWorkOrder/index');
  405. break;
  406. case 'cgdd':
  407. this.$router.push('/tirePartsMall/salesManagement/purchaseOrder/index');
  408. break;
  409. case 'rkrw':
  410. this.$router.push('/tirePartsMall/salesManagement/inboundTask/index');
  411. break;
  412. case 'rk':
  413. this.$router.push('/tirePartsMall/purchasingManagement/warehouseEntryOrder/index');
  414. break;
  415. }
  416. }else if(this.sysType == 999){
  417. switch(type){
  418. case 'xs':
  419. this.$router.push('/tirePartsMall/salesManagement/saleOrder/index');
  420. break;
  421. case 'ck':
  422. this.$router.push('/tirePartsMall/salesManagement/outboundTask/index');
  423. break;
  424. case 'ckgd':
  425. this.$router.push('/tirePartsMall/salesManagement/outboundWorkOrder/index');
  426. break;
  427. case 'rk':
  428. this.$router.push('/tirePartsMall/purchasingManagement/warehouseEntryOrder/index');
  429. break;
  430. }
  431. }
  432. }
  433. }
  434. };
  435. </script>
  436. <style lang="scss" scoped>
  437. .home-container {
  438. padding: 5px;
  439. box-sizing: border-box;
  440. height: 100%;
  441. ::v-deep .el-card__body {
  442. padding: 10px 15px;
  443. font-size: 14px;
  444. }
  445. &__card {
  446. width: 100%;
  447. height: 100%;
  448. }
  449. .title {
  450. display: flex;
  451. justify-content: space-between;
  452. }
  453. }
  454. .tradingIcon {
  455. font-size: 36px;
  456. }
  457. .content {
  458. display: flex;
  459. &-icon {
  460. display: flex;
  461. flex-direction: column;
  462. align-items: center;
  463. margin: 1.5vh 1vw 0vh 1vw;
  464. span {
  465. margin-top: 0.2vh;
  466. }
  467. }
  468. }
  469. .content2 {
  470. display: flex;
  471. justify-content: center;
  472. align-items: center;
  473. height: 10vh;
  474. width: 80vw;
  475. .divider {
  476. display: block;
  477. height: 0px;
  478. width: 100%;
  479. margin-top: -20px;
  480. border-top: 1px dashed #dcdfe6;
  481. }
  482. &-item {
  483. margin-left: 1vw;
  484. .card {
  485. width: 100px;
  486. display: flex;
  487. flex-direction: column;
  488. align-items: center;
  489. &-title {
  490. width: 40px;
  491. height: 40px;
  492. text-align: center;
  493. border-radius: 50%;
  494. font-size: 20px;
  495. font-weight: 600;
  496. display: flex;
  497. justify-content: center;
  498. align-items: center;
  499. span {
  500. line-height: 20px;
  501. }
  502. }
  503. &-title1 {
  504. color: #037fe1;
  505. background-color: rgba(3, 127, 225, 0.15);
  506. }
  507. &-title2 {
  508. color: #ffa21e;
  509. background-color: rgba(255, 162, 30, 0.15);
  510. }
  511. &-title3 {
  512. color: #fb5b60;
  513. background-color: rgba(251, 91, 96, 0.15);
  514. }
  515. &-title4 {
  516. color: #42bc6f;
  517. background-color: rgba(66, 188, 111, 0.15);
  518. }
  519. &-content {
  520. display: flex;
  521. flex-direction: column;
  522. margin-top: 4px;
  523. &-text {
  524. color: #909399;
  525. }
  526. }
  527. }
  528. }
  529. }
  530. </style>