zouling 1 rok temu
rodzic
commit
16e951ba0f

+ 48 - 0
api/common.js

@@ -45,4 +45,52 @@ export function getRemindDet(data) {
     'url': '/remind/'+data,
     'method': 'get',
   })
+}
+
+// 用户-列表(不分页) system:user:noPageList
+export function getUsernoPageList(data) {
+  return request({
+    'url': '/system/user/noPageList',
+    'method': 'get',
+	'data':data
+  })
+}
+// 附件-新增 system:shareholderFj:add
+export function getFjAdd(data) {
+  return request({
+    'url': '/fj',
+    'method': 'post',
+	'data':data
+  })
+}
+// 附件-删除 system:fj:remove
+export function getFjDel(data) {
+  return request({
+    'url': '/fj/delete/'+data,
+    'method': 'get',
+  })
+}
+// 业务统计 system:statistics:loan
+export function getCount(data) {
+  return request({
+    'url': '/statistics/loan',
+    'method': 'post',
+	'data':data
+  })
+}
+
+// 文件列表 system:application:listOss
+export function getListOss(data) {
+  return request({
+    'url': '/application/listOss',
+    'method': 'get',
+	'data':data
+  })
+}
+// banbber图
+export function getbannerList(data) {
+  return request({
+    url: '/banner/listNoPage',
+    method: 'get',
+  })
 }

+ 49 - 0
api/mine/work.js

@@ -77,4 +77,53 @@ export function getDocumentList(data) {
 	'data':data
   })
 }
+// 超链接-列表 system:hyperlink:list
+export function getHyperlinkList(data) {
+  return request({
+    'url': '/system/hyperlink/list',
+    'method': 'get',
+	'data':data
+  })
+}
+
+// 审核意见-列表 system:comments:list
+export function getCommentsList(data) {
+  return request({
+    'url': '/comments/list',
+    'method': 'get',
+	'data':data
+  })
+}
+// 审核意见-审核 system:application:sh
+export function getApplicationSh(data) {
+  return request({
+    'url': '/application/sh',
+    'method': 'post',
+	'data':data
+  })
+}
+// 审核意见-申诉 system:application:ss
+export function getApplicationSs(data) {
+  return request({
+    'url': '/application/ss',
+    'method': 'post',
+	'data':data
+  })
+}
+// 审核意见-撤销 system:application:cx
+export function getApplicationCx(data) {
+  return request({
+    'url': '/application/cx',
+    'method': 'post',
+	'data':data
+  })
+}
+// 审核意见-归档 system:application:gd
+export function getapplicationGd(data) {
+  return request({
+    'url': '/application/gd',
+    'method': 'post',
+	'data':data
+  })
+}
 

+ 92 - 0
components/popup/popup.vue

