checkGroup.vue 6.0 KB

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