app品质异常通知单新增检验数量字段

dev
qiuhongwu 3 months ago
parent ac19e24651
commit 3ecc4bea7a

@ -44,11 +44,11 @@ const getListData = async () => {
const data = await getNotificationPageAPI(queryParams)
isLoading.value = false
data.list.forEach(async (e) => {
console.log(e,'eeeeeeeeeeeeeeeee');
// console.log(e, 'eeeeeeeeeeeeeeeee')
//
// e.attachments = (await getFileAPI({ pageNo: 1, pageSize: 99, businessId: e.id, businessType: 'errorOrderPhoto' })).list
// console.log(e.attachments,'eeeeeeeeeeeeeeeee');
e.attachments= e.fileUrl.split(',')
e.attachments = e.fileUrl.split(',')
const obj = userStore.dictInfo.find((q) => q.value == e.property) || {}
e.property = obj?.label
e.createTime = formatDate(e.createTime, 'YYYY-MM-DD')
@ -89,8 +89,8 @@ onMounted(async () => {
await getListData()
})
const previewImage = (url: any,index:any) => {
console.log(url,index,'url图片预览功能')
const previewImage = (url: any, index: any) => {
console.log(url, index, 'url图片预览功能')
// 使 uni-api
uni.previewImage({
@ -169,15 +169,21 @@ defineExpose({ updateData })
>
</view>
</view>
<view class="product-row">
<view class="row-item">
<view class="label"
>检验数量<text class="blue">{{ item.checkAmount }}</text></view
>
</view>
</view>
<view class="product-item">
<view class="label">异常情况描述及原因分析</view>
<text class="blue">{{ item.remark }}</text>
</view>
<view class="product-item">
<view>照片</view>
<view v-for="(attachment,index) in item.attachments" :key="attachment.id">
<image :src="attachment" mode="aspectFill" class="image" @click="previewImage(item.attachments,index)"></image>
<view v-for="(attachment, index) in item.attachments" :key="attachment.id">
<image :src="attachment" mode="aspectFill" class="image" @click="previewImage(item.attachments, index)"></image>
<!-- <uni-file-picker limit="5" v-model="attachment.url" fileMediatype="image" mode="grid" :auto-upload="false" /> -->
</view>
</view>
@ -335,6 +341,6 @@ defineExpose({ updateData })
.image {
width: 70rpx;
height: 70rpx;
margin-right:10rpx;
margin-right: 10rpx;
}
</style>

@ -20,8 +20,8 @@ let isLoading = ref(false)
//
let typeDictData = []
const getTypeDictData = () => {
const arr = dictData.filter(e => e.dictType == 'biz_inspection_type') || []
arr.forEach(e => {
const arr = dictData.filter((e) => e.dictType == 'biz_inspection_type') || []
arr.forEach((e) => {
const obj = {
value: e.value,
text: e.label
@ -36,11 +36,11 @@ const getProjectData = async () => {
pageNo: 1,
pageSize: 99,
orderStatus: '8',
isSnapshot: 0,
isSnapshot: 0
}
const res = await getApproveOrderAPI(params)
const arr = []
res.list.forEach(e => {
res.list.forEach((e) => {
const obj = {
text: e.code,
value: e.id
@ -56,11 +56,11 @@ const getProjectChildData = async (projectOrderId) => {
return
}
const params = {
projectOrderId,
projectOrderId
}
const data = await getChildProductAPI(params)
const arr = []
data.forEach(e => {
data.forEach((e) => {
const obj = {
text: e.projectSubName,
value: e.id,
@ -85,7 +85,7 @@ const getWorkshopsData = async (projectOrderId) => {
}
const data = await getWorkshopsPageAPI(params)
const arr = []
data.forEach(e => {
data.forEach((e) => {
const obj = {
text: e.name,
value: e.id
@ -99,11 +99,11 @@ const procedureData = ref([])
const getProcedurePage = async (projectOrderId) => {
const params = {
pageNo: 1,
pageSize: 99,
pageSize: 99
}
const data = await getProcedurePageAPI(params)
const arr = []
data.list.forEach(e => {
data.list.forEach((e) => {
const obj = {
text: e.name,
value: e.id
@ -118,11 +118,11 @@ let ownerDataDefault = []
const getOwnerDataData = async (projectOrderId) => {
const params = {
pageNo: 1,
pageSize: 99,
pageSize: 99
}
const data = await getUserPageAPI(params)
const arr = []
data.list.forEach(e => {
data.list.forEach((e) => {
const obj = {
text: e.nickname,
value: e.id
@ -153,6 +153,7 @@ const valiFormData = ref({
procedureId: '', //id
spec: '', //
amount: '',
checkAmount: '',
owner: '',
remark: '',
status: 1, // ,12,(1)
@ -162,30 +163,33 @@ const valiFormData = ref({
//
const rules: UniHelper.UniFormsRules = {
type: {
rules: [{ required: true, errorMessage: '请选择质检类型' }],
rules: [{ required: true, errorMessage: '请选择质检类型' }]
},
projectId: {
rules: [{ required: true, errorMessage: '请选择项目名称' }],
rules: [{ required: true, errorMessage: '请选择项目名称' }]
},
projectSubId: {
rules: [{ required: true, errorMessage: '请选择子项目名称' }],
rules: [{ required: true, errorMessage: '请选择子项目名称' }]
},
procedureId: {
rules: [{ required: true, errorMessage: '请选择子责任工序' }],
rules: [{ required: true, errorMessage: '请选择子责任工序' }]
},
workshopId: {
rules: [{ required: true, errorMessage: '请选择子生产车间' }],
rules: [{ required: true, errorMessage: '请选择子生产车间' }]
},
checkAmount: {
rules: [{ required: true, errorMessage: '请输入检验常量' }]
},
amount: {
rules: [{ required: true, errorMessage: '请输入异常常量' }],
rules: [{ required: true, errorMessage: '请输入异常常量' }]
},
owner: {
rules: [{ required: true, errorMessage: '请输入责任人' }],
rules: [{ required: true, errorMessage: '请输入责任人' }]
},
remark: {
rules: [{ required: true, errorMessage: '请输入情况描述' }],
},
rules: [{ required: true, errorMessage: '请输入情况描述' }]
}
}
//
const handleChangeType = (val) => {
@ -212,7 +216,7 @@ const handleChangeProjectChild = (val) => {
valiFormData.value.projectSubId = val
valiFormData.value.workshopId = ''
workshopsData.value = []
const targetObj = projectChildData.value.find((e)=> {
const targetObj = projectChildData.value.find((e) => {
if (e.value == val) {
return e
}
@ -249,7 +253,7 @@ const handleSubmit = async () => {
emit('close', true)
}
//
const selectOne = (val: string)=>{
const selectOne = (val: string) => {
if (val) {
ownerData.value = ownerDataDefault.filter((e) => {
if (e.text.indexOf(val) != -1) {
@ -261,22 +265,22 @@ const selectOne = (val: string)=>{
}
}
//
const selectConfirm = (val: string)=>{
const selectConfirm = (val: string) => {
valiFormData.value.owner = val
}
const handleMediaAdd = () => {
uni.chooseImage({
count: 5,
mediaType: ['image','video'],
mediaType: ['image', 'video'],
sourceType: ['album', 'camera'],
maxDuration: 30,
camera: 'back',
success: (res)=> {
success: (res) => {
console.log('chooseImage', res)
const tempFilePath = res.tempFilePaths[0]
handleUploadFile(tempFilePath)
}
});
})
}
// 线
const handleUploadFile = (e) => {
@ -285,12 +289,12 @@ const handleUploadFile = (e) => {
const businessId = e.tempFiles[0].uuid
uni.uploadFile({
url: '/infra/file/uploadWatch', //
filePath: tempFilePath,//
filePath: tempFilePath, //
name: 'files',
formData: {
businessType: 'errorOrderPhoto',
businessId: businessId,
businessFileType: 'errorOrderPhoto',
businessFileType: 'errorOrderPhoto'
},
success: (res) => {
const url = JSON.parse(res.data).data
@ -300,7 +304,7 @@ const handleUploadFile = (e) => {
}
mediaList.value.push(obj)
}
});
})
}
const mediaValue = ref([])
const mediaList = ref([])
@ -311,11 +315,10 @@ const select = (e: any) => {
}
//
const deleteImage = (e: any) => {
const idx = mediaList.value.findIndex(q => q.k == e.tempFile.uuid)
mediaList.value.splice(idx,1)
const idx = mediaList.value.findIndex((q) => q.k == e.tempFile.uuid)
mediaList.value.splice(idx, 1)
console.log('删除图片', mediaList.value, e.tempFile.uuid)
}
</script>
<template>
<view class="data-detail">
@ -323,16 +326,13 @@ const deleteImage = (e: any) => {
<!-- 基础表单校验 -->
<uni-forms ref="formRef" :rules="rules" :modelValue="valiFormData" :label-width="100">
<uni-forms-item label="质检类型" required name="type">
<uni-data-select v-model="valiFormData.type" :localdata="typeDictData"
@change="handleChangeType"></uni-data-select>
<uni-data-select v-model="valiFormData.type" :localdata="typeDictData" @change="handleChangeType"></uni-data-select>
</uni-forms-item>
<uni-forms-item label="生产订单号" required name="projectId">
<uni-data-select v-model="valiFormData.projectId" :localdata="projectData"
@change="handleChangeProject"></uni-data-select>
<uni-data-select v-model="valiFormData.projectId" :localdata="projectData" @change="handleChangeProject"></uni-data-select>
</uni-forms-item>
<uni-forms-item label="产品编码/名称" required name="projectSubId">
<uni-data-select v-model="valiFormData.projectSubId" :localdata="projectChildData"
@change="handleChangeProjectChild"></uni-data-select>
<uni-data-select v-model="valiFormData.projectSubId" :localdata="projectChildData" @change="handleChangeProjectChild"></uni-data-select>
</uni-forms-item>
<uni-forms-item label="规格/型号" name="">
<uni-easyinput type="text" disabled :value="valiFormData.spec" />
@ -343,6 +343,10 @@ const deleteImage = (e: any) => {
<uni-forms-item label="责任工序" required name="procedureId">
<uni-data-select v-model="valiFormData.procedureId" :localdata="procedureData"></uni-data-select>
</uni-forms-item>
<!-- 等接口完善后需要修改 -->
<uni-forms-item label="检验数量" required name="checkAmount">
<uni-easyinput type="number" v-model="valiFormData.checkAmount" placeholder="请输入检验数量" />
</uni-forms-item>
<uni-forms-item label="异常数量" required name="amount">
<uni-easyinput type="number" v-model="valiFormData.amount" placeholder="请输入异常数量" />
</uni-forms-item>
@ -351,16 +355,14 @@ const deleteImage = (e: any) => {
<uni-easyinput type="text" disabled :value="userName" />
</template>
<template v-else>
<mySelect :list="ownerData" value-key="value" name-key="text" max-height="180" placeholder="请输入责任人"
@input="selectOne" v-model="valiFormData.owner" @confirm="selectConfirm" />
<mySelect :list="ownerData" value-key="value" name-key="text" max-height="180" placeholder="请输入责任人" @input="selectOne" v-model="valiFormData.owner" @confirm="selectConfirm" />
</template>
</uni-forms-item>
<uni-forms-item label="情况描述" required name="remark">
<uni-easyinput type="textarea" v-model="valiFormData.remark" placeholder="请输入情况描述" />
</uni-forms-item>
<uni-forms-item class="media-item" label="照片(最多可上传5张)" name="mediaValue">
<uni-file-picker limit="5" v-model="mediaValue" fileMediatype="image" mode="grid" :auto-upload="false"
@select="select" @delete="deleteImage" />
<uni-file-picker limit="5" v-model="mediaValue" fileMediatype="image" mode="grid" :auto-upload="false" @select="select" @delete="deleteImage" />
</uni-forms-item>
</uni-forms>
<view class="action">
@ -392,8 +394,8 @@ const deleteImage = (e: any) => {
padding: 20rpx 0;
}
.uni-section {
display: flex!important;
align-items: center!important;
display: flex !important;
align-items: center !important;
}
.media-add {
width: 140rpx;
@ -405,7 +407,7 @@ const deleteImage = (e: any) => {
align-items: center;
.cancle {
color: #356899;
background-color: #F9FCFF;
background-color: #f9fcff;
padding: 0rpx 100rpx;
margin-right: 20rpx;
}
@ -413,9 +415,8 @@ const deleteImage = (e: any) => {
// background-color: #F9FCFF;
padding: 0rpx 100rpx;
color: #fff;
background: linear-gradient(170deg, #2DACE6 -128%, #356899 141%);
background: linear-gradient(170deg, #2dace6 -128%, #356899 141%);
}
}
}
</style>

Loading…
Cancel
Save