业务办理

This commit is contained in:
hongchao 2025-02-19 14:08:54 +08:00
parent 14057b3dcb
commit ef7ecf76e1
2 changed files with 378 additions and 92 deletions

View File

@ -22,19 +22,6 @@
@clear="clearPro" @clear="clearPro"
></eselect> ></eselect>
</uni-forms-item> </uni-forms-item>
<uni-row :gutter="30" style="display: flex; align-items: center;margin-bottom: 10px;">
<uni-col :span="15">
<uni-forms-item label="开始时间" name="reduceStartTime" label-width="90rpx" >
<uni-datetime-picker type="date" :clear-icon="false" v-model="formData.reduceStartTime" @change="changeStartTime"/>
</uni-forms-item>
</uni-col>
<uni-col :span="15">
<uni-forms-item label="结束时间" name="reduceEndTime" label-width="90rpx" >
<uni-datetime-picker type="date" :clear-icon="false" v-model="formData.reduceEndTime" @change="changeEndTime"/>
</uni-forms-item>
</uni-col>
</uni-row>
<uni-row :gutter="30" style="display: flex; align-items: center;margin-bottom: 10px;"> <uni-row :gutter="30" style="display: flex; align-items: center;margin-bottom: 10px;">
<uni-col :span="15"> <uni-col :span="15">
@ -55,6 +42,19 @@
</uni-forms-item> </uni-forms-item>
</uni-col> </uni-col>
</uni-row> </uni-row>
<uni-row :gutter="30" style="display: flex; align-items: center;margin-bottom: 10px;">
<uni-col :span="15">
<uni-forms-item label="开始时间" name="reduceStartTime" label-width="90rpx" >
<uni-datetime-picker type="date" :clear-icon="false" v-model="formData.reduceStartTime" @change="changeStartTime"/>
</uni-forms-item>
</uni-col>
<uni-col :span="15">
<uni-forms-item label="结束时间" name="reduceEndTime" label-width="90rpx" >
<uni-datetime-picker type="date" :clear-icon="false" v-model="formData.reduceEndTime" @change="changeEndTime"/>
</uni-forms-item>
</uni-col>
</uni-row>
<uni-forms-item label="附件"> <uni-forms-item label="附件">
<div class="upload-wrapper" style="display: flex; flex-wrap: wrap;"> <div class="upload-wrapper" style="display: flex; flex-wrap: wrap;">
<!-- 上传按钮仅当上传图片数量少于 3 张时显示 --> <!-- 上传按钮仅当上传图片数量少于 3 张时显示 -->
@ -73,6 +73,9 @@
<uni-col :span="8"> <uni-col :span="8">
<view class="addBtn" @click="submitNum">减免申请</view> <view class="addBtn" @click="submitNum">减免申请</view>
</uni-col> </uni-col>
<uni-col :span="8">
<view class="addBtn" @click="handleClean" v-if="num1>0">一键去除</view>
</uni-col>
</uni-row> </uni-row>
</uni-forms> </uni-forms>
</div> </div>
@ -96,10 +99,10 @@
<!-- 表格数据行 --> <!-- 表格数据行 -->
<uni-tr v-for="(item,index) in typeList" :key="item.id"> <uni-tr v-for="(item,index) in typeList" :key="item.id">
<uni-td style="font-size: 24rpx;text-align: center;"> <uni-td style="font-size: 24rpx;text-align: center;">
<uni-datetime-picker type="date" :clear-icon="false" v-model="item.reduceStartTime" /> <uni-datetime-picker type="date" :key="componentKey" :clear-icon="false" v-model="item.reduceStartTime" @change="(e) =>updateReduceStart(item,e)"/>
</uni-td> </uni-td>
<uni-td style="font-size: 24rpx;text-align: center;"> <uni-td style="font-size: 24rpx;text-align: center;">
<uni-datetime-picker type="date" :clear-icon="false" v-model="item.reduceEndTime" /> <uni-datetime-picker type="date" :key="componentKey" :clear-icon="false" v-model="item.reduceEndTime" @change="(e) =>updateReduceEnd(item,e)"/>
</uni-td> </uni-td>
<uni-td style="font-size: 24rpx;text-align: center;"> <uni-td style="font-size: 24rpx;text-align: center;">
<uni-easyinput <uni-easyinput
@ -133,7 +136,7 @@
</template> </template>
<script setup > <script setup >
import { ref, reactive } from 'vue' import { ref, reactive,nextTick } from 'vue'
import eselect from '@/components/tree-select/eselect.vue' import eselect from '@/components/tree-select/eselect.vue'
import { onLoad,onReady } from '@dcloudio/uni-app' import { onLoad,onReady } from '@dcloudio/uni-app'
import { getUnitList,getProjectList,getThreeType,getFourType,getDirefList,insertApp,getAgreementInfoById,getTypeDataList,leaseTask } from '../../services/back.js'; import { getUnitList,getProjectList,getThreeType,getFourType,getDirefList,insertApp,getAgreementInfoById,getTypeDataList,leaseTask } from '../../services/back.js';
@ -163,11 +166,14 @@ const typeId = ref("")//类型
const maCodeSelectList = ref([]) const maCodeSelectList = ref([])
const typeCode = ref("")// const typeCode = ref("")//
const typeList = ref([]) const typeList = ref([])
const typeListTemp = ref([])
const bmFileInfos = ref([])// const bmFileInfos = ref([])//
// form // form
const form = ref(null) const form = ref(null)
const reduceStartTime = ref('') const reduceStartTime = ref('')
const reduceEndTime = ref('') const reduceEndTime = ref('')
const componentKey = ref(0)
const num1 = ref(0)
// //
const rules = ref({ const rules = ref({
@ -346,6 +352,10 @@ const selectMaCode = (e) => {
const paramList = res.data const paramList = res.data
paramList.forEach(item => { paramList.forEach(item => {
item.reduceNum = item.num; item.reduceNum = item.num;
item.reduceDays = 0;
item.reduceLeaseMoney = 0;
item.reduceStartTime = null;
item.reduceEndTime = null;
typeList.value.push(item) typeList.value.push(item)
}) })
}).catch(error => { }).catch(error => {
@ -368,64 +378,92 @@ const selectMaCode = (e) => {
console.log(typeList.value) console.log(typeList.value)
} }
// //
const submitNum = async() => { const submitNum = () => {
console.log(typeList.value) console.log(typeList.value)
// 使 // 使
form.value.validate((valid)=>{ form.value.validate(async(valid)=>{
console.log('🚀 ~ submitNum ~ valid:', valid) console.log('🚀 ~ submitNum ~ valid:', valid)
if(!valid){ if(!valid){
// preNum 0 if(bmFileInfos.value.length==0){
await uni.showToast({
title: '请上传附件!',
icon: 'none',
})
return
}
// reduceNum 0
if (typeList.value.length === 0) { if (typeList.value.length === 0) {
console.log('🚀 ~ submitNum ~ typeList.value:', typeList.value) console.log('🚀 ~ submitNum ~ typeList.value:', typeList.value)
uni.showToast({ await uni.showToast({
title: '请添加减免申请数据', title: '请添加减免申请数据',
icon: 'none', icon: 'none',
}) })
return return
} }
for (let i = 0; i < typeList.value.length; i++) { let index = typeList.value.findIndex(item => new Date(item.reduceEndTime) < new Date(item.reduceStartTime))
if (typeList.value[i].preNum <= 0 || !typeList.value[i].preNum) { let index2 = typeList.value.findIndex(item => item.reduceNum > item.num)
let index3 = typeList.value.findIndex(item => item.reduceNum == 0)
let index4 = typeList.value.findIndex(item => item.reduceStartTime==null || new Date(item.reduceStartTime).getTime()==0)
let index5 = typeList.value.findIndex(item => item.reduceEndTime==null || new Date(item.reduceEndTime).getTime()==0)
console.log(index,index2,index3,index4,index5)
if(index3>-1){
uni.showToast({ uni.showToast({
title: '预领数量不能为空或等于0', title: '减免数量不能为0',
icon: 'none', icon: 'none',
duration: 1000
}) })
return return
} }else if(index4>-1){
} uni.showToast({
let obj = { title: '请先去除减免时间不符合的数据!',
"leaseApplyInfo":{ icon: 'none',
"unitId":unitId.value, duration: 1000
"projectId":proId.value, })
"agreementId":agreementId.value, return
"leasePerson":formData.value.leasePerson, }else if(index5>-1){
"phone":formData.value.phone, uni.showToast({
"standardConfigId":configId.value, title: '请先去除减免时间不符合的数据!',
"applyCode":formData.value.applyCode, icon: 'none',
duration: 1000
})
return
}else if(index2>-1){
uni.showToast({
title: '减免数量不能大于领料数量!',
icon: 'none',
duration: 1000
})
return
}else if(index>-1){
uni.showToast({
title: '结束时间不能小于开始时间!',
icon: 'none',
duration: 1000
})
return
}else{
uni.showToast({
title: '提交成功!',
icon: 'none',
duration: 1000
})
},
"leaseApplyDetailsList":typeList.value
} }
console.log(obj)
leaseTask(obj).then( res => {
console.log(res) // for (let i = 0; i < typeList.value.length; i++) {
if(res.code==200){ // if (typeList.value[i].reduceNum <= 0 || !typeList.value[i].reduceNum) {
console.log('xxxxxxxxxxxxxxxx') // uni.showToast({
uni.showToast({ title: '申请成功', icon: 'none',duration: 1000 // title: '0',
}) // icon: 'none',
setTimeout(() => { // })
uni.navigateBack({ // return
delta: 1 // }
}); // }
}, 1000);
}else{
console.log('yyyyyyyyyyyyy')
uni.showToast({ title: res.msg, icon: 'none',duration: 1000 })
}
}).catch(error => {
console.log(error)
})
}else{ }else{
console.log('xxxxxxxxxxxxxxxxxxxxxxxxxx')
return; return;
} }
}) })
@ -500,7 +538,9 @@ const changeStartTime = (e) => {
}); });
// //
typeList.value = [...typeList.value]; typeList.value = [...typeList.value];
} }
updateNum();
// formData.value.reduceStartTime = e.detail.value // formData.value.reduceStartTime = e.detail.value
} }
// //
@ -571,6 +611,135 @@ const changeEndTime = (e) => {
}); });
// //
typeList.value = [...typeList.value]; typeList.value = [...typeList.value];
}
updateNum();
}
const updateReduceStart = (row,e) => {
console.log('🚀 ~ updateReduceStart ~ e:', e)
let startTime = new Date(row.reduceStartTime);
let startTimeTemp = row.reduceStartTime
let endTime = new Date(row.reduceEndTime);
let endTimeTemp = row.reduceEndTime
let pickStartTime = new Date(row.startTime);
let pickEndTime = new Date(row.endTime);
// 退
if (startTime < pickStartTime || startTime > pickEndTime) {
console.log(row.reduceStartTime, '....>');
row.reduceStartTime = null
row.reduceDays = 0
row.reduceLeaseMoney = 0
console.log('11111111111111111111111111111', row.reduceStartTime);
nextTick(() => {
//
typeList.value = [...typeList.value];
componentKey.value++;
uni.showToast({
title: '请选择有效的减免开始时间!',
icon: 'none',
duration: 1000
});
});
}else if (startTimeTemp!=null && endTimeTemp!=null && endTime >= startTime) {
const oneDay = 24 * 60 * 60 * 1000; //
const diffDays = Math.ceil(Math.abs((endTime - startTime) / oneDay)) + (endTime - startTime === 0 ? 1 : 1);
row.reduceDays = diffDays
if(row.reduceNum && row.reduceDays && row.leasePrice){
row.reduceLeaseMoney = row.reduceDays*row.leasePrice*row.reduceNum
}
// row.leaseDays = diffDays;
}else if(endTimeTemp!=null && endTime<startTime){
row.reduceStartTime = null
row.reduceDays = 0
row.reduceLeaseMoney = 0
nextTick(() => {
//
typeList.value = [...typeList.value];
componentKey.value++;
uni.showToast({
title: '请选择有效的减免开始时间!',
icon: 'none',
duration: 1000
});
});
}else{
row.reduceDays = 0
row.reduceLeaseMoney = 0
//
typeList.value = [...typeList.value];
}
//
typeList.value = [...typeList.value];
updateNum();
}
const updateReduceEnd = (row,e) => {
let startTime = new Date(row.reduceStartTime);
let startTimeTemp = row.reduceStartTime
let endTimeTemp = row.reduceEndTime
let endTime = new Date(row.reduceEndTime);
let pickStartTime = new Date(row.startTime);
let pickEndTime = new Date(row.endTime);
// 退
if( endTime < pickStartTime || endTime > pickEndTime){
row.reduceEndTime = null
row.reduceDays = 0
row.reduceLeaseMoney = 0
nextTick(() => {
//
typeList.value = [...typeList.value];
componentKey.value++;
uni.showToast({
title: '请选择有效的减免结束时间!',
icon: 'none',
duration: 1000
});
});
}else if (startTimeTemp!=null && endTimeTemp!=null && endTime >= startTime) {
const oneDay = 24 * 60 * 60 * 1000; //
const diffDays = Math.ceil(Math.abs((endTime - startTime) / oneDay)) + (endTime - startTime === 0 ? 1 : 1);
row.reduceDays = diffDays
if(row.reduceNum && row.reduceDays && row.leasePrice){
row.reduceLeaseMoney = row.reduceDays*row.leasePrice*row.reduceNum
}
}else if(startTimeTemp!=null && endTime<startTime){
row.reduceEndTime = null
row.reduceDays = 0
row.reduceLeaseMoney = 0
nextTick(() => {
//
typeList.value = [...typeList.value];
componentKey.value++;
uni.showToast({
title: '请选择有效的减免结束时间!',
icon: 'none',
duration: 1000
});
});
}else{
row.reduceDays = 0
row.reduceLeaseMoney = 0
//
typeList.value = [...typeList.value];
}
//
typeList.value = [...typeList.value];
updateNum();
}
const handleClean = () => {
//
typeList.value = typeList.value.filter((item, index) => {
return index === typeList.value.length - 1 || (item.reduceStartTime && item.reduceEndTime);
});
// //
updateNum();
}
const updateNum = () => {
if (formData.value.reduceStartTime && formData.value.reduceEndTime) {
num1.value= typeList.value.filter(item =>!item.reduceStartTime ||!item.reduceEndTime).length;
} }
} }
@ -591,34 +760,46 @@ onLoad((options) => {
}) })
// //
const uploadImg = (item) => { const uploadImg = (item) => {
if(bmFileInfos.value.length>=3){
uni.showToast({
title: '最多上传3张图片',
icon: 'none',
})
return
}
uni.chooseImage({ uni.chooseImage({
count: 1, // count: 3 - bmFileInfos.value.length, //
sizeType: ['original', 'compressed'], //original compressed sizeType: ['original', 'compressed'], //original compressed
sourceType: ['album', 'camera',], //album camera 使 sourceType: ['album', 'camera',], //album camera 使
success: res => { success: res => {
console.log(res) console.log(res)
let imgFiles = res.tempFilePaths // let imgFiles = res.tempFilePaths //
imgFiles.forEach((filePath) => {
console.log('2222222222222222222222')
bmFileInfos.value.push({urlTemp:filePath})
})
console.log('🚀 ~ uploadImg ~ imgFiles:', imgFiles)
// imgBeseUrl.value = imgFiles[0] // imgBeseUrl.value = imgFiles[0]
// console.log('', imgFiles) // console.log('', imgFiles)
// console.log('', baseURL+"/file/upload") // console.log('', baseURL+"/file/upload")
bmFileInfos.value.forEach((item,index) => {
uni.uploadFile({ uni.uploadFile({
// url: baseURL+"/file/upload",//app // url: baseURL+"/file/upload",//app
url: "/file/upload",//h5 url: "/file/upload",//h5
filePath: imgFiles[0], filePath: item.urlTemp,
name: 'file', name: 'file',
success: (res) => { success: (res) => {
res = JSON.parse(res.data) res = JSON.parse(res.data)
console.log('上传成功', res.code); console.log('上传成功', res.code);
console.log('上传成功', res.data); console.log('上传成功', res.data);
if(res.code&&res.code==200){ if(res.code&&res.code==200){
let obj = { bmFileInfos.value[index] = {
"name":res.data.name, ...bmFileInfos.value[index],
"url":res.data.url name: res.data.name,
} url: res.data.url
item.bmFileInfos.value = [obj] };
uni.showToast({ title: '上传成功', icon: 'none' }) uni.showToast({ title: '上传成功', icon: 'none' })
}else{ }else{
item.bmFileInfos.value = []
uni.showToast({ title: '上传失败', icon: 'none' }) uni.showToast({ title: '上传失败', icon: 'none' })
} }
}, },
@ -626,10 +807,17 @@ const uploadImg = (item) => {
console.error('上传失败', err); console.error('上传失败', err);
} }
}); });
});
// this.$refs.vForm.clearValidate() // this.$refs.vForm.clearValidate()
} }
}) })
} }
const deleteImg = (index) => {
bmFileInfos.value.splice(index, 1);
// bmFileInfosTemp.value.splice(index, 1);
};
// //
const delRow = (index) => { const delRow = (index) => {
console.log(index) console.log(index)
@ -645,6 +833,7 @@ const onChangeNumber = (item) => {
setTimeout(()=>{ setTimeout(()=>{
// item.directNum = Number(String(item.directNum).replace(/[^\d.]/g,'')) // item.directNum = Number(String(item.directNum).replace(/[^\d.]/g,''))
if (Number(item.reduceNum)<= 0) { if (Number(item.reduceNum)<= 0) {
item.reduceNum = 0; item.reduceNum = 0;
} }
@ -654,6 +843,11 @@ const onChangeNumber = (item) => {
icon: 'none', icon: 'none',
}) })
item.reduceNum = maxNum; item.reduceNum = maxNum;
}else{
if(item.reduceNum && item.reduceDays && item.leasePrice){
item.reduceLeaseMoney = item.reduceDays*item.leasePrice*item.reduceNum
}
typeList.value = [...typeList.value];
} }
},500) },500)
} }

