dashboard.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805
  1. <template>
  2. <popu>
  3. <div>
  4. <div class="menu-list">
  5. <div>
  6. <div class="main-title">
  7. <div class="title">常用菜单</div>
  8. <div class="el-icon-setting" @click="dialogVisible = !dialogVisible" />
  9. </div>
  10. <div class="child">
  11. <el-row :gutter="20">
  12. <el-col
  13. v-for="(it, idx) in normsMenuList"
  14. :key="idx"
  15. class="item"
  16. :span="4"
  17. style="margin-top: 16px; padding: 3px 20px"
  18. >
  19. <el-link class="link" :underline="false" @click="clickMenu(it.fullUrl)">{{ it.moduleName }}</el-link>
  20. </el-col>
  21. </el-row>
  22. </div>
  23. </div>
  24. <div v-for="(item, index) in menuList" :key="index" class="group">
  25. <div v-if="item.moduleName != '首页'">
  26. <div class="main-title">
  27. <div class="title">{{ item.moduleName }}</div>
  28. </div>
  29. <div v-if="item.children && item.children.length" class="child">
  30. <el-row :gutter="20">
  31. <el-col v-for="(it, idx) in item.children" :key="idx" class="item" :span="4">
  32. <el-link class="link" :underline="false" @click="clickMenu(it.fullUrl)">{{ it.moduleName }}</el-link>
  33. </el-col>
  34. </el-row>
  35. </div>
  36. <div v-else class="child">
  37. <div class="item">
  38. <el-link class="link" :underline="false" @click="clickMenu(item.fullUrl)">{{
  39. item.moduleName
  40. }}</el-link>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <!-- 弹窗 -->
  47. <el-dialog title="菜单配置" append-to-body :visible.sync="dialogVisible" width="70%">
  48. <el-checkbox-group v-model="checkList" :max="10">
  49. <div v-for="(item, index) in menuList" :key="index" class="group">
  50. <div v-if="item.moduleName != '首页'">
  51. <div v-if="item.children && item.children.length" class="dia-child">
  52. <el-checkbox v-for="(it, idx) in item.children" :key="idx" :label="it.moduleId" class="dia-item">{{
  53. it.moduleName
  54. }}</el-checkbox>
  55. </div>
  56. <div v-else class="child">
  57. <el-checkbox class="dia-item" :label="item.moduleId">{{ item.moduleName }}</el-checkbox>
  58. </div>
  59. </div>
  60. </div>
  61. </el-checkbox-group>
  62. <div class="dia-tip">( {{ checkList.length }} / 10 )注:最多选10个导航菜单</div>
  63. <span slot="footer" class="dialog-footer">
  64. <el-button
  65. @click="
  66. dialogVisible = false
  67. checkList = []
  68. "
  69. >取 消</el-button
  70. >
  71. <el-button type="primary" @click="handleSaveMenu">确 定</el-button>
  72. </span>
  73. </el-dialog>
  74. <el-dialog
  75. title="消息"
  76. :visible.sync="showMessages"
  77. :append-to-body="true"
  78. width="50%"
  79. :show-close="false"
  80. :close-on-click-modal="false"
  81. >
  82. <el-radio-group v-model="type" size="mini" @change="checkFn">
  83. <el-radio-button label="1">系统通知</el-radio-button>
  84. <el-radio-button label="2">文件下发</el-radio-button>
  85. <el-radio-button label="3">返利确认单</el-radio-button>
  86. <el-radio-button label="4">物流通知</el-radio-button>
  87. <el-radio-button label="5">到货通知</el-radio-button>
  88. </el-radio-group>
  89. <br />
  90. <br />
  91. <!-- 系统通知 -->
  92. <div v-show="type == '1'" class="table">
  93. <el-table
  94. ref="table"
  95. v-loading="listLoading"
  96. class="cql"
  97. :data="dataList"
  98. element-loading-text="Loading"
  99. border
  100. fit
  101. highlight-current-row
  102. stripe
  103. >
  104. <el-table-column align="center" type="index" min-width="160" show-overflow-tooltip />
  105. <el-table-column align="center" label="标题" prop="title" min-width="160" show-overflow-tooltip />
  106. <el-table-column align="center" label="来源" prop="source" min-width="160" show-overflow-tooltip />
  107. <el-table-column align="center" label="时间" prop="issueTime" min-width="160" show-overflow-tooltip />
  108. <el-table-column align="center" label="" min-width="160" show-overflow-tooltip>
  109. <template slot-scope="scope">
  110. <el-button type="text" class="textColor" @click="lookInDialog(scope.row.id)">查看</el-button>
  111. </template>
  112. </el-table-column>
  113. </el-table>
  114. </div>
  115. <!-- 文件下发 -->
  116. <div v-show="type == '2'" class="table">
  117. <el-table
  118. ref="table"
  119. v-loading="listLoading"
  120. :data="fileList"
  121. element-loading-text="Loading"
  122. border
  123. fit
  124. highlight-current-row
  125. stripe
  126. >
  127. <el-table-column align="center" type="index" min-width="160" show-overflow-tooltip />
  128. <el-table-column align="center" label="标题" prop="title" min-width="160" show-overflow-tooltip />
  129. <el-table-column
  130. align="center"
  131. label="来源"
  132. prop="operatorNickName"
  133. min-width="160"
  134. show-overflow-tooltip
  135. />
  136. <el-table-column align="center" label="时间" prop="createTime" min-width="160" show-overflow-tooltip />
  137. <el-table-column align="center" label="操作" min-width="160" show-overflow-tooltip>
  138. <template slot-scope="scope">
  139. <el-button type="text" class="textColor" @click="downloadFn(scope.row.id)">下载</el-button>
  140. </template>
  141. </el-table-column>
  142. </el-table>
  143. </div>
  144. <!-- 返利确认单 -->
  145. <div v-show="type == '3'" class="table">
  146. <el-table
  147. ref="table"
  148. v-loading="listLoading"
  149. :data="rebateList"
  150. element-loading-text="Loading"
  151. border
  152. fit
  153. highlight-current-row
  154. stripe
  155. >
  156. <el-table-column align="center" type="index" min-width="160" show-overflow-tooltip />
  157. <el-table-column
  158. align="center"
  159. label="经销商名称"
  160. prop="customerName"
  161. min-width="160"
  162. show-overflow-tooltip
  163. />
  164. <el-table-column align="center" label="确认人" prop="examineBy" min-width="160" show-overflow-tooltip />
  165. <el-table-column align="center" label="确认时间" prop="examineTime" min-width="160" show-overflow-tooltip />
  166. <el-table-column align="center" label="" min-width="160" show-overflow-tooltip>
  167. <template slot-scope="scope">
  168. <el-button type="text" class="textColor" @click="secondFn(scope.row.rebateOrderId)">{{
  169. isCustomer ? '确认' : '复核'
  170. }}</el-button>
  171. </template>
  172. </el-table-column>
  173. </el-table>
  174. </div>
  175. <!-- 物流通知 -->
  176. <div v-show="type == '4'" class="table">
  177. <el-table
  178. ref="table"
  179. v-loading="listLoading"
  180. :data="invoiceOrderList"
  181. element-loading-text="Loading"
  182. border
  183. fit
  184. highlight-current-row
  185. stripe
  186. >
  187. <el-table-column align="center" type="index" min-width="160" show-overflow-tooltip />
  188. <el-table-column align="center" label="发货单" prop="id" min-width="160" show-overflow-tooltip>
  189. <template slot-scope="scope">
  190. <el-link v-if="!isCustomer" type="primary" :underline="false" @click="handleJump(scope.row.id)">{{
  191. scope.row.id
  192. }}</el-link>
  193. <template v-else>{{ scope.row.id }}</template>
  194. </template>
  195. </el-table-column>
  196. <el-table-column
  197. align="center"
  198. label="内容"
  199. prop="orderTrackStatus"
  200. min-width="160"
  201. show-overflow-tooltip
  202. />
  203. <el-table-column align="center" label="时间" prop="orderTrackTime" min-width="160" show-overflow-tooltip />
  204. <el-table-column align="center" label="收货地址" prop="address" min-width="160" show-overflow-tooltip>
  205. <template slot-scope="scope">
  206. {{ scope.row.address ? scope.row.address : '——' }}
  207. </template>
  208. </el-table-column>
  209. <el-table-column align="center" label="收货客户" prop="receivingName" min-width="160" show-overflow-tooltip>
  210. <template slot-scope="scope">{{ scope.row.receivingName ? scope.row.receivingName : '——' }}</template>
  211. </el-table-column>
  212. <el-table-column align="center" label="" min-width="80" show-overflow-tooltip fixed="right">
  213. <template slot-scope="scope">
  214. <el-button type="text" class="textColor" @click="handLogistics(scope.row)">查看</el-button>
  215. </template>
  216. </el-table-column>
  217. </el-table>
  218. </div>
  219. <!-- 到货通知 -->
  220. <div v-show="type == '5'" class="table">
  221. <div class="mymain-container">
  222. <el-form ref="form" label-width="80px" label-position="left" size="mini">
  223. <el-row>
  224. <el-col>
  225. <el-form-item prop="specification" label="规格型号">
  226. <div style="display: flex">
  227. <el-input v-model="specification" clearable style="margin-right: 10px" />
  228. <el-button
  229. @click="
  230. specification = ''
  231. getListInvoiceOrder()
  232. "
  233. >重置</el-button
  234. >
  235. <el-button type="primary" @click="getArrivalNotice">查询</el-button>
  236. </div>
  237. </el-form-item>
  238. </el-col>
  239. </el-row>
  240. </el-form>
  241. <div class="table">
  242. <el-table
  243. ref="table"
  244. v-loading="listLoading"
  245. :data="arrivalNoticeList"
  246. element-loading-text="Loading"
  247. border
  248. fit
  249. highlight-current-row
  250. stripe
  251. >
  252. <el-table-column
  253. property="materialOldNumber"
  254. align="left"
  255. min-width="120"
  256. label="产品编号"
  257. show-overflow-tooltip
  258. />
  259. <el-table-column
  260. property="materialNumber"
  261. align="left"
  262. min-width="100"
  263. label="物料编码"
  264. show-overflow-tooltip
  265. />
  266. <el-table-column
  267. property="materialName"
  268. align="left"
  269. min-width="250"
  270. label="产品名称"
  271. show-overflow-tooltip
  272. />
  273. <el-table-column
  274. property="specification"
  275. align="left"
  276. min-width="350"
  277. label="规格型号"
  278. show-overflow-tooltip
  279. />
  280. <el-table-column
  281. property="stockName"
  282. align="left"
  283. min-width="100"
  284. label="到货仓库"
  285. show-overflow-tooltip
  286. />
  287. <el-table-column
  288. property="updateTime"
  289. align="left"
  290. min-width="200"
  291. label="到货通知时间"
  292. show-overflow-tooltip
  293. />
  294. </el-table>
  295. </div>
  296. </div>
  297. </div>
  298. <br />
  299. <br />
  300. <!-- 分页 -->
  301. <div class="fr">
  302. <el-pagination
  303. :current-page="currentPage"
  304. :page-sizes="[10, 20, 30, 50]"
  305. :page-size="10"
  306. layout="total, sizes, prev, pager, next, jumper"
  307. :total="listTotal"
  308. @size-change="handleSizeChange"
  309. @current-change="handleCurrentChange"
  310. />
  311. </div>
  312. <br /><br />
  313. <!-- 内层弹窗 -->
  314. <el-dialog width="40%" title="消息标题" :visible.sync="inDialog" append-to-body>
  315. <div class="detail-container">
  316. <div class="title">{{ detailData.title }}</div>
  317. <div class="text">
  318. 发布人:{{ detailData.issueNickName }}<el-divider direction="vertical" />发布时间:{{
  319. detailData.issueTime
  320. }}
  321. </div>
  322. <el-divider />
  323. <div class="content">{{ detailData.content }}</div>
  324. <el-divider v-if="detailData.files && detailData.files.length > 0" />
  325. <div v-if="detailData.files && detailData.files.length > 0" class="file">
  326. <div>附件:</div>
  327. <div class="file-list">
  328. <div v-for="(item, index) in detailData.files" :key="index" class="item">
  329. <el-image
  330. v-if="checkFileType(item.url) == 'image'"
  331. class="img"
  332. :src="imageURL + item.url"
  333. :preview-src-list="[imageURL + item.url]"
  334. />
  335. <div v-else class="box2" @click="openLink(item.url)">
  336. <img v-if="checkFileType(item.url) == 'word'" src="@/assets/common/word.png" />
  337. <img v-if="checkFileType(item.url) == 'excel'" src="@/assets/common/excel.png" />
  338. <img v-if="checkFileType(item.url) == 'ppt'" src="@/assets/common/ppt.png" />
  339. <img v-if="checkFileType(item.url) == 'pdf'" src="@/assets/common/pdf.png" />
  340. <div class="name ellipsis-3">{{ item.name }}</div>
  341. </div>
  342. </div>
  343. </div>
  344. </div>
  345. </div>
  346. <div slot="footer" class="dialog-footer">
  347. <el-button size="mini" type="primary" @click="confirmCheck(detailData.noticeId)">确认接收</el-button>
  348. <el-button size="mini" @click="inDialog = false">关 闭</el-button>
  349. </div>
  350. </el-dialog>
  351. <div slot="footer" class="dialog-footer">
  352. <el-button type="primary" size="mini" @click="closeFn">关闭</el-button>
  353. </div>
  354. </el-dialog>
  355. <el-dialog
  356. title="物流信息"
  357. :visible.sync="visible"
  358. width="60%"
  359. @close="onClose"
  360. append-to-body
  361. :close-on-click-modal="false"
  362. >
  363. <el-timeline class="logistics" :reverse="false" v-if="logisticsDetail.length">
  364. <el-timeline-item
  365. placement="top"
  366. type="success"
  367. v-for="(item, index) in logisticsDetail"
  368. :key="index"
  369. :timestamp="item.time"
  370. >
  371. <el-row :gutter="20">
  372. <el-col class="logistics-title"> {{ item.status }} </el-col>
  373. <el-col>
  374. <div class="flex">
  375. <div>{{ item.context }}</div>
  376. <!-- <div>{{ item.createTime }}</div> -->
  377. </div>
  378. </el-col>
  379. </el-row>
  380. </el-timeline-item>
  381. </el-timeline>
  382. <div v-else class="tip">暂无物流信息</div>
  383. </el-dialog>
  384. </div>
  385. </popu>
  386. </template>
  387. <script>
  388. import {
  389. getNoticeList,
  390. getComListList,
  391. getComListDownload,
  392. getNoticeDetail,
  393. confirmCheck,
  394. getRebateOrderList,
  395. getRouter,
  396. getMenuList,
  397. setMenuList,
  398. getListInvoiceOrder
  399. } from '@/api/dashboard'
  400. import { getArrivalNotice } from '@/api/stock'
  401. import { getListOrderTrack } from '@/api/supply/pickup'
  402. import { getFileUrl } from '@/api/common'
  403. import { mapGetters } from 'vuex'
  404. import popu from '@/components/template/popu.vue'
  405. export default {
  406. name: 'Dashboard',
  407. components: {
  408. popu
  409. },
  410. created() {
  411. this.getDataList({
  412. pageSize: this.pageSize,
  413. pageNum: this.currentPage,
  414. readFlag: false
  415. })
  416. getRouter({
  417. flag: 'index',
  418. adminUserId: this.userid
  419. }).then(res => {
  420. this.menuList = res.data
  421. console.log(res.data)
  422. })
  423. this.getMenuList()
  424. },
  425. computed: {
  426. ...mapGetters(['showMessages', 'userid', 'isCustomer'])
  427. },
  428. data() {
  429. return {
  430. imageURL: this.$imageUrl,
  431. type: '1',
  432. currentPage: 1, // 当前页码
  433. pageSize: 10, // 每页数量
  434. listTotal: 0, // 列表总数
  435. dataList: [],
  436. listLoading: false, // 列表加载loading
  437. fileList: [],
  438. inDialog: false,
  439. detailData: [],
  440. rebateList: [],
  441. // isCustomer: JSON.parse(localStorage.getItem('supply_user')).isCustomer,
  442. menuList: [],
  443. dialogVisible: false,
  444. checkList: [],
  445. normsMenuList: [],
  446. invoiceOrderList: [],
  447. bol: true,
  448. visible: false,
  449. orderId: '',
  450. logisticsDetail: [],
  451. arrivalNoticeList: [],
  452. specification: ''
  453. }
  454. },
  455. methods: {
  456. // 获取常用菜单列表
  457. getMenuList() {
  458. getMenuList().then(res => {
  459. this.normsMenuList = res.data
  460. if (this.normsMenuList.length) {
  461. this.normsMenuList.forEach(k => {
  462. this.checkList.push(k.moduleId)
  463. })
  464. }
  465. })
  466. },
  467. // 保存常用菜单
  468. handleSaveMenu() {
  469. setMenuList({ adminModuleIds: this.checkList.join(',') }).then(res => {
  470. this.$successMsg('设置成功')
  471. this.checkList = []
  472. this.getMenuList()
  473. this.dialogVisible = false
  474. })
  475. },
  476. // 打开链接
  477. openLink(url) {
  478. getFileUrl({ key: url }).then(res => {
  479. window.open(res.data)
  480. })
  481. },
  482. // 复核
  483. secondFn(id) {
  484. this.$router.push({
  485. path: '/finance/rebate_list',
  486. query: {
  487. id
  488. }
  489. })
  490. this.$store.commit('user/showMessage', 'no')
  491. },
  492. // 确认查收
  493. confirmCheck(id) {
  494. confirmCheck({ noticeIds: id }).then(res => {
  495. this.$successMsg('查收成功')
  496. this.inDialog = false
  497. this.getDataList({
  498. pageSize: this.pageSize,
  499. pageNum: this.currentPage,
  500. readFlag: false
  501. })
  502. })
  503. },
  504. // 检查文件类型
  505. checkFileType(url) {
  506. if (!url) return ''
  507. const fileSuffix = url.substring(url.lastIndexOf('.') + 1)
  508. if (['jpg', 'jpeg', 'png'].includes(fileSuffix)) {
  509. return 'image'
  510. } else if (['doc', 'docx', 'dot', 'wps', 'wpt'].includes(fileSuffix)) {
  511. return 'word'
  512. } else if (['xls', 'xlsx', 'xlt', 'et', 'ett'].includes(fileSuffix)) {
  513. return 'excel'
  514. } else if (['ppt', 'pptx', 'dps', 'dpt', 'pot', 'pps'].includes(fileSuffix)) {
  515. return 'ppt'
  516. } else if (['pdf'].includes(fileSuffix)) {
  517. return 'pdf'
  518. } else {
  519. return ''
  520. }
  521. },
  522. // 查看
  523. async lookInDialog(id) {
  524. const res = await getNoticeDetail({ id })
  525. // console.log(res, 7898);
  526. this.detailData = res.data
  527. this.inDialog = true
  528. },
  529. // 下载
  530. async downloadFn(id) {
  531. const res = await getComListDownload({ id })
  532. if (res.data) {
  533. window.open(this.imageURL + res.data)
  534. }
  535. },
  536. // 获取文件列表数据
  537. async getFileList(data) {
  538. const res = await getComListList(data)
  539. this.fileList = res.data.records
  540. this.listTotal = res.data.total
  541. },
  542. // 更改每页数量
  543. handleSizeChange(val) {
  544. this.pageSize = val
  545. this.currentPage = 1
  546. if (this.type == 1) {
  547. this.getDataList({
  548. pageSize: this.pageSize,
  549. pageNum: this.currentPage,
  550. readFlag: false
  551. })
  552. }
  553. if (this.type == 2) {
  554. this.getFileList({
  555. needDown: true,
  556. pageSize: this.pageSize,
  557. pageNo: this.currentPage
  558. })
  559. }
  560. if (this.type == 3) {
  561. this.getRebateList({
  562. pageSize: this.pageSize,
  563. pageNum: this.currentPage,
  564. isSecondExamine: false
  565. })
  566. }
  567. if (this.type == 4) {
  568. this.getListInvoiceOrder({
  569. pageSize: this.pageSize,
  570. pageNum: this.currentPage
  571. })
  572. }
  573. if (this.type == 5) {
  574. this.getArrivalNotice({
  575. pageSize: this.pageSize,
  576. pageNum: this.currentPage
  577. })
  578. }
  579. },
  580. // 更改当前页
  581. handleCurrentChange(val) {
  582. this.currentPage = val
  583. if (this.type == 1) {
  584. this.getDataList({
  585. pageSize: this.pageSize,
  586. pageNum: this.currentPage,
  587. readFlag: false
  588. })
  589. }
  590. if (this.type == 2) {
  591. this.getFileList({
  592. needDown: true,
  593. pageSize: this.pageSize,
  594. pageNo: this.currentPage
  595. })
  596. }
  597. if (this.type == 3) {
  598. this.getRebateList({
  599. pageSize: this.pageSize,
  600. pageNum: this.currentPage,
  601. isSecondExamine: false
  602. })
  603. }
  604. if (this.type == 4) {
  605. this.getListInvoiceOrder({
  606. pageSize: this.pageSize,
  607. pageNum: this.currentPage
  608. })
  609. }
  610. if (this.type == 5) {
  611. this.getArrivalNotice({
  612. pageSize: this.pageSize,
  613. pageNum: this.currentPage
  614. })
  615. }
  616. },
  617. // 获取返利确认单数据
  618. async getRebateList(data) {
  619. const res = await getRebateOrderList(data)
  620. this.rebateList = res.data.records
  621. this.listTotal = res.data.total
  622. },
  623. // 获取列表数据
  624. async getDataList(data) {
  625. const res = await getNoticeList(data)
  626. console.log(res)
  627. this.dataList = res.data.records
  628. this.listTotal = res.data.total
  629. },
  630. // 获取物流列表
  631. async getListInvoiceOrder(data) {
  632. const res = await getListInvoiceOrder(data)
  633. this.invoiceOrderList = res.data.records
  634. this.listTotal = res.data.total
  635. },
  636. async getArrivalNotice(data) {
  637. data = {
  638. ...data,
  639. pageSize: this.pageSize,
  640. pageNum: this.currentPage,
  641. specification: this.specification
  642. }
  643. const res = await getArrivalNotice(data)
  644. this.arrivalNoticeList = res.data.records
  645. this.listTotal = res.data.total
  646. },
  647. // 选择
  648. checkFn(v) {
  649. this.$refs.table.doLayout()
  650. this.type = v
  651. if (v == 1) {
  652. this.getDataList({
  653. pageSize: this.pageSize,
  654. pageNum: this.currentPage,
  655. readFlag: false
  656. })
  657. }
  658. if (v == 2) {
  659. this.getFileList({
  660. needDown: true,
  661. pageSize: this.pageSize,
  662. pageNo: this.currentPage
  663. })
  664. }
  665. if (v == 3) {
  666. this.getRebateList({
  667. pageSize: this.pageSize,
  668. pageNum: this.currentPage,
  669. isSecondExamine: false
  670. })
  671. }
  672. if (v == 4) {
  673. this.getListInvoiceOrder({
  674. pageSize: this.pageSize,
  675. pageNum: this.currentPage
  676. })
  677. }
  678. if (this.type == 5) {
  679. this.getArrivalNotice({
  680. pageSize: this.pageSize,
  681. pageNum: this.currentPage
  682. })
  683. }
  684. },
  685. // 关闭
  686. closeFn() {
  687. this.$store.commit('user/showMessage', 'no')
  688. },
  689. // 点击菜单
  690. clickMenu(path) {
  691. const curlArr = ['/notice', '/issue']
  692. // if (curlArr.includes(path)) {
  693. // path += '/index'
  694. // }
  695. this.$router.push({
  696. path
  697. })
  698. },
  699. handLogistics(row) {
  700. getListOrderTrack({ orderId: row.id }).then(res => {
  701. this.logisticsDetail = res.data
  702. })
  703. this.orderId = row.id
  704. this.visible = true
  705. },
  706. onClose() {
  707. this.logisticsDetail = []
  708. this.orderId = ''
  709. this.visible = false
  710. },
  711. handleJump(id) {
  712. this.$router.push({ path: `/supply/pickup/sum_list?id=${id}` })
  713. this.$store.commit('user/showMessage', 'no')
  714. }
  715. }
  716. }
  717. </script>
  718. <style lang="scss" scoped>
  719. ::v-deep .el-input__inner {
  720. /* width: 80px; */
  721. font-size: 16px;
  722. color: #333333;
  723. /* border: 0 !important; */
  724. }
  725. .dashboard {
  726. &-container {
  727. background: #f5f5f5;
  728. padding: 30px;
  729. min-height: calc(100vh - 86px);
  730. .top-container {
  731. .today-content {
  732. font-size: 14px;
  733. }
  734. }
  735. }
  736. }
  737. .cql {
  738. ::v-deep.el-table__header-wrapper {
  739. background-color: #f5f7fa;
  740. }
  741. }
  742. .dia-menu-title {
  743. padding: 10px 0;
  744. color: #000;
  745. font-weight: bold;
  746. }
  747. .dia-tip {
  748. padding: 10px 0;
  749. color: #000;
  750. font-weight: bold;
  751. }
  752. .dia-child {
  753. display: flex;
  754. flex-wrap: wrap;
  755. }
  756. .dia-item {
  757. flex: 0 1 220px;
  758. padding: 3px 0;
  759. }
  760. .menu-list {
  761. .main-title {
  762. margin: 10px 0 0;
  763. .el-icon-setting {
  764. cursor: pointer;
  765. font-size: 22px;
  766. }
  767. }
  768. .group {
  769. margin-bottom: 20px;
  770. .child {
  771. display: flex;
  772. flex-wrap: wrap;
  773. padding-left: 10px;
  774. .el-row {
  775. width: 100%;
  776. }
  777. .item {
  778. margin-top: 16px;
  779. }
  780. }
  781. }
  782. ::v-deep .el-link--inner {
  783. white-space: nowrap;
  784. overflow: hidden;
  785. text-overflow: ellipsis;
  786. }
  787. }
  788. .logistics-title {
  789. padding-bottom: 10px;
  790. }
  791. .tip {
  792. height: 200px;
  793. text-align: center;
  794. line-height: 200px;
  795. }
  796. </style>