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