bonus-material-app/src/pages/back/backNum.vue

268 lines
8.9 KiB
Vue
Raw 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="accept page-common">
<div class="card">
<div>任务信息</div>
<uni-forms :model="taskInfo" label-width="160rpx" :border="true">
<uni-forms-item label="退料单位" name="unitName">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.unitName }}</span>
</uni-forms-item>
<uni-forms-item label="退料工程:" name="proName">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.proName }}</span>
</uni-forms-item>
<uni-forms-item label="退料单号:" name="code">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.code }}</span>
</uni-forms-item>
<uni-forms-item label="退料人员:" name="backPerson">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.backPerson }}</span>
</uni-forms-item>
<uni-forms-item label="联系电话:" name="phone">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.phone }}</span>
</uni-forms-item>
</uni-forms>
</div>
<div class="card" style="margin-top: 20px;">
<div>退料物资</div>
<div style="width: 92%;height: auto;margin: 10px;margin-bottom: 30px;" >
<uni-row :gutter="24" style="display: flex; align-items: center">
<uni-col :span="10">
<view>
<uni-data-select v-model="typeId"
:localdata="maTypeSelectList" @change="getMaCode">
</uni-data-select>
</view>
</uni-col>
<uni-col :span="10">
<view>
<uni-data-select v-model="typeCode"
:localdata="maCodeSelectList" @change="selectMaCode">
</uni-data-select>
</view>
</uni-col>
</uni-row>
</div>
<div style="width: 92%;height: 100%;margin: 10px;font-size: 20rpx;">
<uni-table border stripe emptyText="暂无更多数据" >
<!-- 表头行 -->
<uni-tr>
<uni-th width="90px" align="center">类型名称</uni-th>
<uni-th width="90px" align="center">规格型号</uni-th>
<uni-th width="70px" align="center">在用数</uni-th>
<uni-th width="100px" align="center">退料数</uni-th>
<uni-th width="100px" align="center">外观</uni-th>
<uni-th width="60px" align="center">操作</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(item,index) in typeList" :key="item.id">
<uni-td>{{item.materialName}}</uni-td>
<uni-td>{{item.typeName}}</uni-td>
<uni-td>{{item.num}}</uni-td>
<uni-td>
<uni-easyinput placeholder="退料数" v-model="item.preNum"/>
</uni-td>
<uni-td>
<uni-easyinput placeholder="外观" v-model="item.apDetection"/>
</uni-td>
<uni-td>
<view class="uni-group">
<!-- <button class="uni-button" size="mini" type="primary" @click="uploadImg(item)">上传</button> -->
<!-- <button class="uni-button" size="mini" type="warn" >删除</button> -->
<uni-icons type="camera" size="20" style="color: #3784fb;" @click="uploadImg(item)"></uni-icons>
<uni-icons type="trash-filled" size="20" style="color: red;margin-left:10px;" @click="delRow(index)"></uni-icons>
</view>
</uni-td>
</uni-tr>
</uni-table>
</div>
</div>
<div class="btn">
<!-- <button class="btn-cont" @click="reject">取消</button> -->
<button class="btn-cont" @click="submitNum">确认</button>
</div>
</view>
</template>
<script setup>
import { ref, reactive } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { getUseType,insertApp } from '../../services/back.js';
const taskInfo = ref({})
const maTypeSelectList = ref([])
const typeId = ref("")//类型
const maCodeSelectList = ref([])
const typeCode = ref("")//规格型号
const typeList = ref([])
//类型下拉选
const getMaType = () => {
let obj = {
"agreementId":taskInfo.value.agreementId,
}
getUseType(obj).then(res => {
console.log(res)
maTypeSelectList.value = res.data.map(option => {
return {
value:option.typeId,
text:option.typeName,
}
});
}).catch(error => {
console.log(error)
})
}
//规格
const getMaCode = () => {
let obj = {
"agreementId":taskInfo.value.agreementId,
"typeId":typeId.value
}
getUseType(obj).then(res => {
console.log(res)
maCodeSelectList.value = res.data.map(option => {
let obj = {
...option,
bmFileInfos:[],
value:option.typeId,
text:option.typeName,
}
return obj
});
}).catch(error => {
console.log(error)
})
}
//选择规格型号
const selectMaCode = (e) => {
console.log(e)
maCodeSelectList.value.forEach(item=>{
console.log(item)
if(item.typeId==e){
typeList.value.push(item)
}
})
console.log(typeList.value)
}
//提交
const submitNum = () => {
console.log(taskInfo.value)
console.log(typeList.value)
let obj = {
"backApplyInfo":taskInfo.value,
"backApplyDetailsList":typeList.value
}
insertApp(obj).then(res => {
console.log(res)
if(res.code==200){
uni.showToast({ title: '编辑成功', icon: 'none' })
uni.navigateBack({
delta: 1 // 返回到已存在的页面
});
}else{
uni.showToast({ title: res.msg, icon: 'none' })
}
}).catch(error => {
console.log(error)
})
}
//上传
const uploadImg = (item) => {
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
}
item.bmFileInfos.value = [obj]
uni.showToast({ title: '上传成功', icon: 'none' })
}else{
item.bmFileInfos.value = []
uni.showToast({ title: '上传失败', icon: 'none' })
}
},
fail: (err) => {
console.error('上传失败', err);
}
});
// this.$refs.vForm.clearValidate()
}
})
}
//删除
const delRow = (index) => {
console.log(index)
console.log(typeList.value)
typeList.value.splice(index,1)
}
onLoad((options)=>{
console.log(options)
taskInfo.value = JSON.parse(options.taskInfo)
console.log(taskInfo.value)
getMaType()
})
</script>
<style lang="scss">
.accept {
padding: 10px;
height: 95vh;
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);
}
.upload {
width: 80px;
height: 80px;
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>