bonus-material-app/src/pages/new-purchase/accept/conclusion.vue

236 lines
6.3 KiB
Vue
Raw Normal View History

2024-11-18 09:05:38 +08:00
<template>
<view class="accept page-common">
<div class="card">
<uni-forms :model="formData" label-width="100" :border="true">
2024-11-18 18:26:53 +08:00
<uni-forms-item label="物资名称:" name="maTypeName">
2024-12-04 17:14:05 +08:00
<span class="form-view">{{ formData.maTypeName }}</span>
2024-11-18 09:05:38 +08:00
</uni-forms-item>
2024-11-18 18:26:53 +08:00
<uni-forms-item label="物资规格:" name="typeName">
2024-12-04 17:14:05 +08:00
<span class="form-view">{{ formData.typeName }}</span>
2024-11-18 09:05:38 +08:00
</uni-forms-item>
2024-11-18 18:26:53 +08:00
<uni-forms-item label="到货数量:" name="purchaseNum">
2024-12-04 17:14:05 +08:00
<span class="form-view">{{ formData.purchaseNum }}</span>
2024-11-18 09:05:38 +08:00
</uni-forms-item>
2024-12-04 17:14:05 +08:00
<uni-forms-item label="质保材料:" name="warnDocuments">
2024-11-19 15:06:06 +08:00
<uni-easyinput v-model="warnDocuments" placeholder="请输入质保材料" />
</uni-forms-item>
2024-11-18 09:05:38 +08:00
2024-11-18 18:26:53 +08:00
<uni-forms-item label="验收结论:" name="checkResult">
2024-11-19 15:06:06 +08:00
<uni-data-select v-model="checkResult"
:localdata="range">
</uni-data-select>
2024-11-18 09:05:38 +08:00
</uni-forms-item>
<uni-forms-item label="原因:" name="reason">
<uni-easyinput v-model="reason" placeholder="请输入原因" />
</uni-forms-item>
<uni-forms-item label="上传图片:" name="imgList">
2024-11-19 15:06:06 +08:00
<!-- <uni-file-picker fileMediatype="image" :image-styles="imageStyles"/> -->
<div class="upload" @click="uploadImg" v-if="imgBeseUrl==''">+</div>
<div class="upload" @click="uploadImg" v-else>
<image :src="imgBeseUrl" style="width: 160rpx;height: 160rpx;" mode=""></image>
</div>
2024-11-18 09:05:38 +08:00
</uni-forms-item>
</uni-forms>
</div>
<div class="btn">
2024-11-19 11:31:53 +08:00
<button class="btn-cont" @click="reject">不合格</button>
2024-11-18 18:26:53 +08:00
<button class="btn-cont" @click="pass">合格</button>
2024-11-18 09:05:38 +08:00
</div>
</view>
</template>
<script setup>
import { ref, reactive } from 'vue'
2024-11-18 18:26:53 +08:00
import { onLoad } from '@dcloudio/uni-app'
import { innerVerify } from '../../../services/purchase.js';
2024-11-19 15:06:06 +08:00
import { baseURL } from '@/utils/http'
2024-11-18 18:26:53 +08:00
const formData = ref({})
2024-11-19 15:06:06 +08:00
const checkResult = ref("合格")
const warnDocuments = ref("")
const reason = ref("")
const imgBeseUrl = ref("")//页面展示选中图片
const bmFileInfos = ref([])//请求图片参数
const range = reactive([{value:"合格",text:"合格"},{value:"不合格",text:"不合格" },])
2024-11-19 11:31:53 +08:00
//合格
2024-11-18 18:26:53 +08:00
const pass = () => {
let obj = {
"taskId":formData.value.taskId,
"typeId":formData.value.typeId,
"manageType":formData.value.manageType,
"status":3,
"checkResult":checkResult.value,
2024-11-19 15:06:06 +08:00
"reason":reason.value,
"warnDocuments":warnDocuments.value,
"bmFileInfos":bmFileInfos.value
2024-11-18 18:26:53 +08:00
}
console.log(obj)
let param = {
purchaseCheckDetailsList:[obj],
verifyPass:true
2024-11-19 11:13:38 +08:00
}
console.log(param)
2024-11-18 18:26:53 +08:00
innerVerify(param).then(res => {
console.log(res)
2025-01-21 14:57:01 +08:00
if (res.code == 200) {
uni.showToast({ title: res.msg, icon: 'none' })
setTimeout(() => {
uni.navigateBack({
delta: 1 // 返回到已存在的页面
});
}, 500)
2024-11-19 11:31:53 +08:00
}else{
uni.showToast({ title: res.msg, icon: 'none' })
}
}).catch(error => {
console.log(error)
})
}
//不合格
const reject = () => {
let obj = {
"taskId":formData.value.taskId,
"typeId":formData.value.typeId,
"manageType":formData.value.manageType,
"status":1,
"checkResult":checkResult.value,
2024-11-19 15:06:06 +08:00
"reason":reason.value,
"warnDocuments":warnDocuments.value,
"bmFileInfos":bmFileInfos.value
2024-11-19 11:31:53 +08:00
}
console.log(obj)
let param = {
purchaseCheckDetailsList:[obj],
verifyPass:false
}
console.log(param)
innerVerify(param).then(res => {
console.log(res)
if(res.code==200){
uni.showToast({ title: '操作成功', icon: 'none' })
2024-11-19 11:13:38 +08:00
uni.navigateBack({
delta: 1 // 返回到已存在的页面
});
}else{
uni.showToast({ title: res.msg, icon: 'none' })
}
2024-11-18 18:26:53 +08:00
}).catch(error => {
console.log(error)
})
}
2024-11-19 15:06:06 +08:00
//上传
const uploadImg = () => {
uni.chooseImage({
count: 1, //图片可选择数量
sizeType: ['original', 'compressed'], //original 原图compressed 压缩图,默认二者都有
sourceType: ['album', 'camera',], //album 从相册选图camera 使用相机,默认二者都有。
success: res => {
console.log(res)
let imgFiles = res.tempFilePaths //图片的本地文件路径列表
imgBeseUrl.value = imgFiles[0]
// console.log('本地地址', imgFiles)
// console.log('请求地址', baseURL+"/file/upload")
uni.uploadFile({
// url: baseURL+"/file/upload",//app
url: "/file/upload",//h5
filePath: imgFiles[0],
name: 'file',
success: (res) => {
res = JSON.parse(res.data)
console.log('上传成功', res.code);
console.log('上传成功', res.data);
if(res.code&&res.code==200){
let obj = {
"name":res.data.name,
"url":res.data.url,
"taskType":"10"
}
// console.log(obj)
bmFileInfos.value = [obj]
uni.showToast({ title: '上传成功', icon: 'none' })
}else{
bmFileInfos.value = []
uni.showToast({ title: '上传失败', icon: 'none' })
}
},
fail: (err) => {
console.error('上传失败', err);
}
});
// this.$refs.vForm.clearValidate()
}
})
}
2024-11-18 18:26:53 +08:00
onLoad((options)=>{
console.log(options)
formData.value = JSON.parse(options.item)
2024-11-18 09:05:38 +08:00
})
</script>
<style lang="scss">
.accept {
padding: 10px;
height: 100%;
word-break: break-all;
}
.card {
padding: 10px;
background-color: #fff;
border-radius: 6px;
box-shadow: 0 2upx 4upx 0 rgba(0, 0, 0, 0.1);
}
2024-12-04 17:14:05 +08:00
.form-view{
width: 100%;
height: 100%;
display: flex;
align-items: center;
}
2024-11-18 09:05:38 +08:00
.upload {
2024-11-19 15:06:06 +08:00
width: 80px;
height: 80px;
2024-11-18 09:05:38 +08:00
background-color: #f5f5f5;
border-radius: 6px;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
color: #ccc;
margin-top: 10px;
}
.btn {
display: flex;
justify-content: space-around;
margin-top: 30px;
.btn-cont {
width: 40%;
height: 40px;
line-height: 40px;
text-align: center;
background-color: #3784fb;
color: #fff;
border-radius: 20px;
// 取消按钮淡蓝色
&:first-child {
background-color: #aacefb;
}
}
}
</style>