@@ -0,0 +1,92 @@
+<template>
+	<view>
+		<!-- 弹窗 -->
+		<view class="bgbox" @click="getClose" v-if="type"></view>
+		<!-- 弹窗 -->
+		<!-- 暂存提案的弹窗 -->
+		<view class="fixedbox" v-if="type=='zcta'">
+			<view class="ttit">提示</view>
+			<view  class="boxs">
+				<view class="ztit">您有一条暂存信息还未提交</view>
+				<view class="ztit">是否继续编辑?</view>
+				<view class="ztit mb32">查看<text @click="getFaFn('old',type)">暂存信息</text></view>
+			</view>
+			<view class="fixedbtn flexcj">
+				<view class="btns btn1" @click="getFaFn('new',type)">重新发布</view>
+				<view class="btns btn2" @click="getFaFn('old',type)">继续发布</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { getToken } from '@/utils/auth'
+	export default{
+		props:{
+			type: {
+				type: String,
+				default () {
+					return ''
+				}
+			},
+			isMember:{
+				type: [String,Number],
+				default () {
+					return '0'
+				}
+			}
+		},
+		data(){
+			return{
+				
+				
+			}
+		},
+		watch:{
+		},
+		onShow() {
+			
+		},
+		mounted() {		  
+		},
+		methods:{
+			checkPermi, checkRole,
+			getClose(){
+				this.$emit("getClose")
+			},
+			getFaFn(type,ptype){
+				this.$emit('getFaFn',type,ptype)
+			},
+			getlzdaFn(){
+				this.$emit('getlzdaFn')
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+// 弹窗
+.fixedbox{position: fixed;left: 136rpx;right: 136rpx;background: #fff;border-radius: 10rpx;top: 50%;transform: translateY(-50%);z-index: 10;padding: 40rpx 24rpx 52rpx;max-height: calc(100vh - 300rpx);overflow: auto;box-sizing: border-box;
+	.ttit{position: relative;text-align: center;font-weight: bold;font-size: 36rpx;color: #222327;margin-bottom: 38rpx;}
+	.boxs{
+		.ttxt{font-weight: bold;font-size: 30rpx;color: #222327;
+			text{margin-right: 6rpx;}
+		}
+		.ztit{font-weight: 500;font-size: 26rpx;color: #222327;text-align: center;line-height: 56rpx;text-align: center;
+			text{color: #1D64E2;;margin: 0 6rpx;}
+		}
+}
+	.fixedbtn{margin-top: 48rpx;
+		.btns{width: 192rpx;height: 70rpx;border-radius: 35rpx;font-weight: bold;
+font-size: 26rpx;display: flex;align-items: center;justify-content: center;box-sizing: border-box;
+			&.btn1{color: #1D64E2;border: 2rpx solid #1D64E2;}
+			&.btn2{color: #ffffff;background: #1D64E2;}
+		}
+		
+	}
+}
+
+</style>

+ 2 - 4
components/toptab/banner.vue

@@ -4,7 +4,7 @@
 			:duration="duration">
 			<block v-for="(ite,idx) in bannerlist" :key='idx'>
 				<swiper-item>
-					<image  :src="baseUrl+ite.path" class="swiperimg"></image>
+					<image  :src="baseUrl+ite" class="swiperimg"></image>
 				</swiper-item>
 			</block>
 		</swiper>
@@ -13,7 +13,6 @@
 
 <script>
 	import config from '@/config.js';
-	const baseUrl = config.baseUrl;
 	export default{
 		props:{
 			bannerlist:{
@@ -43,11 +42,10 @@
 				autoplay: false,
 				interval: 2000,
 				duration: 500,
-				baseUrl:''
+				baseUrl:config.baseUrl
 			}
 		},
 		mounted() {
-			// this.baseUrl=baseUrl
 		}
 	}
 </script>

+ 1 - 0
config.js

@@ -5,6 +5,7 @@ module.exports = {
   // baseUrl: 'http://192.168.101.168:8056',
   baseUrl: 'http://192.168.101.245:8056',
   Clientid:'428a8310cd442757ae699df5d894f051',//
+  baseName:'皖源融资担保',
  // https://xygl.cnzxy.cn h5链接地址
   confirmflag:false,//是否有弹窗
   // 应用信息

+ 9 - 0
pages.json

@@ -222,6 +222,15 @@
 					"h5":{"titleNView":false}
 				}
 			},
+			{
+				"path": "pages/business/zclist",
+				"style": {
+					"navigationBarTitleText": "我的暂存",
+					"navigationBarBackgroundColor": "#00A9F0",
+					"navigationBarTextStyle": "white",
+					"h5":{"titleNView":false}
+				}
+			},
 			{
 				"path": "pages/business/details",
 				"style": {

+ 50 - 9
pages/index/index.vue

@@ -54,7 +54,7 @@
 						<view class="img"><image :src="topgimg" class="imge"></image></view>
 						<view>台账表</view>
 					</view>
-					<view class="grid-item-box" @click="getFileFn">
+					<view class="grid-item-box" @click="getFileFn" v-if="checkPermi(['system:application:listOss'])">
 						<view class="img"><image :src="tophimg" class="imgf"></image></view>
 						<view>文件管理</view>
 					</view>
@@ -70,12 +70,13 @@
 							<view class="tit">业务申报</view>
 							<view class="txt">在线填写</view>
 						</view>
-						<view class="adda bgb">
+						<view class="adda bgb" @click="getBuszcListFn" v-if="checkPermi(['system:application:list'])">
 							<image :src="haddbimg"></image>
 							<view class="tit">暂存申报</view>
 							<view class="txt">继续填报</view>
 						</view>
-						<view class="adda bgc">
+						<!-- 普通客户  -->
+						<view class="adda bgc" @click="getBusListFn(0)" v-if="checkPermi(['system:application:list'])">
 							<image :src="haddcimg"></image>
 							<view class="tit">我的申报</view>
 							<view class="txt">查看进度</view>
@@ -107,6 +108,7 @@
 				<wait-list type='dbtx' :datalist="list" :wtdt="wtdt"  @getDetail="getDetail"></wait-list>
 			</view>
 		</view>
+	<pop-up :type="type" @getFaFn="getFaFn" @getClose="getClose"></pop-up>
 	<footers v-if="isfootflag"  :footerindex="footerindex"  :isHomeIndex="true"></footers>
   </view>
 </template>
@@ -115,14 +117,15 @@
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import waitList from "@/components/wait/list.vue"
 	let { calendar } = require("@/components/lunc-calendar/calendar.js");
-	import {getRemindList,getNoticeList} from "@/api/common.js"
+	import {getRemindList,getNoticeList,getbannerList} from "@/api/common.js"
 	import {getDictionaryFn} from "@/api/mine/register.js"
+	import popUp from "@/components/popup/popup.vue"
 	import banner from "@/components/toptab/banner.vue"
 	import hNotice from '@/components/swiper/notice.vue'
 	import footers from '@/components/footer/footer.vue'
 	 const aliyunVerify = uni.requireNativePlugin('AP-FaceDetectModule');
   export default {
-	components:{banner,hNotice,waitList,footers},
+	components:{banner,hNotice,waitList,footers,popUp},
 	data(){
 		return{
 			footerindex:'home',
@@ -165,7 +168,10 @@
 			total:0,
 			tabList:[{tit:'全部',val:0},{tit:'申报审核',val:1},{tit:'担保初审',val:2},{tit:'尽职调查',val:3},{tit:'评审会',val:4},{tit:'签署合同',val:5},],
 			usename:'',
-			bannerlist:[{path:require("@/static/images/home/banner.png"),},{path:require("@/static/images/navbg.png"),}],
+			type:'',//zcta 暂存信息
+			zcid:'',//暂存id
+			userId:this.$store.state.user.userId,
+			bannerlist:[],
 		}
 	},
 	onPageScroll(e) {
@@ -198,6 +204,7 @@
 		// this.init()
 		this.getDataFn()
 		this.getNoticeFn()
+		this.getbannerList()
 		uni.getSystemInfo({
 			success: (e) => {
 				this.nvaHeight = Number(e.statusBarHeight)+44;
@@ -229,6 +236,23 @@
 	},
 	methods:{
 		checkPermi, checkRole,
+		getClose(){
+			this.type=''
+		},
+		getFaFn(type,ptype){
+			if(ptype=='zcta'){
+				if(type=='new'){
+					this.$tab.navigateTo("/work/pages/prove/zctype")
+				}else{
+					var obj={
+						type:'edit',
+						id:this.zcid,
+					}
+					this.$tab.navigateTo('/work/pages/business/add?data='+encodeURIComponent(JSON.stringify(obj)))
+				}
+			}
+			this.type='';
+		},
 		getFace(){
 			aliyunVerify.verify({
 			    "certifyId":"sha3e385f6c273f2c11cf806ed95894b",		// 填写从服务端获取的certifyId
@@ -249,11 +273,14 @@
 			// this.init()
 		},
 		getProveFn(){
-			// this.$tab.navigateTo("/work/pages/prove/index")
 			this.$tab.navigateTo("/work/pages/prove/zctype")
 		},
 		getBusListFn(type){
-			this.$tab.navigateTo("/work/pages/business/list?type="+type)
+			// this.$tab.navigateTo("/work/pages/business/list?type="+type)
+			this.$tab.navigateTo("/work/pages/business/list?type=0")
+		},
+		getBuszcListFn(){
+			this.$tab.navigateTo("/work/pages/business/zclist")
 		},
 		getScanFn(){
 			// 扫码识别
@@ -343,6 +370,20 @@
 				}
 			}) 
 		},
+		getbannerList(){
+			getbannerList().then(res=>{
+				if(res.code==200){
+					var data=res.rows;
+					var newArr=[];
+					data.forEach(ite=>{
+						if(ite.imgUrl){
+							newArr=newArr.concat(ite.imgUrl.split(','))
+						}
+					})
+					this.bannerlist=newArr;
+				}
+			})
+		},
 		getDataFn(){
 			var params={
 				pageSize:this.pageSize,
@@ -408,7 +449,7 @@
 .zxbox{
 	.bgimg{width: 100%;height: 450rpx;}
 	.zxmain{
-		margin-top: -270rpx;
+		margin-top: -270rpx;position: relative;
 		.banbox{width: 678rpx;height: 246rpx;margin: 0 auto;}
 		.grid{
 			display: flex;align-items: center;flex-wrap: wrap;

+ 68 - 13
pages/mine/index.vue

@@ -28,13 +28,16 @@
 				</view>
 				<image :src="wrimg" class="rimg"></image>
 			</view>
-			<view class="conts">
+			<view class="conts" v-if="checkPermi(['system:statistics:loan'])">
 				<view class="conta">
 					<view class="flexcj mb19">
-						<view class="f15 fw co23 flex0 ml8">季度放款统计 <text class="coa ml4">/万元</text></view>
-						<view class="f12 coa fw5 flexc">2024年第二季度
-							<image :src="rimg" class="rimg"></image>
-						</view>
+						<view class="f15 fw co23 flex0 ml8">月份放款统计 <text class="coa ml4">/万元</text></view>
+						<picker mode="date" fields="month"   @change='bindDateChangea'>
+							<view class="f12 coa fw5 flexc">
+								<view>{{monthtime}}</view>
+								<image :src="rimg" class="rimg"></image>
+							</view>
+						</picker>
 					</view>
 					<view class="flexc">
 						<view class="contn">
@@ -42,7 +45,7 @@
 								<image :src="mconta" class="imga"></image>
 							</view>
 							<view class="ctit">待放款</view>
-							<view class="ctxt co1l">1230</view>
+							<view class="ctxt co1l">{{monthcont.dfk}}</view>
 						</view>
 						<view class="line"></view>
 						<view class="contn">
@@ -50,16 +53,19 @@
 								<image :src="mcontb" class="imgb"></image>
 							</view>
 							<view class="ctit">已放款</view>
-							<view class="ctxt co1l">4731</view>
+							<view class="ctxt co1l">{{monthcont.yfk}}</view>
 						</view>
 					</view>
 				</view>
 				<view class="conta">
 					<view class="flexcj mb19">
 						<view class="f15 fw co23 flex0 ml8">年度申报<text class="coa ml4">/个</text></view>
-						<view class="f12 coa fw5 flexc">2024年度
-							<image :src="rimg" class="rimg"></image>
-						</view>
+						<picker mode="date" fields="year"   @change='bindDateChangeb'>
+							<view class="f12 coa fw5 flexc">
+								<view>{{year}}年度</view>
+								<image :src="rimg" class="rimg"></image>
+							</view>
+						</picker>
 					</view>
 					<view class="flexc">
 						<view class="contn">
@@ -67,7 +73,7 @@
 								<image :src="mcontc" class="imgc"></image>
 							</view>
 							<view class="ctit">待完成</view>
-							<view class="ctxt co1y">11</view>
+							<view class="ctxt co1y">{{yearcont.ywsh}}</view>
 						</view>
 						<view class="line"></view>
 						<view class="contn">
@@ -75,7 +81,7 @@
 								<image :src="mcontd" class="imgd"></image>
 							</view>
 							<view class="ctit">已归档</view>
-							<view class="ctxt co1y">56</view>
+							<view class="ctxt co1y">{{yearcont.ywwj}}</view>
 						</view>
 					</view>
 				</view>
@@ -175,7 +181,7 @@
 <script>
 	import storage from '@/utils/storage'
 	import footers from '@/components/footer/footer.vue'
-	// import {getNoticenumber} from "@/api/work/index.js"
+	import {getCount} from "@/api/common.js"
 	import {updateUserProfile,findVersion} from "@/api/system/user.js"
 	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
 	import config from '@/config'
@@ -219,6 +225,11 @@
 				wgtcode: this.$store.state.user.wgtcode,
 				platform: 'Android',
 				nvaHeight:44,
+				beginTime:'2024',
+				year:'',//年度
+				monthtime:'',//月份
+				yearcont:{},
+				monthcont:{},
 			}
 		},
 		components: {
@@ -248,6 +259,10 @@
 			if (checkPermi(['system:notice:number'])) {
 				// this.getNoticenumber()
 			}
+			if(checkPermi(['system:statistics:loan'])){
+				this.time()
+			}
+			
 		},
 		mounted() {
 			this.getHeightFn()
@@ -256,6 +271,46 @@
 		methods: {
 			checkPermi,
 			checkRole,
+			time() {
+				var date = new Date();
+				var y = date.getFullYear();
+				var m = date.getMonth() + 1;
+				var yearStr = y + '-' + (m < 10 ? ('0' + m) : m);
+				this.year=y;
+				this.monthtime=yearStr;
+				this.getCount(1)
+				this.getCount(2)
+			},
+			getCount(type){
+				var params={
+					type:type,
+				}
+				if(type==1){
+					params['params[beginTime]']=this.year
+				}else{
+					params['params[beginTime]']=this.monthtime
+				}
+				
+				getCount(params).then(res=>{
+					if(res.code==200){
+						if(type==1){
+							this.yearcont=res.data;
+						}else{
+							this.monthcont=res.data;
+						}
+					}
+				})
+			},
+			bindDateChangea(e){
+				var val=e.detail.value;
+				this.monthtime=val;
+				this.getCount(2)
+			},
+			bindDateChangeb(e){
+				var val=e.detail.value;
+				this.year=val;
+				this.getCount(1)
+			},
 			getNoticeFn(){
 				this.$tab.navigateTo("/pages/index/notice")
 			},

+ 1 - 1
pages/work/index.vue

@@ -243,7 +243,7 @@
 			var params={
 				pageSize:this.pageSize,
 				pageNum: this.pageNum,
-				loanSchedule:10,
+				loanApplicationType:4,
 			}
 			if(this.sbnd){
 				params.createTime=this.sbnd

+ 6 - 2
uni_modules/lsj-upload/components/lsj-upload/LsjFile.js

@@ -13,7 +13,8 @@ export class LsjFile {
 		this.onchange = data.onchange;
 		this.onprogress = data.onprogress;
 		this.uploadHandle = this._uploadHandle;
-		this.fileName=data.fileName
+		this.fileName=data.fileName;
+		this.bigType=data.bigType;
 		// this.loanApplicationNumber=data.loanApplicationNumber
 		// #ifdef MP-WEIXIN
 		this.uploadHandle = this._uploadHandleWX;
@@ -336,16 +337,19 @@ export class LsjFile {
 			if(this.fileName){
 				form.append('fileName', this.fileName)
 			}
+			if(this.bigType){
+				form.append('bigType', this.bigType)
+			}
 			// if(this.loanApplicationNumber){
 			// 	form.append('loanApplicationNumber', this.loanApplicationNumber)
 			// }
+			
 			form.append(name, item.file);
 			let xmlRequest = new XMLHttpRequest();
 			xmlRequest.open(method, url, true);
 			for (let keys in header) {
 				xmlRequest.setRequestHeader(keys, header[keys])
 			}
-			
 			xmlRequest.upload.addEventListener(
 				'progress',
 				event => {

+ 5 - 1
uni_modules/lsj-upload/components/lsj-upload/lsj-upload.vue

@@ -99,6 +99,10 @@ export default {
 	mounted() {
 		this._size = 0;
 		let WEBID = this.childId + new Date().getTime();
+		// #ifdef APP-PLUS
+		this.option.formData.fileName=this.fileName;
+		this.option.formData.bigType=this.bigType;
+		// #endif
 		this.lsjFile = new LsjFile({
 			id: WEBID,
 			debug: this.debug,
@@ -107,6 +111,7 @@ export default {
 			option: this.option,
 			instantly: this.instantly,
 			fileName:this.fileName,
+			bigType:this.bigType,
 			// 限制条件
 			prohibited: {
 				// 大小
@@ -149,7 +154,6 @@ export default {
 			this.onchange(this.lsjFile.files);
 		},
 		setData() {
-			console.log(2)
 			this.lsjFile&&this.lsjFile.setData(...arguments);
 		},
 		getDomStyles(callback) {

+ 3 - 1
uni_modules/lsj-upload/hybrid/html/uploadFile.html

@@ -28,6 +28,7 @@
 				data: {
 					accept: '',
 					multiple: true,
+					aoption:{},
 				},
 				mounted() {
 					console.log('加载webview');
@@ -40,6 +41,7 @@
 					this.prohibited = prohibited;
 					this.accept = prohibited.accept; 
 					this.multiple = prohibited.count > 1;
+					this.aoption=this.option;
 					location.href = 'callback?retype=updateOption';
 					}, false);
 				},
@@ -129,7 +131,7 @@
 						item.type = 'loading';
 						delete item.responseText;
 						return new Promise((resolve,reject)=>{
-							let {url,name,method='POST',header={},formData={}} = this.option;
+							let {url,name,method='POST',header={},formData={}} = this.aoption;
 							let form = new FormData();
 							for (let keys in formData) {
 								form.append(keys, formData[keys])

+ 1 - 1
work/components/business/aqyxx.vue

@@ -46,7 +46,7 @@
 		</view>
 		<view class="flexcw" v-for="(ite,idx) in datainfo.shareholderFjList" :key="idx">
 			<view class="txt">股东{{Number(idx)+1}}身份证:<text class="txta" @click="getDown(ite.shareholderFrontUrl)">在线查看</text></view>
-			<view class="txt">股东{{Number(idx)+1}}征信:<text class="txta" @click="getDown(ite.shareholderZxUrl)">在线查看</text></view>
+			<view class="txt">股东{{Number(idx)+1}}征信:<text class="txta" @click="getDown(ite.shareholderZxUrl.split(',')[0])">在线查看</text></view>
 		</view>
 	</view>
 	<view class="boxt">

+ 15 - 26
work/components/business/dfjxx.vue

@@ -3,9 +3,9 @@
 	<view class="boxt" v-for="(ite,idx) in sbfjlist" :key="idx">
 		<view class="txt">
 			<view class="flex01">{{ite.label}}</view>
-			<view class="upimg"><image :src="fupimg"></image></view>
-			<view class="flex1"></view>
-			<text class="txta" @click="getDown(ite.val)">在线查看</text>
+			<!-- <view class="upimg" @click="getXzFn"><image :src="fupimg"></image></view> -->
+			<!-- <view class="flex1"></view> -->
+			<!-- <text class="txta" @click="getDown(ite.val)">在线查看</text> -->
 		</view>
 		<view class="mt18" v-if="declareFj[ite.val]&&declareFj[ite.val].length">
 			<view class="fjlists"  v-for="(fite,fidx) in declareFj[ite.val]" :key='fidx'>
@@ -13,6 +13,8 @@
 					<view class="imgl"><image :src="filico" ></image></view>
 					<view class="tit">{{fite.name}}</view>
 				</view>
+				<view class="upimg" @click="getXzFn(fite)"><image :src="fupimg"></image></view>
+				<text class="txta" @click="getDown(fite.url)">预览</text>
 			</view>
 		</view>
 	</view>
@@ -54,24 +56,10 @@
 	data(){
 		return{
 			upimg: require('@/work/static/images/up.png'),
-			fupimg:require('@/work/static/images/fup.png'),
+			fupimg:require('@/work/static/images/fdown.png'),
 			filico:require('@/work/static/images/filico.png'),
 			gdfilelist:[{name:'123'}],
 			zheList:[{zheflag:true}],
-			// fileList:[
-			// 	{tit:'委托担保申请书',files:[{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'}]},
-			// 	{tit:'股东会议纪要',files:[]},
-			// 	{tit:'上一年度财务报表',files:[]},
-			// 	{tit:'当期财务报表',files:[]},
-			// 	{tit:'上一年度审计报告',qflag:true,files:[]},
-			// 	{tit:'纳税证明',qflag:true,files:[]},
-			// 	{tit:'近三月银行对账单',qflag:true,files:[]},
-			// 	{tit:'主要账户银行流水',files:[{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'},{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'}]},
-			// 	{tit:'购销合同',files:[]},
-			// 	{tit:'当前从事项目情况证明',qflag:true,files:[]},
-			// 	{tit:'企业基本注册信息查询单',qflag:true,files:[]},
-			// 	{tit:'企业固定资产证明',qflag:true,files:[]},
-			// 	]
 		}
 	},
 	onLoad: function() {
@@ -84,16 +72,15 @@
 		getZheFn(idx){
 			this.zheList[idx].zheflag=!this.zheList[idx].zheflag
 		},
-		getDown(type){
-			var url=this.declareFj[type];
-			if(url&&url.length){
-				this.$emit('getDown',url[0].url)
-			}
-			
+		getDown(url){
+			this.$emit('getDown',url)	
 		},
 		getPreview(url){
 			this.$emit('getPreview',url)
 		},
+		getXzFn(ite){
+			this.$emit("getXzFn",ite)
+		},
 	},
 	
   }
@@ -104,10 +91,11 @@
 .txt{display: flex;align-items: flex-start;
 	view{font-weight: bold;font-size: 30rpx;color: #222327;}
 	text{color: #28C529;font-weight: 500;line-height: 40rpx;flex: 0 0 auto;margin-left: 18rpx;}
-	.upimg{width:40rpx;height: 40rpx;margin-left: 18rpx;display: flex;align-items: center;justify-content: center;
+	
+}
+.upimg{width:40rpx;height: 40rpx;margin-left: 18rpx;display: flex;align-items: center;justify-content: center;
 		image{width: 30rpx;height: 28rpx;}
 	}
-}
 .fjlists {display: flex;align-items: flex-start;justify-content: space-between;margin-bottom: 20rpx;
 	&:last-child{margin-bottom: 0;}
 	// image{flex: 0 0 auto;}
@@ -118,6 +106,7 @@
 	.delimg{width: 40rpx;height:40rpx;margin-left: 16rpx;display: flex;align-items: center;justify-content: center;flex: 0 0 auto;
 		image{width: 24rpx;height: 24rpx;}
 	}
+	.txta{color: #28C529;font-weight: 500;line-height: 40rpx;flex: 0 0 auto;margin-left: 18rpx;padding: 0 6rpx;}
 }
 .upbox{display: flex;flex-direction: column;align-items: center;padding: 56rpx 0 40rpx;border-top: 2rpx solid #E6E6E6;
 	image{width: 30rpx;height: 26rpx;margin-bottom: 18rpx;transform: rotate(180deg);}

+ 48 - 26
work/components/business/ewjcj.vue

@@ -1,33 +1,54 @@
 <template>
   <view>
-	<view class="boxt" v-for="(ite,idx) in fileList" :key="idx">
+	<view class="boxt" v-for="(ite,idx) in wjcjlist" :key="idx">
 		<view class="txt">
-			<view class="flex1 flexc">{{ite.tit}}
-			<view class="editf" @click="getEdit(ite.val)">
+			<view class="flex1 flexc">{{ite.label}}
+			<view class="editf" @click="getfjEdit(ite.val)">
 				<image :src="editf"></image>
-				<view>修改</view>
+				<view>上传</view>
 			</view>
 			</view>
-			<view class="edit" v-if="ite.qflag">
+			<!-- v-if="ite.qflag" -->
+			<view class="edit" v-if="ite.val=='psyjqpb'||ite.val=='gdhyjy'||ite.val=='wtdbht'">
 				<image :src="edit"></image>
 				<view>在线签名</view>
 			</view>
 			<!-- <view class="flex1"></view>
 			<text class="txta" @click="getDown(ite.val)">预览</text> -->
 		</view>
+		<!-- <text class="txta" @click="getDown(fite.url)">预览</text> -->
+				
+		<view class="mt18" v-if="fileFj[ite.val]&&fileFj[ite.val].length">
+			<view class="fjlists"  v-for="(fite,fidx) in fileFj[ite.val]" :key='fidx'>
+				<view class="flext" @click="getDown(fite.url)">
+					<view class="imgl"><image :src="filico" ></image></view>
+					<view class="tit">{{fite.name}}</view>
+				</view>
+				<view class="delimg flex0" @click.stop="getDelwjFj(fite.fjId)">
+					<image :src="fdelimg"></image>
+				</view>
+				<text class="txta" @click="getDown(fite.url)">预览</text>
+			</view>
+		</view>
+	</view>
+	<!-- 其他附件 -->
+	<view class="boxt" >
+		<view class="txt">
+			<view class="flex1 flexc">其他附件
+			</view>
+		</view>
 		<!-- <text class="txta" @click="getDown(fite.url)">预览</text> -->
 				<!-- <view class="delimg flex0" @click.stop="getDelFj(idx)">
 					<image :src="fdelimg"></image>
 				</view> -->
-		<!-- <view class="mt18" v-if="fileFj[ite.val]&&fileFj[ite.val].length">
-			<view class="fjlists"  v-for="(fite,fidx) in fileFj[ite.val]" :key='fidx'>
-				<view class="flext" @click="getDown(ite.val)">
+		<view class="mt18" v-if="datainfo.otherFj&&datainfo.otherFj.length">
+			<view class="fjlists"  v-for="(fite,fidx) in datainfo.otherFj" :key='fidx'>
+				<view class="flext" @click="getDown(fite.url)">
 					<view class="imgl"><image :src="filico" ></image></view>
-					<view class="tit">{{fite.name}}</view>
+					<view class="tit">{{fite.url}}</view>
 				</view>
-				
 			</view>
-		</view> -->
+		</view>
 	</view>
   </view>
 </template>
@@ -71,14 +92,15 @@
 			gdfilelist:[{name:'123'}],
 			zheList:[{zheflag:true}],
 			fileList:[
-				{tit:'担保意向函',files:[{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'}]},
-				{tit:'材料合规表',files:[]},
-				{tit:'尽职调查报告',files:[]},
-				{tit:'担保项目合法合规表',files:[]},
-				{tit:'评审意见签批表',qflag:true,files:[]},
-				{tit:'股东会决议',qflag:true,files:[]},
-				{tit:'委托保证合同',qflag:true,files:[]},
-				{tit:'其他附件',files:[{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'},{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'}]},
+				
+				// {tit:'担保意向函',files:[{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'}]},
+				// {tit:'材料合规表',files:[]},
+				// {tit:'尽职调查报告',files:[]},
+				// {tit:'担保项目合法合规表',files:[]},
+				// {tit:'评审意见签批表',qflag:true,files:[]},
+				// {tit:'股东会决议',qflag:true,files:[]},
+				// {tit:'委托保证合同',qflag:true,files:[]},
+				// {tit:'其他附件',files:[{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'},{url:"",name:'安徽嘉欣医疗用品有限公司0403担保意向函.doc'}]},
 				]
 		}
 	},
@@ -92,18 +114,18 @@
 		getZheFn(idx){
 			this.zheList[idx].zheflag=!this.zheList[idx].zheflag
 		},
-		getEdit(url){
-			this.$emit('getEdit',url)
+		getfjEdit(val){
+			this.$emit('getfjEdit',val)
 		},
-		getDown(type){
-			var url=this.fileFj[type];
-			if(url&&url.length){
-				this.$emit('getDown',url[0].url)
-			}
+		getDown(url){
+			this.$emit('getDown',url)
 		},
 		getPreview(url){
 			this.$emit('getPreview',url)
 		},
+		getDelwjFj(id){
+			this.$emit('getDelwjFj',id)
+		},
 	},
 	
   }

+ 191 - 0
work/components/business/fshxx.vue

@@ -0,0 +1,191 @@
+<template>
+	<view>
+		<view class="time" >
+			<!-- <view class="time_t"  @click="getLook(lidx)" :class="lite.check?'act':''">
+				<view>{{lite.ayear}}年<text>{{lite.amonth}}月</text></view>
+				<image :src="timeup" class="timeup"></image>
+			 </view> -->
+			 <view >
+				<view class="timebox" v-for="(ite,idx) in datalist" :key="idx">
+					<view class="list">
+						<image :src="stepa" class="timel"></image>
+						<view class="listr">
+							<view class="listrt">
+							{{kaType(ite.auditSchedule,shjdlist)}}
+							</view>
+							<view class="listrx flext">
+								<view class="ltit">审核状态:</view>
+								<view class="ltxt">{{ite.auditType=='3'?'未通过':'通过'}}</view>
+							</view>
+							<view class="listrx flext">
+								<view class="ltit">审核意见:</view>
+								<view class="ltxt">{{ite.auditView}}</view>
+							</view>
+							<view class="listrx flext " v-if="ite.imageUrl&&ite.imageUrl.length">
+								<view class="ltit">图片信息:</view>
+								<view class="ltxt">
+									<view class="limgs">
+										<block v-for="(pit,pid) in ite.imageUrl" :key="pid">
+											<image :src="baseUrl+pit"  @click.stop="getPreimg(ite.imageUrl,pid)"></image>
+										</block>
+									</view>
+								</view>
+							</view>
+							<view class="listrx flext" v-if="ite.fjUrl&&ite.fjUrl.length">
+								<view class="ltit">附件信息:</view>
+								<view class="ltxt">
+									<view class="fjlists"  v-for="(fite,fidx) in ite.fjUrl" :key='fidx'>
+										<view class="flext" @click="getDown(fite.url)">
+											<view class="imgl"><image :src="filico" ></image></view>
+											<view class="tit">{{fite.name}}</view>
+										</view>
+									</view>
+								</view>
+							</view>
+							<!-- <view class="limg flexc mt15">
+								<view class="limgs flex1 flexc" >
+									<block v-for="(pit,pid) in ite.imageUrl" :key="pid">
+										<image :src="baseUrl+pit"  @click.stop="getPreimg(ite.imageUrl,pid)"></image>
+									</block>
+									<image :src="upimg"  @click.stop="getPreimg(ite.urls,pid)"></image>
+								</view>
+								<block v-if="ite.urls.length>3">
+									<view class="tit" @click="getPreimg(ite.urls,3)">查看更多</view>
+									<image :src="morimg" class="rimg"></image>
+								</block>
+							</view> -->
+						</view>
+					</view>
+				</view> 
+			 </view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import { selectValue } from '@/utils/common.js';
+	import noData from "@/components/nodata/nodata.vue"
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+  export default {
+	props:{
+		shjdlist: {
+			type: Array,
+			default () {
+				return []
+			}
+		},
+		datalist:{
+			type: Array,
+			default () {
+				return []
+			}
+		},
+
+	},
+	components:{
+		noData
+	},
+	data(){
+		return{
+			stepa:require('@/work/static/images/busin/stepa.png'),
+			stepb:require('@/work/static/images/busin/stepb.png'),
+			stepc:require('@/work/static/images/busin/stepc.png'),
+			baseUrl:'',
+			filico:require('@/work/static/images/filico.png'),
+		}
+	},
+	mounted: function() {
+		this.baseUrl=baseUrl;
+	},
+	methods:{
+		checkPermi, checkRole,
+		kaType(ite,list){
+			return selectValue(list, ite);
+		},
+		getPreimg(arr,idx){
+			var newArr=[];
+			arr.forEach(ite=>{
+				var ds=this.baseUrl+ite
+				newArr.push(ds)
+			})
+			uni.previewImage({
+				urls: newArr,
+				current:idx,
+				success: function(data) {
+					
+				},
+				fail: function(err) {
+					
+				}
+			});
+		},
+		getZheFn(idx){
+			this.zheList[idx].zheflag=!this.zheList[idx].zheflag
+		},
+		getEdit(url){
+			this.$emit('getEdit',url)
+		},
+		getDown(url){
+			this.$emit('getDown',url)
+		},
+		getPreview(url){
+			this.$emit('getPreview',url)
+		},
+	},
+	
+  }
+</script>
+
+<style lang="scss" scoped>
+.time{padding: 0 16rpx;
+	.time_t{padding: 24rpx 0;display: flex;align-items: center;
+		view{font-weight: bold;color: #4775EA;font-size: 32rpx;}
+		text{margin-left:12rpx;}
+		.timeup{width: 26rpx;height: 24rpx;margin-left: 30rpx;transition: all 0.3s; }
+		&.act .timeup{transform: rotate(-180deg);}
+	}
+	// .timebox{display: none;}
+	.list{display: flex;align-items: flex-start;padding-left: 10rpx;padding-bottom: 36rpx;position: relative;
+	
+		&::before{width: 2rpx;content: "";position: absolute;top: 44rpx;bottom: 14rpx;left: 26rpx;
+background: #DADADA;}
+		.timel{width: 32rpx;height: 32rpx;margin-right: 20rpx;position: relative;flex: 0 0 auto;}
+		.listr{flex:1;
+			.listrt{line-height: 32rpx;font-size: 30rpx;font-weight: bold;color: #161616;margin-bottom: 16rpx;display: flex;align-items: center;
+				.type{height: 30rpx;border-radius: 10rpx;margin-left: 20rpx;font-size: 24rpx;color: #FFFFFF;padding:2rpx 8rpx;
+					&.bg1{background: #AABCE9;}
+					&.bg2{background: #8CD5B3;}
+				}
+			}
+			.listrx{padding: 6rpx 0;
+				.ltit{flex:0 0 auto;font-size: 28rpx;color: #AAAAAA;}
+				.ltxt{font-weight: 500;color: #161616;flex:1;font-size: 28rpx;}
+			}
+			// 图片
+			.limgs{display: flex;flex: 1;flex-wrap: wrap;
+				image{width: 160rpx;height: 110rpx;margin-right: 20rpx;}
+			}
+			// .limg{
+				
+			// 	.tit{font-size: 28rpx;font-weight: 500;color: #AAAAAA;margin-right: 12rpx;flex:0 0 auto;width: 60rpx;}
+			// 	.rimg{width: 14rpx;height: 24rpx; flex:0 0 auto;}
+			// }
+		}
+	}
+	&.act .timebox{display: block;}
+	// 附件
+	.fjlists {display: flex;align-items: flex-start;justify-content: space-between;margin-bottom: 20rpx;
+		&:last-child{margin-bottom: 0;}
+		.imgl{width: 40rpx;height: 40rpx;display: flex;align-items: center;flex: 0 0 auto;
+			image{width: 26rpx;height: 24rpx;}
+		}
+		.tit{font-size: 26rpx;color: #222327;font-weight: 500;margin-top: 4rpx;}
+		.delimg{width: 40rpx;height:40rpx;margin-left: 16rpx;display: flex;align-items: center;justify-content: center;flex: 0 0 auto;
+			image{width: 24rpx;height: 24rpx;}
+		}
+		.txta{color: #28C529;font-weight: 500;line-height: 40rpx;flex: 0 0 auto;margin-left: 18rpx;padding: 0 6rpx;}
+	}
+}
+</style>

+ 60 - 9
work/components/business/list.vue

@@ -9,7 +9,11 @@
 					<view class="statbox" v-if="ite.isNew=='Y'">专精特新<image :src="start"></image></view>
 				</view>
 				<view class="listsm">
-					<view class="txt"><text class="tit">审核状态</text><text class="line">|</text><text class="co28">{{kaType(ite.auditSchedule,shjdlist)}}</text></view>
+					<view class="txt"><text class="tit">审核状态</text><text class="line">|</text><text class="co28">{{kaType(ite.auditSchedule,shjdlist)}}
+						<block v-if="ite.auditType==1">待审核</block>
+						<block v-if="ite.auditType==2">已通过</block>
+						<block v-if="ite.auditType==3">未通过</block>
+					</text></view>
 					<view class="txt"><text class="tit">申报时间</text><text class="line">|</text><text>{{ite.applicationTime}}</text></view>
 					<view class="txt"><text class="tit">归档时间</text><text class="line">|</text><text>{{ite.fileTime}}</text></view>
 					<view class="flexcw">
@@ -159,6 +163,33 @@
 				</view>
 			</view>
 		</block>
+		<!-- 新版文件列表详情 -->
+		<block v-if="type=='nfiles'">
+			<view class="lists" v-for="(ite,idx) in datalist">
+				<view class="listtop" >
+					<view class="toptit over">{{ite.enterpriseName}}</view>
+				</view>
+				<view class="listsm" v-for="(fite,fidx) in ite.loanApplicationFjList" :key="fite.fjId">
+					<!-- <view class="fdtit">
+						<image :src="titimg"></image>
+						<view>{{ite.applicationTime}}</view>
+					</view> -->
+					<view class="fdzbox">
+						<image :src="filz"></image>
+						<view>{{fite.name}}</view>
+					</view>
+					<view class="fdbtns flexcj mt18">
+						<!-- <view class="lbtns flexc">
+							<image :src="files"></image>文件详情列表
+						</view> -->
+						<view class="flex1"></view>
+						<view class="rbtns flexc" @click.stop="getXzFn(fite)">
+							<image :src="fup"></image>保存至手机
+						</view>
+					</view>
+				</view>
+			</view>
+		</block>
 		<!-- 台账表 -->
 		<block v-if="type=='ledger'">
 			<view class="lists" v-for="(ite,idx) in datalist" @click="getDetail"  >
@@ -242,7 +273,7 @@
 			files:require('@/work/static/images/files.png'),
 			filz:require('@/work/static/images/filz.png'),
 			titimg:require('@/work/static/images/infotit.png'),
-			fup:require('@/work/static/images/fup.png'),
+			fup:require('@/work/static/images/fdown.png'),
 			zlist:[]
 		}
 	},
@@ -256,6 +287,9 @@
 		getDetail(e){
 			this.$emit('getDetail',e)
 		},
+		getXzFn(ite){
+			this.$emit('getXzFn',ite)
+		},
 		getDel(e){
 			this.$emit('getDel',e)
 		},
@@ -400,21 +434,38 @@ font-size: 40rpx;display: flex;align-items: center;justify-content: center;color
 }
 // 文件
 .files{padding:40rpx 36rpx 36rpx;border-bottom: 2rpx solid #E6E6E6;
+	// .fdtit{display: flex;font-weight: bold;margin-bottom: 44rpx;
+	// 	view{font-size: 30rpx;color: #00A9F0;}
+	// 	image{width: 30rpx;height: 30rpx;margin-right: 14rpx;flex: 0 0 auto;margin-top: 5rpx;}
+	// }
+	// .fdzbox{width: 100%;padding: 24rpx 30rpx;box-sizing: border-box;display: flex;align-items: center;background: #E1F3FA;border-radius: 20rpx;
+	// 	image{width: 62rpx;height: 74rpx;margin-right: 32rpx;flex: 0 0 auto;}
+	// 	view{font-weight: bold;font-size: 26rpx;color: #00A9F0;}
+	// }
+	// .fdbtns{
+	// 	.lbtns{font-weight: 500;font-size: 26rpx;color: #28C529;
+	// 		image{width: 24rpx;height: 20rpx;margin-right: 14rpx;}
+	// 	}
+	// 	.rbtns{font-weight: 500;font-size: 26rpx;color: #00A9F0;
+	// 		image{width: 22rpx;height: 24rpx;margin-right: 12rpx;transform: rotate(180deg);}
+	// 	}
+	// }
+}
+
+.fdzbox{width: 100%;padding: 24rpx 30rpx;box-sizing: border-box;display: flex;align-items: center;background: #E1F3FA;border-radius: 20rpx;
+		image{width: 62rpx;height: 74rpx;margin-right: 32rpx;flex: 0 0 auto;}
+		view{font-weight: bold;font-size: 26rpx;color: #00A9F0;}
+	}
 	.fdtit{display: flex;font-weight: bold;margin-bottom: 44rpx;
 		view{font-size: 30rpx;color: #00A9F0;}
 		image{width: 30rpx;height: 30rpx;margin-right: 14rpx;flex: 0 0 auto;margin-top: 5rpx;}
 	}
-	.fdzbox{width: 100%;padding: 24rpx 30rpx;box-sizing: border-box;display: flex;align-items: center;background: #E1F3FA;border-radius: 20rpx;
-		image{width: 62rpx;height: 74rpx;margin-right: 32rpx;flex: 0 0 auto;}
-		view{font-weight: bold;font-size: 26rpx;color: #00A9F0;}
-	}
-	.fdbtns{
+	.fdbtns{margin-bottom: 20rpx;
 		.lbtns{font-weight: 500;font-size: 26rpx;color: #28C529;
 			image{width: 24rpx;height: 20rpx;margin-right: 14rpx;}
 		}
 		.rbtns{font-weight: 500;font-size: 26rpx;color: #00A9F0;
-			image{width: 22rpx;height: 24rpx;margin-right: 12rpx;transform: rotate(180deg);}
+			image{width: 22rpx;height: 24rpx;margin-right: 12rpx;}
 		}
 	}
-}
 </style>

+ 340 - 79
work/components/popup/popup.vue

@@ -7,13 +7,13 @@
 			<view class="tit">业务进度</view>
 			<view class="lists" v-for="(ite,idx) in stepList" :key='idx'>
 				<view class="listl">
-					<image :src="stepa" class="imga" v-if="Number(stepval)>Number(ite.loanScheduleScore)"></image>
-					<image :src="stepb" v-else-if="stepval==ite.loanScheduleScore"></image>
+					<image :src="stepa" class="imga" v-if="Number(stepval)>Number(ite.loanScheduleValue)"></image>
+					<image :src="stepb" v-else-if="stepval==ite.loanScheduleValue"></image>
 					<image :src="stepc" v-else></image>
 				</view>
 				<view class="listr">
-					<view class="ltit" :class="stepval==ite.loanScheduleScore?'act':''">{{ite.loanScheduleName}}</view>
-					<!-- <view class="ltxt">{{ite.time}}</view> -->
+					<view class="ltit" :class="stepval==ite.loanScheduleValue?'act':''">{{ite.loanScheduleName}}</view>
+					<view class="ltxt">{{ite.loanScheduleTime}}</view>
 				</view>
 			</view>
 		</view>
@@ -29,17 +29,40 @@
 			</view>
 			<view class="mb16">
 				<view class="ttxt mb18">审核意见</view>
-				<textarea class="textar" style="height: 156rpx;" placeholder="若不同意进入初审,请填写理由…"></textarea>
+				<textarea class="textar" style="height: 156rpx;" v-model="shtext" placeholder="若不同意进入初审,请填写理由…"></textarea>
 			</view>
-			<view class="mb16">
-				<view class="ttxt mb18">分配A角</view>
-				<uni-data-select  v-model="mycdtxt"  placeholder="请选择A角"  :localdata="mycdlist"  ></uni-data-select>
-			</view>
-			<view class="mb16">
-				<view class="ttxt mb18">分配B角</view>
-				<uni-data-select  v-model="mycdtxt"  placeholder="请选择B角"  :localdata="mycdlist"  ></uni-data-select>
-			</view>
-			<view class="btns">确认并生成担保意向函</view>
+			<block v-if="isty!=3">
+				<view class="mb16">
+					<!-- :chosevalue="datainfo.name" -->
+					<view class="ttxt mb18">分配A角</view>
+					<w-select
+					      :list='userList'
+					      valueName='userName' 
+					      keyName="userId"
+						  :filterable='filterable'
+						  width='100%'
+						  height="44px"
+						  @change='getchangea'
+					    >
+					    </w-select>
+				</view>
+				<view class="mb16">
+					<view class="ttxt mb18">分配B角</view>
+					<w-select
+					      :list='userList'
+					      valueName='userName' 
+					      keyName="userId"
+						  :filterable='filterable'
+						  width='100%'
+						  height="44px"
+						  @change='getchangeb'
+					    >
+					    </w-select>
+					<!-- <uni-data-select  v-model="mycdtxt"  placeholder="请选择B角"  :localdata="mycdlist"  ></uni-data-select> -->
+				</view>
+			</block>
+			
+			<view class="btns" @click="getupSubmit">确认<block v-if="isty!=3">并生成担保意向函</block></view>
 		</view>
 		<!-- a,b角色审核 -->
 		<view class="fixbox" v-if="type=='ajssh'||type=='bjssh'">
@@ -49,17 +72,33 @@
 			<view class="ttit">担保初审</view>
 			<view class="mb16">
 				<view class="ttxt mb18">是否通过</view>
-				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tyList" />
+				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tgList" />
 			</view>
-			<view class="">
+			<view >
 				<view class="ttxt mb18">审核意见</view>
-				<textarea class="textar" style="height: 156rpx;" placeholder="若资料不予通过,请填写理由…"></textarea>
+				<textarea class="textar" style="height: 156rpx;" v-model="shtext" placeholder="若资料不予通过,请填写理由…"></textarea>
 			</view>
 			<view class="btns" @click="getupSubmit">确认</view>
 			<view class="shtips" v-if="type=='ajssh'">* 提交后将交由B角复核,误操可撤回</view>
 			<view class="shtips" v-if="type=='bjssh'">* 提交后将交由风险部进行风险审核,误操可撤回</view>
 		</view>
-		<!--  风险审核-->
+		<!--  风险审核 fxsh-->
+		<view class="fixbox" v-if="type=='fxsh'">
+			<view class="cloimg" @click="getClose">
+				<image :src="closeimg"></image>
+			</view>
+			<view class="ttit">风险审核</view>
+			<view class="mb16">
+				<view class="ttxt mb18">是否通过</view>
+				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tgList" />
+			</view>
+			<view class="mb16">
+				<view class="ttxt mb18">审核意见</view>
+				<textarea class="textar" style="height: 156rpx;" v-model="shtext" placeholder="若资料不予通过,请填写理由…"></textarea>
+			</view>
+			<view class="btns" @click="getupSubmit">确认</view>
+		</view>
+		<!-- 初审风险审核  -->
 		<view class="fixbox" v-if="type=='fxbmsh'">
 			<view class="cloimg" @click="getClose">
 				<image :src="closeimg"></image>
@@ -67,12 +106,12 @@
 			<view class="ttit">风险审核</view>
 			<view class="mb16">
 				<view class="ttxt mb18">是否通过</view>
-				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tyList" />
+				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tgList" />
 			</view>
 			<view class="mb16">
 				<view class="ttxt mb18 flexcj">附件信息
-					<lsj-upload ref="lsjUpload" childId="upload1" :width="width" :height="height" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
-						    @progress="" @uploadEnd="onuploadEnd" >
+					<lsj-upload ref="lsjUpload" childId="upload1" :loanApplicationId="loanApplicationId" :width="width" :height="height" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+						    @progress="" @uploadEnd="onuploadEnd" :fileName="wjcjobj.dbxmhfhgb" fileVal='dbxmhfhgb' bigType="c">
 						<view class="fbtns co0a" :style="{width: width,height: height}">上传附件</view>
 					</lsj-upload>
 				</view>
@@ -96,7 +135,7 @@
 			<view class="ttit">上会审核</view>
 			<view class="mb16">
 				<view class="ttxt mb18">是否同意上评审会</view>
-				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tyList" />
+				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tyList" @change="change"/>
 			</view>
 			<view class="mb16">
 				<view class="ttxt mb18">评审会日期</view>
@@ -109,47 +148,43 @@
 			</view>
 			<view class="mb16">
 				<view class="ttxt mb18">审核意见</view>
-				<textarea class="textar" style="height: 156rpx;" placeholder="若不同意上会,请填写理由…"></textarea>
+				<textarea class="textar" v-model="shtext" style="height: 156rpx;" placeholder="若不同意上会,请填写理由…"></textarea>
 			</view>
 			<view class="mb16">
 				<view class="ttxt mb18 flexcj">上会人员
-					<view class="addsh">
+					<view class="addsh" @click="getAddFn" >
 						<image :src="addpeimg"></image>添加上会人员
 					</view>
 				</view>
 				<view class="peolists">
-					<view class="plist">
-						<view class="flex1 over">周大吉</view>
-						<image :src="fdelimg"></image>
-					</view>
-					<view class="plist">
-						<view class="flex1 over">周大吉</view>
-						<image :src="fdelimg"></image>
+					<view class="plist" v-for="(ite,idx) in shrylist" :key="idx">
+						<view class="flex1 over">{{ite.realName}}</view>
+						<image :src="fdelimg" @click="getDelRy(idx)"></image>
 					</view>
-					<view class="plist">
-						<view class="flex1 over">周大吉</view>
-						<image :src="fdelimg"></image>
-					</view>
-					<view class="plist">
-						<view class="flex1 over">周大吉</view>
-						<image :src="fdelimg"></image>
-					</view>
-					
 				</view>
 			</view>
 			<view class="shshtips">* 确认上会后,即出具评审意见签批表、股东会决议</view>
 			<view class="btns" style="margin-top: 18rpx;" @click="getupSubmit">确认</view>
 		</view>
 		<!-- 上会上传附件 -->
-		<view class="fixbox" v-if="type=='shhj'">
+		<view class="fixbox" v-if="type=='shpsyj'||type=='shshjy'">
 			<view class="cloimg" @click="getClose">
 				<image :src="closeimg"></image>
 			</view>
 			<view class="ttit">上传附件</view>
 			<view class="mb16">
-				<view class="ttxt mb18 flexcj">附件信息
+				<!-- 评审意见签批表 -->
+				<view class="ttxt mb18 flexcj" v-if="type=='shpsyj'">附件信息
 					<lsj-upload ref="lsjUpload" childId="upload1" :width="width" :height="height" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
-						    @progress="" @uploadEnd="onuploadEnd" >
+						    @progress="" @uploadEnd="onuploadEnd" :fileName="wjcjobj.psyjqpb" fileVal='psyjqpb' bigType="c">
+						<view class="fbtns co0a" :style="{width: width,height: height}">上传附件</view>
+					</lsj-upload>
+					
+				</view>
+				<!-- 上会纪要 -->
+				<view class="ttxt mb18 flexcj" v-if="type=='shshjy'">附件信息
+					<lsj-upload ref="lsjUpload" childId="upload1" :width="width" :height="height" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+						    @progress="" @uploadEnd="onuploadEnd" :fileName="wjcjobj.gdhyjy" fileVal='gdhyjy' bigType="c">
 						<view class="fbtns co0a" :style="{width: width,height: height}">上传附件</view>
 					</lsj-upload>
 				</view>
@@ -165,7 +200,36 @@
 			</view>
 			<view class="conbtns flexcj">
 				<!-- <view class="cbtns bga">暂存</view> -->
-				<view class="cbtns bgb">确认</view>
+				<view class="cbtns bgb" @click="getfjAdd">确认</view>
+			</view>
+		</view>
+		<!-- 上传附件 -->
+		<view class="fixbox" v-if="type=='fjadd'">
+			<view class="cloimg" @click="getClose">
+				<image :src="closeimg"></image>
+			</view>
+			<view class="ttit">上传附件</view>
+			<view class="mb16">
+				<view class="ttxt mb18 flexcj" v-if="wjcjobj[fjval]">附件信息
+					<lsj-upload ref="lsjUpload" childId="upload1" :width="width" :height="height" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+						    @progress="" @uploadEnd="onuploadEnd" :fileName="wjcjobj[fjval]" :fileVal='fjval' bigType="c">
+						<view class="fbtns co0a" :style="{width: width,height: height}">上传附件</view>
+					</lsj-upload>
+					
+				</view>
+				<view class="fjlists"  v-for="(fite,fidx) in filelist" :key='fidx'>
+					<view class="flext" @click="getDown(fite.url)">
+						<view class="imgl"><image :src="filico" ></image></view>
+						<view class="tit">{{fite.name}}</view>
+					</view>
+					<view class="delimg flex0" @click.stop="getDelFj(idx)">
+						<image :src="fdelimg"></image>
+					</view>
+				</view>
+			</view>
+			<view class="conbtns flexcj">
+				<!-- <view class="cbtns bga">暂存</view> -->
+				<view class="cbtns bgb" @click="getfjAdd">确认</view>
 			</view>
 		</view>
 		<!-- 审核结果二次确认弹窗 -->
@@ -174,10 +238,12 @@
 				<image :src="closeimg"></image>
 			</view>
 			<view class="ttit">确认提交审核意见</view>
-			<view class="conttxt">请您二次确认对该项目资料提交 “<text>通过</text>”的审核意见吗?</view>
+			<view class="conttxt">请您二次确认对该项目资料提交 “<text>
+				{{shtg==3?'不通过':'通过'}}
+			</text>”的审核意见吗?</view>
 			<view class="conbtns flexcj">
 				<view class="cbtns bga" @click="getClose">取消</view>
-				<view class="cbtns bgb">确认</view>
+				<view class="cbtns bgb" @click="getSure">确认</view>
 			</view>
 		</view>
 		<!-- 尽职调查反馈 -->
@@ -186,30 +252,26 @@
 				<image :src="closeimg"></image>
 			</view>
 			<view class="ttit">业务审核</view>
+			<view class="mb16">
+				<view class="ttxt mb18">是否通过</view>
+				<uni-data-checkbox :selectedColor="actcolor" v-model="isty" :localdata="tgList" />
+			</view>
 			<view class="mb16">
 				<view class="ttxt mb18">上传照片</view>
 				<view class="addpbox">
 					<view class="plist addpimg" @click="getaddImage">
 						<image :src="addpimg"></image>
 					</view>
-					<view class="plist">
-						<image :src="addpimg" class="img"></image>
-						<image :src="fdelimg" class="del"></image>
-					</view>
-					<view class="plist">
-						<image :src="addpimg" class="img"></image>
-						<image :src="fdelimg" class="del"></image>
-					</view>
-					<view class="plist">
-						<image :src="addpimg" class="img"></image>
-						<image :src="fdelimg" class="del"></image>
+					<view class="plist" v-for="(ite,idx) in phofile" :key="idx">
+						<image :src="baseUrl+ite" class="img"></image>
+						<image :src="fdelimg" class="del" @click="getDelPh(idx)"></image>
 					</view>
 				</view>
 			</view>
 			<view class="ptips">* 点击添加照片可实时拍摄照片上传,也可由手 机相册中上传</view>
 			<view class="mb16">
 				<view class="ttxt mb18 flexcj">附件信息
-					<lsj-upload ref="lsjUpload" childId="upload1" :width="width" :height="height" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+					<lsj-upload ref="lsjUpload" childId="upload1" :fileName="wjcjobj.jzdcbg" fileVal='jzdcbg' bigType="c" :width="width" :height="height" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 						    @progress="" @uploadEnd="onuploadEnd" >
 						<view class="fbtns co0a" :style="{width: width,height: height}">上传附件</view>
 					</lsj-upload>
@@ -226,9 +288,25 @@
 			</view>
 			<view class="conbtns flexcj">
 				<view class="cbtns bga" @click="getClose">取消</view>
-				<view class="cbtns bgb">确认</view>
+				<view class="cbtns bgb" @click="getupSubmit">确认</view>
 			</view>
 		</view>
+		<!-- 人员弹窗 -->
+		<block v-if="addflag">
+			<view class="addboxbg" @click="getCloseAdd"></view>
+			<view  class="addbox">
+				<view class="cloimg" @click="getCloseAdd">
+					<image :src="closeimg"></image>
+				</view>
+				<view class="ttit">添加人员</view>
+				<view class="peolists">
+					<view class="plist" :class="shrylist.findIndex(text => text.userId === ite.userId)!=-1?'act':''" v-for="(ite,idx) in userList" :key="idx">
+						<view class="flex1" @click="getChose(ite)">{{ite.userName}}</view>
+					</view>
+				</view>
+			</view>
+		</block>
+		
 		<!-- 富文本弹窗 -->
 		<view class="fixbox con" v-if="type=='fwb'">
 			<view class="cloimg" @click="getClose">
@@ -251,7 +329,9 @@
 	const baseUrl = config.baseUrl
 	import { getToken } from '@/utils/auth'
 	import {uploadmore} from '@/utils/common.js'
+	import wSelect from "@/work/components/w-select/w-select.vue"
 	export default{
+		components:{wSelect},
 		props:{
 			type: {
 				type: String,
@@ -265,6 +345,12 @@
 					return []
 				}
 			},
+			userList:{
+				type: Array,
+				default () {
+					return []
+				}
+			},
 			stepval:{
 				type: [Number,String],
 				default () {
@@ -276,6 +362,36 @@
 				default () {
 					return ''
 				}
+			},
+			shtg:{
+				type: [Number,String],
+				default () {
+					return ''
+				}
+			},
+			loanApplicationId:{
+				type: [Number,String],
+				default () {
+					return ''
+				}
+			},
+			loanApplicationNumber:{
+				type: [Number,String],
+				default () {
+					return ''
+				}
+			},
+			wjcjobj:{
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			fjval:{
+				type: String,
+				default () {
+					return ''
+				}
 			}
 		},
 		data(){
@@ -283,7 +399,7 @@
 				//附件
 				option: {
 				    // 上传服务器地址,需要替换为你的接口地址
-				    url: baseUrl+'/common/upload', // 该地址非真实路径,需替换为你项目自己的接口地址
+				    url: baseUrl+'/common/uploadNew', // 该地址非真实路径,需替换为你项目自己的接口地址
 				    // 上传附件的key
 				    name: 'file',
 				    // 根据你接口需求自定义请求头,默认不要写content-type,让浏览器自适配
@@ -292,7 +408,10 @@
 				        'Authorization':  'Bearer ' + getToken(),
 				    },
 				    // 根据你接口需求自定义body参数
-				    formData: {}
+				    formData: {
+						loanApplicationNumber:'',
+						loanApplicationId:'',
+					}
 				},
 				// 选择文件后是否立即自动上传,true=选择后立即上传
 				instantly: true,
@@ -311,7 +430,7 @@
 				wxFiles: [],
 				// 是否打印日志
 				debug: false,
-				filelist:[{name:'安徽嘉欣医疗用品有…调查报告.pdf',url:''}],
+				filelist:[],
 				
 				stepa:require('@/work/static/images/busin/stepa.png'),
 				stepb:require('@/work/static/images/busin/stepb.png'),
@@ -323,24 +442,142 @@
 				upimg:require('@/work/static/images/aup.png'),
 				addpeimg:require('@/work/static/images/aap.png'),
 				actcolor:'#00A9F0',
-				tyList:[{text: '同意',value: '0'},{text: '不同意',value: '1'}],
+				tyList:[{text: '同意',value: '2'},{text: '不同意',value: '3'}],
+				tgList:[{text: '通过',value: '2'},{text: '不通过',value: '3'}],
 				mycdlist:[{text: 'a',value: '0'},{text: 'b',value: '1'}],
-				isty:'0',
+				isty:'2',//同意
+				istg:'0',//通过
+				shtext:'',//审核意见
+				aUserId:'',//A角色用户ID
+				aUserName:'',//A角色用户名称
+				bUserId:'',//B角色用户ID
+				bUserName:'',//B角色用户名称
 				mycdtxt:'',
 				jtri:'',//具体日期
+				filterable:true,
+				chooseValue:'',
+				phofile:[],
+				baseUrl:'',
+				shrylist:[],//参会人员
+				addflag:false,
+			}
+		},
+		mounted() {
+			this.baseUrl=baseUrl
+		},
+		watch:{
+			loanApplicationNumber(val){
+				this.option.formData.loanApplicationNumber=val
+			},
+			loanApplicationId(val){
+				this.option.formData.loanApplicationId=val
+			},
+			type(val){
+				this.filelist=[];
+				this.shtext='';
 			}
 		},
 		methods:{
 			getClose(){
 				this.$emit('getClose')
 			},
+			getAddFn(){
+				this.addflag=true;
+			},
+			getCloseAdd(){
+				this.addflag=false;
+			},
+			getChose(ite,idx){
+				const index = this.shrylist.findIndex(text => text.userId === ite.userId);
+				var obj={
+					userId:ite.userId,
+					realName:ite.userName,
+					loanApplicationId:this.loanApplicationId,
+				}
+				if(index!=-1){
+					this.shrylist.splice(index,1)
+				}else{
+					this.shrylist.push(obj)
+				}
+			},
+			getchangea(e){
+				this.aUserId=e.userId;
+				this.aUserName=e.userName;
+			},
+			getchangeb(e){
+				this.bUserId=e.userId;
+				this.bUserName=e.userName;
+			},
 			getupSubmit(){
-				this.$emit('getupSubmit')
+				var type=this.type;
+				var data={}
+				if(type=='sh'){
+					data={
+						auditType:this.isty,
+						auditView:this.shtext,
+					}
+					if(this.isty==3&&!this.shtext){
+						this.$toast("请输入审核意见")
+						return
+					}
+					if(this.isty!=3){
+						if(!this.aUserName){
+							this.$toast("请选择分配A角")
+							return
+						}
+						if(!this.bUserName){
+							this.$toast("请选择分配B角")
+							return
+						}
+						data.aUserId=this.aUserId;
+						data.aUserName=this.aUserName;
+						data.bUserId=this.bUserId;
+						data.bUserName=this.bUserName;
+					}	
+				}else if(type=='ajssh'||type=='bjssh'||type=='fxsh'){
+					data={
+						auditType:this.isty,
+						auditView:this.shtext,
+					}
+					if(this.isty==3&&!this.shtext){
+						this.$toast("请输入审核意见")
+						return
+					}
+				}else if(type=='fxbmsh'){
+					data={
+						auditType:this.isty,
+						fjUrl:this.filelist,
+					}
+				}else if(type=='jztcsh'){
+					data={
+						auditType:this.isty,
+						fjUrl:this.filelist,
+						imageUrl:this.phofile.join(',')
+					}
+				}else if(type=='shsh'){
+					data={
+						auditType:this.isty,
+						reviewTime:this.jtri,
+						auditView:this.shtext,
+						sysUserConferenceList:this.shrylist
+					}
+				}
+				this.$emit('getupSubmit',data)
+			},
+			getfjAdd(){
+				var type=this.type;
+				var data={
+					fjUrl:this.filelist,
+				}
+				this.$emit('getfjAdd',data)
 			},
 			bindDateChangea(e){
 				var val=e.detail.value;
 				this.jtri=val;
 			},
+			getSure(){
+				this.$emit('getSure')
+			},
 			// 上传图片
 			getaddImage(e){
 				let that = this;
@@ -353,7 +590,7 @@
 				// 	count=9
 				// }
 				uni.chooseImage({
-					count: 1,
+					// count: 1,
 					success:function(res){
 						let img= res.tempFilePaths;
 						if(img.length + file.length > count){
@@ -366,22 +603,27 @@
 							let imglen = res.tempFilePaths.length;
 							var fuwufile = [];
 							uploadmore('/common/upload',img,0,0,0,imglen,fuwufile,function(rs){
-								if(e=='zj'){
-									that.zjfile = that.zjfile.concat(rs);
-									that.datainfo.identificationPhoto=that.zjfile.join(',')
-								}
+								that.phofile = that.phofile.concat(rs);
+								// if(e=='zj'){
+									
+								// 	that.datainfo.identificationPhoto=that.zjfile.join(',')
+								// }
 							})	
 						}
 					}
 				});
 			},
-			onuploadEnd(item) {
+			onuploadEnd(item,fileVal,bigType) {
 				var newobj={}
 				var responseText=JSON.parse(item.responseText)
-				newobj.name=responseText.originalFilename;
+				newobj.name=responseText.newFileName;
+				newobj.oldName=responseText.originalFilename;
 				newobj.url=responseText.fileName;
+				newobj.type=fileVal;
+				newobj.bigType=bigType;
+				newobj.loanApplicationId=this.loanApplicationId;
+				newobj.loanApplicationNumber=this.loanApplicationNumber;
 				this.filelist.push(newobj)
-				// this.datainfo.zsyzFjList=JSON.parse(JSON.stringify(this.filelist))
 			},
 			getDelFj(idx){
 				var that=this;
@@ -393,12 +635,17 @@
 					success: function(res) {
 						if (res.confirm) {
 							that.filelist.splice(idx,1)
-							// that.datainfo.zsyzFjList=JSON.parse(JSON.stringify(that.filelist))
 						} else if (res.cancel) {
 						}
 					}
 				});
 			},
+			getDelPh(idx){
+				this.phofile.splice(idx,1)
+			},
+			getDelRy(idx){
+				this.shrylist.splice(idx,1)
+			},
 			getDown(e){
 				uni.showLoading({
 					title: '加载中'
@@ -456,11 +703,6 @@
 }
 .fixbox{position: fixed;left: 56rpx;right: 56rpx;background: #FFFFFF;max-height: calc(100vh - 200rpx);overflow: auto;
 border-radius: 20rpx;z-index: 10;top: 50%;transform: translateY(-50%);padding: 40rpx 48rpx 52rpx;
-	.cloimg{display: flex;align-items: center;justify-content: center;position: absolute;width: 40rpx;height: 40rpx;
-	top: 40rpx;left: 40rpx;
-		image{width: 22rpx;height: 22rpx;}
-	}
-	.ttit{font-weight: bold;text-align: center;font-size: 30rpx;color: #222327;margin-bottom:50rpx;}
 	.ttxt{font-weight: bold;font-size: 30rpx;color: #222327;}
 	.btns{margin-top: 70rpx;width: 100%;background: #00A9F0;border-radius:10rpx;height: 88rpx;display: flex;align-items: center;justify-content: center;font-weight: 500;font-size: 30rpx;color: #FFFFFF;}
 	.shtips{font-weight: 500;text-align: center;margin-top: 36rpx;font-size: 24rpx;color: #FF6969;padding-bottom: 20rpx;}
@@ -527,4 +769,23 @@ color: #666666;overflow: hidden;
 		.txta{color: #28C529;font-weight: 500;line-height: 40rpx;flex: 0 0 auto;margin-left: 18rpx;padding: 0 6rpx;}
 	}
 }
+.addboxbg{background-color: rgba(0, 0, 0, 0.5);position: fixed;left: 0;right: 0;top: 0;bottom: 0;z-index: 50;
+}
+.addbox{z-index: 55;width: 100%;position: fixed;left:0;right: 0;bottom: 0;max-height: calc(100vh - 400rpx);overflow: auto;
+	padding: 40rpx 48rpx 52rpx;background-color: #FFFFFF;
+	.peolists{display: flex;flex-wrap: wrap;
+		.plist{width: auto !important;background: #FFFFFF;font-weight: 500;font-size: 26rpx;border-radius:10rpx;min-width: 172rpx;margin: 0 12rpx 18rpx 0;display: flex;align-items: center;padding: 18rpx 16rpx;box-sizing: border-box;
+	color: #666666;overflow: hidden;text-align: center;border: 2rpx solid  rgba(0, 169, 240, 0.1);
+			&.act{
+				background-color: rgba(0, 169, 240, 0.1);
+			}
+		}
+	}
+}
+.cloimg{display: flex;align-items: center;justify-content: center;position: absolute;width: 40rpx;height: 40rpx;
+	top: 40rpx;left: 40rpx;
+		image{width: 22rpx;height: 22rpx;}
+}
+.ttit{font-weight: bold;text-align: center;font-size: 30rpx;color: #222327;margin-bottom:50rpx;}
+	
 </style>

+ 108 - 0
work/components/w-select/readme.md

@@ -0,0 +1,108 @@
+#### props
+
+| 名称         | 类型    | 默认值   | 说明                                                   |
+| ------------ | ------- | -------- | ------------------------------------------------------ |
+| width        | string  | '200px'  | 选择框宽度                                             |
+| height       | string  | '30px'   | 选择框高度                                             |
+| bgColor      | string  | '#fff'   | 选择框背景颜色                                         |
+| defaultValue | string  | '请选择' | 默认显示的名称                                         |
+| valueName    | string  | 'label'  | 显示的内容字段名                                       |
+| keyName      | string  | 'value'  | 绑定的内容字段名                                       |
+| list         | array   | []       | 展示的内容列表                                         |
+| showClose    | boolean | true     | 是否显示删除按钮                                       |
+| multiple     | boolean | false    | 是否开启多选                                           |
+| filterable   | boolean | false    | 是否开启搜索功能,开启后直接输入值不选择也可以保存内容 |
+
+该组件默认下拉选择器是从底部弹出,当检测到底部高度不足时则会在上面弹出
+
+#### events
+
+| 事件名 | 说明                                         |
+| ------ | -------------------------------------------- |
+| change | 选择的内容改变时触发,返回的参数为列表的item |
+
+#### 基本使用
+
+绑定的值通过`v-model`绑定,如下面的`chooseValue`,需要获取item的值可以监听`@change`事件
+
+```vue
+<template>
+  <view class="login">
+    <w-select 
+      style="margin-left: 20rpx;" 
+      v-model='chooseValue' 
+      :list='list'
+      valueName='content' 
+      keyName="id"
+      @change='change'
+    >
+    </w-select>
+  </view>
+</template>
+<script>
+  export default {
+    data() {
+      return {
+        chooseValue: "",
+        list: [{
+          id: 1,
+          content: '张三'
+        }, {
+          id: 2,
+          content: '李四'
+        }, {
+          id: 3,
+          content: '王五'
+        }],
+      };
+    },
+    methods: {
+      change(e) {
+        console.log('chooseValue', this.chooseValue)
+      }
+    },
+  }
+</script>
+```
+
+#### 多选
+
+多选开启`multiple`属性,双向绑定的值必须为数组类型,在change事件中根据自己需求进行处理。
+
+```vue
+<template>
+    <w-select 
+      v-model='chooseValue' 
+      :list='list'
+      multiple
+      valueName='content' 
+      keyName="id"
+      @change='change'
+    >
+    </w-select>
+</template>
+<script>
+  export default {
+    data() {
+      return {
+        chooseValue: [],
+        list: [{
+          id: 1,
+          content: '张三'
+        }, {
+          id: 2,
+          content: '李四'
+        }, {
+          id: 3,
+          content: '王五'
+        }],
+      };
+    },
+    methods: {
+      change(e) {
+        console.log('chooseValue', this.chooseValue)
+      }
+    },
+  }
+</script>
+```

+ 578 - 0
work/components/w-select/w-select.vue

@@ -0,0 +1,578 @@
+<template>
+	<view
+	  class="w-select"
+	  id="wSelect"
+	  :style="{
+		'--select-wrap-width': width,
+		'--select-wrap-height': height,
+		'--select-bg-color': bgColor
+	  }"
+	>
+	  <view :class="isShow ? 'select-wrap-active' : ''" class="select-wrap" @click="changeShow">
+		<view v-if="multiple" class="select-content">
+		  <view class="select-content-item-default" v-if="multiSelectList.length === 0 && !filterable">
+			{{ defaultValue }}
+		  </view>
+		  <view class="select-content-item" v-if="multiSelectList.length > 0">
+			{{ multiSelectList[0][valueName] }}
+		  </view>
+		  <view class="select-content-item" v-if="multiSelectList.length > 1">
+			{{ multiLength }}
+		  </view>
+		</view>
+		<input
+		  v-if="!multiple || filterable"
+		  type="text"
+		  @input="inputChange"
+		  @blur="blurChange"
+		  :placeholder="multiple ? multiSelectList.length === 0 ? defaultValue : '' : defaultValue"
+		  :disabled="!filterable"
+		  :style="!filterable ? 'pointer-events: none' : ''"
+		  :value="inputData"
+		>
+		<!-- #ifdef VUE2 -->
+		<view
+		  @click.stop="refreshValue"
+		  class="close-icon"
+		  v-if="showClose && (multiple ? value.length > 0 : value)"
+		>
+		  <image :src="refreshUrl" mode="" />
+		</view>
+		<view
+		  v-if="value.length <= 0 || !showClose"
+		  :class="isShow ? 'w-select-arrow-up' : ''"
+		  class="w-select-arrow "
+		/>
+		<!-- #endif -->
+		<!-- #ifdef VUE3 -->
+		<view
+		  @click.stop="refreshValue"
+		  class="close-icon"
+		  v-if="showClose && (multiple ? modelValue.length > 0 : modelValue)"
+		>
+		  <image :src="refreshUrl" mode="" />
+		</view>
+		<view
+		  v-if="modelValue.length <= 0 || !showClose"
+		  :class="isShow ? 'w-select-arrow-up' : ''"
+		  class="w-select-arrow "
+		/>
+		<!-- #endif -->
+  
+		<scroll-view
+		  scroll-y
+		  v-show="optionsShow"
+		  :class="[
+			isShow
+			  ? showPosition === 'bottom'
+				? 'animation-bottom-in'
+				: 'animation-top-in'
+			  : showPosition === 'bottom'
+				? 'animation-bottom-out'
+				: 'animation-top-out',
+			showPosition === 'bottom'
+			  ? 'position-bottom'
+			  : 'position-top'
+		  ]"
+		  class="select-options"
+		>
+		  <!-- #ifdef VUE2 -->
+		  <view
+			@click.stop="handleClickItem(item)"
+			:class="
+			  multiple &&
+				multiSelectList.find(
+				  res => res[keyName] === item[keyName]
+				)
+				? 'item-active'
+				: value == item[keyName]
+				  ? 'item-active'
+				  : ''
+			"
+			v-for="item in filterList"
+			:key="item[keyName]"
+			class="select-option-item"
+		  >
+			{{ item[valueName] }}
+		  </view>
+		  <!-- #endif -->
+		  <!-- #ifdef VUE3 -->
+		  <view
+			@click.stop="handleClickItem(item)"
+			:class="
+			  multiple &&
+				multiSelectList.find(
+				  res => res[keyName] === item[keyName]
+				)
+				? 'item-active'
+				: modelValue == item[keyName]
+				  ? 'item-active'
+				  : ''
+			"
+			v-for="item in filterList"
+			:key="item[keyName]"
+			class="select-option-item"
+		  >
+			{{ item[valueName] }}
+		  </view>
+		  <!-- #endif -->
+  
+		  <view class="options-no-data" v-if="filterList.length < 1">
+			无匹配数据~
+		  </view>
+		</scroll-view>
+	  </view>
+	  <view v-if="isShow" @click="closeContentSelect" class="contentMask" />
+	</view>
+  </template>
+  
+  <script>
+  export default {
+	props: {
+	  width: {
+		type: String,
+		default: '200px'
+	  },
+	  height: {
+		type: String,
+		default: '30px'
+	  },
+	  bgColor: {
+		type: String,
+		default: '#fff'
+	  },
+	  // 是否多选
+	  multiple: {
+		type: Boolean,
+		default: false
+	  },
+	  // 是否可搜索
+	  filterable: {
+		type: Boolean,
+		default: false
+	  },
+	  // 是否显示关闭按钮
+	  showClose: {
+		type: Boolean,
+		default: false
+	  },
+	  // 渲染列表
+	  list: {
+		type: Array,
+		default: () => []
+	  },
+	  // #ifdef VUE3
+	  // 双向绑定的值
+	  modelValue: {
+		type: [Array, String, Number],
+		default: ''
+	  },
+	  // #endif
+	  // #ifdef VUE2
+	  // 双向绑定的值
+	  value: {
+		type: [Array, String, Number],
+		default: ''
+	  },
+	  // #endif
+	  // 默认显示的内容
+	  defaultValue: {
+		type: String,
+		default: '请选择'
+	  },
+	  // 显示的内容
+	  valueName: {
+		type: String,
+		default: 'label'
+	  },
+	  // 绑定的内容
+	  keyName: {
+		type: String,
+		default: 'value'
+	  },
+	  chosevalue:{
+	  		type: String,
+	  		default: '' 
+	  }
+	},
+	// #ifdef VUE3
+	emits: ['update:modelValue', 'change'],
+	// #endif
+	watch: {
+		chosevalue(newval){
+			if(newval&&!this.inputData){
+				this.inputData=newval
+			}
+		},
+	  list: {
+		immediate: true,
+		deep: true,
+		handler (news) {
+		  this.filterList = news
+		  const findItem = news.find(item => {
+			let isItem = ''
+			// #ifdef VUE3
+			if (item[this.keyName] === this.modelValue) {
+			  isItem = true
+			} else {
+			  isItem = false
+			}
+			// #endif
+  
+			// #ifdef VUE2
+			
+			if (item[this.keyName] === this.value) {
+			  isItem = true
+			} else {
+			  isItem = false
+			}
+			// #endif
+			return isItem
+		  })
+		  if (findItem) { 
+			this.inputData = findItem[this.valueName]
+		  }
+		}
+	  }
+	},
+	computed: {
+	  multiLength () {
+		const length = this.multiSelectList.length - 1
+		return '+' + length
+	  },
+	  bottomDistance () {
+		return (
+		  this.windowHeight - this.distanceTop - this.curHeight
+		) // 当前元素距离可视屏幕底部的距离
+	  }
+	},
+	data () {
+	  return {
+		inputData: '',
+		// #ifdef VUE3
+		multiSelectList: this.multiple ? this.modelValue : [],
+		// #endif
+		// #ifdef VUE2
+		multiSelectList: this.multiple ? this.value : [],
+		// #endif
+		isShow: false,
+		optionsShow: false,
+		windowHeight: null,
+		curHeight: null,
+		distanceTop: null,
+		showPosition: 'bottom',
+		filterList: [],
+		refreshUrl: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4wMSIvPjxwYXRoIGQ9Ik0yNCA0NEMzNS4wNDU3IDQ0IDQ0IDM1LjA0NTcgNDQgMjRDNDQgMTIuOTU0MyAzNS4wNDU3IDQgMjQgNEMxMi45NTQzIDQgNCAxMi45NTQzIDQgMjRDNCAzNS4wNDU3IDEyLjk1NDMgNDQgMjQgNDRaIiBmaWxsPSJub25lIiBzdHJva2U9IiM3YzZlNmUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0yOS42NTY5IDE4LjM0MzFMMTguMzQzMiAyOS42NTY4IiBzdHJva2U9IiM3YzZlNmUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTE4LjM0MzIgMTguMzQzMUwyOS42NTY5IDI5LjY1NjgiIHN0cm9rZT0iIzdjNmU2ZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4='
+	  }
+	},
+	mounted () {
+	  this.$nextTick(() => {
+		const res = uni.getSystemInfoSync()
+		this.windowHeight = res.windowHeight // 当前设备屏幕高度
+		uni
+		  .createSelectorQuery()
+		  .in(this)
+		  .select('#wSelect')
+		  .boundingClientRect(data => {
+			this.distanceTop = data.top // 当前元素距离顶部的距离
+			this.curHeight = data.height
+		  })
+		  .exec()
+	  })
+	},
+	methods: {
+	  showPositon () {
+		this.showPosition = 'bottom'
+		if (this.bottomDistance < this.windowHeight / 3) {
+		  this.showPosition = 'top'
+		}
+	  },
+	  changeShow () {
+		this.isShow = !this.isShow
+		if (this.isShow === false) {
+		  this.filterList = this.list
+		  setTimeout(() => {
+			this.optionsShow = false
+		  }, 200)
+		} else {
+		  this.showPositon()
+		  this.optionsShow = this.isShow;
+		  // 重置列表
+		  this.filterList = this.list
+		}
+	  },
+	  closeContentSelect () {
+		this.isShow = false
+		setTimeout(() => {
+		  this.optionsShow = false
+		}, 200)
+	  },
+	  setValue (value = '') {
+		// #ifdef VUE3
+		this.$emit('update:modelValue', value)
+		// #endif
+  
+		// #ifdef VUE2
+		this.$emit('input', value)
+		// #endif
+	  },
+	  inputChange (e) {
+		const value = e.detail.value
+		if(this.multiple && this.filterable) {
+			this.inputData = value
+		}else {
+			// this.setValue(value)
+			this.inputData = value
+		}
+		
+		this.filterList = this.list.filter(item =>
+		  item[this.valueName].includes(value)
+		)
+	  },
+	  blurChange(e) {
+		const value = e.detail.value
+		this.inputData=this.chosevalue;
+		if(this.multiple && this.filterable && value) {
+			let curValue ={
+				[this.keyName]:value,
+				[this.valueName]:value
+			}
+			this.multiSelect(curValue)
+		}
+	  },
+	  refreshValue () {
+		this.setValue('')
+		this.inputData = ''
+		this.$emit('change', '')
+		this.filterList = this.list
+		if (this.multiple) {
+		  this.multiSelectList = []
+		}
+	  },
+	  handleClickItem (e) {
+		if (this.multiple) {
+		  this.multiSelect(e)
+		} else {
+		  this.setValue(e[this.keyName])
+		  this.inputData = e[this.valueName]
+		  this.$emit('change', e)
+		  this.changeShow()
+		}
+	  },
+	  multiSelect (item) {
+		const index = this.multiSelectList.findIndex(
+		  res => res[this.valueName] === item[this.valueName]
+		)
+		if (index > -1) {
+		  this.multiSelectList.splice(index, 1)
+		} else {
+		  this.multiSelectList.push(item)
+		}
+		this.inputData = ''
+		this.filterList = this.list
+		this.setValue(this.multiSelectList)
+		this.$emit('change', item)
+	  }
+	}
+  }
+  </script>
+  <style lang="scss" scoped>
+.select-wrap /deep/ .input-placeholder{font-size: 30rpx;color: #AAAAAA;}
+  .w-select {
+	--select-wrap-width: 200px;
+	--select-wrap-height: 30px;
+	--select-border-radius: 4px;
+	--select-border: 1px solid #dcdfe6;
+	--select-active-border: 1px solid #409eff;
+	--select-options-max-height: 150px;
+	--select-option-item-font-size: 14px;
+	--select-input-font-size: 14px;
+	--no-data-default-color: #999999;
+	--select-options-box-shadow: 0px 0px 12px rgb(0 0 0 / 12%);
+	--select-bg-color: #ffffff;
+	.select-wrap {
+	  position: relative;
+	  display: flex;
+	  justify-content: space-between;
+	  align-items: center;
+	  width: var(--select-wrap-width);
+	  height: var(--select-wrap-height);
+	  padding: 0 10rpx 0 20rpx;
+	  box-sizing:border-box;
+	// border: var(--select-border);
+	  border-radius: var(--select-border-radius);
+	  background-color: var(--select-bg-color);
+	  transition: all 0.2s;
+	  background-color: #EEEEEE;
+	  input {
+		padding: 0 2px;
+		width: 100%;
+		min-width: 0;
+		height: 100%;
+		font-size: var(--select-input-font-size);
+		flex: 1;
+		text-align: left;
+	  }
+	  .select-content {
+		display: flex;
+		align-items: center;
+		font-size: var(--select-option-item-font-size);
+		.select-content-item {
+		  margin-left: 5px;
+		  padding: 2px 6px;
+		  border-radius: var(--select-border-radius);
+		  color: #aa93b1;
+		  background-color: #f4f4f5;
+		}
+		.select-content-item-default {
+		  margin-left: 5px;
+		  color: var(--no-data-default-color);
+		}
+	  }
+	  .close-icon {
+		position: absolute;
+		top: 50%;
+		right: 7px;
+		z-index: 1000;
+		width: 15px;
+		height: 15px;
+		transform: translateY(-50%);
+		image {
+		  width: 100%;
+		  height: 100%;
+		}
+	  }
+	  .position-bottom {
+		top: calc(var(--select-wrap-height) + 10px);
+	  }
+	  .position-top {
+		bottom: calc(var(--select-wrap-height) + 10px);
+	  }
+	  .select-options {
+		position: absolute;
+		right: 0;
+		left: 0;
+		z-index: 999;
+		overflow: scroll;
+		padding: 10px;
+		max-height: var(--select-options-max-height);
+		border-radius: var(--select-border-radius);
+		background-color: var(--select-bg-color);
+		box-shadow: var(--select-options-box-shadow);
+		.select-option-item {
+		  margin-bottom: 5px;
+		  padding: 5px;
+		  font-size: var(--select-option-item-font-size);
+		  transition: background-color 0.2s;
+		}
+		.item-active {
+		  font-weight: 700;
+		  color: #409eff;
+		  // background-color: #f5f7fa;
+		}
+		.options-no-data {
+		  font-size: var(--select-option-item-font-size);
+		  text-align: center;
+		  color: var(--no-data-default-color);
+		}
+	  }
+	  .w-select-arrow {
+		display: inline-block;
+		margin: 3px 10px 0;
+		width: 8px;
+		height: 8px;
+		border-top: 1px solid transparent;
+		border-right: 1px solid transparent;
+		border-bottom: 1px solid #999999;
+		border-left: 1px solid #999999;
+		transition: all 0.3s;
+		transform: translateY(-50%) rotate(-45deg);
+	  }
+	  .w-select-arrow-up {
+		transform: rotate(-225deg);
+	  }
+	}
+	.select-wrap-active {
+	  // border: var(--select-active-border);
+	}
+	.animation-bottom-in {
+	  animation-name: bottom-in;
+	  animation-duration: 0.4s;
+	  animation-timing-function: ease-out;
+	  animation-fill-mode: both;
+	}
+	.animation-bottom-out {
+	  animation-name: bottom-out;
+	  animation-duration: 0.2s;
+	  animation-timing-function: ease-out;
+	  animation-fill-mode: both;
+	}
+	.animation-top-in {
+	  animation-name: top-in;
+	  animation-duration: 0.4s;
+	  animation-timing-function: ease-out;
+	  animation-fill-mode: both;
+	}
+	.animation-top-out {
+	  animation-name: top-out;
+	  animation-duration: 0.2s;
+	  animation-timing-function: ease-out;
+	  animation-fill-mode: both;
+	}
+  
+	@keyframes bottom-in {
+	  0% {
+		opacity: 0;
+		transform: translateY(-15%);
+	  }
+	  100% {
+		opacity: 1;
+		transform: translateY(0);
+	  }
+	}
+  
+	@keyframes bottom-out {
+	  0% {
+		opacity: 1;
+		transform: translateY(0);
+	  }
+	  100% {
+		opacity: 0;
+		transform: translateY(-20%);
+	  }
+	}
+  
+	@keyframes top-in {
+	  0% {
+		opacity: 0;
+		transform: translateY(15%);
+	  }
+	  100% {
+		opacity: 1;
+		transform: translateY(0);
+	  }
+	}
+  
+	@keyframes top-out {
+	  0% {
+		opacity: 1;
+		transform: translateY(0);
+	  }
+	  100% {
+		opacity: 0;
+		transform: translateY(20%);
+	  }
+	}
+	.contentMask {
+	  position: fixed;
+	  top: 0;
+	  right: 0;
+	  bottom: 0;
+	  left: 0;
+	  z-index: 998;
+	  width: 100%;
+	  height: 100%;
+	}
+  }
+  </style>
+  

+ 332 - 170
work/pages/business/add.vue

@@ -28,7 +28,7 @@
 				</uni-forms-item>
 			</view>	
 			<!-- 企业信息 -->
-			<view v-if="stepval==1">
+			<view v-show="stepval==1">
 				<!-- 企业信息 -->
 				<view class="addtit mt3"><text>*</text>企业信息</view>
 				<view class="bgf plr12">
@@ -69,9 +69,9 @@
 					</uni-forms-item>
 					<uni-forms-item label="公司章程" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
+							<view class="phoboxa" v-if="jcfjobj.gszc">
 								<!-- fileName 给label 0 -->
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="公司章程" fileVal='gszc' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.gszc" fileVal='gszc' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -94,8 +94,8 @@
 					</uni-forms-item>
 					<uni-forms-item label="开户许可证" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="开户许可证" fileVal='khxkz' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.khxkz">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.khxkz" fileVal='khxkz' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -167,8 +167,8 @@
 				<view class="bgf plr12">
 					<uni-forms-item label="申请企业" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="申请企业征信报告" fileVal='sqqyzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.sqqyzxbg">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.sqqyzxbg" fileVal='sqqyzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -191,8 +191,8 @@
 					</uni-forms-item>
 					<uni-forms-item label="关联企业" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="关联企业征信报告" fileVal='glqyzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.glqyzxbg">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.glqyzxbg" fileVal='glqyzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -219,8 +219,8 @@
 				<view class="bgf plr12">
 					<uni-forms-item label="企业法人" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="企业法人征信报告" fileVal='qyfrzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.qyfrzxbg">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.qyfrzxbg" fileVal='qyfrzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -247,8 +247,8 @@
 				<view class="bgf plr12">
 					<uni-forms-item label="实际控股人" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="实际控股人征信报告" fileVal='sjkgrzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.sjkgrzxbg">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.sjkgrzxbg" fileVal='sjkgrzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -271,8 +271,8 @@
 					</uni-forms-item>
 					<uni-forms-item label="配偶征信" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="实际控股人配偶征信报告" fileVal='sjkgrpozxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.sjkgrpozxbg">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.sjkgrpozxbg" fileVal='sjkgrpozxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -326,7 +326,7 @@
 				</view>
 			</view>
 			<!-- 法人信息 -->
-			<view v-if="stepval==2">
+			<view v-show="stepval==2">
 				<!-- 用户类型 -->
 				<view class="addtit mt3"><text>*</text>用户类型</view>
 				<view class="bgf plr12">
@@ -345,8 +345,8 @@
 				<view class="bgf plr12">
 					<uni-forms-item label="身份证" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="法人身份证人面像" fileVal='frsfzrmx' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="gdformats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frsfzrmx">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.frsfzrmx" fileVal='frsfzrmx' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="gdformats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="ponuploadEnd" >
 									<view class="photop">
 										<image :src="cardz" class="bgimg"></image>
@@ -356,8 +356,8 @@
 								</lsj-upload>
 								<view class="photit atit">上传人像面</view>
 							</view>
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="法人身份证国徽面" fileVal='frsfzghm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="gdformats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frsfzghm">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.frsfzghm" fileVal='frsfzghm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="gdformats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="ponuploadEnd" >
 									<view class="photop">
 										<view class="photop">
@@ -409,7 +409,7 @@
 				<!-- * 家庭婚姻信息 -->
 				<view class="addtit mt3"><text>*</text>家庭婚姻信息</view>
 				<view class="bgf plr12">
-					<picker  range-key='label' :value="qyidx" :range="hyztlist" class="isborder"  @change='bindDateChanged'>
+					<picker  range-key='label' :value="frhyzkidx" :range="hyztlist" class="isborder"  @change='bindDateChanged'>
 						<uni-forms-item label="婚姻状态" name="corporationMaritalStatus">
 							<view class="lbtabp">
 								<view v-if="datainfo.corporationMaritalStatus&&!frhyzk">{{statusFormat(datainfo.corporationMaritalStatus,hyztlist,'frhyzk')}}</view>
@@ -420,8 +420,8 @@
 					</picker>
 					<uni-forms-item label="配偶身份证" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="法人配偶身份证人面像" fileVal='frsfzpormx' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size"  :formats="gdformats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frsfzpormx">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.frsfzpormx" fileVal='frsfzpormx' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size"  :formats="gdformats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="ponuploadEnd" >
 									<view class="photop">
 										<image :src="cardz" class="bgimg"></image>
@@ -429,10 +429,14 @@
 										<image :src="phoicon" class="addimg"></image>
 									</view>
 								</lsj-upload>
+								<!-- 删除 -->
+								<view class="frdelimg" v-if="datainfo.spouseFront" @click.stop="getDelfzpo('front')">
+									<image :src="fdelimg"></image>
+								</view>
 								<view class="photit atit">上传人像面</view>
 							</view>
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="法人配偶身份证国徽面" fileVal='frsfzpoghm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size"  :formats="gdformats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frsfzpoghm">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.frsfzpoghm" fileVal='frsfzpoghm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size"  :formats="gdformats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="ponuploadEnd" >
 									<view class="photop">
 										<view class="photop">
@@ -442,6 +446,10 @@
 										</view>
 									</view>
 								</lsj-upload>
+								<!-- 删除 -->
+								<view class="frdelimg" v-if="datainfo.spouseBack" @click.stop="getDelfzpo('back')">
+									<image :src="fdelimg"></image>
+								</view>
 								<view class="photit">上传国徽面</view>
 							</view>
 						</view>
@@ -459,8 +467,8 @@
 					<!-- 离婚状态上传 -->
 					<uni-forms-item label="离婚证" name="iszcy" v-if="datainfo.corporationMaritalStatus==3">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="法人离婚证" fileVal='frlhz' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frlhz">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.frlhz" fileVal='frlhz' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="jhico" class="bgimg"></image>
@@ -483,8 +491,8 @@
 					</uni-forms-item>
 					<uni-forms-item label="结婚证" name="iszcy" v-else>
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="法人结婚证" fileVal='frjhz' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frjhz">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.frjhz" fileVal='frjhz' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="jhico" class="bgimg"></image>
@@ -511,25 +519,36 @@
 				<view class="bgf plr12">
 					<uni-forms-item label="户口簿首页" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" :count="1" fileName="法人户口簿首页" fileVal='frhkbsy' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frhkbsy">
+								<lsj-upload ref="lsjUpload" childId="frhkbsy"  :fileName="jcfjobj.frhkbsy" fileVal='frhkbsy' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="hkico" class="bgimg"></image>
-										<block v-for="(ite,idx) in filelist" :key='idx'>
+										<!-- <block v-for="(ite,idx) in filelist" :key='idx'>
 											<image v-if="ite.type=='frhkbsy'&&ite.bigType=='a'" :src="baseUrl+ite.url" class="bgimga"></image>
-										</block>
+										</block> -->
 										<image :src="phoicon" class="addimg"></image>
 									</view>
 								</lsj-upload>
 								<view class="photit atit">上传户口簿第一页</view>
 							</view>
+							<block v-for="(ite,idx) in filelist" :key='idx'>
+								<view class="phoboxa" v-if="ite.type=='frhkbsy'&&ite.bigType=='a'">
+									<view class="photop" @click="getDown(ite.url)">
+										<image :src="lookico" class="bgimg"></image>
+										<image :src="phoicon" class="addimg"></image>
+										<image :src="delimg" class="delimg" @click.stop="getDelFj(idx)"></image>
+									</view>
+									<view class="photit">{{ite.name}}</view>
+								</view>
+							</block>
 						</view>
 					</uni-forms-item>
 					<uni-forms-item label="户口簿单页" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="法人户口簿每一页" fileVal='frhkbbry' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.frhkbbry">
+								<!-- 法人户口簿每一页 -->
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.frhkbbry" fileVal='frhkbbry' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="hkico" class="bgimg"></image>
@@ -560,7 +579,7 @@
 				</view>
 			</view>
 			<!-- 反担保人信息 -->
-			<view v-if="stepval==3">
+			<view v-show="stepval==3">
 				<!--  担保类型 -->
 				<view class="addtit mt3"><text>*</text>担保类型</view>
 				<view class="bgf plr12">
@@ -574,47 +593,50 @@
 						</uni-forms-item>
 					</picker>
 				</view>
-				<!-- 反担保人基本信息 -->
-				<view class="addtit mt3"><text>*</text>反担保人基本信息</view>
-				<view class="bgf plr12">
-					<uni-forms-item label="身份证" name="iszcy">
-						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="反担保人身份证人面像" fileVal='fdbrsfzrmx' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="gdformats" :debug="debug" :instantly="instantly"
-									    @progress="" @uploadEnd="ponuploadEnd" >
-									<view class="photop">
-										<image :src="cardz" class="bgimg"></image>
-										<image v-if="datainfo.guaranteeFront" :src="baseUrl+datainfo.guaranteeFront" class="bgimga"></image>
-										<image :src="phoicon" class="addimg"></image>
-									</view>
-								</lsj-upload>
-								<view class="photit atit">上传人像面</view>
-							</view>
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="反担保人身份证国徽面" fileVal='fdbrsfzghm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size"  :formats="gdformats" :debug="debug" :instantly="instantly"
-									    @progress="" @uploadEnd="ponuploadEnd" >
-									<view class="photop">
+				<!-- 反担保人基本信息 v-if="datainfo.guaranteeType==2"-->
+				<block>
+					<view class="addtit mt3"><text>*</text>反担保人基本信息</view>
+					<view class="bgf plr12">
+						<uni-forms-item label="身份证" name="iszcy">
+							<view class="phobox">
+								<view class="phoboxa" v-if="jcfjobj.fdbrsfzrmx">
+									<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.fdbrsfzrmx" fileVal='fdbrsfzrmx' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="gdformats" :debug="debug" :instantly="instantly"
+										    @progress="" @uploadEnd="ponuploadEnd" >
 										<view class="photop">
-											<image :src="cardf" class="bgimg"></image>
-											<image v-if="datainfo.guaranteeBack" :src="baseUrl+datainfo.guaranteeBack" class="bgimga"></image>
+											<image :src="cardz" class="bgimg"></image>
+											<image v-if="datainfo.guaranteeFront" :src="baseUrl+datainfo.guaranteeFront" class="bgimga"></image>
 											<image :src="phoicon" class="addimg"></image>
 										</view>
-									</view>
-								</lsj-upload>
-								<view class="photit">上传国徽面</view>
+									</lsj-upload>
+									<view class="photit atit">上传人像面</view>
+								</view>
+								<view class="phoboxa" v-if="jcfjobj.fdbrsfzghm">
+									<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.fdbrsfzghm" fileVal='fdbrsfzghm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size"  :formats="gdformats" :debug="debug" :instantly="instantly"
+										    @progress="" @uploadEnd="ponuploadEnd" >
+										<view class="photop">
+											<view class="photop">
+												<image :src="cardf" class="bgimg"></image>
+												<image v-if="datainfo.guaranteeBack" :src="baseUrl+datainfo.guaranteeBack" class="bgimga"></image>
+												<image :src="phoicon" class="addimg"></image>
+											</view>
+										</view>
+									</lsj-upload>
+									<view class="photit">上传国徽面</view>
+								</view>
 							</view>
-						</view>
-					</uni-forms-item>
-					<uni-forms-item label="姓名" name="guaranteeName">
-						<uni-easyinput v-model="datainfo.guaranteeName" :inputBorder='false' placeholder="自动识别" />
-					</uni-forms-item>
-					<uni-forms-item label="身份证号" name="guaranteeIdCard">
-						<uni-easyinput v-model="datainfo.guaranteeIdCard" :inputBorder='false' placeholder="自动识别" />
-					</uni-forms-item>
-					<uni-forms-item label="手机号码" name="guaranteePhone">
-						<uni-easyinput v-model="datainfo.guaranteePhone" type="number" :inputBorder='false' placeholder="请输入手机号码" />
-					</uni-forms-item>
-				</view>
+						</uni-forms-item>
+						<uni-forms-item label="姓名" name="guaranteeName">
+							<uni-easyinput v-model="datainfo.guaranteeName" :inputBorder='false' placeholder="自动识别" />
+						</uni-forms-item>
+						<uni-forms-item label="身份证号" name="guaranteeIdCard">
+							<uni-easyinput v-model="datainfo.guaranteeIdCard" :inputBorder='false' placeholder="自动识别" />
+						</uni-forms-item>
+						<uni-forms-item label="手机号码" name="guaranteePhone">
+							<uni-easyinput v-model="datainfo.guaranteePhone" type="number" :inputBorder='false' placeholder="请输入手机号码" />
+						</uni-forms-item>
+					</view>
+				</block>
+				
 				<!-- * 反担保人家庭婚姻信息 -->
 				<!-- <view class="addtit mt3"><text>*</text>反担保人家庭婚姻信息</view>
 				<view class="bgf plr12">
@@ -708,8 +730,8 @@
 							<text>(选填)</text>
 						</view>
 						<view class="phobox" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="反担保人个人工作证明" fileVal='fdbrgrgzzm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.fdbrgrgzzm">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.fdbrgrgzzm" fileVal='fdbrgrgzzm' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -732,8 +754,8 @@
 					</uni-forms-item>
 					<uni-forms-item label="身份证复印件" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="反担保人身份证复印件" fileVal='fdbrsfzfyj' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.fdbrsfzfyj">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.fdbrsfzfyj" fileVal='fdbrsfzfyj' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="cardz" class="bgimg"></image>
@@ -756,8 +778,8 @@
 					</uni-forms-item>
 					<uni-forms-item label="个人征信报告" name="iszcy">
 						<view class="phobox">
-							<view class="phoboxa">
-								<lsj-upload ref="lsjUpload" childId="upload1" fileName="反担保人个人征信报告" fileVal='fdbrgrzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
+							<view class="phoboxa" v-if="jcfjobj.fdbrgrzxbg">
+								<lsj-upload ref="lsjUpload" childId="upload1" :fileName="jcfjobj.fdbrgrzxbg" fileVal='fdbrgrzxbg' bigType="a" :width="pwidth" :height="pheight" :option="option" :size="size" :formats="formats" :debug="debug" :instantly="instantly"
 									    @progress="" @uploadEnd="onuploadEnd" >
 									<view  class="photop" >
 										<image :src="zico" class="bgimg"></image>
@@ -781,7 +803,7 @@
 				</view>
 			</view>
 			<!-- 添加附件 -->
-			<view v-if="stepval==4">
+			<view v-show="stepval==4">
 				<!--  附件信息 -->
 				<view class="addtit mt3">
 					<view @click="getDbclFn" class="flexc">附件信息<image :src="ywicon" class="ywimg"></image></view>
@@ -842,7 +864,7 @@
 							</view>
 						</view>
 					</view>
-					<view class="bgf plr12" v-if="ite.val=='dqcwbb'&&datainfo.applicationType==2">
+					<view class="bgf plr12" v-if="ite.val=='dqcwbb'&&datainfo.applicationType==1">
 						<view class="fjbox isborder">
 							<view class="fjtop flext">
 								<view class="ftit"><text>*</text>{{ite.label}}</view>
@@ -1168,6 +1190,8 @@
 <script>
 	import config from '@/config'
 	const baseUrl = config.baseUrl
+	const baseUrlimg=config.baseUrl
+	const baseName = config.baseName
 	import popUp from "@/work/components/popup/popup.vue"
 	import stepBar from "@/components/toptab/stepbar.vue"
 	import { getToken } from '@/utils/auth'
@@ -1176,6 +1200,7 @@
 	import {uploadmore,selectValueKey} from '@/utils/common.js'
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import {getDictionaryFn} from "@/api/mine/register.js"
+	// 340622185605234521
 	export default{
 		components:{stepBar,popUp},
 		data(){
@@ -1238,7 +1263,7 @@
 				filico:require('@/work/static/images/filico.png'),
 				fdelimg:require('@/work/static/images/del.png'),
 				steps:[{tit:'申请额度',status:0},{tit:'企业信息',status:1},{tit:'法人信息',status:2},{tit:'反担保人信息',status:3},{tit:'添加附件',status:4},],
-				stepval:4,
+				stepval:1,
 				datainfo:{
 					// qymcid:1,
 					// hylx:'',
@@ -1264,7 +1289,7 @@
 			        "corporationFront": "",//法人身份证正面
 			        "corporationBack": "",//法人身份证反面
 			        "corporationName": "",//	法人姓名
-			        "corporationIdCard": "340622185605234521",//法人身份证号
+			        "corporationIdCard": "",//法人身份证号
 			        "corporationPhone": "",//	法人手机号
 			        "familyPopulation": "",//家庭人口数
 			        "corporationJob": "",//法人职业
@@ -1282,14 +1307,14 @@
 			        "guaranteeFront": "",//反担保人身份证正面
 			        "guaranteeBack": "",//反担保人身份证反面
 			        "guaranteeName": "",//反担保人姓名
-			        "guaranteeIdCard": "340622185605234521",//反担保人身份证号
+			        "guaranteeIdCard": "",//反担保人身份证号
 			        "guaranteePhone": "",//反担保人手机号
-			        "guaranteeMaritalStatus": "",//反担保人婚姻状态
-			        "guaranteeSpouseFront": "",//反担保人配偶身份证正面
-			        "guaranteeSpouseBack": "",//反担保人配偶身份证反面
-			        "guaranteeSpouseName": "",//反担保人配偶姓名
-			        "guaranteeSpouseIdCard": "340622185605234521",//反担保人配偶身份证号
-			        "guaranteeSpousePhone": "",//反担保人配偶手机号
+			        // "guaranteeMaritalStatus": "",//反担保人婚姻状态
+			        // "guaranteeSpouseFront": "",//反担保人配偶身份证正面
+			        // "guaranteeSpouseBack": "",//反担保人配偶身份证反面
+			        // "guaranteeSpouseName": "",//反担保人配偶姓名
+			        // "guaranteeSpouseIdCard": "",//反担保人配偶身份证号
+			        // "guaranteeSpousePhone": "",//反担保人配偶手机号
 			        // "userId": '',//申请人用户ID
 			        // "idCard": "",//申请人身份证号码
 			        // "applicationTime": "",//申请时间
@@ -1336,6 +1361,7 @@
 				jcfjlist:[],//基础附件
 				sbfjlist:[],//申报附件
 				wjfjlist:[],//文件出具
+				jcfjobj:{},//基础附件
 				shareholderFjList:[],//全体股东信息附件
 				loanApplicationFjList:[],//相关附件
 				ftype:'',//弹窗type
@@ -1346,19 +1372,27 @@
 				dblxidx:0,
 				yhlxidx:0,
 				sfidx:0,
-				btfiles:[{tit:'公司章程',type:'gszc'},
+				frhyzkidx:0,
+				btfiles:[
+					// {tit:'公司章程',type:'gszc'},
 				//{tit:'开户许可证',type:'khxkz'},{tit:'申请企业征信报告',type:'sqqyzxbg'},{tit:'关联企业征信报告',type:'glqyzxbg'},{tit:'企业法人征信报告',type:'qyfrzxbg'},{tit:'实际控股人征信报告',type:'sjkgrzxbg'},
-				//{tit:'法人身份证人面像',type:'frsfzrmx'},{tit:'法人身份证国徽面',type:'frsfzghm'},{tit:'户口簿首页',type:'frhkbsy'},{tit:'反担保人身份证人面像',type:'fdbrsfzrmx'},{tit:'反担保人身份证国徽面',type:'fdbrsfzghm'},
+				//{tit:'户口簿首页',type:'frhkbsy'},
+				// {tit:'法人身份证人面像',type:'frsfzrmx'},{tit:'法人身份证国徽面',type:'frsfzghm'},
 				],
-				sqbtfiles:[{tit:'委托担保申请书',type:'wtdbsqs'},
+				sqbtfiles:[
+					// {tit:'委托担保申请书',type:'wtdbsqs'},
 				//{tit:'股东会议纪要',type:'gdhyjy'},{tit:'上一年度财务报表',type:'syndcwbb'},{tit:'主要账户银行流水',type:'zyzhyhls'},{tit:'购销合同',type:'gxht'},
 				//{tit:'当前从事项目情况证明',type:'dqcsxmqkzm'},{tit:'企业基本注册信息查询单',type:'qyjbzcxxcxd'},{tit:'水电费发票(一年)',type:'sdffpyn'},{tit:'人员工资表',type:'rggzb'},{tit:'纳税申报表',type:'nssbb'},
 				],
+				content:'',//小微企业富文本
+				
 				ptype:'add',
 				id:'',//申请id
 				declareFj:{},//
 				// {tit:'法人结婚证',type:'frjhz'},{tit:'法人离婚证',type:'frlhz'},
 				// {tit:'法人配偶身份证人面像',type:'frsfzpormx'},{tit:'法人配偶身份证国徽面',type:'frsfzpoghm'},
+				//担保类型为反担保人担保{tit:'反担保人身份证人面像',type:'fdbrsfzrmx'},{tit:'反担保人身份证国徽面',type:'fdbrsfzghm'},
+				//担保类型为抵押{tit:'企业固定资产证明',type:'qygdzczm'},
 			}
 		},
 		onUnload(){
@@ -1381,6 +1415,10 @@
 				this.datainfo.purposeFunds=data.purposeFunds;
 				this.datainfo.repaymentSource=data.repaymentSource;
 				this.datainfo.applicationType=data.applicationType;
+				if(data.applicationType==1){
+					var obj={tit:'当期财务报表',type:'dqcwbb'};
+					this.sqbtfiles.push(obj)
+				}
 				this.getNumber();
 				this.getSbjListFn()
 			}
@@ -1389,8 +1427,8 @@
 				this.categoryId=e.categoryId
 			})
 			this.init()
-			this.getQylist()
-			this.getDocumentList()
+			// this.getQylist()
+			// this.getDocumentList()
 			
 		},
 		mounted() {
@@ -1404,50 +1442,50 @@
 		methods:{
 			checkPermi, checkRole,
 			init(){
-				// 用户类型
-				getDictionaryFn('customer_type').then(res=>{
-					if(res.code==200){
-						this.yhlxlist = res.data.map(v => {
-							return {
-								label: v.dictLabel,
-								value: v.dictValue
-							}
-						})
-					}
-				})
-				// 婚姻状况
-				getDictionaryFn('marital_status').then(res=>{
-					if(res.code==200){
-						this.hyztlist = res.data.map(v => {
-							return {
-								label: v.dictLabel,
-								value: v.dictValue
-							}
-						})
-					}
-				})
-				// 担保类型
-				getDictionaryFn('guarantee_type').then(res=>{
-					if(res.code==200){
-						this.dblxlist = res.data.map(v => {
-							return {
-								label: v.dictLabel,
-								value: v.dictValue
-							}
-						})
-					}
-				})
-				// 基础附件
-				// getDictionaryFn('application_fj_jc').then(res=>{
+				// // 用户类型
+				// getDictionaryFn('customer_type').then(res=>{
+				// 	if(res.code==200){
+				// 		this.yhlxlist = res.data.map(v => {
+				// 			return {
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
+				// 			}
+				// 		})
+				// 	}
+				// })
+				// // 婚姻状况
+				// getDictionaryFn('marital_status').then(res=>{
 				// 	if(res.code==200){
-				// 		this.jcfjlist = res.data.map(v => {
+				// 		this.hyztlist = res.data.map(v => {
 				// 			return {
-				// 				dictLabel: v.dictLabel,
-				// 				dictValue: v.dictValue
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
 				// 			}
 				// 		})
 				// 	}
 				// })
+				// // 担保类型
+				// getDictionaryFn('guarantee_type').then(res=>{
+				// 	if(res.code==200){
+				// 		this.dblxlist = res.data.map(v => {
+				// 			return {
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
+				// 			}
+				// 		})
+				// 	}
+				// })
+				// 基础附件
+				getDictionaryFn('application_fj_jc').then(res=>{
+					if(res.code==200){
+						var obj={}
+						var data=res.data;
+						data.forEach(v=>{
+							obj[v.dictValue]=v.dictLabel
+						})
+						this.jcfjobj=obj
+					}
+				})
 			},
 			getSbjListFn(){
 				// 申报附件
@@ -1461,9 +1499,13 @@
 								fjlist:declareFj[v.dictValue]||[]
 							}
 						})
-						// 详情的时候给添加附件
-						
-						
+						let signArr = this.filelist;
+						signArr = signArr.filter(s => {
+							// if (res.data.find(l => l.dictValue == s.type && l.title == s.title)) return false
+							if (res.data.find(l => l.dictValue == s.type)) return false
+							else return true;
+						})
+						this.filelist = signArr;
 					}
 				})
 			},
@@ -1606,6 +1648,9 @@
 					this.ywidx=aite.key
 				}else if(type=='msqy'){
 					this.sfidx=aite.key
+				}else if(type=='frhyzk'){
+					this.frhyzkidx=aite.key
+					this.frhyzk=aite.actions;
 				}
 				return aite.actions;
 			},
@@ -1626,17 +1671,51 @@
 				var val=e.detail.value;
 				this.datainfo.isLoan=this.ywList[val].value;
 			},
+			getDelfzpo(type){
+				if(type=='front'){
+					this.datainfo.spouseFront="";
+					this.datainfo.spouseName="";
+					this.datainfo.spouseIdCard="";
+				}else{
+					this.datainfo.spouseBack="";	
+				}	
+			},
 			bindDateChanged(e){
 				// 婚姻状态
 				var val=e.detail.value;
 				var value=this.hyztlist[val].value;
+				var list=this.btfiles;
 				if(this.datainfo.corporationMaritalStatus!=value){
 					this.frhyzk=this.hyztlist[val].label;
 					this.datainfo.corporationMaritalStatus=this.hyztlist[val].value;
-					if(value==3){
+					if(value==3){//离异
 						// 删除结婚证
-					}else{
+						var obj={tit:'法人离婚证',type:'frlhz'}
+						const index = list.findIndex(text => text.type === "frjhz");
+						if(index!=-1){
+							this.btfiles.splice(index,1,obj)
+						}else{
+							this.btfiles.push(obj)
+						}	
+					}else if(value==1){//已婚
 						// 删除离婚证
+						var obj={tit:'法人结婚证',type:'frjhz'}
+						const index = list.findIndex(text => text.type === "frlhz");
+						if(index!=-1){
+							this.btfiles.splice(index,1,obj)
+						}else{
+							this.btfiles.push(obj)
+						}	
+					}else{
+						// 未婚
+						const index = this.btfiles.findIndex(text => text.type === "frlhz");
+						if(index!=-1){
+							this.btfiles.splice(index,1)
+						}
+						const indexa = this.btfiles.findIndex(text => text.type === "frjhz");
+						if(indexa!=-1){
+							this.btfiles.splice(indexa,1)
+						}
 					}
 				}
 				
@@ -1646,6 +1725,9 @@
 				var val=e.detail.value;
 				this.dblx=this.dblxlist[val].label;
 				this.datainfo.guaranteeType=this.dblxlist[val].value;
+				var value=this.dblxlist[val].value;
+				var list=this.btfiles;
+				var sqlist=this.sqlist;
 			},
 			bindDateChangef(e){
 				var val=e.detail.value;
@@ -1653,11 +1735,12 @@
 				this.datainfo.isDuty=this.sfList[val].value;
 			},
 			getZanFn(){
-				// 
 				var params=this.datainfo
 				getApplicationZc(params).then(res=>{
 					if(res.code==200){
 						this.$toast('暂存成功')
+						// 刷新列表
+						uni.$emit('refreshywlist')
 					}
 				})
 			},
@@ -1665,6 +1748,10 @@
 				getApplicationDet(this.id).then(res=>{
 					if(res.code==200){
 						this.datainfo=res.data;
+						if(res.data&&res.data.applicationType==1){
+							var obj={tit:'当期财务报表',type:'dqcwbb'};
+							this.sqbtfiles.push(obj)
+						}
 						var data=res.data;
 						var obj={
 							loanApplicationNumber:res.data.loanApplicationNumber
@@ -1718,11 +1805,21 @@
 					this.$toast("请选择有无贷款")
 					return
 				}
-				if(!params.corporationMaritalStatus){
+				if(!this.frhyzk){
 					this.$toast("请选择婚姻状态")
 					return
 				}
-				// 离异上传离婚证 结婚  结婚证
+				if(params.corporationMaritalStatus==1){
+					if(!params.spouseFront){
+						this.$toast("请上传配偶身份证正面")
+						return
+					}
+					if(!params.spouseBack){
+						this.$toast("请上传配偶身份证反面")
+						return
+					}
+				}
+				
 				if(!params.guaranteeType){
 					this.$toast("请选择担保类型")
 					return
@@ -1737,6 +1834,22 @@
 					this.$toast("请输入反担保人手机号")
 					return
 				}
+				if(!params.corporationFront){
+					this.$toast("请上传法人身份证人面像")
+					return
+				}
+				if(!params.corporationBack){
+					this.$toast("请上传法人身份证反面")
+					return
+				}
+				if(!params.guaranteeFront){
+					this.$toast("请上传反担保人身份证正面")
+					return
+				}
+				if(!params.guaranteeBack){
+					this.$toast("请上传反担保人身份证反面")
+					return
+				}
 				var gdlist=this.gdlist;
 				var shFjList=[]
 				var a=0;
@@ -1767,7 +1880,18 @@
 					return
 				}
 				var flist=this.filelist;
-				var btfiles=this.btfiles;
+				var btfiles=JSON.parse(JSON.stringify(this.btfiles));
+				var sqbtfiles=JSON.parse(JSON.stringify(this.sqbtfiles));
+				if(params.guaranteeType==1){//抵押担保
+					var obj={tit:'企业固定资产证明',type:'qygdzczm'}
+					sqbtfiles.push(obj)
+				}else if(params.guaranteeType==2){//反担保人担保
+					var newArr=[
+						{tit:'反担保人身份证人面像',type:'fdbrsfzrmx'},
+						{tit:'反担保人身份证国徽面',type:'fdbrsfzghm'}
+					]
+					btfiles=btfiles.concat(newArr)
+				}
 				var b=0;
 				Object.keys(btfiles).some((key) => {
 					if (flist.find(l => l.type == btfiles[key].type)) {
@@ -1781,12 +1905,12 @@
 				if(b==1){
 					return
 				}
-				var sqbtfiles=this.sqbtfiles;
+				
 				var sbfjlist=this.sbfjlist;
 				var sbArr=[]
 				var c=0;
 				Object.keys(sqbtfiles).some((key) => {
-					if (sbfjlist.find(l => l.type == sqbtfiles[key].val)) {
+					if (sbfjlist.find(l => (l.val == sqbtfiles[key].type) && l.fjlist.length>0)) {
 						return false
 					}else{
 						c=1;
@@ -1802,15 +1926,16 @@
 						flist.push(ite.fjlist[0])
 					}
 				})
+				
 				params.loanApplicationFjList=JSON.parse(JSON.stringify(flist))
-				console.log(params,1)
 				// 申请附件
+				return
 				if(this.ptype=='add'){
 					getApplicationAdd(params).then(res=>{
 						if(res.code==200){
 							that.$toast("新增成功")
 							setTimeout(function(){
-								that.$tab.navigateTo('/work/pages/success')
+								that.$tab.redirectTo('/work/pages/success')
 							},1200)
 						}
 					})
@@ -1964,7 +2089,8 @@
 				}else if(type=='cardf'){
 					obj.cardf=responseText.fileName
 				}else if(type=='zx'){
-					obj.zxurl.push(responseText.fileName)
+					// obj.zxurl.push(responseText.fileName)
+					obj.zxurl[0]=responseText.fileName
 				}
 				this.gdlist.splice(idx,1,obj)
 				// this.datainfo.shareholderFjList=JSON.parse(JSON.stringify(this.gdlist))
@@ -1999,7 +2125,7 @@
 				});
 			},
 			getDelgdFj(idx,zxidx){
-				var obj=this.gdlist[idx].zxurl;
+				var obj=this.gdlist[idx];
 				var that=this;
 				uni.showModal({
 					title: '确认删除',
@@ -2008,7 +2134,7 @@
 					confirmText: '确认',
 					success: function(res) {
 						if (res.confirm) {
-							obj.splice(zxidx,1)
+							obj.zxurl.splice(zxidx,1)
 							that.gdlist.splice(idx,1,obj)
 						} else if (res.cancel) {
 						}
@@ -2039,28 +2165,60 @@
 				getExportMb(params).then(res=>{
 					if(res.code==200){
 						var url=baseUrl+res.msg;
-						uni.downloadFile({
-							url: url,//文件的下载路径
-							success(result) {
-									uni.hideLoading()
-								var filePath = result.tempFilePath;
-								// uni.saveFile({
-								//     tempFilePath: filePath[0],
-								//     success: function (res) {
-								//         var savedFilePath = res.savedFilePath;
-								// 		console.log(savedFilePath,1)
-								//     }
-								// });
-								   uni.openDocument({
-								     filePath: filePath,
-								     showMenu: true,
-								     success: function (res) {
-								       // console.log('打开文档成功');
-								     }
-								   });
-							},
-							fail(res) {uni.hideLoading()}
+						// var url = baseUrl + ite.url;
+						var name=res.name;
+						let dtask = plus.downloader.createDownload(url, {
+							filename: 'file://storage/emulated/0/'+baseName+'/' + name
+						}, (d, status) => {
+							//d为下载的文件对象
+							if (status == 200) {
+								uni.hideLoading();
+								uni.showToast({
+									icon: 'none',
+									mask: true,
+									title: '已保存到文件夹:/'+baseName+'/'+ name, //保存路径
+									duration: 3000,
+								});
+								
+								//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
+								let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
+								setTimeout(() => {
+									plus.runtime.openFile(d.filename); //选择软件打开文件
+								}, 1500)
+							} else {
+								//下载失败
+								uni.hideLoading();
+								plus.downloader.clear(); //清除下载任务
+								uni.showToast({
+									icon: 'none',
+									mask: true,
+									title: '下载失败,请稍后重试',
+								});
+							}
 						})
+						dtask.start();	
+						// uni.downloadFile({
+						// 	url: url,//文件的下载路径
+						// 	success(result) {
+						// 			uni.hideLoading()
+						// 		var filePath = result.tempFilePath;
+						// 		// uni.saveFile({
+						// 		//     tempFilePath: filePath[0],
+						// 		//     success: function (res) {
+						// 		//         var savedFilePath = res.savedFilePath;
+						// 		// 		console.log(savedFilePath,1)
+						// 		//     }
+						// 		// });
+						// 		   uni.openDocument({
+						// 		     filePath: filePath,
+						// 		     showMenu: true,
+						// 		     success: function (res) {
+						// 		       // console.log('打开文档成功');
+						// 		     }
+						// 		   });
+						// 	},
+						// 	fail(res) {uni.hideLoading()}
+						// })
 					}
 				})
 			},
@@ -2145,6 +2303,10 @@
 				&.atit{position: absolute;left: 50%;transform: translate(-50%);bottom: 4rpx;word-break: keep-all;max-width: none;}
 			}
 		}
+		.frdelimg{
+			position: absolute;width: 32rpx;height: 32rpx;right: -16rpx;top: -16rpx;
+			image{width: 24rpx;height: 24rpx;}
+		}
 	}
 	.addgdbox{padding: 34rpx 10rpx 36rpx;}
 	.addbtns{z-index: 2;

+ 419 - 67
work/pages/business/details.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="details">
 		<view class="zxtop">
-			<view class="failtit">该业务申请未通过风险部审核,可完善信息后进行申诉</view>
+			<view class="failtit" v-if="datainfo.auditType==4">该业务申请未通过风险部审核,可完善信息后进行申诉</view>
 			<view class="detop">
 				<!-- 归档 归档后没有业务进度-->
 				<image :src="gdicoimg" class="gdimg" v-if="gdflag"></image>
@@ -59,7 +59,7 @@
 			<!-- 企业信息 -->
 			<view class="mainb" :style="'min-height: ' + minheight + 'px;'">
 				<block v-if="tabval==0">
-					<aqyxx @getDown="getDown" :qyinfo="qyinfo" :datainfo="datainfo" :basicFj="basicFj"></aqyxx>
+					<aqyxx @getDown="getDown" :qyinfo="qyinfo" :datainfo="datainfo" :basicFj="basicFj" ></aqyxx>
 				</block>
 				<block v-if="tabval==1">
 					<bfrxx @getDown="getDown" :datainfo="datainfo" :yhlxlist="yhlxlist" :hyztlist="hyztlist" :basicFj="basicFj"></bfrxx>
@@ -68,10 +68,13 @@
 					<cfdbrxx @getDown="getDown" :datainfo="datainfo" :hyztlist="hyztlist" :basicFj="basicFj"></cfdbrxx>
 				</block>
 				<block v-if="tabval==3">
-					<dfjxx @getDown="getDown" :datainfo="datainfo" :declareFj="datainfo.declareFj" :sbfjlist="sbfjlist"></dfjxx>
+					<dfjxx @getDown="getDown" :datainfo="datainfo" :declareFj="datainfo.declareFj" :sbfjlist="sbfjlist" @getXzFn="getXzFn"></dfjxx>
 				</block>
 				<block v-if="tabval==4">
-					<ewjcj @getDown="getDown" :datainfo="datainfo" @getEdit="getEdit" :wjcjlist="wjcjlist" :fileFj="datainfo.fileFj"></ewjcj>
+					<ewjcj @getDown="getDown" :datainfo="datainfo"  @getDelwjFj="getDelwjFj" @getfjEdit="getfjEdit" :wjcjlist="wjcjlist" :fileFj="datainfo.fileFj"></ewjcj>
+				</block>
+				<block v-if="tabval==5">
+					<fshxx @getDown="getDown" :shjdlist="shjdlist"  :datalist="shlist" ></fshxx>
 				</block>
 			</view>
 			<!-- 法人信息 -->
@@ -90,25 +93,37 @@
 				8:放款合规风险审核 
 				9:放款通知 
 				10:归档 -->
+				
+				<!-- 审核进度
+				1:业务审核/分配 
+				2:A角色审核 
+				3:B角色审核 
+				4:风险审核 
+				5:尽职调查 
+				6:初审风险合规 
+				7:上会评审 -->
 				<!-- 申请审核 start-->
-				<view class="fbtns bga" v-if="checkPermi(['system:application:edit'])" @click="getedit">修改</view>
-				<view class="fbtns bga" v-if="stepval=='1'" @click="getShFn('sh')">审核</view>
+				<view class="fbtns bga" v-if="checkPermi(['system:application:edit'])&&stepval<3" @click="getedit">修改</view>
+				<!-- <view class="fbtns bga" v-if="checkPermi(['system:application:remove'])" @click="getDel">删除</view> -->
+				<view class="fbtns bga" v-if="auditSchedule==1&&checkPermi(['system:application:sh'])" @click="getShFn('sh')">审核</view>
+				<view class="fbtns bga" v-if="auditSchedule==4&&checkPermi(['system:application:sh'])" @click="getShFn('fxsh')">风险审核</view>
 				<!-- 业务审核后出具担保意向函-->
 				<!-- <view class="fbtns bgb">上传文件</view>
 				<view class="fbtns bga" @click="getSubmit">查看担保意向函</view> -->
 				<!-- end -->
 				<!-- a,b角按钮 start-->
-				<view class="fbtns bgb" @click="getShFn('jztcsh')">尽职调查反馈</view>
-				<view class="fbtns bga" @click="getShFn('ajssh')">a审核</view>
-				<view class="fbtns bga" @click="getShFn('bjssh')">b审核</view>
+				<view class="fbtns bgb" v-if="checkPermi(['system:application:sh'])&&userId==datainfo.aUserId&&auditSchedule==5" @click="getShFn('jztcsh')">尽职调查反馈</view>
+				<view class="fbtns bga" v-if="checkPermi(['system:application:sh'])&&userId==datainfo.aUserId&&auditSchedule==2&&datainfo.auditType!=4" @click="getShFn('ajssh')">a审核</view>
+				<view class="fbtns bga" v-if="checkPermi(['system:application:sh'])&&userId==datainfo.bUserId&&auditSchedule==3" @click="getShFn('bjssh')">b审核</view>
 				<!-- 审核后 -->
-				<view class="fbtns bga" @click="getMoreFn('more')">更多操作</view>
+				<!-- <view class="fbtns bga" @click="getMoreFn('more')">更多操作</view> -->
 				<!-- 未通过申诉 -->
-				<view class="fbtns bga">申诉</view>
+				<view class="fbtns bga" v-if="checkPermi(['system:application:ss'])&&datainfo.auditType==4" @click="getSsFn">申诉</view>
+				<view class="fbtns bga" v-if="checkPermi(['system:application:cx'])&&auditSchedule>1" @click="getCxFn">撤销</view>
 				<!-- end -->
 				<!-- 风险部门 start-->
-				<view class="fbtns bgb" @click="getMoreFn('wb')">外部工具平台</view>
-				<view class="fbtns bga" @click="getMoreFn('fxmore')">更多操作</view>
+				<!-- <view class="fbtns bgb" @click="getMoreFn('wb')">外部工具平台</view>
+				<view class="fbtns bga" @click="getMoreFn('fxmore')">更多操作</view> -->
 				<!-- end -->
 				<!-- 上会管理员 start -->
 				<view class="fbtns bgb" @click="getMoreFn('shmore')">更多操作</view>
@@ -120,32 +135,29 @@
 				<view class="fbtns bga" @click="getqmFn">签名</view>
 				<!-- 合同签约end -->
 				<!-- 风险部放款 start-->
-				<view class="fbtns bgb" @click="getShFn('shhj')">上传附件</view>
-				<view class="fbtns bga" @click="">出具放款合规表</view>
+				<!-- <view class="fbtns bgb" @click="getShFn('shhj')">上传附件</view>
+				<view class="fbtns bga" @click="">出具放款合规表</view> -->
 				<!-- end -->
-				<view class="fbtns bga" @click="">放款通知书</view>
-				<view class="fbtns bga" @click="">一键归档</view>
+				<!-- <view class="fbtns bga" @click="">放款通知书</view> -->
+				<view class="fbtns bga" @click="getGdFn">一键归档</view>
 			</view>
 		</block>
 		<!-- 更多操作 -->
-		<view class="bgbox" @click="getClose" v-if="moreflag"></view>
-		<view v-if="moreflag" class="morebox">
+		<view class="bgbox" @click="getClose" v-if="mtype"></view>
+		<view v-if="mtype" class="morebox">
 			<view class="molists">
 				<!-- 审核详情后 -->
 				<block v-if="mtype=='more'">
-					<view class="mcoa" @click="getShFn('shhj')">上传附件</view>
+					<!-- <view class="mcoa" @click="getShFn('shhj')">上传附件</view> -->
 					<view>撤回</view>
 				</block>
 				<!--风险部门 start 外部工具平台 -->
 				<block v-if="mtype=='wb'">
-					<view >中国个人信用查询网</view>
-					<view class="mcoa">中国执行信息公开网</view>
-					<view>最高人民法院诉讼服务网</view>
-					<view>国家企业信用信息公示系统</view>
+					<view v-for="(ite,idx) in linkList" :key="idx" @click="getWebUel(ite.url)">{{ite.name}}</view>
 				</block>
 				<!-- 更多操作 -->
 				<block v-if="mtype=='fxmore'">
-					<view @click="getShFn('fxbmsh')">审核</view>
+					<view @click="getShFn('fxbmsh')" v-if="auditSchedule==6&&checkPermi(['system:application:sh'])">审核</view>
 					<view class="mcoa">出具材料合规表</view>
 					<view @click="getShFn('shhj')">上传附件</view>
 					<view>撤回</view>
@@ -155,40 +167,51 @@
 				<block v-if="mtype=='shmore'">
 					<view>出具评审意见签批表</view>
 					<view class="mcoa">上会纪要</view>
-					<view @click="getShFn('shhj')">上传附件</view>
+					<view @click="getShFn('shpsyj')">上传评审意见签批表</view>
+					<view @click="getShFn('shshjy')">上传上会纪要</view>
 				</block>
 				<!-- 上会管理员 end -->
 				<!-- 合同签约 start -->
 				<block v-if="mtype=='htqy'">
 					<view>委托保证合同</view>
-					<view class="mcoa">保证反担保合同(法人)</view>
-					<view>保证反担保合同(自然人)</view>
-					<view>抵押反担保合同(法人)</view>
-					<view>抵押反担保合同(自然人)</view>
+					<block v-if="datainfo.guaranteeType=='2'">
+						<view>保证反担保合同(法人)</view>
+						<view>保证反担保合同(自然人)</view>
+					</block>
+					<block v-if="datainfo.guaranteeType=='1'">
+						<view>抵押反担保合同(法人)</view>
+						<view>抵押反担保合同(自然人)</view>
+					</block>
 				</block>
 				<!-- 合同签约 end -->
 			</view>
-			<view class="surbtns">确认</view>
+			<!-- <view class="surbtns" @click="getMoreSure">确认</view> -->
 		</view>
-		<pop-up :type="type" :stepList="stepList" :stepval="stepval" @getClose="getClose" @getupSubmit="getupSubmit"></pop-up>
+		<pop-up :type="type" :shtg="shtg" :loanApplicationId="datainfo.loanApplicationId" :loanApplicationNumber="datainfo.loanApplicationNumber" :userList="userList" 
+		:stepList="stepList" :wjcjobj='wjcjobj' :stepval="stepval" :fjval="fjval"
+		 @getfjAdd="getfjAdd"
+		 @getClose="getClose" @getupSubmit="getupSubmit" @getSure="getSure"></pop-up>
 	</view>
 </template>
 
 <script>
 	import config from '@/config'
 	const baseUrl = config.baseUrl
+	const baseName = config.baseName
 	import popUp from "@/work/components/popup/popup.vue"
 	import aqyxx from "@/work/components/business/aqyxx.vue"
 	import bfrxx from "@/work/components/business/bfrxx.vue"
 	import cfdbrxx from "@/work/components/business/cfdbrxx.vue"
 	import dfjxx from "@/work/components/business/dfjxx.vue"
 	import ewjcj from "@/work/components/business/ewjcj.vue"
+	import fshxx from "@/work/components/business/fshxx.vue"
 	import {uploadmore,selectValue} from '@/utils/common.js'
 	import {getDictionaryFn} from "@/api/mine/register.js"
-	import {getApplicationDet,getScheduleList} from "@/api/mine/work.js"
+	import {getUsernoPageList,getFjAdd,getFjDel} from "@/api/common.js"
+	import {getApplicationDet,getScheduleList,getHyperlinkList,getApplicationDel,getApplicationSh,getCommentsList,getApplicationSs,getApplicationCx,getapplicationGd} from "@/api/mine/work.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
-		components:{aqyxx,bfrxx,cfdbrxx,dfjxx,ewjcj,popUp},
+		components:{aqyxx,bfrxx,cfdbrxx,dfjxx,ewjcj,fshxx,popUp},
 		data(){
 			return{
 				start:require('@/work/static/images/start.png'),
@@ -198,20 +221,10 @@
 				tabval:0,
 				type:'',
 				tabList:[{tit:"企业信息",val:0},{tit:"法人信息",val:1},{tit:"反担保人信息",val:2},{tit:"附件信息",val:3},{tit:"文件出具",val:4},{tit:"审核信息",val:5},],
-				stepList:[
-					// {loanScheduleName:"业务审核、分配",time:'2024-03-10 16:12',loanScheduleScore:0},
-					// {tit:"担保初审",time:'2024-03-10 16:12',val:1},
-					// {tit:"尽职调查",time:'2024-03-10 16:12',val:2},
-					// {tit:"初审风险合规",time:'2024-03-10 16:12',val:3},
-					// {tit:"评审会",time:'2024-03-10 16:12',val:4},
-					// {tit:"合同签约",time:'2024-03-10 16:12',val:4},
-					// {tit:"放款合规风险审核",time:'2024-03-10 16:12',val:4},
-					// {tit:"放款通知",time:'2024-03-10 16:12',val:4},
-					// {tit:"归档",time:'2024-03-10 16:12',val:4},
-				],
+				stepList:[],
 				stepval:0,
 				gdflag:false,
-				moreflag:false,
+				auditSchedule:'',//审核进度
 				mtype:'',
 				minheight:0,
 				listTop:0,//距离顶部的距离
@@ -264,20 +277,20 @@
 					"guaranteeName": "",//反担保人姓名
 					"guaranteeIdCard": "",//反担保人身份证号
 					"guaranteePhone": "",//反担保人手机号
-					"guaranteeMaritalStatus": "",//反担保人婚姻状态
-					"guaranteeSpouseFront": "",//反担保人配偶身份证正面
-					"guaranteeSpouseBack": "",//反担保人配偶身份证反面
-					"guaranteeSpouseName": "",//反担保人配偶姓名
-					"guaranteeSpouseIdCard": "",//反担保人配偶身份证号
-					"guaranteeSpousePhone": "",//反担保人配偶手机号
-					"userId": '',//申请人用户ID
-					"idCard": "",//申请人身份证号码
-					"applicationTime": "",//申请时间
+					// "guaranteeMaritalStatus": "",//反担保人婚姻状态
+					// "guaranteeSpouseFront": "",//反担保人配偶身份证正面
+					// "guaranteeSpouseBack": "",//反担保人配偶身份证反面
+					// "guaranteeSpouseName": "",//反担保人配偶姓名
+					// "guaranteeSpouseIdCard": "",//反担保人配偶身份证号
+					// "guaranteeSpousePhone": "",//反担保人配偶手机号
+					// "userId": '',//申请人用户ID
+					// "idCard": "",//申请人身份证号码
+					// "applicationTime": "",//申请时间
 					"fileTime": "",//归档时间
 					"loanSchedule": "",//贷款申请进度(业务进度表查询进度列表):1:申报提交2:业务审核/分配 3:担保初审 4:尽职调查 5:初审风险合规 6:评审会 7:合同签约 8:放款合规风险审核 9:放款通知 10:归档
 					"loanScheduleName": '',//贷款申请进度名称(中文字)
 					"auditSchedule": "",//审核进度1:担保初审 2:A角色审核 3:B角色审核 4:风险审核 5:尽职调查 6:上会评审
-					"auditType": "",//审核状态 1:待审核 2:已通过 3:未通过
+					"auditType": "",//审核状态  1:待审核 2:已通过 3:未通过 4:申诉
 					"loanApplicationType": "",//贷款申请状态 1:暂存 2:正常 3:回收站 4:归档
 					"aUserId": "",//A角色用户ID
 					"aUserName": "",//A角色用户名称
@@ -296,6 +309,18 @@
 				hyztlist:[],//婚姻状态
 				sbfjlist:[],//申报附件
 				wjcjlist:[],//文件出具
+				linkList:[],//外部链接
+				userList:[],//用户列表
+				shjdlist:[],//审核进度
+				shlist:[],//审核信息
+				shinfo:{},//审核信息
+				wjcjobj:{},//文件出具对象
+				fjval:'',//附件类型
+				userId:this.$store.state.user.userId,
+				contype:'',//二次确认弹窗
+				mval:-1,
+				mite:"",
+				shtg:'',
 			}
 		},
 		onUnload() {
@@ -306,9 +331,12 @@
 			uni.$on('refreshywlist',(e) => {
 				this.getDetail();
 			})
-			// this.init()
+			this.init()
 			this.getDetail();
-			this.getScheduleList()
+			this.getScheduleList();
+			this.getHyperlinkList();//外部链接
+			this.getUsernoPageList();//获取用户列表
+			this.getCommentsList()//审核意见
 		},
 		mounted() {
 			uni.getSystemInfo({
@@ -339,6 +367,35 @@
 				}
 				this.$tab.navigateTo('/work/pages/business/add?data='+encodeURIComponent(JSON.stringify(obj)))
 			},
+			// 删除
+			getDelwjFj(id){
+				var that=this;
+				uni.showModal({
+					title: '确认删除',
+					content: "是否确认删除",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							getFjDel(id).then(res=>{
+								if(res.code==200){
+									that.$toast("删除成功")
+									setTimeout(function(){
+										that.getDetail()
+									},1200)
+									
+								}
+							})
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getfjEdit(ite){
+				console.log(ite,23)
+				this.type='fjadd';
+				this.fjval=ite
+			},
 			// 业务进度
 			getScheduleList(){
 				var params={
@@ -350,6 +407,69 @@
 					}
 				})
 			},
+			getWebUel(url){
+				// this.mval=idx;
+				// this.mite=ite
+				this.mtype='';
+				this.$tab.navigateTo("/pages/common/webview/index?url="+url)
+				
+			},
+			getMoreSure(){
+				var mttype=this.mtype;
+				var mite=this.mite;
+				if(mttype=='wb'){
+					this.mtype='';
+					this.$tab.navigateTo("/pages/common/webview/index?url="+mite.url)
+				}
+			},
+			// 外部链接
+			getHyperlinkList(){
+				var params={
+					type:1
+				}
+				getHyperlinkList(params).then(res=>{
+					if(res.code==200){
+						this.linkList=res.rows
+					}
+				})
+			},
+			// 用户-列表
+			//用户类型(00系统用户 01注册用户 02管理用户
+			getUsernoPageList(){
+				var params={
+					// userType:'02'
+				}
+				getUsernoPageList(params).then(res=>{
+					if(res.code==200){
+						this.userList=res.rows
+					}
+				})
+			},
+			getCommentsList(){
+				var params={
+					loanApplicationId:this.id,
+				}
+				getCommentsList(params).then(res=>{
+					if(res.code==200){
+						var newArr=res.rows;
+						newArr.forEach(ite=>{
+							if(ite.imageUrl){
+								ite.imageUrl=ite.imageUrl.split(',')
+							}
+						})
+						this.shlist=newArr
+						// this.shlist = res.rows.map(v => {
+						// 	return {
+						// 			auditType: v.auditType,
+						// 			auditView: v.auditView,
+						// 			fjUrl:v.fjUrl,
+						// 			imageUrl:v.imageUrl.split(',')||v.imageUrl
+						// 		}
+						// 	})
+						// this.shlist=res.rows
+					}
+				})
+			},
 			init(){
 				// 用户类型
 				getDictionaryFn('customer_type').then(res=>{
@@ -407,16 +527,31 @@
 						})
 					}
 				})
-				// 文件出具
+				// // 文件出具
 				getDictionaryFn('application_fj_wjcj').then(res=>{
 					if(res.code==200){
+						var obj={}
 						this.wjcjlist = res.data.map(v => {
+							// var key=v.dictValue
+							obj[v.dictValue]=v.dictLabel
 							return {
 								label: v.dictLabel,
 								val: v.dictValue,
 								fjlist:[]
 							}
 						})
+						this.wjcjobj=obj
+					}
+				})
+				//审核进度
+				getDictionaryFn('audit_schedule').then(res=>{
+					if(res.code==200){
+						this.shjdlist = res.data.map(v => {
+							return {
+								label: v.dictLabel,
+								value: v.dictValue,
+							}
+						})
 					}
 				})
 			},
@@ -426,23 +561,166 @@
 					scrollTop: Number(this.listTop),
 					duration: 0
 				})
+				if(val==5){
+					this.getCommentsList()
+				}
 			},
 			getClose(){
 				this.type='';
-				this.moreflag=false;
+				this.mtype='';
 			},
-			getupSubmit(){
-				if(this.type=='ajssh'||this.type=='bjssh'||this.type=='fxbmsh'){
+			getupSubmit(data){
+				this.shinfo=JSON.parse(JSON.stringify(data))
+				var type=this.type;
+				if(type=='ajssh'||type=='bjssh'){
+					this.contype=this.type
 					this.type='confirm'
+					this.shtg=data.auditType
+				}else{
+					this.getApplicationSh()
 				}
 			},
+			getSure(){
+				this.getApplicationSh()
+			},
+			getfjAdd(data){
+				var that=this;
+				var params=JSON.parse(JSON.stringify(data));
+				var fjUrl=params.fjUrl
+				// params.loanApplicationId=this.id;
+				// params.loanApplicationNumber=this.datainfo.loanApplicationNumber;
+				// params.auditSchedule=this.auditSchedule;
+				getFjAdd(fjUrl).then(res=>{
+					if(res.code==200){
+						that.$toast('上传附件成功')
+						setTimeout(function(){
+							that.getDetail();
+							uni.$emit('refreshdatalist')
+							that.type=''
+						},1200)
+					}
+				})
+			},
+			getApplicationSh(){
+				var that=this;
+				var params=this.shinfo;
+				params.loanApplicationId=this.id;
+				params.loanApplicationNumber=this.datainfo.loanApplicationNumber;
+				params.auditSchedule=this.auditSchedule;
+				getApplicationSh(params).then(res=>{
+					if(res.code==200){
+						that.$toast('审核成功')
+						setTimeout(function(){
+							that.getDetail();
+							uni.$emit('refreshdatalist')
+							that.type=''
+						},1200)
+					}
+				})
+			},
 			getShFn(type){
 				this.type=type;
-				this.moreflag=false;
+				this.mtype='';
+			},
+			getSsFn(){
+				var that=this;
+				uni.showModal({
+					title: '确认申诉',
+					content: "是否确认申诉",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							var params={
+								loanApplicationId:that.id,
+								aUserId:that.datainfo.aUserId
+							}
+							getApplicationSs(params).then(res=>{
+								if(res.code==200){
+									that.$toast("申诉成功")
+									setTimeout(function(){
+										uni.$emit('refreshdatalist')
+										// uni.navigateBack({
+										// 	delta:1
+										// })
+									},1200)
+									
+								}
+							})
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getCxFn(){
+				var that=this;
+				uni.showModal({
+					title: '确认撤销',
+					content: "是否确认撤销",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							var params={
+								loanApplicationId:that.id,
+								auditSchedule:that.auditSchedule,
+								loanSchedule:that.datainfo.loanSchedule,
+								loanApplicationType:that.datainfo.loanApplicationType
+							}
+							getApplicationCx(params).then(res=>{
+								if(res.code==200){
+									that.$toast("撤销成功")
+									setTimeout(function(){
+										uni.$emit('refreshywlist')
+										// uni.navigateBack({
+										// 	delta:1
+										// })
+									},1200)
+									
+								}
+							})
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
+			getGdFn(){
+				var that=this;
+				uni.showModal({
+					title: '确认归档',
+					content: "是否确认归档",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							var params={
+								loanApplicationId:that.id,
+								auditSchedule:that.auditSchedule,
+								loanSchedule:that.datainfo.loanSchedule,
+								loanApplicationType:that.datainfo.loanApplicationType,
+								loanApplicationNumber:that.datainfo.loanApplicationNumber
+							}
+							getapplicationGd(params).then(res=>{
+								if(res.code==200){
+									that.$toast("归档成功")
+									setTimeout(function(){
+										uni.$emit('refreshywlist')
+										// uni.navigateBack({
+										// 	delta:1
+										// })
+									},1200)
+									
+								}
+							})
+						} else if (res.cancel) {
+						}
+					}
+				});
 			},
 			getMoreFn(type){
 				this.mtype=type;
-				this.moreflag=true
+				this.mval=-1;
+				this.mtit=''
 			},
 			getSpeedFn(){
 				if(this.type){
@@ -454,20 +732,58 @@
 			getqmFn(){
 				this.$tab.navigateTo("/work/pages/business/sign")
 			},
+			getDel(){
+				var that=this;
+				uni.showModal({
+					title: '确认删除',
+					content: "是否确认删除",
+					cancelText: '取消',
+					confirmText: '确认',
+					success: function(res) {
+						if (res.confirm) {
+							getApplicationDel(that.id).then(res=>{
+								if(res.code==200){
+									that.$toast("删除成功")
+									setTimeout(function(){
+										uni.$emit('refreshdatalist')
+										uni.navigateBack({
+											delta:1
+										})
+									},1200)
+									
+								}
+							})
+						} else if (res.cancel) {
+						}
+					}
+				});
+			},
 			getDetail(){
 				getApplicationDet(this.id).then(res=>{
 					if(res.code==200){
 						this.datainfo=res.data;
+						this.auditSchedule=res.data.auditSchedule
 						if(res.data.sysUserEnterprise){
 							this.qyinfo=res.data.sysUserEnterprise
 						}
 						this.stepval=res.data.loanSchedule||0;
-						// if(res.data.shareholderFjLis){
-						// 	this.gdlists=res.data.shareholderFjLis
-						// }
 						if(res.data.basicFj){
 							this.basicFj=res.data.basicFj;
 						}
+						// var data=res.data;
+						// if(data.shareholderFjList){
+						// 	var shFjList=[]
+						// 	var gdlist=data.shareholderFjList;
+						// 	Object.keys(gdlist).some((key) => {
+						// 		var fjurl={
+						// 			shareholderFrontUrl:gdlist[key].shareholderFrontUrl,
+						// 			shareholderBackUrl:gdlist[key].shareholderBackUrl,
+						// 			zxurl:gdlist[key].shareholderZxUrl.split(','),
+						// 		} 
+						// 		shFjList.push(fjurl)
+						// 	})
+						// 	this.gdlists=JSON.parse(JSON.stringify(shFjList))
+						// }
 						// this.declareFj=res.data.declareFj;
 						// 附件信息
 						
@@ -507,6 +823,42 @@
 			getEdit(){
 				this.type='shhj'
 			},
+			getXzFn(ite){
+				// 本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,
+				// 后缀是用于文件命名和格式修改,大家可以使用变量。
+				var url = baseUrl + ite.url;
+				var name=ite.name;
+				let dtask = plus.downloader.createDownload(url, {
+					filename: 'file://storage/emulated/0/'+baseName+'/' + name
+				}, (d, status) => {
+					//d为下载的文件对象
+					if (status == 200) {
+						uni.hideLoading();
+						uni.showToast({
+							icon: 'none',
+							mask: true,
+							title: '已保存到文件夹:/'+baseName+'/'+ name, //保存路径
+							duration: 3000,
+						});
+						
+						//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
+						let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
+						setTimeout(() => {
+							plus.runtime.openFile(d.filename); //选择软件打开文件
+						}, 1500)
+					} else {
+						//下载失败
+						uni.hideLoading();
+						plus.downloader.clear(); //清除下载任务
+						uni.showToast({
+							icon: 'none',
+							mask: true,
+							title: '下载失败,请稍后重试',
+						});
+					}
+				})
+				dtask.start();				
+			},
 			getDown(e){
 				uni.showLoading({
 					title: '加载中'

+ 6 - 1
work/pages/business/list.vue

@@ -89,6 +89,7 @@
 		},
 		onUnload() {
 			uni.$off('refreshywlist')
+			uni.$off('refreshdatalist')
 		},
 		onLoad(e) {
 			if(e.type){
@@ -97,6 +98,9 @@
 			uni.$on('refreshywlist',(e) => {
 				this.getrefreshData()
 			})
+			uni.$on('refreshdatalist',(e) => {
+				this.getrefreshData()
+			})
 			this.init()
 			this.getDataFn()
 		},
@@ -144,7 +148,7 @@
 					}
 				})
 				//审核进度
-				getDictionaryFn('loan_schedule').then(res=>{
+				getDictionaryFn('audit_schedule').then(res=>{
 					if(res.code==200){
 						this.shjdlist = res.data.map(v => {
 							return {
@@ -207,6 +211,7 @@
 				var params={
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
+					// loanApplicationType:2
 				}
 				if(this.tabval!=0){
 					params.loanSchedule=this.tabval

+ 39 - 48
work/pages/business/sign.vue

@@ -24,7 +24,7 @@
 			</view> -->
 		</view>
 		<!-- 旋转图片canvas -->
-		<canvas canvas-id="hcamCacnvs" style="position:absolute;top:-2000%;" class="canvsborder"></canvas>
+		<canvas canvas-id="hcamCacnvs" :style="{width:canvasHeight +'rpx',height:canvasWidth +'rpx'}" class="canvsborder"></canvas>
 	</view>
 </template>
 
@@ -34,8 +34,8 @@
 			return {
 				canvasName: 'handWriting',
 				ctx: '',
-				canvasWidth: 0,
-				canvasHeight: 0,
+				canvasWidth: 300,
+				canvasHeight: 150,
 				transparent: 1, // 透明度
 				selectColor: 'black',
 				lineColor: '#1A1A1A', // 颜色
@@ -61,20 +61,21 @@
 				linePrack: [] //划线轨迹 , 生成线条的实际点
 			};
 		},
-		onLoad() {
+		mounted() {
 			let canvasName = this.canvasName;
 			let ctx = wx.createCanvasContext(canvasName);
 
 			this.ctx = ctx;
-			var query = wx.createSelectorQuery();
-			query
-				.select('.handCenter')
-				.boundingClientRect(rect => {
-					this.canvasWidth = rect.width;
-					this.canvasHeight = rect.height;
-
+			var that=this;
+			let query = uni.createSelectorQuery().in(this);;
+			query.select('.handCenter').boundingClientRect(rect => {
+					// console.log(rect,1)
+					that.canvasWidth =Math.floor(rect.width)||300 ;
+					that.canvasHeight = Math.floor(rect.height)||150;
+					console.log(that.canvasWidth)
+					console.log(that.canvasHeight)
 					/* 将canvas背景设置为 白底,不设置  导出的canvas的背景为透明 */
-					this.setCanvasBg('#fff');
+					that.setCanvasBg('#fff');
 				})
 				.exec();
 		},
@@ -490,34 +491,23 @@
 						wx.getImageInfo({ // 获取图片的信息
 							src: tempFilePaths,
 							success: (msg) => {
-								// console.log(msg)
-								let height = msg.height / 2 //图片的高
-								let width = msg.width / 2
-								//开始旋转  旋转方向为顺时针  90  180  270  
-								if (width < height) { // 竖变横   左为正底   旋转后 为下为正底
-									// this.canvasWidth = height,
-									// this.canvasHeight = width,
-									console.log('这张图片 是竖的 要变成横屏的')
-									//绘制canvas 旋转图片
-									let canvas = wx.createCanvasContext('hcamCacnvs',that);
-									
-									// 逆时针旋转90度
-									canvas.translate(height / 2, width / 2)
-									canvas.rotate(270 * Math.PI / 180)
-									canvas.drawImage(tempFilePaths, -width / 2, -height / 2, width, height);
-									canvas.draw(false,()=> {
-										// 把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功。
-										wx.canvasToTempFilePath({
-											canvasId: 'hcamCacnvs',
-											// canvas: canvas,
-											destWidth: 150,
-											destHeight: 50,
-											fileType: 'png',
-											quality: 1, //图片质量
-											success(vas) {
-												// that.uploadImg(vas.tempFilePath);  
-												//保存
-												// console.log(that.contractId)
+								let canvas = wx.createCanvasContext('hcamCacnvs',that);
+								canvas.fillStyle = '#fff';
+								var canvasWidth=that.canvasWidth/2
+								var canvasHeight=that.canvasHeight/2
+								// 逆时针旋转90度
+								// 由于缩小到一半,所以都需要 /2
+								canvas.translate(0, that.canvasWidth / 2)
+								canvas.rotate(270 * Math.PI / 180)
+								//如果你修改了画布后不能完全展示出来,可以调整这下面四个参数
+								//因为翻转了,所以分别是 靠上,靠左,高,宽,慢慢修改,不然很容易就超出界面了,然而以为没显示出来
+								 canvas.drawImage(msg.path, 0, 0, canvasWidth, canvasHeight)
+								 canvas.draw(false,() => {
+								 		uni.canvasToTempFilePath({
+								 			canvasId: 'hcamCacnvs',
+								 			fileType: 'png',
+								 			quality: 1, //图片质量
+								 			success(vas) {
 												uni.saveImageToPhotosAlbum({
 													filePath: vas.tempFilePath,
 													success(res) {
@@ -554,14 +544,14 @@
 												// 		}, 500)
 												// 	}
 												// });
-											},	
-										}) // 在自定义组件下,当前组件实例的this,以操作组件内 canvas 组件
-									// }, 300));
-										// (data) => { // 将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中
-										// console.log(data,12)
-											
-										})
-								}
+								 			},
+								 			fail(err){
+								 				console.log(err)
+								 			}
+								 		}) 
+								 	
+								 })
+								
 							}
 						})
 						return 
@@ -660,6 +650,7 @@ font-size: 30rpx;border-radius: 20rpx;position: absolute;left: -46rpx;transform:
 	&.bga{background: #00A9F0;color: #FFFFFF;bottom: 126rpx;}
 	&.bgb{background: #FFDEDE;color: #FF6969;bottom: 380rpx;}
 }
+.canvsborder{position:absolute;top:-2000%;}
 	.wrapper {
 		border: 2rpx solid  #DADADA;;
 		overflow: hidden;

+ 284 - 0
work/pages/business/zclist.vue

@@ -0,0 +1,284 @@
+<template>
+	<view class="listbox">
+		<view class="fixedt">
+			<!-- tab -->
+			<view class="tablists flexc">
+				<block v-for="(ite,idx) in tabList" >
+					<view  v-if="!ite.limit||ite.limit&&checkPermi([ite.limit])" @click="getTabFn(ite.val)" :class="{act:tabval==ite.val}" :key="idx">{{ite.tit}}</view>
+				</block>
+			</view>
+			<!-- 选择器 -->
+			<view class="flexc checkbox">
+				<picker mode="date"   @change='bindDateChangea'>
+					<view class="chekt">
+						<view>{{sbsj|| "申报时间"}}</view>
+						<image :src="upimg"></image>
+					</view>
+				</picker>
+				<picker range-key='label' :value="shidx" :range="shlist"  @change='bindDateChangeb'>
+					<view class="chekt">
+						<view>{{shzt || "审核状态"}}</view>
+						<image :src="upimg"></image>
+					</view>
+				</picker>
+				<picker range-key='label' :value="sdyhidx" :range="sdyhlist"  @change='bindDateChangec'>
+					<view class="chekt">
+						<view>{{sdyh || "申贷银行"}}</view>
+						<image :src="upimg"></image>
+					</view>
+				</picker>
+				<picker range-key='label' :value="dblxidx" :range="dblxlist"  @change='bindDateChanged'>
+					<view class="chekt">
+						<view>{{dblx || "担保类型"}}</view>
+						<image :src="upimg"></image>
+					</view>
+				</picker>
+				<view class="reset" @click="getResetFn">
+					<image :src="resetimg"></image>
+				</view>
+			</view>
+		</view>
+		<!-- 列表 -->
+		<view class="plr18">
+			<bus-list :datalist="list" :wtdt="wtdt" :sdyhlist="sdyhlist" :dblxlist="dblxlist" :shjdlist="shjdlist" :type="type" @getDetail="getDetail"></bus-list>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import busList from "@/work/components/business/list.vue"
+	import {getApplicationList} from "@/api/mine/work.js"
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	export default{
+		components:{busList},
+		data(){
+			return{
+				upimg:require('@/work/static/images/sup.png'),
+				resetimg:require('@/work/static/images/reset.png'),
+				list:[],
+				pageSize: 10,
+				pageNum: 1,
+				reachflag: true,
+				wtdt:'',
+				// limit:''
+				type:'work',
+				tabval:'0',
+				tabList:[
+					{tit:'全部',val:'0',},{tit:'申报审核',val:'2',},{tit:'担保初审',val:'3',},
+					{tit:'尽职调查',val:'4',},{tit:'评审会',val:'6',},{tit:'签署合同',val:'7',},
+				],
+				sbsj:'',
+				shidx:[0],
+				shzt:'',
+				shztid:'',
+				sdyhidx:[0],
+				sdyh:'',
+				sdyhid:'',
+				dblxidx:[0],
+				dblx:'',
+				dblxid:'',
+				sdyhlist:[],//申贷银行
+				shlist:[],//审核状态
+				dblxlist:[],//担保类型
+				shjdlist:[],//审核进度
+			}
+		},
+		onUnload() {
+			uni.$off('refreshywlist')
+			uni.$off('refreshdatalist')
+		},
+		onLoad(e) {
+			if(e.type){
+				this.tabval=e.type;
+			}
+			uni.$on('refreshywlist',(e) => {
+				this.getrefreshData()
+			})
+			uni.$on('refreshdatalist',(e) => {
+				this.getrefreshData()
+			})
+			this.init()
+			this.getDataFn()
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			init(){
+				// 申贷银行
+				getDictionaryFn('shendai_bank').then(res=>{
+					if(res.code==200){
+						this.sdyhlist = res.data.map(v => {
+							return {
+								label: v.dictLabel,
+								value: v.dictValue
+							}
+						})
+					}
+				})
+				//审核状态
+				getDictionaryFn('sh_status').then(res=>{
+					if(res.code==200){
+						this.shlist = res.data.map(v => {
+							return {
+								label: v.dictLabel,
+								value: v.dictValue
+							}
+						})
+					}
+				})
+				//担保类型
+				getDictionaryFn('guarantee_type').then(res=>{
+					if(res.code==200){
+						this.dblxlist = res.data.map(v => {
+							return {
+								label: v.dictLabel,
+								value: v.dictValue
+							}
+						})
+					}
+				})
+				//审核进度
+				getDictionaryFn('loan_schedule').then(res=>{
+					if(res.code==200){
+						this.shjdlist = res.data.map(v => {
+							return {
+								label: v.dictLabel,
+								value: v.dictValue
+							}
+						})
+					}
+				})
+			},
+			getDetail(e){
+				this.$tab.navigateTo("/work/pages/business/details?id="+e)
+			},
+			getTabFn(val){
+				this.tabval=val;
+				this.getrefreshData()
+			},
+			bindDateChangea(e){
+				var val=e.detail.value;
+				this.sbsj=val;
+				this.getrefreshData()
+			},
+			bindDateChangeb(e){
+				var val=e.detail.value;
+				this.shzt=this.shlist[val].label;
+				this.shztid=this.shlist[val].value;
+				this.getrefreshData()
+			},
+			bindDateChangec(e){
+				var val=e.detail.value;
+				this.sdyh=this.sdyhlist[val].label;
+				this.sdyhid=this.sdyhlist[val].value;
+				this.getrefreshData()
+			},
+			bindDateChanged(e){
+				var val=e.detail.value;
+				this.dblx=this.dblxlist[val].label;
+				this.dblxid=this.dblxlist[val].value;
+				this.getrefreshData()
+			},
+			getResetFn(){
+				// 重置
+				this.sbsj='';
+				this.shzt='';
+				this.sdyh='';
+				this.dblx='';
+				
+				this.shidx=[0];
+				this.sdyhidx=[0];
+				this.dblxidx=[0];
+				this.getrefreshData()
+			},
+			getrefreshData(){
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
+			getDataFn(){
+				var params={
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+					loanApplicationType:1
+				}
+				if(this.tabval!=0){
+					params.loanSchedule=this.tabval
+				}
+				if(this.sbsj){
+					params.applicationTime=this.sbsj
+				}
+				if(this.shzt){
+					params.auditType=this.shztid
+				}
+				if(this.sdyh){
+					params.applicationBank=this.sdyhid
+				}
+				if(this.dblx){
+					params.guaranteeType=this.dblxid
+				}
+				getApplicationList(params).then(res=>{
+					if(res.code==200){
+						if (res.rows.length < this.pageSize) {
+							this.reachflag = false
+							this.wtdt = '到底了~';
+						} else {
+							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+							if (num < res.total) {
+								this.reachflag = true
+								this.wtdt = ''
+							} else {
+								this.reachflag = false
+								this.wtdt = '到底了~';
+							}
+						}
+						if (this.pageNum == 1) {
+							this.list = res.rows;
+						} else {
+							this.list = this.list.concat(res.rows)
+						}
+					}else{
+						this.$toast(res.msg)
+					}
+				}) 
+			},
+		},
+		
+	}
+</script>
+
+<style lang="scss" scoped>
+.fixedt{position: fixed;left: 0;right: 0;top: 0;z-index: 2;}
+.fixedt /deep/ uni-picker{flex: 1;}
+.tablists{background: $com-cd3;overflow: auto;flex-wrap: nowrap;padding:4rpx 16rpx 16rpx;
+	view{font-weight: bold;font-size: 26rpx;color: #FFFFFF;position: relative;flex: 1 0 auto;padding: 0rpx 20rpx;margin-right: 6rpx;box-sizing: border-box;text-align: center;
+		height: 80rpx;display: flex;align-items: center;
+		&:last-child{margin-right: 0;}
+		&.act{font-size: 30rpx;
+			&::after{content: '';width: 30rpx;height: 10rpx;background: #FFFFFF;border-radius: 4rpx;left: 50%;margin-left: -15rpx;bottom: 0rpx;position: absolute;}
+		}
+	}
+}
+.checkbox{padding: 4rpx 0 0 20rpx ;background-color: #efefef;
+	.chekt{display: flex;align-items: center;margin-right: 12rpx;height:88rpx;
+		view{text-align: center;
+			font-weight: bold;font-size: 26rpx;color: #374B61;width: 136rpx;word-break: break-all;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;white-space: normal;}
+		image{width: 16rpx;height: 12rpx;flex: 0 0 auto;margin-left: 4rpx;}
+	}
+}
+.reset{width:56rpx; height: 88rpx;display: flex;align-items: center;justify-content: center;
+	image{width: 26rpx;height: 30rpx;}
+}
+.listbox{padding-top: 192rpx;padding-bottom: 24rpx;}
+</style>

+ 77 - 20
work/pages/file/list.vue

@@ -3,30 +3,30 @@
 		<view class="fixedt">
 			<!-- 选择器 -->
 			<view class="flexc checkbox">
-				<picker mode="date"   @change='bindDateChangea'>
+				<picker mode="date" fields="year"  @change='bindDateChangea'>
 					<view class="chekt">
 						<view>{{sbsj|| "申报时间"}}</view>
 						<image :src="upimg"></image>
 					</view>
 				</picker>
-				<picker range-key='label' :value="shidx" :range="shlist"  @change='bindDateChangeb'>
+				<!-- <picker range-key='label' :value="shidx" :range="shlist"  @change='bindDateChangeb'>
 					<view class="chekt">
 						<view>{{shzt || "申贷次数"}}</view>
 						<image :src="upimg"></image>
 					</view>
-				</picker>
+				</picker> -->
 				<view class="reset" @click="getResetFn">
 					<image :src="resetimg"></image>
 				</view>
 				<view class="topc flexc">
 					<image :src="secimg"></image>
-					<input  placeholder="请输入客户名称" confirm-type="search" v-model="usename" @confirm="getConfirm"/>
+					<input  placeholder="请输入企业名称" confirm-type="search" v-model="usename" @confirm="getConfirm"/>
 				</view>
 			</view>
 		</view>
 		<!-- 列表 -->
 		<view class="plr18">
-			<bus-list :datalist="list" :wtdt="wtdt" :type="type" @getDetail="getDetail"></bus-list>
+			<bus-list :datalist="list" :wtdt="wtdt" :type="type" @getXzFn="getXzFn"></bus-list>
 		</view>
 		<view class="scanbox flexcc">
 			<image :src="scanimg"></image>
@@ -38,7 +38,9 @@
 <script>
 	import config from '@/config'
 	const baseUrl = config.baseUrl
+	const baseName = config.baseName
 	import busList from "@/work/components/business/list.vue"
+	import {getListOss} from "@/api/common.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 		components:{busList},
@@ -48,26 +50,35 @@
 				upimg:require('@/work/static/images/sup.png'),
 				resetimg:require('@/work/static/images/reset.png'),
 				scanimg:require('@/work/static/images/scan.png'),
-				list:[{tit:'123'},{tit:'123'}],
+				list:[],
 				pageSize: 10,
 				pageNum: 1,
 				reachflag: true,
 				wtdt:'',
 				// limit:''
-				type:'file',
+				type:'nfiles',//file 老版,   nfiles新版
+				sbsj:'',
+				usename:'',
+				// type:'//file  ',
 			}
 		},
 		// 上拉触底加载更多触发事件
 		onReachBottom() {
-			// if (this.reachflag) {
-			// 	this.pageNum++
-			// 	this.getDataFn()
-			// }
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		onLoad() {
+			this.getDataFn()
 		},
 		methods:{
 			checkPermi, checkRole,
-			getDetail(){
-				this.$tab.navigateTo("/work/pages/file/details")
+			getDetail(e){
+				this.$tab.navigateTo("/work/pages/file/wjdetails?id="+e)
+			},
+			getConfirm(){
+				this.getrefreshData()
 			},
 			getTabFn(val){
 				this.tabval=val
@@ -85,20 +96,66 @@
 			},
 			getResetFn(){
 				// 重置
+				this.sbsj='';
+				this.usename='';
 				this.getrefreshData()
 			},
 			getrefreshData(){
-				// this.pageNum=1;
-				// this.list=[];
-				// this.reachflag=true;
-				// this.getDataFn()
+				this.pageNum=1;
+				this.list=[];
+				this.reachflag=true;
+				this.getDataFn()
+			},
+			getXzFn(ite){
+				// 本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,
+				// 后缀是用于文件命名和格式修改,大家可以使用变量。
+				var url = baseUrl + ite.url;
+				var name=ite.name;
+				let dtask = plus.downloader.createDownload(url, {
+					filename: 'file://storage/emulated/0/'+baseName+'/' + name
+				}, (d, status) => {
+					//d为下载的文件对象
+					if (status == 200) {
+						uni.hideLoading();
+						uni.showToast({
+							icon: 'none',
+							mask: true,
+							title: '已保存到文件夹:/'+baseName+'/'+ name, //保存路径
+							duration: 3000,
+						});
+						
+						//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
+						let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
+						setTimeout(() => {
+							plus.runtime.openFile(d.filename); //选择软件打开文件
+						}, 1500)
+					} else {
+						//下载失败
+						uni.hideLoading();
+						plus.downloader.clear(); //清除下载任务
+						uni.showToast({
+							icon: 'none',
+							mask: true,
+							title: '下载失败,请稍后重试',
+						});
+					}
+				})
+				dtask.start();				
 			},
 			getDataFn(){
 				var params={
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
+					// loanApplicationType:4,
+				}
+				if(this.sbsj){
+					params['params[beginTime]']=this.sbsj
+				}
+				
+				if(this.usename){
+					params.enterpriseName=this.usename
 				}
-				getCaseListFn(params).then(res=>{
+				getListOss(params).then(res=>{
 					if(res.code==200){
 						if (res.rows.length < this.pageSize) {
 							this.reachflag = false
@@ -130,7 +187,7 @@
 
 <style lang="scss" scoped>
 .fixedt{position: fixed;left: 0;right: 0;top: 0;z-index: 2;}
-.fixedt /deep/ uni-picker{flex: 1;}
+// .fixedt /deep/ uni-picker{flex: 1;}
 
 .checkbox{padding:16rpx 32rpx;background-color: #efefef;
 	.chekt{display: flex;align-items: center;margin-right: 12rpx;height:88rpx;
@@ -143,7 +200,7 @@
 	image{width: 26rpx;height: 30rpx;}
 }
 .topc{border-radius: 34rpx;height:68rpx;box-sizing: border-box;padding:0 28rpx;position: relative;flex:1;background-color:rgba(90, 135, 186, 0.2);width: 260rpx;
-	flex: 0 0 auto;margin-left: 20rpx;
+	margin-left: 20rpx;
 	input{font-weight: 500;font-size: 26rpx;color: #222327;}
 	image{width: 30rpx;height: 30rpx;margin-right: 16rpx;flex: 0 0 auto;}
 }

+ 28 - 1
work/pages/file/wjdetails.vue

@@ -16,6 +16,7 @@
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	import {uploadmore} from '@/utils/common.js'
+	import {getApplicationDet} from "@/api/mine/work.js"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	export default{
 		components:{},
@@ -26,14 +27,40 @@
 				tabval:0,
 				// tabList:[{tit:"客户上传",val:0},{tit:"平台上传",val:1}],
 				tabList:[{tit:"客户上传",val:0},{tit:"申报附件",val:1},{tit:"文件出具",val:2},{tit:"其他附件",val:3}],
-				filelist:[{name:"安徽嘉欣医疗用品有限公司0403委托担保申请书.pdf"},{name:"安徽嘉欣医疗用品有限公司0403委托担保申请书.pdf"},]
+				filelist:[{name:"安徽嘉欣医疗用品有限公司0403委托担保申请书.pdf"},{name:"安徽嘉欣医疗用品有限公司0403委托担保申请书.pdf"},],
+				id:'',
 			}
 		},
+		onLoad(e) {
+			this.id=e.id;
+			this.getDetail()
+		},
 		methods:{
 			checkPermi, checkRole,
 			getTab(val){
 				this.tabval=val
 			},
+			getDetail(){
+				getApplicationDet(this.id).then(res=>{
+					if(res.code==200){
+						this.datainfo=res.data;
+						if(res.data.sysUserEnterprise){
+							this.qyinfo=res.data.sysUserEnterprise
+						}
+						this.stepval=res.data.loanSchedule||0;
+						// if(res.data.shareholderFjLis){
+						// 	this.gdlists=res.data.shareholderFjLis
+						// }
+						if(res.data.basicFj){
+							this.basicFj=res.data.basicFj;
+						}
+						// this.declareFj=res.data.declareFj;
+						// 附件信息
+						
+						// this.otherFj=res.data.otherFj||[]
+					}
+				})
+			},
 			getDown(e){
 				uni.showLoading({
 					title: '加载中'

+ 1 - 1
work/pages/success.vue

@@ -4,7 +4,7 @@
 			<image :src="sucimg"></image>
 			<view class="tit">您的业务申报已提交成功</view>
 			<view class="tit">请您耐心等待审核</view>
-			<view class="txt" @click="getNodata">查看业务申报详情</view>
+			<!-- <view class="txt" @click="getNodata">查看业务申报详情</view> -->
 		</view>
 		
 		<view class="back" @click="getHome">返回首页</view>

BIN
work/static/images/fdown.png