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

pull/2/head
zengchenxi 9 months ago
commit 0179496596

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@ -105,10 +105,10 @@
}
.el-card__body {
padding: 15px 0px;
padding: 10px 0px;
.el-row {
margin: 10px;
margin: 5px 0;
}
}
}
@ -204,43 +204,43 @@
//
.ialteration {
border: 1px solid #F39800;
background-color: #F7F3ED;
color: #F39800;
border: 1px solid #f39800;
background-color: #f7f3ed;
color: #f39800;
}
//
.isubmit {
border: 1px solid #356899;
background-color: #ECF0F4;
background-color: #ecf0f4;
color: #356899;
}
//
.icancellation {
border: 1px solid #95969D;
background-color: #EBEBEB;
color: #95969D;
border: 1px solid #95969d;
background-color: #ebebeb;
color: #95969d;
}
//
.ibreakup {
border: 1px solid #0D0D26;
background-color: #E8E8E8;
color: #0D0D26;
border: 1px solid #0d0d26;
background-color: #e8e8e8;
color: #0d0d26;
}
//
.allshipments{
color: #3AC33D;
background-color:transparent;
.allshipments {
color: #3ac33d;
background-color: transparent;
border: none;
}
//
.noshipments{
color: #4589FF;
background-color:transparent;
.noshipments {
color: #4589ff;
background-color: transparent;
border: none;
}
.partshipments{
color: #19A998;
background-color:transparent;
.partshipments {
color: #19a998;
background-color: transparent;
border: none;
}
}

@ -50,81 +50,164 @@
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">基础信息</span>
</template>
<el-row>
<el-col :span="6">
<el-row>
<el-col :span="24">
<el-form-item label="项目编号" prop="code">
<el-input
v-if="query.active != 'detailArchive'"
disabled
v-model="formData.code"
class="!w-250px"
placeholder="系统自动生成"
/>
<el-input
v-else
disabled
v-model="formData.snapshotCode"
class="!w-250px"
placeholder="系统自动生成"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="提出部门" prop="businessDeptId">
<el-tree-select
class="!w-250px"
v-model="formData.businessDeptId"
:data="deptList"
:props="defaultProps"
check-strictly
node-key="id"
clearable
placeholder="请选择提出部门"
:disabled="alterDisabled || detailDisabled"
/>
</el-form-item>
</el-col>
</el-row>
<el-col :span="12">
<el-row>
<el-col :span="24">
<el-form-item label="所属业务线" prop="businessLine">
<el-select
class="!w-250px"
v-model="formData.businessLine"
placeholder="请选择所属业务线"
:disabled="alterDisabled || detailDisabled"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-col :span="12">
<el-row>
<el-col :span="24">
<el-form-item label="项目编号" prop="code">
<el-input
v-if="query.active != 'detailArchive'"
disabled
v-model="formData.code"
class="!w-250px"
placeholder="系统自动生成"
/>
<el-input
v-else
disabled
v-model="formData.snapshotCode"
class="!w-250px"
placeholder="系统自动生成"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="提出部门" prop="businessDeptId">
<el-tree-select
class="!w-250px"
v-model="formData.businessDeptId"
:data="deptList"
:props="defaultProps"
check-strictly
node-key="id"
clearable
placeholder="请选择提出部门"
:disabled="alterDisabled || detailDisabled"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="模具名称" prop="mouldName">
<el-input
class="!w-250px"
:disabled="alterDisabled || detailDisabled"
v-model="formData.mouldName"
placeholder="请输入模具名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="项目开始日期" prop="projectStartTime">
<el-date-picker
class="!w-250px"
v-model="formData.projectStartTime"
type="date"
value-format="x"
placeholder="选择项目开始日期"
:disabled="alterDisabled || detailDisabled"
/>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="项目开始日期" prop="projectStartTime">
<el-date-picker
v-model="formData.projectStartTime"
type="date"
value-format="x"
placeholder="选择项目开始日期"
:disabled="alterDisabled || detailDisabled"
/>
</el-form-item>
<el-col :span="12">
<el-row>
<el-col :span="24">
<el-form-item label="单据日期" prop="orderTime">
{{
query.active != 'detailArchive'
? formatDate(formData.orderTime, 'YYYY-MM-DD')
: formatDate(formData.snapshotOrderTime, 'YYYY-MM-DD')
}}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="业务员" prop="businessMan">
<el-select
class="!w-250px"
v-model="formData.businessMan"
placeholder="请输入负责人"
:remote-method="remoteUserSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="userSelectLoading"
:disabled="alterDisabled || detailDisabled"
>
<el-option
v-for="item in userSelectList"
:key="item.id"
:label="item.username + ' ' + item.nickname"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="所属业务线" prop="businessLine">
<el-select
class="!w-250px"
v-model="formData.businessLine"
placeholder="请选择所属业务线"
:disabled="alterDisabled || detailDisabled"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="项目结束日期" prop="projectEndTime">
<el-date-picker
class="!w-250px"
:class="{ 'alter-class': fieldHasAlter('projectEndTime') }"
v-model="formData.projectEndTime"
type="date"
value-format="x"
placeholder="选择项目结束日期"
:disabled="detailDisabled"
/>
<span
style="position: absolute; left: 0; top: 30px"
v-if="formData.projectStartTime && formData.projectEndTime"
>{{
' 共计' +
betweenDay(
new Date(formData.projectStartTime),
new Date(formData.projectEndTime)
) +
'天'
}}</span
>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="可引用的原有技术" prop="referenceTechnology">
<el-input
class="!w-250px"
class="!w-703px"
:disabled="detailDisabled"
v-model="formData.referenceTechnology"
placeholder="请输入可引用的原有技术"
@ -134,38 +217,35 @@
</el-col>
</el-row>
</el-col>
<el-col :span="6">
<el-row>
<el-col :span="24">
<el-form-item label="单据日期" prop="orderTime">
{{
query.active != 'detailArchive'
? formatDate(formData.orderTime, 'YYYY-MM-DD')
: formatDate(formData.snapshotOrderTime, 'YYYY-MM-DD')
}}
<el-form-item label="单据状态" prop="orderStatus">
{{ getDictLabel(DICT_TYPE.HELI_PROJECT_ORDER_STATUS, formData.orderStatus) }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="业务员" prop="businessMan">
<el-form-item label="客户名称" prop="customerId">
<el-select
class="!w-250px"
v-model="formData.businessMan"
placeholder="请输入负责人"
:remote-method="remoteUserSearch"
v-model="formData.customerId"
placeholder="请输入客户名称"
:remote-method="remoteCustomerSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="userSelectLoading"
:loading="customerSelectLoading"
:disabled="alterDisabled || detailDisabled"
>
<el-option
v-for="item in userSelectList"
v-for="item in customerSelectList"
:key="item.id"
:label="item.username + ' ' + item.nickname"
:label="item.name"
:value="item.id"
/>
</el-select>
@ -174,73 +254,19 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="模具图号" prop="blueprintNo">
<el-input
class="!w-250px"
:disabled="alterDisabled || detailDisabled"
v-model="formData.blueprintNo"
placeholder="请输入模具图号"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="项目结束日期" prop="projectEndTime">
<el-date-picker
class="!w-250px"
:class="{ 'alter-class': fieldHasAlter('projectEndTime') }"
v-model="formData.projectEndTime"
type="date"
value-format="x"
placeholder="选择项目结束日期"
:disabled="detailDisabled"
/>
<span
style="position: absolute;left:0;top:30px"
v-if="formData.projectStartTime && formData.projectEndTime"
>{{
' 共计' +
betweenDay(
new Date(formData.projectStartTime),
new Date(formData.projectEndTime)
) +
'天'
}}</span
>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="6">
<el-row>
<el-col :span="24">
<el-form-item label="单据状态" prop="orderStatus">
{{ getDictLabel(DICT_TYPE.HELI_PROJECT_ORDER_STATUS, formData.orderStatus) }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="客户名称" prop="customerId">
<el-form-item label="性质" prop="property">
<el-select
class="!w-250px"
v-model="formData.customerId"
placeholder="请输入客户名称"
:remote-method="remoteCustomerSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="customerSelectLoading"
:disabled="alterDisabled || detailDisabled"
:class="{ 'alter-class': fieldHasAlter('property') }"
:disabled="detailDisabled"
v-model="formData.property"
placeholder="请选择性质"
>
<el-option
v-for="item in customerSelectList"
:key="item.id"
:label="item.name"
:value="item.id"
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
@ -284,21 +310,6 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="是否已变更" prop="hasAlter">
<el-radio-group v-model="formData.hasAlter" disabled>
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="6">
<el-row>
@ -322,12 +333,12 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="模具名称" prop="mouldName">
<el-form-item label="模具图号" prop="blueprintNo">
<el-input
class="!w-250px"
:disabled="alterDisabled || detailDisabled"
v-model="formData.mouldName"
placeholder="请输入模具名称"
v-model="formData.blueprintNo"
placeholder="请输入模具图号"
/>
</el-form-item>
</el-col>
@ -366,31 +377,26 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="性质" prop="property">
<el-select
class="!w-250px"
:class="{ 'alter-class': fieldHasAlter('property') }"
:disabled="detailDisabled"
v-model="formData.property"
placeholder="请选择性质"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)"
<el-form-item label="是否已变更" prop="hasAlter">
<el-radio-group v-model="formData.hasAlter" disabled>
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row style="margin-top:-10px;margin-left:15px">
<el-row >
<el-col :span="12">
<el-form-item label="检验要求" prop="qualityRequirement">
<el-input
class="!w-700px"
class="!w-703px"
:disabled="detailDisabled"
type="textarea"
v-model="formData.qualityRequirement"
@ -404,7 +410,7 @@
<el-col :span="12">
<el-form-item label="备注" prop="remark" :disabled="detailDisabled">
<el-input
class="!w-700px"
class="!w-703px"
:disabled="detailDisabled"
type="textarea"
v-model="formData.remark"

@ -1,9 +1,14 @@
<template>
<!-- 入库 -->
<el-card class="hl-card">
<el-card class="hl-card" style="position: relative">
<template #header>
<span v-text="dialogTitle"></span>
</template>
<div class="abstatus">
<img src="/src/assets/imgs/status/status2.png" v-if="formData.status == 2" alt="" />
<img src="/src/assets/imgs/status/statuszf.png" v-else-if="formData.status == 3" alt="" />
<span v-else></span>
</div>
<el-form
ref="formRef"
:model="formData"
@ -133,7 +138,7 @@
v-loading="subFormLoading"
label-width="0"
>
<el-table :data="formData.matItemDOList" class="hl-table" >
<el-table :data="formData.matItemDOList" class="hl-table">
<el-table-column prop="cid" label="序号" min-width="80" align="center" fixed />
<el-table-column prop="matId" min-width="140" align="center">
<template #header> <span class="hl-table_header">*</span> 物料编码 </template>
@ -275,7 +280,7 @@
<el-input v-model="scope.row.projectNo" />
</template>
</el-table-column>
<el-table-column prop="description" label="备注" align="center" min-width="180" >
<el-table-column prop="description" label="备注" align="center" min-width="180">
<template #default="scope">
<el-input v-model="scope.row.description" />
</template>
@ -517,10 +522,9 @@ const subFormRules = reactive({
storageOkQty: [{ required: true, message: '入库数量不能为空', trigger: 'blur' }]
})
const handleStatus = async (num) => {
//
await formRef.value.validate()
if(formData.value.matItemDOList.length === 0){
if (formData.value.matItemDOList.length === 0) {
message.alertWarning('请添加物料信息!')
return
}
@ -576,10 +580,9 @@ const handleStatus = async (num) => {
isShowBtnOther.value = false
isShowBtnDelete.value = false
}
query.type= 'update'
query.type = 'update'
query.id = formData.value.id
reload()
}
const userList = ref<UserApi.UserVO[]>([]) //
@ -642,7 +645,7 @@ var commonResult = ''
/** 提交表单 */
const emit = defineEmits(['success']) // success
const saveFormData = async () =>{
const saveFormData = async () => {
//
formLoading.value = true
try {
@ -671,7 +674,6 @@ const saveFormData = async () =>{
}
formData.value = await StorageApi.getStorage(storageid.value)
message.success(t(commonResult))
} finally {
formLoading.value = false
}
@ -679,7 +681,7 @@ const saveFormData = async () =>{
const submitForm = async () => {
//
await formRef.value.validate()
if(formData.value.matItemDOList.length === 0){
if (formData.value.matItemDOList.length === 0) {
message.alertWarning('请添加物料信息!')
return
}
@ -693,11 +695,11 @@ const submitForm = async () => {
await saveFormData()
//
query.type= 'update'
query.type = 'update'
query.id = storageid.value
formData.value.id = storageid.value
//
reload();
reload()
}
var matCount = 1
@ -866,7 +868,6 @@ onMounted(async () => {
isShowBtnDelete.value = false
}
//
const queryParamsRg = reactive({
pageNo: 1,

@ -1,9 +1,14 @@
<template>
<!-- 出库 -->
<el-card class="hl-card">
<el-card class="hl-card" style="position: relative">
<template #header>
<span v-text="dialogTitle"></span>
</template>
<div class="abstatus">
<img src="/src/assets/imgs/status/status2.png" v-if="formData.status == 2" alt="" />
<img src="/src/assets/imgs/status/statuszf.png" v-else-if="formData.status == 3" alt="" />
<span v-else></span>
</div>
<el-form
ref="formRef"
:model="formData"
@ -177,7 +182,12 @@
/>
</template>
</el-table-column>
<el-table-column prop="matSpec" label="规格/型号" min-width="120" align="center" />
<el-table-column
prop="matSpec"
label="规格/型号"
min-width="120"
align="center"
/>
<el-table-column prop="matUnit" label="系统单位" min-width="120" align="center">
<template #default="scope">
@ -214,7 +224,7 @@
</template>
</el-table-column>
<el-table-column prop="pnId" min-width="140" align="center">
<template #header> <span class="hl-table_header">*</span>出库库位 </template>
<template #header> <span class="hl-table_header">*</span>出库库位 </template>
<template #default="scope">
<el-form-item
:prop="`${scope.$index}.pnId`"
@ -489,10 +499,9 @@ const subFormRules = reactive({
storageOkQty: [{ required: true, message: '出库数量不能为空', trigger: 'blur' }]
})
const handleStatus = async (num) => {
//
await formRef.value.validate()
if(formData.value.matItemDOList.length === 0){
if (formData.value.matItemDOList.length === 0) {
message.alertWarning('请添加物料信息!')
return
}
@ -547,7 +556,7 @@ const handleStatus = async (num) => {
isShowBtnDelete.value = false
}
query.id = storageid.value
query.type= 'update'
query.type = 'update'
reload()
}
const userList = ref<UserApi.UserVO[]>([]) //
@ -611,7 +620,7 @@ var commonResult = ''
/** 提交表单 */
const emit = defineEmits(['success']) // success
const saveFormData = async () =>{
const saveFormData = async () => {
//
const matCurrentData = await StorageMatApi.getStorageMatList()
var hasRestNum = true
@ -660,9 +669,6 @@ const saveFormData = async () =>{
}
formData.value = await StorageApi.getStorage(storageid.value)
message.success(t(commonResult))
} finally {
formLoading.value = false
}
@ -670,7 +676,7 @@ const saveFormData = async () =>{
const submitForm = async () => {
//
await formRef.value.validate()
if(formData.value.matItemDOList.length === 0){
if (formData.value.matItemDOList.length === 0) {
message.alertWarning('请添加物料信息!')
return
}
@ -684,7 +690,7 @@ const submitForm = async () => {
await saveFormData()
//
query.id = storageid.value
query.type= 'update'
query.type = 'update'
reload()
}
@ -712,7 +718,6 @@ const onAddItem = () => {
}
matCount = matCount + 1
formData.value.matItemDOList.push(newData)
} else {
message.alertWarning('请选择出库仓库')
@ -748,11 +753,14 @@ const handleWh = async (wid) => {
let matParams = {
pageNo: 1,
pageSize: 99,
status: "1"
status: '1'
}
const dataMat = await MaterialApi.getMaterialPage(matParams)
matList.value = []
matList.value = dataMat.list.filter((item) => matLastRemoteData.find((fish) => fish.matId === item.id && fish.whId == wid) !== undefined)
matList.value = dataMat.list.filter(
(item) =>
matLastRemoteData.find((fish) => fish.matId === item.id && fish.whId == wid) !== undefined
)
formData.value.matItemDOList = []
// formData.value.matItemDOList.forEach(item => {
@ -792,7 +800,12 @@ const remoteMatCodeSearch = async (name) => {
const dataMat = await MaterialApi.getMaterialPage(matParams)
matList.value = []
matList.value = dataMat.list.filter((item) => matLastRemoteData.find((fish) => fish.matId === item.id && fish.whId == formData.value.whId) !== undefined)
matList.value = dataMat.list.filter(
(item) =>
matLastRemoteData.find(
(fish) => fish.matId === item.id && fish.whId == formData.value.whId
) !== undefined
)
matSelectLoading.value = false
}
@ -840,7 +853,7 @@ const handleMatCode = async (scope, matid) => {
const isShowBtnGroup = ref(true)
const isShowBtnCancel = ref(false)
const isShowBtnOther = ref(false)
const isShowBtnDelete = ref(true)
const isShowBtnDelete = ref(true)
const btnWhClickable = ref(false)
const matLastData = ref([])
/** 初始化 **/
@ -862,8 +875,6 @@ onMounted(async () => {
dialogTitle.value = t('action.' + query.type)
dialogTitle.value = query.type === 'review' ? '查看' : dialogTitle.value
//-------------------
const data = await WarehouseApi.getWarehouseSimpList()
warehouseList.value = data

Loading…
Cancel
Save