quick-launch.vue 17 KB

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