list.vue 9.8 KB

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