Merge remote-tracking branch 'origin/dev' into dev

dev
siontion 5 months ago
commit ae896592e1

@ -0,0 +1,198 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible" width="80%">
<ContentWrap class="borderxx">
<el-form class="-mb-15px" :model="queryReqVo" :inline="true" label-width="108px">
<el-form-item label=" 物料编码:">
<el-input v-model="queryReqVo.code" placeholder="物料名称/编码" class="!w-240px" :disabled="!chkboxEnable" @keyup="handleQuery"/>
</el-form-item>
<el-form-item label=" 物料名称:">
<el-input v-model="queryReqVo.name" placeholder="物料名称/编码" class="!w-240px" :disabled="!chkboxEnable" @keyup="handleQuery"/>
</el-form-item>
<el-form-item label="规格/型号" @keyup="handleQuery">
<el-input v-model="queryReqVo.spec" placeholder="规格/型号" class="!w-240px" :disabled="!chkboxEnable" />
</el-form-item>
<el-form-item style="margin-left:20px">
<el-button @click="handleQuery" type="primary" :disabled="!chkboxEnable">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button><el-button @click="resetQuery" :disabled="!chkboxEnable">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<el-card class="hl-table">
<el-table ref="multipleTable" :data="list" v-loading="formLoading" class="hl-table" @selection-change="handleSelectionChange" :row-key="getRowKeys" min-width="1800" @row-click="clickRow" :style="{ height: list && list.length > 9 ? '520px' : ''}">
<el-table-column type="selection" width="55" :reserve-selection="true" :selectable="row=>chkboxEnable" />
<el-table-column label="序号" type="index" min-width="70" fixed align="center" />
<el-table-column prop="code" label="物料编码" min-width="120" fixed align="center" />
<el-table-column prop="name" label="物料名称" min-width="260" align="center" />
<el-table-column label="物料类型" align="center" prop="materialType" min-width="140">
<template #default="scope">
<dict-tag :type="DICT_TYPE.BIZ_MATERIAL_TYPE" :value="scope.row.materialType" />
</template>
</el-table-column>
<el-table-column prop="shortName" label="物料简称" min-width="160" align="center" />
<el-table-column prop="spec" label="规格/型号" min-width="120" align="center" />
<el-table-column prop="brand" label="品牌" min-width="120" align="center" />
<el-table-column prop="stockQuantity" label="库存数量" min-width="120" align="center" />
<el-table-column prop="unit" label="单位" min-width="120" align="center">
<template #default="scope">
<dict-tag :type="DICT_TYPE.BIZ_MATERIAL_UNIT" :value="scope.row.unit" />
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination :total="total" v-model:page="queryReqVo.pageNo" v-model:limit="queryReqVo.pageSize" @pagination="getList()" />
</el-card>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import * as MaterialApi from '@/api/biz/material'
import { ElTable } from 'element-plus'
//:selectable="row=>row.disabled || chkboxEnable"
const chkboxEnable = ref(true)
const queryEnable = ref(true)
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const list = ref([]) //
const total = ref(0) //
const multipleTable = ref<InstanceType<typeof ElTable>>()
const multipleSelection = ref([])
const handleSelectionChange = (val: []) => {
multipleSelection.value = val
}
const clickRow = (row: any) => {
if (chkboxEnable.value) {
if (row) {
multipleTable.value!.toggleRowSelection(row, undefined)
} else {
multipleTable.value!.clearSelection()
}
}
}
//key,
const getRowKeys = (row) => {
return row.matId
}
const queryReqVo: any = reactive({
pageNo: 1,
pageSize: 10,
code: undefined,
name: undefined,
brand: undefined,
spec: undefined,
sizeInfo: undefined,
traceType: undefined,
dftStoreWh: undefined,
dftStoreRg: undefined,
dftStorePn: undefined,
dftRoute: undefined,
description: undefined,
createTime: [],
status: 1,
shortName: undefined,
materialType: undefined,
compositionId: undefined,
outputInputTaxRate: undefined,
mainSupplierId: undefined,
mainFrom: undefined,
unit: undefined,
invSafe: undefined,
invUpperLimit: undefined,
invLowerLimit: undefined,
barcode: undefined,
virtualPart: 'N',
logo: undefined,
returnStock:true
})
/** 搜索按钮操作 */
const handleQuery = async () => {
queryReqVo.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryReqVo.matCode = ''
queryReqVo.matSpec = ''
handleQuery()
}
const getList = async () => {
formLoading.value = true
var data
try {
data = await MaterialApi.getMaterialPage(queryReqVo)
data.list.forEach((mat) => {
mat.storageOkQty = mat.matRest
mat.requireAmount = mat.matRest
})
list.value = data.list
total.value = data.total
} finally {
formLoading.value = false
}
}
const formType = ref()
/** 打开弹窗 */
const open = async (whId: number, type: string) => {
multipleSelection.value = []
dialogVisible.value = true
dialogTitle.value = '物料列表'
formType.value = type
//
queryReqVo.whId = whId
queryReqVo.matCode = ''
queryReqVo.matSpec = ''
getList()
chkboxEnable.value = true
list.value.forEach((row) => {
setTimeout(() => {
multipleTable.value.toggleRowSelection(row, !chkboxEnable.value) //
}, 0)
})
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
formLoading.value = true
try {
dialogVisible.value = false
multipleSelection.value.forEach((item) => {
item.matId = item.id
// item.matRest = item.storageOkQty
item.storageOkQty = ''
item.whId = item.whId ?? ''
item.rgId = item.rgId ?? ''
item.pnId = item.pnId ?? ''
item.projectSubCode = item.code ?? ''
item.projectSubName= item.name ?? ''
})
//
emit('success', multipleSelection.value)
} finally {
formLoading.value = false
}
}
</script>

