list.vue 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  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.studio,wybgslist)}}</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.bonusId)">
  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>{{ite.bonusType}}</view>
  53. </view>
  54. <!-- <view class="ftxt">
  55. <text>加分时间</text>
  56. <view>{{ite.bonusTime}}</view>
  57. </view> -->
  58. <view class="ftxt">
  59. <text>分值</text>
  60. <view class="cofe">{{ite.score}}</view>
  61. </view>
  62. <view class="ftxt">
  63. <text>加分事由</text>
  64. <view class="overtwo">{{ite.bonusReason}}</view>
  65. </view>
  66. <view class="casebtn">
  67. <!-- <view class="btn btn2">审核</view> -->
  68. <view class="btn btn4" v-if="checkPermi(['zxBonus:bonus:edit'])" @click.stop="getTuiFn(ite.bonusId,'edit')">修改</view>
  69. <view class="btn btn1" v-if="checkPermi(['zxBonus:bonus:remove'])" @click.stop="getTuiFn(ite.bonusId,'del')">删除</view>
  70. </view>
  71. </view>
  72. </block>
  73. <!-- 提案方面 -->
  74. <block v-if="type==2">
  75. <view class="talist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.proposalId)">
  76. <view class="tit overtwo">{{ite.title}}</view>
  77. <view class="flexc">
  78. <view class="f12 co6 fw5 mr24">{{ite.isJointly=='是'?'联名提案':'个人提案'}}</view>
  79. <view class="f12 co6 fw5">{{ite.createTime}}</view>
  80. </view>
  81. <view class="mt9 flexcj">
  82. <view class="btna">{{kaType(ite.proposalProgress,tajdlist)}}</view>
  83. <!-- <view class="btnb">4.3 <text>分</text></view> -->
  84. </view>
  85. </view>
  86. </block>
  87. <!-- 社情民意集合 -->
  88. <block v-if="type==3">
  89. <view class="talist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.sqmyId)">
  90. <view class="tit overtwo">{{ite.title}}</view>
  91. <view class="flexc">
  92. <view class="f12 co6 fw5 mr24">{{kaType(ite.topicType,ztlxlist)}}</view>
  93. <view class="f12 co6 fw5">{{ite.createTime}}</view>
  94. </view>
  95. <view class="mt9 flexcj">
  96. <view class="btna">{{kaType(ite.sqmyProgress,sqjdlist)}}</view>
  97. <!-- <view class="btnb">4.3 <text>分</text></view> -->
  98. </view>
  99. </view>
  100. </block>
  101. <!-- 会议集合 -->
  102. <block v-if="type==4">
  103. <view class="talist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.conferenceId)">
  104. <view class="tit overtwo">{{ite.conferenceTitle}}</view>
  105. <view class="f12 co6 fw5 mr24">{{kaType(ite.conferenceType,hylxlist)}}</view>
  106. <view class="f12 co6 fw5">{{ite.conferenceDate}} {{ite.conferenceTime}}</view>
  107. <view class="mt9 flexcj">
  108. <!-- <view class="btna">{{kaType(ite.proposalProgress,tajdlist)}}</view> -->
  109. <!-- <view class="btnb">4.3 <text>分</text></view> -->
  110. </view>
  111. </view>
  112. </block>
  113. <!-- 活动集合 -->
  114. <block v-if="type==5||type==8||type==9||type==10||type==11" >
  115. <view class="talist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.activityId)">
  116. <view class="tit overtwo">{{ite.activityTitle}}</view>
  117. <view class="flexc">
  118. <view class="f12 co6 fw5 mr24">{{kaType(ite.activityType,hdlxlist)}}</view>
  119. <view class="f12 co6 fw5">{{ite.activityDate}} {{ite.activityTime}}</view>
  120. </view>
  121. </view>
  122. </block>
  123. <!-- 发言集合 -->
  124. <block v-if="type==6">
  125. <view class="talist" v-for="(ite,idx) in datalist" :key='idx'>
  126. <view class="tit overtwo">{{ite.speakTitle}}</view>
  127. <view class="flexc">
  128. <view class="f12 co6 fw5 mr24">{{ite.conferenceTitle}}</view>
  129. <view class="f12 co6 fw5">{{ite.speakUnit}} {{ite.speakTime}}</view>
  130. </view>
  131. </view>
  132. </block>
  133. <!-- 招商集合 -->
  134. <block v-if="type==7" >
  135. <view class="talist" v-for="(ite,idx) in datalist" :key='idx' @click="getDetail(ite.investmentId)">
  136. <view class="tit overtwo">{{ite.clueName}}</view>
  137. <view class="flexc">
  138. <view class="f12 co6 fw5 mr24">{{ite.investmentAmount}}</view>
  139. <view class="f12 co6 fw5">{{ite.contactsName}} {{ite.contactsPhone}}</view>
  140. </view>
  141. </view>
  142. </block>
  143. <view class="shax" v-if="wtdt">{{wtdt}}</view>
  144. </view>
  145. <block v-else>
  146. <no-data></no-data>
  147. </block>
  148. </view>
  149. </template>
  150. <script>
  151. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  152. import config from '@/config'
  153. const baseUrl = config.baseUrl
  154. import { selectValue } from '@/utils/common.js';
  155. import noData from "@/components/nodata/nodata.vue"
  156. export default {
  157. props:{
  158. datalist: {
  159. type: Array,
  160. default () {
  161. return []
  162. }
  163. },
  164. wybgslist: {
  165. type: Array,
  166. default () {
  167. return []
  168. }
  169. },
  170. jblist: {
  171. type: Array,
  172. default () {
  173. return []
  174. }
  175. },
  176. sqjdlist:{
  177. type: Array,
  178. default () {
  179. return []
  180. }
  181. },
  182. khlxList: {
  183. type: Array,
  184. default () {
  185. return []
  186. }
  187. },
  188. tajdlist:{
  189. type: Array,
  190. default () {
  191. return []
  192. }
  193. },
  194. ztlxlist:{
  195. type: Array,
  196. default () {
  197. return []
  198. }
  199. },
  200. hylxlist:{
  201. type: Array,
  202. default () {
  203. return []
  204. }
  205. },
  206. hdlxlist:{
  207. type: Array,
  208. default () {
  209. return []
  210. }
  211. },
  212. jflxList: {
  213. type: Array,
  214. default () {
  215. return []
  216. }
  217. },
  218. wtdt:{
  219. type: String,
  220. default () {
  221. return ''
  222. }
  223. },
  224. type:{
  225. type: [String,Number],
  226. default () {
  227. return ''
  228. }
  229. },
  230. },
  231. components:{
  232. noData
  233. },
  234. data(){
  235. return{
  236. avatarimg:require("@/static/images/mine/header.png"),
  237. start:require("@/work/static/images/start.png"),
  238. nstart:require("@/work/static/images/nstart.png"),
  239. zanimg:require("@/work/static/images/zanico.png"),
  240. nzanimg:require("@/work/static/images/nzanico.png"),
  241. flower:require("@/work/static/images/flower.png"),
  242. nflower:require("@/work/static/images/nflower.png"),
  243. baseUrl:"",
  244. }
  245. },
  246. onLoad: function() {
  247. },
  248. mounted() {
  249. this.baseUrl=baseUrl;
  250. },
  251. methods:{
  252. checkPermi, checkRole,
  253. kaType(ite,list){
  254. return selectValue(list, ite);
  255. },
  256. getDetail(e){
  257. this.$emit('getDetail',e)
  258. },
  259. getTuiFn(id,txt){
  260. var obj={
  261. type:txt,
  262. id:id,
  263. }
  264. this.$emit('getTuiFn',obj)
  265. },
  266. typeFn(data){
  267. if(data){
  268. var newArr=[]
  269. var astr=data.split('-')
  270. astr.forEach(ite=>{
  271. var a=ite.substring(0,5);
  272. newArr.push(a)
  273. })
  274. return newArr.join('-')
  275. }else{
  276. return ''
  277. }
  278. },
  279. },
  280. }
  281. </script>
  282. <style lang="scss" scoped>
  283. .caselist{background: #FFFFFF;border-radius: 30rpx;margin-top: 24rpx;padding: 38rpx 24rpx 8rpx;
  284. .head{
  285. image{width: 120rpx;height: 120rpx;margin-right: 36rpx;flex: 0 0 auto;border-radius: 50%;}
  286. .headr{
  287. .name{font-weight: bold;font-size: 30rpx;color: #222327;margin-bottom: 14rpx;}
  288. .unit{font-weight: 500;font-size: 26rpx;color: #666666;}
  289. }
  290. }
  291. .tit{font-weight: bold;font-size: 32rpx;color: #222327;margin-bottom: 42rpx;}
  292. .ftxt{display: flex;align-items: flex-start;margin-bottom: 32rpx;flex:0 1 auto;min-width: 50%;
  293. text{font-weight: bold;font-size: 26rpx;color: #CACACA;flex: 0 0 auto;min-width: 104rpx;text-align-last: justify;}
  294. view{flex: 1;color: #343434;font-size: 26rpx;margin-left: 20rpx;line-height: 34rpx;}
  295. }
  296. .casebtn{padding: 26rpx 0;border-top: 2rpx solid #E6E6E6;display: flex;align-items: center;justify-content: flex-end;
  297. .ftit{font-weight: bold;font-size: 26rpx;color: #CACACA;flex: 1;
  298. text{color: $com-cd3;margin-left: 20rpx;font-weight:500;min-width: 104rpx;text-align-last: justify;}
  299. }
  300. .lftit{font-weight: 500;font-size: 26rpx;color: #666666;flex:1;
  301. .lfdet{color: $com-cd3;text-decoration: underline;}
  302. }
  303. .zanimg{width: 22rpx;height: 20rpx;margin-right: 14rpx;}
  304. .staimg{width: 24rpx;height: 24rpx;margin-right: 14rpx;}
  305. .btn{min-width: 128rpx;height: 52rpx;border-radius: 26rpx;font-weight: bold;flex: 0 0 auto;
  306. font-size: 26rpx;margin-left: 24rpx;line-height: 52rpx;text-align: center;padding: 0 32rpx;box-sizing: border-box;
  307. &.btn1{background: #FFEDED;color: #FF4141;}
  308. &.btn2{background: #E4EEFF;color: #1D64E2;}
  309. &.btn3{background: #ECECEC;color: #666666;}
  310. &.btn4{background: #E9FFE9;color: #28C529;}
  311. }
  312. }
  313. }
  314. .talist{width: 100%;background: #F2F6FF;border-radius: 10rpx;padding: 24rpx 24rpx;margin-bottom: 24rpx;
  315. .tit{font-weight: bold;font-size: 30rpx;color: #222327;margin-bottom: 16rpx;}
  316. .btna{font-weight: bold;font-size: 24rpx;color: #FF4E00;}
  317. .btnb{font-weight: bold;font-size: 46rpx;color: #1D64E2;
  318. text{font-size: 24rpx;color: #222327;margin-left: 8rpx;}
  319. }
  320. }
  321. </style>