副本去掉

main
mhsnet 7 months ago
parent 53c1a8903e
commit 48b1431746

@ -1,640 +0,0 @@
<template>
<div class="xyp-box-mate-quality-form">
<vxe-modal v-model="refShow" width="1200" height="770" show-zoom show-footer :mask-closable=true>
<template #title>
<span style="color:#ffffff">{{ modalTitle }}</span>
</template>
<template #default>
<vxe-form title-colon ref="refFormA" title-align="right" title-width="210" :data="formDataA"
:rules="formRulesA" @submit="fnSubmitA" @reset="fnResetA" custom-layout>
<a-card title="基本数据" :bordered="false" style="margin: 10px">
<vxe-form-item title="采集规范版本号" field="StandardVersion" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.StandardVersion }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="供应商工单编号" field="SupplierWorkNo" span="12">
<template #default="params">
<vxe-input v-model="params.data.SupplierWorkNo" placeholder="请输入供应商工单编号" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="国网侧供应商编码" field="SupplierCode" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.SupplierCode }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="规格型号编码" field="ModelCode" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.ModelCode }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="物资种类编码" field="CategoryType" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.CategoryType }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="序列号" field="SerialNo" span="12">
<template #default="params">
<vxe-input v-model="params.data.SerialNo" placeholder="请输入序列号" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="原材料检验批次号" field="RmibNumber" span="12">
<template #default="params">
<vxe-input v-model="params.data.RmibNumber" placeholder="请输入原材料检验批次号" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="原材料批次号" field="RmbNumber" span="12">
<template #default="params">
<vxe-input v-model="params.data.RmbNumber" placeholder="请输入原材料批次号" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="原材料品牌" field="BorMaterials" span="12">
<template #default="params">
<vxe-input v-model="params.data.BorMaterials" placeholder="请输入原材料品牌" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="原材料制造商" field="RawmManufacturer" span="12">
<template #default="params">
<vxe-input v-model="params.data.RawmManufacturer" placeholder="请输入原材料制造商" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="原材料产地" field="OorMaterials" span="12">
<template #default="params">
<vxe-input v-model="params.data.OorMaterials" placeholder="请输入原材料产地" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="原材料规格型号" field="MrmSpecification" span="12">
<template #default="params">
<vxe-input v-model="params.data.MrmSpecification" placeholder="请输入原材料规格型号" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="原材料出厂日期" field="ManufactureDate" span="12">
<template #default="params">
<vxe-input v-model="params.data.ManufactureDate" type="date" clearable
@change="fnChangeA(params)" style="width: 196px;"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="来料检验日期" field="IncomDate" span="12">
<template #default="params">
<vxe-input v-model="params.data.IncomDate" type="date" clearable
@change="fnChangeA(params)" style="width: 196px;"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="采集时间" field="CheckTime" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.CheckTime }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="入数采中心时间" field="PutCenterTime" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.PutCenterTime }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="工序" field="PdCode" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.PdCode }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="感知过程" field="ProcessType" span="12">
<template #default="params">
<vxe-select v-model="params.data.ProcessType" clearable filterable :disabled="true">
<template v-for="item in dictProcessType">
<vxe-option :value="item.key" :label="item.val"></vxe-option>
</template>
</vxe-select>
</template>
</vxe-form-item>
<vxe-form-item title="检验结果是否合格" field="IsQualify" span="12">
<template #default="params">
<vxe-select v-model="params.data.IsQualify" clearable>
<vxe-option :key="1" :value="1" :label="`合格`"></vxe-option>
<vxe-option :key="0" :value="0" :label="`不合格`"></vxe-option>
</vxe-select>
</template>
</vxe-form-item>
<vxe-form-item title="ecode码" field="Ecode" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.Ecode }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="国网实物Id" field="SgEntityId" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.SgEntityId }}</div>
</template>
</vxe-form-item>
<vxe-form-item title="数据唯一标识" field="DataUniqueIdentifier" span="12">
<template #default="params">
<div style="width: 196px;">{{ params.data.DataUniqueIdentifier }}</div>
</template>
</vxe-form-item>
</a-card>
<a-card title="采集数据" :bordered="false" style="margin: 10px">
<vxe-form-item title="材质" field="Texture" span="12">
<template #default="params">
<vxe-input v-model="params.data.Texture" placeholder="请输入材质" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="公称厚度(mm)" field="Thickness" span="12">
<template #default="params">
<vxe-input v-model="params.data.Thickness" placeholder="请输入公称厚度" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item title="尺寸" field="Size" span="12">
<template #default="params">
<vxe-input v-model="params.data.Size" placeholder="请输入(如80*40*120)" clearable
@change="fnChangeA(params)"></vxe-input>
</template>
</vxe-form-item>
</a-card>
</vxe-form>
<a-card title="附件上传" :bordered="false" style="margin: 10px">
<vxe-form ref="refFormB" :data="formDataB" @submit="fnSubmitB" style="width: 80%;">
<vxe-form-item field="FileItems" span="12">
<template #default="params">
<vxe-table :data="FileItemsList">
<vxe-column field="id" title="id" width="100"></vxe-column>
<vxe-column field="type" title="文件类型" width="100"></vxe-column>
<vxe-column field="typeCode" title="文件类别" width="160">
<template #default="{ row }">
<template v-if="row.typeCode == 1">
1. 来料检测报告
</template>
<template v-else>
2. 生产商检测报告
</template>
</template>
</vxe-column>
<vxe-column field="fileName" title="文件原名称" width="100"></vxe-column>
<vxe-column field="fileUrl" title="文件Url" width="100"></vxe-column>
<vxe-column field="fileType" title="文件格式" width="100">
<template #default="{ row }">
<template v-if="row.fileType == 1">
PDF
</template>
<template v-else>
</template>
</template>
</vxe-column>
<vxe-column field="fType" title="fType"></vxe-column>
<vxe-column field="fType" title="fType" width="300">
<template #default="{ row }">
<template v-if="row.typeCode == 1">
<a-upload v-model:file-list="fileListA" name="file" :action="fileUpUrl"
:headers="{}" @change="fnChgFileA" :maxCount="1" accept=".pdf">
<a-button>
<upload-outlined></upload-outlined>
上传来料检测报告
</a-button>
</a-upload>
</template>
<template v-else>
<a-upload v-model:file-list="fileListB" name="file" :action="fileUpUrl"
:headers="{}" @change="fnChgFileB" :maxCount="1" accept=".pdf">
<a-button>
<upload-outlined></upload-outlined>
上传生产商检测报告
</a-button>
</a-upload>
</template>
</template>
</vxe-column>
</vxe-table>
</template>
</vxe-form-item>
</vxe-form>
</a-card>
</template>
<template #footer>
<vxe-button type="submit" status="primary" content="保存" @click="fnSubmitA"></vxe-button>
<vxe-button type="reset" content="取消" @click="fnEventCancel"></vxe-button>
</template>
</vxe-modal>
</div>
</template>
<script lang="ts" setup name="BoxMateQualityForm">
import { ref, reactive, toRefs, watch, onMounted, computed } from 'vue'
import { VXETable } from 'vxe-table'
import XEUtils from 'xe-utils'
import dayjs from 'dayjs'
import { map as _map } from 'lodash'
import * as BoxMateQualityApi from '@/api/gw/boxMateQuality'
import { useDictStore } from '@/stores/dict'
import { storeToRefs } from 'pinia'
import type { UploadProps, UploadChangeParam } from 'ant-design-vue';
import { config } from '@/config/axios/config'
import * as FileUploadApi from '@/api/gw/fileUpload'
import { idText } from 'typescript'
//
const refShow = ref(false)
// A -
const formDataAInit: any = {
ID: 0,
StandardVersion: 1,
SupplierWorkNo: "",
SupplierCode: "1000032215",
ModelCode: "dtb00003",
CategoryType: "90003",
SerialNo: "",
RmbNumber: "",
RmibNumber: "",
BorMaterials: "",
RawmManufacturer: "",
OorMaterials: "",
MrmSpecification: "",
ManufactureDate: dayjs().format("YYYY-MM-DD"),
IncomDate: dayjs().format("YYYY-MM-DD"),
CheckTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
PutCenterTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
PdCode: "GX000079",
ProcessType: 1,
IsQualify: "",
Ecode: "NotImp",
SgEntityId: "NotImp",
DataUniqueIdentifier: "NotImp",
Texture: "",
Thickness: "",
Size: "",
Sended: 0
}
// B -
const formDataBInit: any = ref({
ID: 0,
StandardVersion: "",
SupplierWorkNo: "",
SupplierCode: "",
ModelCode: "",
CategoryType: "",
SerialNo: "",
FileItems: JSON.stringify([{ "id": 1, "type": 1, "typeCode": 1, "fileName": "", "fileUrl": "", "fileType": 1, "fType": ".pdf" }, { "id": 2, "type": 1, "typeCode": 2, "fileName": "", "fileUrl": "", "fileType": 1, "fType": ".pdf" }]),
CheckTime: "",
PutCenterTime: "",
PdCode: "",
FpdCode: "",
Ecode: '',
SgEntityId: "",
DataUniqueIdentifier: "",
Sended: 0
})
// A -
let formDataA: any = ref(formDataAInit)
// B -
let formDataB: any = ref(formDataBInit)
// BA
watch(
formDataA,
async (formDataAN) => {
formDataB.value.StandardVersion = formDataAN.StandardVersion
formDataB.value.SupplierWorkNo = formDataAN.SupplierWorkNo
formDataB.value.SupplierCode = formDataAN.SupplierCode
formDataB.value.ModelCode = formDataAN.ModelCode
formDataB.value.CategoryType = formDataAN.CategoryType
formDataB.value.SerialNo = formDataAN.SerialNo
formDataB.value.PdCode = formDataAN.PdCode
formDataB.value.Ecode = formDataAN.Ecode
formDataB.value.SgEntityId = formDataAN.SgEntityId
formDataB.value.DataUniqueIdentifier = formDataAN.DataUniqueIdentifier
formDataB.value.CheckTime = formDataAN.CheckTime
formDataB.value.PutCenterTime = formDataAN.PutCenterTime
},
{ deep: true, immediate: true }
)
const dictStore = useDictStore()
const { dictProcessType } = storeToRefs(dictStore)
console.log(dictProcessType.value)
//console.log(dictProcessType)
// [success]
const emit = defineEmits(['success'])
// [add - |update - |del - ]
//const formTypeA: any = ref('')
//
const modalTitle = ref('未知表单')
//
const formRulesA: any = ref({
SupplierWorkNo: [
{ required: true, message: '请输入供应商工单编号' }
],
SerialNo: [
{ required: true, message: '请输入序列号' }
],
RmibNumber: [
{ required: true, message: '请输入原材料检验批次号' }
],
RmbNumber: [
{ required: true, message: '请输入原材料批次号' }
],
BorMaterials: [
{ required: true, message: '请输入原材料品牌' }
],
RawmManufacturer: [
{ required: true, message: '请输入原材料制造商' }
],
OorMaterials: [
{ required: true, message: '请输入原材料产地' }
],
MrmSpecification: [
{ required: true, message: '请输入原材料规格型号' }
],
ManufactureDate: [
{ required: true, message: '请输入原材料出厂日期' }
],
IncomDate: [
{ required: true, message: '请输入来料检验日期' }
],
PdCode: [
{ required: true, message: '请输入工序' }
],
IsQualify: [
{ required: true, message: '请选择是否合格' }
],
Texture: [
{ required: true, message: '请输入材质' }
],
Thickness: [
{ required: true, message: '请输入公称厚度' }
],
Size: [
{ required: true, message: '请输入尺寸' }
]
})
//
const fileListA = ref<UploadProps['fileList']>([]);
const fileListB = ref<UploadProps['fileList']>([]);
//
const fileUpUrl: any = computed(() => {
let url = config.base_url + '/DistributionBoxTesting/UploadFile'
return url
})
const fnChgFileA = async (info: UploadChangeParam) => {
if (info.file.response) {
console.log(info)
let FileItems: any = XEUtils.clone(formDataB.value.FileItems, true)
FileItems = JSON.parse(FileItems)
FileItems[0]['fileName'] = info.file.name
FileItems[0]['fileUrl'] = info.file.response
formDataB.value.FileItems = JSON.stringify(FileItems)
}
}
const fnChgFileB = async (info: UploadChangeParam) => {
if (info.file.response) {
let FileItems: any = XEUtils.clone(formDataB.value.FileItems, true)
FileItems = JSON.parse(FileItems)
FileItems[1]['fileName'] = info.file.name
FileItems[1]['fileUrl'] = info.file.response
formDataB.value.FileItems = JSON.stringify(FileItems)
}
}
//
const FileItemsList: any = computed(() => {
let FileItems: any = XEUtils.clone(formDataB.value.FileItems, true)
FileItems = JSON.parse(FileItems)
return FileItems
})
//
onMounted(() => {
})
//
const open = async (type: string, row?: any) => {
console.log('打开')
formType.value = type
await fnResetA()
switch (type) {
case 'add':
refShow.value = true
modalTitle.value = '新增柜体材质,厚度及尺寸'
break;
case 'edit':
refShow.value = true
modalTitle.value = '编辑柜体材质,厚度及尺寸'
const paramsA = {
"filter": {
"field": "ID",
"operator": "Eq",
"value": row.ID
}
}
const rowInfoA = await BoxMateQualityApi.getBoxMateQuality(paramsA)
rowInfoA.Data.Sended = 0
formDataA.value = rowInfoA.Data
//
const queryFileParamsA: any = reactive({
currentPage: 1,
pageSize: 10,
filter: {
"logic": 0,
"filters": [{
"field": 'SerialNo',
"operator": 0,
"value": rowInfoA.Data.SerialNo
}]
}
})
const dataFileRes = await FileUploadApi.getPagingFileList(queryFileParamsA)
if (dataFileRes.Code == 0 && dataFileRes.List) {
if(dataFileRes.List.length > 0){
formDataB.value = dataFileRes.List[0]
}
}
console.log(formDataB)
break;
case 'copy':
refShow.value = true
modalTitle.value = '复制柜体材质,厚度及尺寸'
const paramsB = {
"filter": {
"field": "ID",
"operator": "Eq",
"value": row.ID
}
}
const rowInfoB = await BoxMateQualityApi.getBoxMateQuality(paramsB)
rowInfoB.Data.ID = 0
rowInfoB.Data.CheckTime = dayjs().format("YYYY-MM-DD HH:mm:ss")
rowInfoB.Data.PutCenterTime = dayjs().format("YYYY-MM-DD HH:mm:ss")
rowInfoB.Data.Sended = 0
formDataA.value = rowInfoB.Data
break;
case 'delete':
modalTitle.value = '删除柜体材质,厚度及尺寸'
fnDeleteA(row)
break;
}
}
// open
defineExpose({ open })
// A
const fnChangeA = (params: any) => {
const $form = refFormA.value
if ($form) {
$form.updateStatus(params)
}
}
//
const fnDeleteA = async (row: any) => {
const type = await VXETable.modal.confirm("您确定要删除吗?")
switch (type) {
case 'confirm':
const paramsA = {
"filter": {
"field": "ID",
"operator": "Eq",
"value": row.ID
}
}
await BoxMateQualityApi.removeBoxMateQuality(paramsA)
VXETable.modal.message({ content: '删除成功', status: 'success' })
emit('success')
break;
case 'cancel':
break;
}
}
// [add - |update - |copy - ]
const formType: any = ref('')
// A
const refFormA = ref()
// A -
const fnSubmitA = async () => {
refFormA.value.validate().then(async (res: any) => {
if (!res) {
switch (formType.value) {
case 'add':
const paramsA = {
data: formDataA.value
}
await BoxMateQualityApi.saveBoxMateQuality(paramsA)
VXETable.modal.message({ content: '新增成功', status: 'success' })
refShow.value = false
emit('success')
break;
case 'edit':
let setVal: any = _map(formDataA.value, (o1, k1) => {
return { field: k1, value: o1 }
})
const paramsB = {
filter: {
field: 'ID',
value: formDataA.value.ID
},
set: setVal
}
await fnSubmitB()
await BoxMateQualityApi.editBoxMateQuality(paramsB)
VXETable.modal.message({ content: '编辑成功', status: 'success' })
refShow.value = false
emit('success')
break;
case 'copy':
const paramsC = {
data: formDataA.value
}
await BoxMateQualityApi.saveBoxMateQuality(paramsC)
VXETable.modal.message({ content: '复制成功', status: 'success' })
refShow.value = false
emit('success')
break;
}
}
})
}
// B
const refFormB = ref()
// B -
const fnSubmitB = async () => {
await refFormB.value.validate().then(async (res: any) => {
if (!res) {
const queryParamsA: any = reactive({
currentPage: 1,
pageSize: 10,
filter: {
"logic": 0,
"filters": [{
"field": 'SerialNo',
"operator": 0,
"value": formDataA.value.SerialNo
}]
}
})
const dataFileList = await FileUploadApi.getPagingFileList(queryParamsA)
if (dataFileList.length > 0) {
let setVal: any = _map(formDataB.value, (o1, k1) => {
return { field: k1, value: o1 }
})
const paramsB = {
filter: {
field: 'ID',
value: formDataB.value.ID
},
set: setVal
}
await FileUploadApi.editFile(paramsB)
} else {
const paramsA = {
data: formDataB.value
}
await FileUploadApi.saveFile(paramsA)
}
}
return false
})
return false
}
//
const fnEventCancel = () => {
refShow.value = false
}
//
const fnResetA = () => {
formDataA.value = {
"ID": 0,
"StandardVersion": 1,
"SupplierWorkNo": "",
"SupplierCode": "1000032215",
"ModelCode": "dtb00003",
"CategoryType": "90003",
"SerialNo": "",
"RmbNumber": "",
"RmibNumber": "",
"BorMaterials": "",
"RawmManufacturer": "",
"OorMaterials": "",
"MrmSpecification": "",
"ManufactureDate": dayjs().format("YYYY-MM-DD"),
"IncomDate": dayjs().format("YYYY-MM-DD"),
"CheckTime": dayjs().format("YYYY-MM-DD HH:mm:ss"),
"PutCenterTime": dayjs().format("YYYY-MM-DD HH:mm:ss"),
"PdCode": "GX000079",
"ProcessType": 1,
"IsQualify": undefined,
"Ecode": "NotImp",
"SgEntityId": "NotImp",
"DataUniqueIdentifier": "NotImp",
"Texture": undefined,
"Thickness": undefined,
"Size": undefined,
"Sended": 0
}
}
</script>
<style scoped></style>
Loading…
Cancel
Save