index.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <template>
  2. <hc-sys :tabbar="false" isNavBar>
  3. <template #navBar>
  4. <view class="hc-home-nav-bar px-5 py-4">
  5. <view class="title">应用主页</view>
  6. <view class="icon">
  7. <text class="i-ri-layout-masonry-fill" v-if="isListType" @click="isListType = false"/>
  8. <text class="i-material-symbols-view-list-rounded" v-else @click="isListType = true"/>
  9. </view>
  10. </view>
  11. </template>
  12. <view class="relative px-5" v-if="msgCountData.taskCount > 0">
  13. <uni-notice-bar show-icon :text="`您有${msgCountData.taskCount}条待办任务,请注意及时处理`" @click="toTaskPage"/>
  14. </view>
  15. <template v-if="!isListType">
  16. <view class="hc-flex-conten mt-4">
  17. <view class="left-col-card-1" :class="isAnimation?'is-animation':''" @click="isDataFill">
  18. <view class="card-bg">
  19. <view class="icon">
  20. <text class="i-solar-calendar-search-outline"/>
  21. </view>
  22. </view>
  23. <view class="text-box">
  24. <text class="text">资料填报</text>
  25. </view>
  26. </view>
  27. <view class="right-col-card-1" :class="isAnimation?'is-animation':''">
  28. <view class="card-bg">
  29. <text class="text">进度查询</text>
  30. </view>
  31. <view class="icon">
  32. <text class="i-ic-outline-list-alt"/>
  33. </view>
  34. </view>
  35. <view class="right-col-card-2"
  36. :class="isAnimation?'is-animation':''"
  37. @click="homeToPage('/pages/ledger/index')"
  38. >
  39. <view class="card-bg">
  40. <text class="text">日志填报</text>
  41. </view>
  42. <view class="icon">
  43. <text class="i-mdi-text-box-edit-outline"/>
  44. </view>
  45. </view>
  46. </view>
  47. <view class="hc-flex-conten __150 mt-4">
  48. <view class="left-col-card-2" :class="isAnimation?'is-animation':''">
  49. <view class="card-bg">
  50. <view class="icon">
  51. <text class="i-fluent-task-list-square-settings-20-filled"/>
  52. </view>
  53. <view class="text-box">
  54. <text class="text">任务管理</text>
  55. </view>
  56. </view>
  57. </view>
  58. </view>
  59. <view class="hc-flex-conten __180 mt-4">
  60. <view class="left-col-card-3"
  61. :class="isAnimation?'is-animation':''"
  62. @click="homeToPage('/pages/image/index')"
  63. >
  64. <view class="card-bg">
  65. <view class="icon">
  66. <text class="i-solar-videocamera-record-linear"/>
  67. </view>
  68. </view>
  69. <view class="text-box">
  70. <text class="text">声像资料</text>
  71. </view>
  72. </view>
  73. <view class="right-col-card-3" :class="isAnimation?'is-animation':''">
  74. <view class="card-bg">
  75. <view class="icon">
  76. <text class="i-icon-park-outline-history-query"/>
  77. </view>
  78. <text class="text">资料查询</text>
  79. </view>
  80. </view>
  81. <view class="right-col-card-4" :class="isAnimation?'is-animation':''">
  82. <view class="card-bg">
  83. <text class="text">工单消息</text>
  84. </view>
  85. <view class="icon">
  86. <text class="i-icon-park-outline-message"/>
  87. </view>
  88. </view>
  89. </view>
  90. </template>
  91. <template v-else>
  92. <view class="hc-list-container">
  93. <view class="hc-list-item shadow-sm" :class="isAnimation?'a-l':''" @click="isDataFill">
  94. <view class="icon bg-1">
  95. <text class="i-solar-calendar-search-outline"/>
  96. </view>
  97. <view class="container">
  98. <view class="title">资料填报</view>
  99. <view class="text">派发监理通知单及监理指令</view>
  100. </view>
  101. </view>
  102. <view class="hc-list-item shadow-sm" :class="isAnimation?'a-r':''">
  103. <view class="icon bg-2">
  104. <text class="i-ic-outline-list-alt"/>
  105. </view>
  106. <view class="container">
  107. <view class="title">进度查询</view>
  108. <view class="text">资料进度数据统计查询</view>
  109. </view>
  110. </view>
  111. <view class="hc-list-item shadow-sm"
  112. :class="isAnimation?'a-l':''"
  113. @click="homeToPage('/pages/ledger/index')"
  114. >
  115. <view class="icon bg-3">
  116. <text class="i-mdi-text-box-edit-outline"/>
  117. </view>
  118. <view class="container">
  119. <view class="title">日志填报</view>
  120. <view class="text">施工及监理日志填报</view>
  121. </view>
  122. </view>
  123. <view class="hc-list-item shadow-sm" :class="isAnimation?'a-r':''">
  124. <view class="icon bg-4">
  125. <text class="i-fluent-form-48-regular"/>
  126. </view>
  127. <view class="container">
  128. <view class="title">资料填报</view>
  129. <view class="text">质检资料及试验资料数据填报</view>
  130. </view>
  131. </view>
  132. <view class="hc-list-item shadow-sm"
  133. :class="isAnimation?'a-l':''"
  134. @click="homeToPage('/pages/image/index')"
  135. >
  136. <view class="icon bg-5">
  137. <text class="i-solar-videocamera-record-linear"/>
  138. </view>
  139. <view class="container">
  140. <view class="title">声像资料</view>
  141. <view class="text">拍照及上传影像资料</view>
  142. </view>
  143. </view>
  144. <view class="hc-list-item shadow-sm" :class="isAnimation?'a-r':''">
  145. <view class="icon bg-6">
  146. <text class="i-icon-park-outline-history-query"/>
  147. </view>
  148. <view class="container">
  149. <view class="title">资料查询</view>
  150. <view class="text">质检及试验报表资料查看</view>
  151. </view>
  152. </view>
  153. <view class="hc-list-item shadow-sm" :class="isAnimation?'a-l':''">
  154. <view class="icon bg-7">
  155. <text class="i-solar-calendar-linear"/>
  156. </view>
  157. <view class="container">
  158. <view class="title">施工台账</view>
  159. <view class="text">完善外业台账数据</view>
  160. </view>
  161. </view>
  162. </view>
  163. </template>
  164. <!--弹窗-->
  165. <view class="hc-popover-box" :class="isPopovershow ? 'show' : ''">
  166. <view class="img-box">
  167. <view class="img-bg"/>
  168. </view>
  169. <view class="close-icon" @click="closePopover">
  170. <text class="i-material-symbols-cancel-rounded"/>
  171. </view>
  172. <view class="hc-popover-container">
  173. <view class="project-name">项目名称</view>
  174. <view class="contrac-name">合同段名称</view>
  175. <view class="tip-title">填报规则温馨提示</view>
  176. <view class="tip-content-box">
  177. <view class="tip-item">
  178. <view class="icon">
  179. <text class="i-ri-magic-fill"/>
  180. </view>
  181. <view class="text">填报之后务必点击保存按钮,避免数据丢失</view>
  182. </view>
  183. <view class="tip-item">
  184. <view class="icon">
  185. <text class="i-ri-magic-fill"/>
  186. </view>
  187. <view class="text">灰色按键为非必填项,系统已内置公式模型,可不用手动填写</view>
  188. </view>
  189. <view class="tip-item">
  190. <view class="icon">
  191. <text class="i-ri-magic-fill"/>
  192. </view>
  193. <view class="text">当前工序上报的报表数据必填项少于90%的填报率,系统不允许上报</view>
  194. </view>
  195. </view>
  196. <view class="mt-16">
  197. <uni-data-checkbox multiple v-model="checkbox1" :localdata="hobby"/>
  198. </view>
  199. <view class="mt-10">
  200. <button class="hc-btn rounded-36" type="primary" @click="startDataFill">开始填报</button>
  201. </view>
  202. </view>
  203. </view>
  204. </hc-sys>
  205. </template>
  206. <script setup>
  207. import {ref} from "vue";
  208. import {useAppStore} from "@/store";
  209. import {onShow, onHide} from '@dcloudio/uni-app'
  210. import mainApi from '~api/user/index';
  211. //变量
  212. const store = useAppStore()
  213. const isListType = ref(false);
  214. const checkbox1 = ref([])
  215. const hobby = [{text: '以后忽略此页面提示', value: 0}]
  216. //是否动画
  217. const isAnimation = ref(store.isAnimation)
  218. const msgCountData = ref(store.msgCountData)
  219. onShow(()=>{
  220. if(store.isAnimation) {
  221. isAnimation.value = true
  222. }
  223. userConfigInfo()
  224. })
  225. onHide(() => {
  226. isAnimation.value = false
  227. })
  228. //获取配置
  229. const userConfigInfo = async () => {
  230. const { data } = await mainApi.userConfigInfo()
  231. console.log(data)
  232. }
  233. //资料填报
  234. const isPopovershow = ref(false);
  235. const isDataFill = () => {
  236. isPopovershow.value = true;
  237. }
  238. //关闭弹窗
  239. const closePopover = () => {
  240. isPopovershow.value = false;
  241. }
  242. //开始填报
  243. const startDataFill = async () => {
  244. isPopovershow.value = false;
  245. if (checkbox1.value.length > 0) {
  246. const { data } = await mainApi.userConfigSave({
  247. appCheck: 2
  248. })
  249. console.log(data)
  250. }
  251. homeToPage('/pages/data-fill/index')
  252. }
  253. //跳转页面
  254. const homeToPage = (url) => {
  255. uni.navigateTo({
  256. url: url
  257. })
  258. }
  259. //跳转到任务页面
  260. const toTaskPage = () => {
  261. uni.switchTab({
  262. url: '/pages/task/index'
  263. })
  264. }
  265. </script>
  266. <style lang="scss" scoped>
  267. @import "@/style/index/index.scoped.scss";
  268. </style>