list.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. <template>
  2. <view>
  3. <view v-if="datalist.length>0">
  4. <!-- 申报业务 v-if="listtype=='case'"-->
  5. <block v-if="type=='work'">
  6. <view class="lists" v-for="(ite,idx) in datalist" @click="getDetail(ite.loanApplicationId)">
  7. <view class="listtop">
  8. <view class="toptit over">{{ite.enterpriseName}}</view>
  9. <view class="statbox" v-if="ite.isNew=='Y'">专精特新<image :src="start"></image></view>
  10. </view>
  11. <view class="listsm">
  12. <view class="txt"><text class="tit">贷款编号</text><text class="line">|</text><text>{{ite.loanApplicationNumber}}</text></view>
  13. <view class="txt" v-if="ite.loanApplicationType!=1&&ite.loanApplicationType!=4"><text class="tit">审核状态</text><text class="line">|</text><text class="co28">{{kaType(ite.auditSchedule,shjdlist)}}
  14. </text></view>
  15. <view class="txt"><text class="tit">申报时间</text><text class="line">|</text><text>{{ite.applicationTime}}</text></view>
  16. <view class="txt"><text class="tit">归档时间</text><text class="line">|</text><text>{{ite.fileTime}}</text></view>
  17. <view class="flexcw">
  18. <view class="txt"><text class="tit">申请额度</text><text class="line">|</text><text>{{ite.applicationAmount}}万元</text></view>
  19. <view class="txt"><text class="tit">使用期限</text><text class="line">|</text><text>{{ite.usagePeriod}}月</text></view>
  20. <view class="txt"><text class="tit">申贷银行</text><text class="line">|</text><text>{{kaType(ite.applicationBank,sdyhlist)}}</text></view>
  21. <view class="txt"><text class="tit">担保类型</text><text class="line">|</text><text>{{kaType(ite.guaranteeType,dblxlist)}}</text></view>
  22. <view class="txt"><text class="tit">资金用途</text><text class="line">|</text><text>{{ite.purposeFunds}}</text></view>
  23. <view class="txt"><text class="tit">还款来源</text><text class="line">|</text><text>{{ite.repaymentSource}}</text></view>
  24. </view>
  25. </view>
  26. </view>
  27. </block>
  28. <!-- 客户 -->
  29. <block v-if="type=='custom'">
  30. <view class="lists" v-for="(ite,idx) in datalist" @click="getDetail(ite.userId)">
  31. <view class="listtop">
  32. <view class="head" v-if="ite.realName">{{ite.realName.substring(0,1)}}</view>
  33. <view class="flex1">
  34. <view class="headt">{{ite.realName}}</view>
  35. <view class="headx">资料更新时间 | {{ite.updateTime||ite.createTime}}</view>
  36. </view>
  37. </view>
  38. <view class="listsm">
  39. <view class="txt"><text class="tit">身份证号</text><text class="line">|</text><text>{{ite.idCard}}</text>
  40. <view class="copyimg">
  41. <image :src="copy" ></image>
  42. </view>
  43. </view>
  44. <view class="txt"><text class="tit">居住地址</text><text class="line">|</text><text>{{ite.address}}</text></view>
  45. <view class="txt"><text class="tit">手机号码</text><text class="line">|</text><text>{{ite.phonenumber}}</text></view>
  46. <view class="flexcw">
  47. <view class="txt"><text class="tit">关联企业</text><text class="line">|</text><text>{{ite.sysUserEnterpriseNum}}家</text></view>
  48. <view class="txt"><text class="tit">历史申贷记录</text><text class="line">|</text><text>{{ite.loanApplicationNum}}次</text></view>
  49. </view>
  50. </view>
  51. </view>
  52. </block>
  53. <view class="shax" v-if="wtdt">{{wtdt}}</view>
  54. </view>
  55. <block v-else>
  56. <no-data></no-data>
  57. </block>
  58. </view>
  59. </template>
  60. <script>
  61. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  62. import { selectValue } from '@/utils/common.js';
  63. import noData from "@/components/nodata/nodata.vue"
  64. export default {
  65. props:{
  66. datalist: {
  67. type: Array,
  68. default () {
  69. return []
  70. }
  71. },
  72. sdyhlist: {
  73. type: Array,
  74. default () {
  75. return []
  76. }
  77. },
  78. dblxlist: {
  79. type: Array,
  80. default () {
  81. return []
  82. }
  83. },
  84. shjdlist:{
  85. type: Array,
  86. default () {
  87. return []
  88. }
  89. },
  90. wtdt:{
  91. type: String,
  92. default () {
  93. return ''
  94. }
  95. },
  96. type:{
  97. type: [String,Number],
  98. default () {
  99. return ''
  100. }
  101. },
  102. },
  103. components:{
  104. noData
  105. },
  106. data(){
  107. return{
  108. start:require('@/work/static/images/start.png'),
  109. copy:require('@/work/static/images/copy.png'),
  110. rimg:require('@/work/static/images/rimga.png'),
  111. files:require('@/work/static/images/files.png'),
  112. filz:require('@/work/static/images/filz.png'),
  113. titimg:require('@/work/static/images/infotit.png'),
  114. fup:require('@/work/static/images/fdown.png'),
  115. zlist:[]
  116. }
  117. },
  118. onLoad: function() {
  119. },
  120. methods:{
  121. checkPermi, checkRole,
  122. kaType(ite,list){
  123. return selectValue(list, ite);
  124. },
  125. getDetail(e){
  126. this.$emit('getDetail',e)
  127. },
  128. getXzFn(ite){
  129. this.$emit('getXzFn',ite)
  130. },
  131. getDel(e){
  132. this.$emit('getDel',e)
  133. },
  134. getEdit(e){
  135. this.$emit('getEdit',e)
  136. },
  137. getZhan(id){
  138. var num=this.zlist.indexOf(id);
  139. if(num!=-1){
  140. this.zlist.splice(num,1)
  141. }else{
  142. this.zlist.push(id)
  143. }
  144. },
  145. getTuiFn(ite,txt,sh){
  146. var that=this;
  147. // if(txt=='scfk'&&sh==0){
  148. // uni.showModal({
  149. // title: '确认立案',
  150. // content: "是否确认立案",
  151. // cancelText: '取消',
  152. // confirmText: '确认',
  153. // success: function(res) {
  154. // if (res.confirm) {
  155. // var obj={
  156. // id:ite.proposalId,
  157. // type:txt,
  158. // sh:sh,
  159. // }
  160. // that.$emit('getTuiFn',obj)
  161. // } else if (res.cancel) {
  162. // // console.log('用户点击取消');
  163. // }
  164. // }
  165. // });
  166. // }else
  167. if(txt=='lmta'){
  168. var str='同意'
  169. if(sh==2){
  170. str='反对'
  171. }
  172. uni.showModal({
  173. title: '确认'+str+'联名',
  174. content: "是否确认"+str+"联名",
  175. cancelText: '取消',
  176. confirmText: '确认',
  177. success: function(res) {
  178. if (res.confirm) {
  179. var obj={
  180. id:ite.proposalId,
  181. type:txt,
  182. sh:sh,
  183. }
  184. that.$emit('getTuiFn',obj)
  185. } else if (res.cancel) {
  186. // console.log('用户点击取消');
  187. }
  188. }
  189. });
  190. }else{
  191. var obj={
  192. id:ite.proposalId,
  193. type:txt,
  194. sh:sh,
  195. ite:ite
  196. }
  197. this.$emit('getTuiFn',obj)
  198. }
  199. },
  200. typeFn(data){
  201. if(data){
  202. var newArr=[]
  203. var astr=data.split('-')
  204. astr.forEach(ite=>{
  205. var a=ite.substring(0,5);
  206. newArr.push(a)
  207. })
  208. return newArr.join('-')
  209. }else{
  210. return ''
  211. }
  212. },
  213. },
  214. }
  215. </script>
  216. <style lang="scss" scoped>
  217. .lists{background: #FFFFFF;box-shadow: 0px 0px 10rpx 0px rgba(216,216,216,0.4);border-radius: 20rpx;padding: 0 20rpx;margin-bottom: 24rpx;
  218. &.qy{padding: 0 24rpx;
  219. .listtop{display: block;
  220. padding: 40rpx 14rpx 42rpx;
  221. }
  222. .listsm{padding: 40rpx 14rpx 2rpx 0;
  223. .txt{font-size: 30rpx;margin-bottom: 44rpx;padding-left: 14rpx;
  224. text{color: #666666;}
  225. }
  226. }
  227. }
  228. &.sdjl{
  229. .listsm{padding: 40rpx 10rpx 2rpx 0;
  230. .txt{font-size: 30rpx;margin-bottom: 44rpx;padding-left: 10rpx;align-items: flex-start;
  231. text{color: #666666;}
  232. }
  233. }
  234. .look{flex: 0 0 auto;display: inline-flex;margin-left: 16rpx;line-height: 40rpx;font-weight: 500;font-size: 26rpx;color: #28C529;
  235. image{width: 14rpx;height: 20rpx;margin-left: 14rpx;}
  236. }
  237. }
  238. .listtop{display: flex;align-items: center;overflow: hidden;border-bottom: 2rpx solid #E6E6E6;padding: 34rpx 12rpx;
  239. .toptit{font-weight: bold;font-size: 30rpx;color: #222327;}
  240. // .statbox{min-width: 140rpx;height: 36rpx;background-color: rgba(255,177,50,0.3);padding: 0 14rpx;box-sizing: border-box;font-weight: bold;font-size: 22rpx;color: #FF6924;display: flex;align-items: center;flex: 0 0 auto;border-radius: 10rpx;margin-left: 20rpx;
  241. // image{width: 22rpx;height: 22rpx;margin-left: 6rpx;}
  242. // }
  243. .head{width: 86rpx;height: 86rpx;background: #00A9F0;border-radius: 10rpx;font-weight: bold;margin-right: 36rpx;flex: 0 0 auto;
  244. font-size: 40rpx;display: flex;align-items: center;justify-content: center;color: #FFFFFF;
  245. }
  246. .headt{font-weight: bold;font-size: 40rpx;color: #222327;margin-bottom: 10rpx;}
  247. .headx{font-weight: 500;font-size: 24rpx;color: #666666;}
  248. }
  249. .adr{font-weight: 500;font-size: 26rpx;color: #666666;margin-top: 12rpx;}
  250. .listsm{padding: 32rpx 10rpx 16rpx 0;
  251. .tit{font-weight: bold;margin-right: 8rpx;flex: 0 0 auto;}
  252. .line{margin-right: 8rpx;color: #aaaaaa;flex: 0 0 auto;}
  253. .txt{font-size: 26rpx;color: #222327;margin-bottom: 24rpx;display: flex;padding-left: 10rpx;}
  254. .copyimg{width: 30rpx;height: 30rpx;margin-left: 8rpx;display: flex;align-items: center;justify-content: center;
  255. image{width: 18rpx;height: 20rpx;}
  256. }
  257. .flexcw{
  258. display: flex;align-items: center;flex-wrap: wrap;
  259. .txt{min-width: 50%;}
  260. }
  261. }
  262. .looktxt{font-weight: 500;flex: 0 0 auto;font-size: 26rpx;margin-left: 20rpx;
  263. &.bga{color: #FF6969;}
  264. &.bgb{color: #00A9F0;}
  265. }
  266. .statbox{min-width: 140rpx;height: 36rpx;background-color: rgba(255,177,50,0.3);padding: 0 14rpx;box-sizing: border-box;font-weight: bold;font-size: 22rpx;color: #FF6924;display: flex;align-items: center;flex: 0 0 auto;border-radius: 10rpx;margin-left: 20rpx;
  267. image{width: 22rpx;height: 22rpx;margin-left: 6rpx;}
  268. }
  269. }
  270. // 文件
  271. .files{padding:40rpx 36rpx 36rpx;border-bottom: 2rpx solid #E6E6E6;
  272. // .fdtit{display: flex;font-weight: bold;margin-bottom: 44rpx;
  273. // view{font-size: 30rpx;color: #00A9F0;}
  274. // image{width: 30rpx;height: 30rpx;margin-right: 14rpx;flex: 0 0 auto;margin-top: 5rpx;}
  275. // }
  276. // .fdzbox{width: 100%;padding: 24rpx 30rpx;box-sizing: border-box;display: flex;align-items: center;background: #E1F3FA;border-radius: 20rpx;
  277. // image{width: 62rpx;height: 74rpx;margin-right: 32rpx;flex: 0 0 auto;}
  278. // view{font-weight: bold;font-size: 26rpx;color: #00A9F0;}
  279. // }
  280. // .fdbtns{
  281. // .lbtns{font-weight: 500;font-size: 26rpx;color: #28C529;
  282. // image{width: 24rpx;height: 20rpx;margin-right: 14rpx;}
  283. // }
  284. // .rbtns{font-weight: 500;font-size: 26rpx;color: #00A9F0;
  285. // image{width: 22rpx;height: 24rpx;margin-right: 12rpx;transform: rotate(180deg);}
  286. // }
  287. // }
  288. }
  289. .fdzbox{width: 100%;padding: 24rpx 30rpx;box-sizing: border-box;display: flex;align-items: center;background: #E1F3FA;border-radius: 20rpx;
  290. image{width: 62rpx;height: 74rpx;margin-right: 32rpx;flex: 0 0 auto;}
  291. view{font-weight: bold;font-size: 26rpx;color: #00A9F0;}
  292. }
  293. .fdtit{display: flex;font-weight: bold;margin-bottom: 44rpx;
  294. view{font-size: 30rpx;color: #00A9F0;}
  295. image{width: 30rpx;height: 30rpx;margin-right: 14rpx;flex: 0 0 auto;margin-top: 5rpx;}
  296. }
  297. .fdbtns{margin-bottom: 20rpx;
  298. .lbtns{font-weight: 500;font-size: 26rpx;color: #28C529;
  299. image{width: 24rpx;height: 20rpx;margin-right: 14rpx;}
  300. }
  301. .rbtns{font-weight: 500;font-size: 26rpx;color: #00A9F0;
  302. image{width: 22rpx;height: 24rpx;margin-right: 12rpx;}
  303. }
  304. }
  305. </style>