工单小程序2024-11-20
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

174 lines
3.3 KiB

6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
  1. <template>
  2. <view class="page">
  3. <navbar bgColor="#169bd5"/>
  4. <view class="Carousel-image">
  5. <view class="imgs">
  6. <uv-swiper
  7. :list="bannerList"
  8. indicator indicatorMode="dot"
  9. keyName="image"
  10. circular height="420">
  11. </uv-swiper>
  12. </view>
  13. <view class="search">
  14. <uv-search
  15. placeholder="请输入搜索工单号"
  16. bgColor="#fff"
  17. v-model="queryParams.title"></uv-search>
  18. </view>
  19. </view>
  20. <view class="festival">
  21. <uv-notice-bar
  22. @click="toNotice"
  23. :text="text" direction="column" ></uv-notice-bar>
  24. </view>
  25. <view class="task">
  26. <uv-grid :border="false">
  27. <uv-grid-item
  28. @click="$utils.navigateTo(item.url)"
  29. v-for="(item,index) in baseList" :key="index">
  30. <uv-icon
  31. :name="item.name"
  32. size="50rpx"></uv-icon>
  33. <text style="font-size: 28rpx;">{{item.title}}</text>
  34. </uv-grid-item>
  35. </uv-grid>
  36. </view>
  37. <view class="Urgent-Work-Order">
  38. <view class="Urgent-Work">
  39. 紧急工单
  40. </view>
  41. <WorkOrderitem
  42. v-for="(item,index) in list"
  43. :obj="item"
  44. :key="index"
  45. @click="$utils.navigateTo('/pages_order/order/WorkOrders?id=' + item.id)"
  46. />
  47. </view>
  48. <PrivacyAgreementPoup/>
  49. <tabber select="0"/>
  50. </view>
  51. </template>
  52. <script>
  53. import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
  54. import tabber from '@/components/base/tabbar.vue'
  55. import WorkOrderitem from '@/components/work/WorkOrderitem.vue'
  56. import mixinsList from '@/mixins/list.js'
  57. import { mapGetters } from 'vuex'
  58. export default {
  59. mixins: [mixinsList],
  60. components: {
  61. tabber,
  62. PrivacyAgreementPoup,
  63. WorkOrderitem,
  64. },
  65. data() {
  66. return {
  67. bannerList: [],
  68. CollectionList:[],
  69. mixinsListApi : 'queryTemplateList',
  70. baseList: [
  71. {
  72. name: 'photo',
  73. title: '全部工单',
  74. url : '/pages_order/order/WorkOrderList',
  75. },
  76. {
  77. name: 'lock',
  78. title: '汇总列表',
  79. url : '/pages_order/order/WorkOrderList',
  80. },
  81. ],
  82. NewsList : [],//公告列表
  83. text : [],//公告列表标题
  84. }
  85. },
  86. computed: {
  87. },
  88. onLoad() {
  89. this.queryParams.isEmergency = 1
  90. this.queryBannerList()
  91. this.queryNewsList()
  92. },
  93. methods: {
  94. //轮播图
  95. queryBannerList(){
  96. this.$api('queryBannerList', res =>{
  97. if(res.code == 200){
  98. this.bannerList = res.result.records
  99. }
  100. })
  101. },
  102. //公告列表
  103. queryNewsList(){
  104. this.$api('queryNewsList', res =>{
  105. if(res.code == 200){
  106. this.NewsList = res.result.records
  107. res.result.records.forEach(n => {
  108. this.text.push(n.title)
  109. })
  110. }
  111. })
  112. },
  113. toNotice(index){
  114. uni.navigateTo({
  115. url: '/pages_order/order/Worknotice?id=' + this.NewsList[index].id
  116. })
  117. },
  118. }
  119. }
  120. </script>
  121. <style scoped lang="scss">
  122. .Carousel-image {
  123. position: relative;
  124. display: inline-block;
  125. width: 100%;
  126. .search {
  127. height: 82rpx;
  128. width: 710rpx;
  129. background: #FFFFFF;
  130. margin: 20rpx auto;
  131. border-radius: 41rpx;
  132. box-sizing: border-box;
  133. padding: 0 15rpx;
  134. display: flex;
  135. align-items: center;
  136. position: absolute;
  137. top: 10px;
  138. left: 10px;
  139. }
  140. }
  141. .Urgent-Work-Order{
  142. padding: 20rpx;
  143. }
  144. .festival {
  145. padding: 20rpx;
  146. }
  147. .task {
  148. padding: 20rpx 0;
  149. background-color: #FFFFFF;
  150. margin: 20rpx;
  151. border-radius: 20rpx;
  152. box-shadow: 0 0 10rpx 10rpx #00000005;
  153. }
  154. </style>