list.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. <template>
  2. <view>
  3. <view v-if="datalist.length>0">
  4. <!-- 履职信息 -->
  5. <block v-if="type=='lzxx'">
  6. <view class="caselist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.memberId)">
  7. <view class="head flexc mb18">
  8. <image v-if="ite.avatar" :src="baseUrl+ite.avatar"></image>
  9. <image v-else :src="avatarimg"></image>
  10. <view class="headr">
  11. <view class="name">{{ite.name}}</view>
  12. <view class="unit">{{kaType(ite.boundary,jblist)}};{{kaType(ite.partyAffiliation,dplist)}}</view>
  13. </view>
  14. </view>
  15. <!-- <view class="tit overtwo">{{ite.title}}</view> -->
  16. <view class="ftxt">
  17. <text>工作单位及职位</text>
  18. <view>{{ite.unit}}</view>
  19. </view>
  20. <view class="ftxt">
  21. <text>联系方式</text>
  22. <view>{{ite.phonenumber}}</view>
  23. </view>
  24. <view class="flexw">
  25. <view class="ftxt">
  26. <text>履职得分</text>
  27. <view class="cofe">{{ite.score}}</view>
  28. </view>
  29. <view class="ftxt">
  30. <text>综合排名</text>
  31. <view class="cofe">{{ite.ranking}}</view>
  32. </view>
  33. </view>
  34. <view class="casebtn">
  35. <!-- <view class="btn btn2">审核</view> -->
  36. <view class="btn btn4" v-if="checkPermi(['member:info:edit'])" @click.stop="getTuiFn(ite.memberId,'edit')">修改</view>
  37. <view class="btn btn1" v-if="checkPermi(['member:info:remove'])" @click.stop="getTuiFn(ite.memberId,'del')">删除</view>
  38. </view>
  39. </view>
  40. </block>
  41. <!-- 加分记录 -->
  42. <block v-if="type=='jfju'">
  43. <view class="caselist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.memberId)">
  44. <view class="tit overtwo">{{kaType(ite.boundary,jblist)}}</view>
  45. <view class="ftxt">
  46. <text>考核类型</text>
  47. <view>{{kaType(ite.checkType,khlxList)}}</view>
  48. </view>
  49. <view class="ftxt">
  50. <text>加分类型</text>
  51. <view>{{kaType(ite.bonusType,jflxList)}}</view>
  52. </view>
  53. <view class="ftxt">
  54. <text>加分时间</text>
  55. <view>{{ite.bonusTime}}</view>
  56. </view>
  57. <view class="ftxt">
  58. <text>分值</text>
  59. <view class="cofe">{{ite.score}}</view>
  60. </view>
  61. <view class="ftxt">
  62. <text>加分事由</text>
  63. <view >{{ite.bonusReason}}</view>
  64. </view>
  65. <view class="casebtn">
  66. <!-- <view class="btn btn2">审核</view> -->
  67. <view class="btn btn4" v-if="checkPermi(['zxBonus:bonus:edit'])" @click.stop="getTuiFn(ite.bonusId,'edit')">修改</view>
  68. <view class="btn btn1" v-if="checkPermi(['zxBonus:bonus:remove'])" @click.stop="getTuiFn(ite.bonusId,'del')">删除</view>
  69. </view>
  70. </view>
  71. </block>
  72. <!-- 提案方面 -->
  73. <block v-if="type==2">
  74. <view class="talist">
  75. <view class="tit overtwo">关于拓展市校合作,助推高质量发展的建议</view>
  76. <view class="flexc">
  77. <view class="f12 co6 fw5 mr24">个人提案</view>
  78. <view class="f12 co6 fw5">2024-01-01</view>
  79. </view>
  80. <view class="mt9 flexcj">
  81. <!-- <view class="btna">已立案</view> -->
  82. <view class="btna">办理中</view>
  83. <!-- <view class="btna">已办结</view> -->
  84. <view class="btnb">4.3 <text>分</text></view>
  85. </view>
  86. </view>
  87. </block>
  88. <view class="shax" v-if="wtdt">{{wtdt}}</view>
  89. </view>
  90. <block v-else>
  91. <no-data></no-data>
  92. </block>
  93. </view>
  94. </template>
  95. <script>
  96. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  97. import config from '@/config'
  98. const baseUrl = config.baseUrl
  99. import { selectValue } from '@/utils/common.js';
  100. import noData from "@/components/nodata/nodata.vue"
  101. export default {
  102. props:{
  103. datalist: {
  104. type: Array,
  105. default () {
  106. return []
  107. }
  108. },
  109. dplist: {
  110. type: Array,
  111. default () {
  112. return []
  113. }
  114. },
  115. jblist: {
  116. type: Array,
  117. default () {
  118. return []
  119. }
  120. },
  121. jcList: {
  122. type: Array,
  123. default () {
  124. return []
  125. }
  126. },
  127. khlxList: {
  128. type: Array,
  129. default () {
  130. return []
  131. }
  132. },
  133. jflxList: {
  134. type: Array,
  135. default () {
  136. return []
  137. }
  138. },
  139. wtdt:{
  140. type: String,
  141. default () {
  142. return ''
  143. }
  144. },
  145. type:{
  146. type: [String,Number],
  147. default () {
  148. return ''
  149. }
  150. },
  151. },
  152. components:{
  153. noData
  154. },
  155. data(){
  156. return{
  157. avatarimg:require("@/static/images/mine/header.png"),
  158. start:require("@/work/static/images/start.png"),
  159. nstart:require("@/work/static/images/nstart.png"),
  160. zanimg:require("@/work/static/images/zanico.png"),
  161. nzanimg:require("@/work/static/images/nzanico.png"),
  162. flower:require("@/work/static/images/flower.png"),
  163. nflower:require("@/work/static/images/nflower.png"),
  164. }
  165. },
  166. onLoad: function() {
  167. },
  168. mounted() {
  169. this.baseUrl=baseUrl;
  170. },
  171. methods:{
  172. checkPermi, checkRole,
  173. kaType(ite,list){
  174. return selectValue(list, ite);
  175. },
  176. getDetail(e){
  177. this.$emit('getDetail',e)
  178. },
  179. getTuiFn(id,txt){
  180. var obj={
  181. type:txt,
  182. id:id,
  183. }
  184. this.$emit('getTuiFn',obj)
  185. },
  186. typeFn(data){
  187. if(data){
  188. var newArr=[]
  189. var astr=data.split('-')
  190. astr.forEach(ite=>{
  191. var a=ite.substring(0,5);
  192. newArr.push(a)
  193. })
  194. return newArr.join('-')
  195. }else{
  196. return ''
  197. }
  198. },
  199. },
  200. }
  201. </script>
  202. <style lang="scss" scoped>
  203. .caselist{background: #FFFFFF;border-radius: 30rpx;margin-top: 24rpx;padding: 38rpx 24rpx 8rpx;
  204. .head{
  205. image{width: 120rpx;height: 120rpx;margin-right: 36rpx;flex: 0 0 auto;border-radius: 50%;}
  206. .headr{
  207. .name{font-weight: bold;font-size: 30rpx;color: #222327;margin-bottom: 14rpx;}
  208. .unit{font-weight: 500;font-size: 26rpx;color: #666666;}
  209. }
  210. }
  211. .tit{font-weight: bold;font-size: 32rpx;color: #222327;margin-bottom: 42rpx;}
  212. .ftxt{display: flex;align-items: flex-start;margin-bottom: 32rpx;flex:0 1 auto;min-width: 50%;
  213. text{font-weight: bold;font-size: 26rpx;color: #CACACA;flex: 0 0 auto;min-width: 104rpx;text-align-last: justify;}
  214. view{flex: 1;color: #343434;font-size: 26rpx;margin-left: 20rpx;line-height: 34rpx;}
  215. }
  216. .casebtn{padding: 26rpx 0;border-top: 2rpx solid #E6E6E6;display: flex;align-items: center;justify-content: flex-end;
  217. .ftit{font-weight: bold;font-size: 26rpx;color: #CACACA;flex: 1;
  218. text{color: $com-cd3;margin-left: 20rpx;font-weight:500;min-width: 104rpx;text-align-last: justify;}
  219. }
  220. .lftit{font-weight: 500;font-size: 26rpx;color: #666666;flex:1;
  221. .lfdet{color: $com-cd3;text-decoration: underline;}
  222. }
  223. .zanimg{width: 22rpx;height: 20rpx;margin-right: 14rpx;}
  224. .staimg{width: 24rpx;height: 24rpx;margin-right: 14rpx;}
  225. .btn{min-width: 128rpx;height: 52rpx;border-radius: 26rpx;font-weight: bold;flex: 0 0 auto;
  226. font-size: 26rpx;margin-left: 24rpx;line-height: 52rpx;text-align: center;padding: 0 32rpx;box-sizing: border-box;
  227. &.btn1{background: #FFEDED;color: #FF4141;}
  228. &.btn2{background: #E4EEFF;color: #1D64E2;}
  229. &.btn3{background: #ECECEC;color: #666666;}
  230. &.btn4{background: #E9FFE9;color: #28C529;}
  231. }
  232. }
  233. }
  234. .talist{width: 100%;background: #F2F6FF;border-radius: 10rpx;padding: 24rpx 24rpx;
  235. .tit{font-weight: bold;font-size: 30rpx;color: #222327;margin-bottom: 16rpx;}
  236. .btna{font-weight: bold;font-size: 24rpx;color: #FF4E00;}
  237. .btnb{font-weight: bold;font-size: 46rpx;color: #1D64E2;
  238. text{font-size: 24rpx;color: #222327;margin-left: 8rpx;}
  239. }
  240. }
  241. </style>