factory_mp_old/pages/workSpace/rpj/rpjFiles.vue

305 lines
7.0 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="list-body">
<uni-nav-bar @clickLeft="goBack()" class="nav-bar" height="110rpx" leftWidth="400rpx" leftText="资质列表"
leftIcon="left" border backgroundColor="#2cade8" color="#fff" fixed statusBar shadow></uni-nav-bar>
<view class="content">
<view class="item-wrap" v-for="(val,index) in rpjFileList" :key="val.id">
<view class="duty-item">
<view class="top-info">
<view class="info-title" v-if="val.file_cate_">{{val.file_cate_.name}}</view>
</view>
<view class="center-info" v-if="val.files_.length>0">
<view class="info-details">上传文件:</view>
<view class="info-details" v-for="val in val.files_">
<a :href="val.file">{{val.name}} </a>
</view>
</view>
<view class="center-info" v-else>
<view class="info-details">暂无上传文件</view>
</view>
<!-- <view class="bottom-btns">
<view class="uploadFile" @click="rpjHandle(val,'show')">
<image src="../../../static/common/addIcon.png" mode=""></image>
上传
</view>
</view> -->
</view>
</view>
</view>
<view class="btn" v-if="showBtns">
<button type="primary" class="save-btn" @click="nextStep">下一步</button>
</view>
</view>
</template>
<script>
/* 这是条件编译,意思是只在APP中出现如下的代码小程序是不支持的 */
// #ifdef APP-PLUS
var file = uni.requireNativePlugin('TX-File');
const plug = uni.requireNativePlugin("Html5app-filePicker");
const plugin = uni.requireNativePlugin("K-ChooseFilesModule");
// #endif
export default {
name: "rpjFiles",
watch: {
/* 文件下载监听 */
lsDownLoadImg(newVal, oldVal) {
let val = newVal;
if (String(newVal).indexOf(",") > -1) {
val = String(newVal).split(",")[0] === "true";
}
this.$set(this.downFiles, 'downLoadImg' + this.lsFileId, val)
},
/* 文件下载监听 */
principal(newVal, oldVal) {
if (!this.itemId) {
if (oldVal.roleId === undefined && newVal.roleId !== undefined) {
this.formData.itemInfo.applicationDept = newVal.deptId
}
}
},
},
data() {
return {
formData: {
name: '',
},
head: {
Authorization: "Bearer " + this.vuex_token
},
showBtns: false,
rpjFileList: [],
result: [],
// 文件进度
imgFlag: false,
//文件下载
downFiles: {},
uploadImgsList: [],
fileList :[],
rpj:'',
rparty:'',
rpjName:''
}
},
onLoad(params) {
if (params.rpj) {
this.rpj = params.rpj;
this.rparty = params.rparty;
this.rpjName = params.rpjName;
}
this.showBtns = true;
},
onShow() {
this.getHeader();
this.getRpjLists();
},
methods: {
getHeader() {
this.header = {
Authorization: "Bearer " + this.vuex_token
}
},
//获取
getRpjLists() {
let that = this;
that.$u.api.rpjFileList({
rpj: that.rpj,
page: 0
}).then(res => {
that.rpjFileList = res;
debugger;
console.log(res)
})
},
/* 文件删除 */
delFile(index) {
this.formData.leaveApplicationFiles.splice(index, 1);
},
/* */
showValue(res, file) {
debugger;
console.log(res)
console.log(file)
console.log(this.uploadImgsList)
},
rpjHandle() {
let that = this;
debugger;
console.log(this.vuex_token)
uni.chooseImage({
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera '], //从相册选择
success: function(res) {
console.log(JSON.stringify(res.tempFilePaths));
let tempFilePaths = res.tempFilePaths;
tempFilePaths.forEach((item) => {
uni.uploadFile({
url: 'http://1.203.161.103:2800/api/file/', //服务器地址
fileType: "image", //ZFB必填,不然报错
filePath: item, //这个就是我们上面拍照返回或者先中照片返回的数组
name: 'file',
// 请求头一定要加,否则 iOS 图片上传会失败
header: {
'content-type': 'multipart/form-data; boundary=----WebKitFormBoundarymlJpQcllstnJXOES',
'Authorization': 'Bearer ' + that.vuex_token,
},
success: (uploadFileRes) => {
}
});
})
}
});
},
uploads() {
const _this = this;
return Promise.all(_this.uploadImgsList.map(item => _this.uploadImage(item.picturePath))).then(res => {
return res.map(item => ({
fileName: item.fileName,
filePath: item.url
}))
})
},
uploadImage(url) {
return new Promise(async (resolve, reject) => {
uni.uploadFile({
url: this.$u.api.uploadFile, //后台地址
filePath: url,
name: 'file',
success: (uploadFileRes) => {
resolve(JSON.parse(uploadFileRes.data));
}
})
})
},
//提交
async submitFlood() {
let photoList = await this.uploads();
},
nextStep() {
let that = this;
let params = `?rpj=${that.rpj}&rparty=${that.rparty}&rpjName=${that.rpjName}`;
uni.navigateTo({
url: '/pages/workSpace/rpj/rpjWorkers' + params
})
let files = this.$refs.uUpload.lists.filter(val => {
return val.progress == 100;
})
let sData = [];
// 如果您不需要进行太多的处理,直接如下即可
// files = this.$refs.uUpload.lists;
for (var i = 0; i < files.length; i++) {
if (files[i].response) {
sData.push(files[i].response.data.id)
} else {
for (var m = 0; m < this.fileList.length; m++) {
if (this.fileList[m].url == files[i].url) {
sData.push(this.fileList[m].id)
}
}
}
}
},
goBack() {
uni.navigateBack({
delta: 1
})
},
}
}
</script>
<style>
>>>.uni-navbar__header,
>>>.uni-status-bar {
background-image: linear-gradient(90deg, #164cc3 0%, #2c6fd9 100%), linear-gradient(#e60012, #e60012) !important;
}
.list-body {
background-color: #f3fbff;
padding-bottom: 113px;
}
.content {
padding: 14rpx;
}
.item-wrap {
margin-bottom: 14rpx;
}
.duty-item {
width: 720rpx;
background-color: #ffffff;
border-radius: 10rpx;
margin: 0 auto;
padding: 24rpx 21rpx;
box-sizing: border-box;
}
.info-title {
font-family: PingFang-SC-Medium;
font-size: 30rpx;
line-height: 72rpx;
color: #3d3d3d;
flex: 1;
}
.right-time {
font-size: 24rpx;
line-height: 72rpx;
color: #ababab;
}
.center-info {
padding-bottom: 30rpx;
border-bottom: 1rpx solid #eeeeee;
}
.info-details {
font-size: 28rpx;
line-height: 40rpx;
color: #5b5b5b;
}
.bottom-btns {
text-align: center;
font-family: PingFang-SC-Medium;
font-size: 28rpx;
line-height: 83rpx;
}
.uploadFile {
color: #2c6fd9;
}
.uploadFile image {
width: 26rpx;
height: 26rpx;
margin-right: 10rpx;
vertical-align: middle;
}
.btn {
margin: auto;
box-shadow: 0upx 5upx 10upx rgba(0, 0, 0, 0.4);
width: 70%;
}
.save-btn {
height: 80rpx;
color: #fff;
font-size: 30upx;
justify-content: center;
align-items: center;
}
</style>