checkGroup.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <!--自查督查 查核单位 -->
  2. <template>
  3. <view class="checkGroup">
  4. <tmNavbar :customBack="goBack" :is-back="true" :title="pageTitle" title-color="#292C33"></tmNavbar>
  5. <view class="list" v-for="item in list" @click="gotoCheckItemList(item)">
  6. <view :class="[item.completeFlag == 0?'mark noCompleted':'mark']">
  7. <text class="score">{{`${item.score}分`}}</text>
  8. <view class="status">{{item.completeFlag == 0?'未完成':'完成'}}</view>
  9. </view>
  10. <view class="name">{{item.departmentName}}</view>
  11. <view class="rowOne">
  12. {{`包含${item.pointCount}个查核要点,已完成${item.itemComplete}个查核项目`}}
  13. </view>
  14. <view class="rowTwo">
  15. 要点概览:{{item.pointList.reduce((prev,next)=>`${prev},${next.checkPointName}`,'')}}
  16. </view>
  17. <view class="footer">
  18. <view class="line">
  19. <view class="left">{{`职能科室:${item.functionDepartment}`}}</view>
  20. <view class="right">{{`${item.checkStartDate}~${item.checkEndDate}`}}</view>
  21. </view>
  22. <view class="line">
  23. <view class="left">自查情况</view>
  24. <view class="right">{{`得分:${item.selfScore} 改善:${item.improveStatus}`}}</view>
  25. </view>
  26. </view>
  27. </view>
  28. </view>
  29. </template>
  30. <script>
  31. import {
  32. mapState
  33. } from 'vuex';
  34. import tmNavbar from "@/components/tm-navbar/tm-navbar.vue";
  35. export default {
  36. components:{
  37. tmNavbar
  38. },
  39. data() {
  40. return {
  41. list:[],
  42. pageTitle:'标题'
  43. };
  44. },
  45. computed: {
  46. ...mapState({
  47. ifReloadPageData: state => state.checkGroup.ifReloadPageData,
  48. })
  49. },
  50. watch:{
  51. ifReloadPageData(cur,prev){
  52. if(cur){
  53. this.getData(this.situationId,this.num,this.planType);
  54. }
  55. }
  56. },
  57. onLoad({
  58. situationId,
  59. num,
  60. planType,
  61. name,
  62. entry,//点击进来的入口
  63. systemSituationType,
  64. }) {
  65. this.situationId = situationId;
  66. this.num = num;
  67. this.entry = entry;
  68. this.planType = planType;
  69. this.pageTitle = name;
  70. this.getData(situationId,num,planType);
  71. this.systemSituationType = systemSituationType;
  72. },
  73. methods: {
  74. goBack(e) {
  75. this.$store.commit('situationDetail/comChangeState', {
  76. key: 'ifReloadPageData',
  77. data: true
  78. });
  79. uni.navigateBack();
  80. },
  81. getData(situationId,num,planType) {
  82. this.$store.dispatch({
  83. type: 'planDetailList/commActions',
  84. payload: {
  85. key: 'getPlanList',
  86. data: {
  87. situationId: situationId,
  88. num: num,
  89. planType: planType,
  90. entry:this.entry
  91. }
  92. }
  93. }).then((data) => {
  94. this.list = data;
  95. this.$store.commit('checkGroup/comChangeState', {
  96. key: 'ifReloadPageData',
  97. data: false
  98. });
  99. })
  100. },
  101. gotoCheckItemList(item){
  102. uni.navigateTo({
  103. url: `/pages/checkMainPoints/checkMainPoints?systemSituationType=${this.systemSituationType}&functionId=${item.functionId}&isZichaDucha=${true}&departmentId=${item.departmentId}`
  104. });
  105. }
  106. }
  107. }
  108. </script>
  109. <style lang="less" scoped>
  110. .checkGroup {
  111. padding: 25rpx;
  112. .list {
  113. position: relative;
  114. width: 700rpx;
  115. height: 280rpx;
  116. padding: 25rpx;
  117. box-sizing: border-box;
  118. background: #FFFFFF;
  119. box-shadow: 0px 3.75rpx 12.5rpx 0px rgba(0, 13, 51, 0.1);
  120. border-radius: 5rpx;
  121. margin-bottom: 25rpx;
  122. .mark {
  123. display: inline-flex;
  124. flex-direction: row;
  125. justify-content: flex-end;
  126. align-items: center;
  127. position: absolute;
  128. top: 0;
  129. right: 0;
  130. // width: 237.5rpx;
  131. height: 35rpx;
  132. background: rgba(41, 204, 150, .1);
  133. border-radius: 0px 5rpx 0px 28.13rpx;
  134. .score {
  135. font-size: 17.5rpx;
  136. font-family: SourceHanSansCN-Medium, SourceHanSansCN;
  137. font-weight: 500;
  138. color: #29CC96;
  139. padding: 0 25rpx;
  140. }
  141. .status {
  142. display: inline-block;
  143. padding: 0 18.75rpx;
  144. height: 35rpx;
  145. line-height: 35rpx;
  146. text-align: center;
  147. background: #29CC96;
  148. border-radius: 0px 5rpx 0px 28.13rpx;
  149. font-size: 17.5rpx;
  150. font-family: SourceHanSansCN-Medium, SourceHanSansCN;
  151. font-weight: 500;
  152. color: #FFFFFF;
  153. }
  154. &.noCompleted {
  155. background: rgba(255, 204, 102, .1);
  156. .score {
  157. color: rgba(255, 170, 0, 1);
  158. }
  159. .status {
  160. background: rgba(255, 170, 0, 1);
  161. }
  162. }
  163. }
  164. .name {
  165. font-size: 35rpx;
  166. font-family: SourceHanSansCN-Light, SourceHanSansCN;
  167. font-weight: 300;
  168. color: #292C33;
  169. margin-bottom: 25rpx;
  170. }
  171. .rowOne {
  172. // height: 20rpx;
  173. // line-height: 20rpx;
  174. font-size: 20rpx;
  175. font-family: SourceHanSansCN-Bold, SourceHanSansCN;
  176. font-weight: bold;
  177. color: #292C33;
  178. margin-bottom: 15rpx;
  179. }
  180. .rowTwo {
  181. // height: 20rpx;
  182. // line-height: 20rpx;
  183. font-size: 20rpx;
  184. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  185. font-weight: 400;
  186. color: #666F80;
  187. margin-bottom: 25rpx;
  188. white-space: nowrap;
  189. overflow: hidden;
  190. text-overflow: ellipsis;
  191. }
  192. .footer {
  193. padding-top: 18.75rpx;
  194. border-top: 0.63rpx solid #DADEE6;
  195. .line {
  196. display: flex;
  197. flex-direction: row;
  198. justify-content: space-between;
  199. align-items: center;
  200. margin-bottom: 15rpx;
  201. .left {
  202. width: 50%;
  203. font-size: 17.5rpx;
  204. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  205. font-weight: 400;
  206. color: #666E80;
  207. white-space: nowrap;
  208. overflow: hidden;
  209. text-overflow: ellipsis;
  210. }
  211. .right {
  212. text-align: right;
  213. width: 50%;
  214. font-size: 17.5rpx;
  215. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  216. font-weight: 400;
  217. color: #666E80;
  218. white-space: nowrap;
  219. overflow: hidden;
  220. text-overflow: ellipsis;
  221. }
  222. &:last-child {
  223. margin-bottom: 0;
  224. }
  225. }
  226. }
  227. }
  228. }
  229. </style>