@ -60,7 +60,7 @@
<el-col>
<el-card class="hl-incard">
<el-col>
<el-button class="hl-addbutton" type="primary" size="large" @click="openMatForm"
<el-button class="hl-addbutton" type="primary" size="large" @click="AddMatForm"
>新增</el-button
>
</el-col>
@ -73,7 +73,17 @@
>
<el-table :data="formData.subList" class="hl-table">
<el-table-column type="index" label="序号" align="center" min-width="60" fixed />
<el-table-column prop="matName" label="工序名称" min-width="120" align="center" />
<el-table-column prop="matId" label="工序名称" min-width="120" align="center">
<template #default="scope">
<el-form-item :prop="`${scope.$index}.matId`" class="mb-0px!">
<ProcedureSelect
v-model="scope.row.matId"
@update:newValue="handleSelectProcedure(scope.$index, $event)"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="matCode" label="工序编码" min-width="120" align="center" />
<el-table-column
label="是否需要报工"
@ -101,20 +111,17 @@
<el-table-column label="所属车间" align="center" prop="wname" min-width="120" />
<el-table-column prop="" width="120" label="顺序号">
<template #default="scope">
<el-input v-model="scope.row.proportionNum" :disabled="!scope.row.editable" />
<el-input v-model="scope.row.proportionNum" />
</template>
</el-table-column>
<el-table-column label="生产设备" min-width="180" align="center">
<template #default="{ row, $index }">
<el-form-item
:prop="`${$index}.deviceModel`"
:rules="subFormRules.deviceModel"
class="mb-0px!"
>
<!-- :rules="subFormRules.deviceModel" -->
<el-form-item :prop="`${$index}.deviceModel`" class="mb-0px!">
<EquipmentSelect
v-model="row.deviceModel"
@update:newValue="handleSelectedequip($index, $event)"
:disabled="detailDisabled || row.procedureStatus != 0"
:disabled="detailDisabled"
/>
</el-form-item>
</template>
@ -147,7 +154,7 @@
<el-col>
<el-card class="hl-incard">
<el-col>
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem"
<el-button class="hl-addbutton" type="primary" size="large" @click="openMatForm"
>新增</el-button
>
</el-col>
@ -160,29 +167,29 @@
>
<el-table :data="formData.matItemDOList" class="hl-table">
<el-table-column type="index" label="序号" align="center" min-width="60" fixed />
<el-table-column prop="matCode" label="物料编码" min-width="120" align="center" />
<el-table-column prop="matName" label="物料名称" min-width="120" align="center" />
<el-table-column prop="matType" label="物料类型" min-width="125" align="center">
<el-table-column prop="code" label="物料编码" min-width="120" align="center" />
<el-table-column prop="name" label="物料名称" min-width="120" align="center" />
<el-table-column prop="materialType" label="物料类型" min-width="125" align="center">
<template #default="scope">
<dict-tag
:type="DICT_TYPE.BIZ_MATERIAL_TYPE"
:value="scope.row.matType"
v-if="scope.row.matType ? true : false"
:value="scope.row.materialType"
v-if="scope.row.materialType ? true : false"
/>
</template>
</el-table-column>
<el-table-column
prop="matSpec"
prop="spec"
label="规格/型号"
min-width="120"
align="center"
/>
<el-table-column prop="matUnit" label="系统单位" min-width="100" align="center">
<el-table-column prop="unit" label="系统单位" min-width="100" align="center">
<template #default="scope">
<dict-tag
:type="DICT_TYPE.BIZ_MATERIAL_UNIT"
:value="scope.row.matUnit"
v-if="scope.row.matUnit ? true : false"
:value="scope.row.unit"
v-if="scope.row.unit ? true : false"
/>
</template>
</el-table-column>
@ -266,14 +273,18 @@
</div>
</el-form>
</el-card>
<Materials ref="matOpenFormRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions,getIntDictOptions } from '@/utils/dict'
import { DICT_TYPE, getStrDictOptions, getIntDictOptions, getDictLabel } from '@/utils/dict'
import { useUserStore } from '@/store/modules/user'
import UserSelect from '@/views/biz/hlvuestyle/userSelect.vue'
import ProcedureSelect from '@/views/biz/hlvuestyle/procedureSelect.vue'
import EquipmentSelect from '@/views/biz/hlvuestyle/equipmentSelect.vue'
import * as EquipMaintenanceRecordApi from '@/api/biz/equipmaintenancerecord'
import { useCommonStore } from '@/store/modules/common'
import Materials from './materials.vue'
const { t } = useI18n() //
const message = useMessage() //
@ -309,10 +320,39 @@ const formRules = reactive({
status: [{ required: true, message: '状态,1表示正常2表示禁用不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
//
const AddMatForm = () => {
const newData = {
//
matId: '',
matCode: '',
deviceModel: '',
wname: ''
}
formData.value.subList.push(newData)
}
//
const matOpenFormRef =ref()
const openMatForm = () => {
matOpenFormRef.value.open()
}
const getList = async (arrMat) => {
arrMat.forEach((row) => {
formData.value.matItemDOList.push(row)
})
}
//
const handleDeleteMat = (index) => {
formData.value.subList.splice(index, 1)
}
onMounted(() => {
console.log('active', active.value, activeId.value)
initData()
})
const detailDisabled = ref(false)
const updateDisabled = ref(false)
const initData = async () => {
@ -383,6 +423,17 @@ const resetForm = () => {
}
}
const handleSelectedequip = (index, newValue: any) => {}
const handleSelectedequip = (index, newValue: any) => {
formData.value.subList[index].deviceModel = newValue?.id
}
const handleSelectProcedure = (index, newValue: any) => {
console.log(newValue)
formData.value.subList[index].matId = newValue?.id
formData.value.subList[index].matCode = newValue?.code
formData.value.subList[index].isReport = newValue?.isReport
formData.value.subList[index].salaryType = newValue?.salaryType
formData.value.subList[index].wid = newValue?.wid
}
</script>
<style scoped lang="scss"></style>

Loading…
Cancel
Save