View File

@ -2,7 +2,7 @@
<view class="accept page-common"> <view class="accept page-common">
<div class="card"> <div class="card">
<uni-forms :model="formData" ref="form" label-width="200rpx" :rule="rules.value" :border="true" > <uni-forms :model="formData" ref="form" label-width="200rpx" :rule="rules.value" :border="true" >
<uni-forms-item label="领用单位" name="unitId" > <uni-forms-item label="领用单位" name="unitId" >
<eselect <eselect
style="width: 100%; height: 90rpx" style="width: 100%; height: 90rpx"
v-model="formData.unitId" v-model="formData.unitId"
@ -12,7 +12,7 @@
@clear="clearUnit" @clear="clearUnit"
></eselect> ></eselect>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="领用工程" name="proId" > <uni-forms-item label="领用工程" name="proId" >
<eselect <eselect
style="width: 100%; height: 90rpx" style="width: 100%; height: 90rpx"
v-model="formData.proId" v-model="formData.proId"
@ -22,16 +22,16 @@
@clear="clearPro" @clear="clearPro"
></eselect> ></eselect>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="采购申请编号" name="applyCode" > <uni-forms-item label="采购申请编号" name="applyCode" >
<uni-easyinput v-model="formData.applyCode" maxlength="10" placeholder="请输入领料人" /> <uni-easyinput v-model="formData.applyCode" maxlength="10" placeholder="请输入领料人" />
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="领料人" name="leasePerson" > <uni-forms-item label="领料人" name="leasePerson" >
<uni-easyinput v-model="formData.leasePerson" maxlength="10" placeholder="请输入领料人" /> <uni-easyinput v-model="formData.leasePerson" maxlength="10" placeholder="请输入领料人" />
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="联系电话" name="phone" > <uni-forms-item label="联系电话" name="phone" >
<uni-easyinput v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" /> <uni-easyinput v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" />
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="标准配置" name="configId" > <uni-forms-item label="标准配置" name="configId" >
<eselect <eselect
style="width: 100%; height: 90rpx" style="width: 100%; height: 90rpx"
v-model="formData.configId" v-model="formData.configId"
@ -41,6 +41,20 @@
@clear="clearConfig" @clear="clearConfig"
></eselect> ></eselect>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="附件" label-width="100rpx" v-if="flagFile">
<div class="upload-wrapper" style="display: flex; flex-wrap: wrap;">
<!-- 上传按钮仅当上传图片数量少于 3 张时显示 -->
<div class="upload" @click="uploadImg" v-if="bmFileInfos.length < 3">+</div>
<!-- 动态展示已上传的图片 -->
<div class="upload" @click="uploadImg" v-for="(img, index) in bmFileInfos" :key="index">
<div class="image-container">
<image :src="img.urlTemp" style="width: 160rpx;height: 160rpx;" mode=""></image>
<!-- 删除 logo这里用一个 span 模拟可替换为实际的 logo 图片 -->
<span class="delete-logo" @click.stop="deleteImg(index)">&times;</span>
</div>
</div>
</div>
</uni-forms-item>
</uni-forms> </uni-forms>
</div> </div>
<div class="card"> <div class="card">
@ -152,9 +166,10 @@ const typeId = ref("")//类型
const maCodeSelectList = ref([]) const maCodeSelectList = ref([])
const typeCode = ref("")// const typeCode = ref("")//
const typeList = ref([]) const typeList = ref([])
const bmFileInfos = ref([])//
// form // form
const form = ref(null) const form = ref(null)
const flagFile = ref(false)
// //
@ -242,6 +257,10 @@ const getUnit = () => {
} }
// //
const getProject = async (e) => { const getProject = async (e) => {
flagFile.value = false
if (e.typeKey == 'fbs') {
flagFile.value = true
}
console.log('🚀 ~ getProject ~ e:', e) console.log('🚀 ~ getProject ~ e:', e)
unitId.value = e?.id || '' unitId.value = e?.id || ''
formData.value.unitId = e?.id || '' formData.value.unitId = e?.id || ''
@ -402,15 +421,24 @@ const submitNum = async() => {
console.log(typeList.value) console.log(typeList.value)
// 使 // 使
form.value.validate((valid)=>{ form.value.validate(async(valid)=>{
console.log('🚀 ~ submitNum ~ valid:', valid) console.log('🚀 ~ submitNum ~ valid:', valid)
if(!valid){ if(!valid){
if(flagFile.value && bmFileInfos.value.length==0){
await uni.showToast({
title: '请上传附件',
icon: 'none',
duration: 1000
})
return
}
// preNum 0 // preNum 0
if (typeList.value.length === 0) { if (typeList.value.length === 0) {
console.log('🚀 ~ submitNum ~ typeList.value:', typeList.value) console.log('🚀 ~ submitNum ~ typeList.value:', typeList.value)
uni.showToast({ await uni.showToast({
title: '请添加申请数据', title: '请添加申请数据',
icon: 'none', icon: 'none',
duration: 1000
}) })
return return
} }
@ -419,6 +447,7 @@ const submitNum = async() => {
uni.showToast({ uni.showToast({
title: '预领数量不能为空或等于0', title: '预领数量不能为空或等于0',
icon: 'none', icon: 'none',
duration: 1000
}) })
return return
} }
@ -432,7 +461,7 @@ const submitNum = async() => {
"phone":formData.value.phone, "phone":formData.value.phone,
"standardConfigId":configId.value, "standardConfigId":configId.value,
"applyCode":formData.value.applyCode, "applyCode":formData.value.applyCode,
"bmFileInfos": bmFileInfos.value,
}, },
"leaseApplyDetailsList":typeList.value "leaseApplyDetailsList":typeList.value
} }
@ -480,34 +509,46 @@ onLoad((options) => {
}) })
// //
const uploadImg = (item) => { const uploadImg = (item) => {
if(bmFileInfos.value.length>=3){
uni.showToast({
title: '最多上传3张图片',
icon: 'none',
})
return
}
uni.chooseImage({ uni.chooseImage({
count: 1, // count: 3 - bmFileInfos.value.length, //
sizeType: ['original', 'compressed'], //original compressed sizeType: ['original', 'compressed'], //original compressed
sourceType: ['album', 'camera',], //album camera 使 sourceType: ['album', 'camera',], //album camera 使
success: res => { success: res => {
console.log(res) console.log(res)
let imgFiles = res.tempFilePaths // let imgFiles = res.tempFilePaths //
imgFiles.forEach((filePath) => {
console.log('2222222222222222222222')
bmFileInfos.value.push({urlTemp:filePath})
})
console.log('🚀 ~ uploadImg ~ imgFiles:', imgFiles)
// imgBeseUrl.value = imgFiles[0] // imgBeseUrl.value = imgFiles[0]
// console.log('', imgFiles) // console.log('', imgFiles)
// console.log('', baseURL+"/file/upload") // console.log('', baseURL+"/file/upload")
bmFileInfos.value.forEach((item,index) => {
uni.uploadFile({ uni.uploadFile({
// url: baseURL+"/file/upload",//app // url: baseURL+"/file/upload",//app
url: "/file/upload",//h5 url: "/file/upload",//h5
filePath: imgFiles[0], filePath: item.urlTemp,
name: 'file', name: 'file',
success: (res) => { success: (res) => {
res = JSON.parse(res.data) res = JSON.parse(res.data)
console.log('上传成功', res.code); console.log('上传成功', res.code);
console.log('上传成功', res.data); console.log('上传成功', res.data);
if(res.code&&res.code==200){ if(res.code&&res.code==200){
let obj = { bmFileInfos.value[index] = {
"name":res.data.name, ...bmFileInfos.value[index],
"url":res.data.url name: res.data.name,
} url: res.data.url
item.bmFileInfos.value = [obj] };
uni.showToast({ title: '上传成功', icon: 'none' }) uni.showToast({ title: '上传成功', icon: 'none' })
}else{ }else{
item.bmFileInfos.value = []
uni.showToast({ title: '上传失败', icon: 'none' }) uni.showToast({ title: '上传失败', icon: 'none' })
} }
}, },
@ -515,10 +556,16 @@ const uploadImg = (item) => {
console.error('上传失败', err); console.error('上传失败', err);
} }
}); });
});
// this.$refs.vForm.clearValidate() // this.$refs.vForm.clearValidate()
} }
}) })
} }
const deleteImg = (index) => {
bmFileInfos.value.splice(index, 1);
// bmFileInfosTemp.value.splice(index, 1);
};
// //
const delRow = (index) => { const delRow = (index) => {
console.log(index) console.log(index)
@ -736,4 +783,49 @@ const clearConfig = () => {
} }
} }
} }
//
.upload {
width: 160rpx;
height: 160rpx;
background-color: #f7f8fa;
border: 2rpx dashed #d9d9d9;
border-radius: 12rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 48rpx;
color: #bfbfbf;
transition: all 0.3s ease;
&:active {
background-color: #f0f0f0;
border-color: #3784fb;
}
image {
width: 100%;
height: 100%;
border-radius: 12rpx;
object-fit: cover;
}
}
.image-container {
position: relative;
display: inline-block;
}
.delete-logo {
position: absolute;
top: 5px;
right: 5px;
font-size: 20px;
color: white;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 50%;
width: 20px;
height: 20px;
line-height: 20px;
text-align: center;
cursor: pointer;
}
</style> </style>