新购验收
This commit is contained in:
parent
c1be060973
commit
0ba77429b0
|
|
@ -69,6 +69,13 @@
|
|||
"style": {
|
||||
"navigationBarTitleText": "领料出库"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/back/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "退料任务"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tabBar": {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,209 @@
|
|||
<template>
|
||||
<!-- 退料任务 -->
|
||||
<view class="accept page-common">
|
||||
<view class="complete-btn">
|
||||
<view class="btn" @click="changeTab(1)">
|
||||
<span>已完成</span>
|
||||
<div v-if="active == 1" class="bt-line"></div>
|
||||
</view>
|
||||
<view class="btn" style="margin-left: 120rpx" @click="changeTab(2)">
|
||||
<span>未完成</span>
|
||||
<div v-if="active == 2" class="bt-line"></div>
|
||||
</view>
|
||||
</view>
|
||||
<uni-row :gutter="24" class="search-form">
|
||||
<uni-col :span="10">
|
||||
<view>
|
||||
<uni-datetime-picker
|
||||
type="date"
|
||||
placeholder="请选择日期"
|
||||
:clear-icon="false"
|
||||
@maskClick="maskClick"
|
||||
/>
|
||||
</view>
|
||||
</uni-col>
|
||||
<uni-col :span="10">
|
||||
<view>
|
||||
<uni-easyinput placeholder="请输入项目名称" />
|
||||
</view>
|
||||
</uni-col>
|
||||
<uni-col :span="4">
|
||||
<view class="search" @click="getTableList()">搜索</view>
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
|
||||
<div
|
||||
class="table-list-item"
|
||||
v-for="(item, index) in tableList"
|
||||
:key="index"
|
||||
@click="handleItem(item)"
|
||||
>
|
||||
<div class="title">
|
||||
<span style="font-size: 15px; font-weight: 800">退料任务</span>
|
||||
<span :style="{ color: active == 1 ? '#3784fb' : '#ff4d4f' }">{{active == 1 ? '已完成' : '未完成'}}</span>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">申请时间:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.createTime }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">退料单号:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.code }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">退料物资:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.typeName }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">退料单位:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.unitName }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">工程名称:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.proName }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">退料人:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.backPerson }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">联系电话:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.phone }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">已退数量:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
<uni-row :gutter="24">
|
||||
<uni-col :span="6">备注:</uni-col>
|
||||
<uni-col :span="18"
|
||||
><div class="cont">{{ item.remark }}</div></uni-col
|
||||
>
|
||||
</uni-row>
|
||||
|
||||
<!-- <uni-row :gutter="24">
|
||||
<uni-col :span="6">验收数量:</uni-col>
|
||||
<uni-col :span="18"><div class="cont"></div></uni-col>
|
||||
</uni-row> -->
|
||||
</div>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive } from 'vue'
|
||||
import { getBackList } from '../../services/back.js'
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
const active = ref(1)
|
||||
const tableList = ref([])
|
||||
const taskStatus = ref("2")
|
||||
|
||||
const getTableList = () => {
|
||||
let obj = {
|
||||
"pageNum":"1",
|
||||
"pageSize":"10",
|
||||
"taskStatus":taskStatus.value
|
||||
}
|
||||
console.log(obj)
|
||||
getBackList(obj).then(res => {
|
||||
tableList.value = res.rows;
|
||||
console.log(tableList.value)
|
||||
}).catch(error => {
|
||||
console.log(error)
|
||||
})
|
||||
}
|
||||
|
||||
const changeTab = (index) => {
|
||||
active.value = index
|
||||
if (index == 1) {
|
||||
taskStatus.value = '2'
|
||||
getTableList()
|
||||
} else if (index == 2) {
|
||||
taskStatus.value = '0'
|
||||
getTableList()
|
||||
}
|
||||
}
|
||||
const maskClick = () => {}
|
||||
const handleItem = (item) => {
|
||||
console.log('🚀 ~ handleItem ~ item:', item)
|
||||
uni.navigateTo({ url: `/pages/new-purchase/accept/acceptDetails?id=${item.id}&taskId=${item.taskId}` })
|
||||
}
|
||||
onLoad((options) => {
|
||||
getTableList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.accept {
|
||||
height: 100%;
|
||||
word-break: break-all;
|
||||
.complete-btn {
|
||||
display: flex;
|
||||
padding: 20rpx;
|
||||
.btn {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
font-size: 30rpx;
|
||||
font-weight: 800;
|
||||
}
|
||||
.bt-line {
|
||||
width: 80rpx;
|
||||
height: 4rpx;
|
||||
background-color: #3784fb;
|
||||
}
|
||||
}
|
||||
|
||||
.search-form {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.search {
|
||||
height: 70rpx;
|
||||
background-color: #3784fb;
|
||||
text-align: center;
|
||||
line-height: 70rpx;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.table-list-item {
|
||||
margin: 20rpx 0;
|
||||
padding: 20rpx;
|
||||
background-color: #fff;
|
||||
min-height: 300rpx;
|
||||
border-radius: 10rpx;
|
||||
.title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.cont {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
line-height: 1.9;
|
||||
}
|
||||
.line {
|
||||
margin: 20rpx 0;
|
||||
height: 1px;
|
||||
background-color: #e8e8e8;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -47,6 +47,7 @@ import { getPurchaseInfo } from '../../../services/purchase.js';
|
|||
import { onLoad,onShow } from '@dcloudio/uni-app'
|
||||
|
||||
|
||||
|
||||
const searchValue = ref('')
|
||||
const id = ref('')
|
||||
const taskId = ref('')
|
||||
|
|
|
|||
|
|
@ -14,12 +14,14 @@
|
|||
<span>{{ formData.purchaseNum }}</span>
|
||||
</uni-forms-item>
|
||||
|
||||
<!-- <uni-forms-item label="质保材料:" name="warrantyMaterial">
|
||||
<uni-easyinput v-model="warrantyMaterial" placeholder="请输入质保材料" />
|
||||
</uni-forms-item> -->
|
||||
<uni-forms-item label="质保材料:" name="warnDocuments">
|
||||
<uni-easyinput v-model="warnDocuments" placeholder="请输入质保材料" />
|
||||
</uni-forms-item>
|
||||
|
||||
<uni-forms-item label="验收结论:" name="checkResult">
|
||||
<uni-easyinput v-model="checkResult" placeholder="请输入验收结论" />
|
||||
<uni-data-select v-model="checkResult"
|
||||
:localdata="range">
|
||||
</uni-data-select>
|
||||
</uni-forms-item>
|
||||
|
||||
<uni-forms-item label="原因:" name="reason">
|
||||
|
|
@ -27,7 +29,11 @@
|
|||
</uni-forms-item>
|
||||
|
||||
<uni-forms-item label="上传图片:" name="imgList">
|
||||
<div class="upload">+</div>
|
||||
<!-- <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>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
</div>
|
||||
|
|
@ -43,8 +49,18 @@
|
|||
import { ref, reactive } from 'vue'
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
import { innerVerify } from '../../../services/purchase.js';
|
||||
import { baseURL } from '@/utils/http'
|
||||
const formData = ref({})
|
||||
const checkResult = ref("")
|
||||
const checkResult = ref("合格")
|
||||
const warnDocuments = ref("")
|
||||
const reason = ref("")
|
||||
const imgBeseUrl = ref("")//页面展示选中图片
|
||||
const bmFileInfos = ref([])//请求图片参数
|
||||
|
||||
|
||||
const range = reactive([{value:"合格",text:"合格"},{value:"不合格",text:"不合格" },])
|
||||
|
||||
|
||||
//合格
|
||||
const pass = () => {
|
||||
let obj = {
|
||||
|
|
@ -53,6 +69,9 @@ const pass = () => {
|
|||
"manageType":formData.value.manageType,
|
||||
"status":3,
|
||||
"checkResult":checkResult.value,
|
||||
"reason":reason.value,
|
||||
"warnDocuments":warnDocuments.value,
|
||||
"bmFileInfos":bmFileInfos.value
|
||||
}
|
||||
console.log(obj)
|
||||
let param = {
|
||||
|
|
@ -83,6 +102,9 @@ const reject = () => {
|
|||
"manageType":formData.value.manageType,
|
||||
"status":1,
|
||||
"checkResult":checkResult.value,
|
||||
"reason":reason.value,
|
||||
"warnDocuments":warnDocuments.value,
|
||||
"bmFileInfos":bmFileInfos.value
|
||||
}
|
||||
console.log(obj)
|
||||
let param = {
|
||||
|
|
@ -105,6 +127,54 @@ const reject = () => {
|
|||
console.log(error)
|
||||
})
|
||||
}
|
||||
|
||||
//上传
|
||||
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()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
onLoad((options)=>{
|
||||
console.log(options)
|
||||
formData.value = JSON.parse(options.item)
|
||||
|
|
@ -124,8 +194,8 @@ onLoad((options)=>{
|
|||
box-shadow: 0 2upx 4upx 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.upload {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
import { http } from '@/utils/http'
|
||||
|
||||
// 退料任务列表接口
|
||||
export const getBackList = (data) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/material/back_apply_info/list',
|
||||
data:data,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -6,8 +6,7 @@ import { useMemberStore } from '@/stores'
|
|||
* baseURL 设置请求ip地址和端口
|
||||
*/
|
||||
const ENV = process.env.NODE_ENV
|
||||
const baseURL = ENV === 'development' ? 'http://192.168.2.246:18080' : '***'
|
||||
|
||||
export const baseURL = ENV === 'development' ? '/api' : '***'
|
||||
/**
|
||||
* httpInterceptor 分别拦截 request 和 uploadFile 请求
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue