订单信息新增页

pull/1/head
qiuhongwu 9 months ago
parent 608203295e
commit 9fc030fcd1

@ -7,7 +7,10 @@
<img src="/src/assets/imgs/status/status16.png" v-if="formData.orderStatus == 16" alt="" /> <img src="/src/assets/imgs/status/status16.png" v-if="formData.orderStatus == 16" alt="" />
<img src="/src/assets/imgs/status/status3.png" v-else-if="formData.orderStatus == 3" alt="" /> <img src="/src/assets/imgs/status/status3.png" v-else-if="formData.orderStatus == 3" alt="" />
<img src="/src/assets/imgs/status/status8.png" v-else-if="formData.orderStatus == 8" alt="" /> <img src="/src/assets/imgs/status/status8.png" v-else-if="formData.orderStatus == 8" alt="" />
<div v-else-if="query.active != 'detailArchive' && formData.orderStatus == 32" class="shipments"> <div
v-else-if="query.active != 'detailArchive' && formData.orderStatus == 32"
class="shipments"
>
<div v-if="formData.deliveryStatus == 3"> <div v-if="formData.deliveryStatus == 3">
<span class="shipmentsfont">已发货</span> <span class="shipmentsfont">已发货</span>
</div> </div>
@ -27,9 +30,12 @@
>距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }} >距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
</span> </span>
</div> </div>
</div> </div>
<img v-else-if="formData.orderStatus == 32" src="/src/assets/imgs/status/status32.png" alt="" /> <img
v-else-if="formData.orderStatus == 32"
src="/src/assets/imgs/status/status32.png"
alt=""
/>
<img <img
src="/src/assets/imgs/status/status64.png" src="/src/assets/imgs/status/status64.png"
v-else-if="formData.orderStatus == 64" v-else-if="formData.orderStatus == 64"
@ -126,7 +132,7 @@
:disabled="detailDisabled" :disabled="detailDisabled"
v-model="formData.referenceTechnology" v-model="formData.referenceTechnology"
placeholder="请输入可引用的原有技术" placeholder="请输入可引用的原有技术"
:class="{'alter-class': fieldHasAlter('referenceTechnology')}" :class="{ 'alter-class': fieldHasAlter('referenceTechnology') }"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -142,7 +148,7 @@
placeholder="请输入检验要求" placeholder="请输入检验要求"
show-word-limit show-word-limit
maxlength="200" maxlength="200"
:class="{'alter-class': fieldHasAlter('referenceTechnology')}" :class="{ 'alter-class': fieldHasAlter('referenceTechnology') }"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -152,7 +158,11 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="单据日期" prop="orderTime"> <el-form-item label="单据日期" prop="orderTime">
{{ query.active != 'detailArchive' ? formatDate(formData.orderTime, 'YYYY-MM-DD') : formatDate(formData.snapshotOrderTime, 'YYYY-MM-DD')}} {{
query.active != 'detailArchive'
? formatDate(formData.orderTime, 'YYYY-MM-DD')
: formatDate(formData.snapshotOrderTime, 'YYYY-MM-DD')
}}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -199,7 +209,7 @@
<el-form-item label="项目结束日期" prop="projectEndTime"> <el-form-item label="项目结束日期" prop="projectEndTime">
<el-date-picker <el-date-picker
class="!w-250px" class="!w-250px"
:class="{'alter-class': fieldHasAlter('projectEndTime')}" :class="{ 'alter-class': fieldHasAlter('projectEndTime') }"
v-model="formData.projectEndTime" v-model="formData.projectEndTime"
type="date" type="date"
value-format="x" value-format="x"
@ -259,8 +269,10 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="是否有价格" prop="hasPrice"> <el-form-item label="是否有价格" prop="hasPrice">
<el-radio-group v-model="formData.hasPrice" :disabled="detailDisabled" <el-radio-group
:class="{'alter-class': fieldHasAlter('hasPrice')}" v-model="formData.hasPrice"
:disabled="detailDisabled"
:class="{ 'alter-class': fieldHasAlter('hasPrice') }"
> >
<el-radio <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
@ -276,8 +288,10 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="是否紧急" prop="isUrgency"> <el-form-item label="是否紧急" prop="isUrgency">
<el-radio-group v-model="formData.isUrgency" :disabled="detailDisabled" <el-radio-group
:class="{'alter-class': fieldHasAlter('isUrgency')}" v-model="formData.isUrgency"
:disabled="detailDisabled"
:class="{ 'alter-class': fieldHasAlter('isUrgency') }"
> >
<el-radio <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
@ -315,7 +329,7 @@
v-model="formData.remark" v-model="formData.remark"
show-word-limit show-word-limit
maxlength="200" maxlength="200"
:class="{'alter-class': fieldHasAlter('remark')}" :class="{ 'alter-class': fieldHasAlter('remark') }"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -365,14 +379,14 @@
:min="0" :min="0"
:precision="6" :precision="6"
style="width: 150px" style="width: 150px"
:class="{'alter-class': fieldHasAlter('price')}" :class="{ 'alter-class': fieldHasAlter('price') }"
/> />
<el-select <el-select
:disabled="detailDisabled" :disabled="detailDisabled"
v-model="formData.currency" v-model="formData.currency"
placeholder="请选择币种" placeholder="请选择币种"
style="width: 100px" style="width: 100px"
:class="{'alter-class': fieldHasAlter('currency')}" :class="{ 'alter-class': fieldHasAlter('currency') }"
> >
<el-option <el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_CURRENCY)" v-for="dict in getStrDictOptions(DICT_TYPE.HELI_CURRENCY)"
@ -390,7 +404,7 @@
<el-form-item label="性质" prop="property"> <el-form-item label="性质" prop="property">
<el-select <el-select
class="!w-250px" class="!w-250px"
:class="{'alter-class': fieldHasAlter('property')}" :class="{ 'alter-class': fieldHasAlter('property') }"
:disabled="detailDisabled" :disabled="detailDisabled"
v-model="formData.property" v-model="formData.property"
placeholder="请选择性质" placeholder="请选择性质"
@ -416,8 +430,10 @@
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="有无合同" prop="hasContract"> <el-form-item label="有无合同" prop="hasContract">
<el-radio-group :disabled="detailDisabled" v-model="formData.hasContract" <el-radio-group
:class="{'alter-class': fieldHasAlter('hasContract')}" :disabled="detailDisabled"
v-model="formData.hasContract"
:class="{ 'alter-class': fieldHasAlter('hasContract') }"
> >
<el-radio <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
@ -431,8 +447,10 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="有无技术协议" prop="hasTechnologyProtocol"> <el-form-item label="有无技术协议" prop="hasTechnologyProtocol">
<el-radio-group :disabled="detailDisabled" v-model="formData.hasTechnologyProtocol" <el-radio-group
:class="{'alter-class': fieldHasAlter('hasTechnologyProtocol')}" :disabled="detailDisabled"
v-model="formData.hasTechnologyProtocol"
:class="{ 'alter-class': fieldHasAlter('hasTechnologyProtocol') }"
> >
<el-radio <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
@ -446,8 +464,10 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="有无图纸/数模" prop="hasBlueprint"> <el-form-item label="有无图纸/数模" prop="hasBlueprint">
<el-radio-group :disabled="detailDisabled" v-model="formData.hasBlueprint" <el-radio-group
:class="{'alter-class': fieldHasAlter('hasBlueprint')}" :disabled="detailDisabled"
v-model="formData.hasBlueprint"
:class="{ 'alter-class': fieldHasAlter('hasBlueprint') }"
> >
<el-radio <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
@ -467,7 +487,7 @@
:disabled=" :disabled="
detailDisabled || (formData.hasBlueprint == 0 && (formData.blueprintRemark = '')) detailDisabled || (formData.hasBlueprint == 0 && (formData.blueprintRemark = ''))
" "
:class="{'alter-class': fieldHasAlter('blueprintRemark')}" :class="{ 'alter-class': fieldHasAlter('blueprintRemark') }"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -537,7 +557,7 @@
placeholder="请输入数量" placeholder="请输入数量"
:min="0" :min="0"
:precision="0" :precision="0"
:class="{'alter-class': fieldHasAlterInRow('amount', row)}" :class="{ 'alter-class': fieldHasAlterInRow('amount', row) }"
/> />
</el-form-item> </el-form-item>
</template> </template>
@ -553,7 +573,7 @@
:disabled="detailDisabled" :disabled="detailDisabled"
v-model="row.unit" v-model="row.unit"
placeholder="请选择单位" placeholder="请选择单位"
:class="{'alter-class': fieldHasAlterInRow('unit', row)}" :class="{ 'alter-class': fieldHasAlterInRow('unit', row) }"
> >
<el-option <el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_PROJECT_ORDER_SUB_UNIT)" v-for="dict in getStrDictOptions(DICT_TYPE.HELI_PROJECT_ORDER_SUB_UNIT)"
@ -583,7 +603,7 @@
filterable filterable
:loading="compositionSelectLoading" :loading="compositionSelectLoading"
:disabled="detailDisabled" :disabled="detailDisabled"
:class="{'alter-class': fieldHasAlterInRow('compositionId', row)}" :class="{ 'alter-class': fieldHasAlterInRow('compositionId', row) }"
> >
<el-option <el-option
v-for="item in compositionSelectList" v-for="item in compositionSelectList"
@ -606,7 +626,7 @@
:disabled="detailDisabled" :disabled="detailDisabled"
v-model="row.remark" v-model="row.remark"
placeholder="请输入备注" placeholder="请输入备注"
:class="{'alter-class': fieldHasAlterInRow('remark', row)}" :class="{ 'alter-class': fieldHasAlterInRow('remark', row) }"
/> />
</el-form-item> </el-form-item>
</template> </template>
@ -632,17 +652,14 @@
</el-card> </el-card>
<el-card class="hl-card-info"> <el-card class="hl-card-info">
<template #header> <template #header>
<div class="hl-card-info-icona"></div><span class="hl-card-info-text" <div class="hl-card-info-icona"></div><span class="hl-card-info-text">附件信息</span>
>附件信息</span>
</template> </template>
<el-row> <el-row>
<el-col> <el-col>
<el-card class="hl-incard" <el-card class="hl-incard" :class="{ 'alter-class': fieldHasAlter('attachments') }">
:class="{'alter-class': fieldHasAlter('attachments')}"
>
<el-col v-if="'update,create,alter'.indexOf(query.active) > -1"> <el-col v-if="'update,create,alter'.indexOf(query.active) > -1">
<el-upload <el-upload
v-if="formData.hasContract == 1"
ref="contractUploadRef" ref="contractUploadRef"
:file-list="contractUploadFiles" :file-list="contractUploadFiles"
multiple multiple
@ -662,6 +679,7 @@
<el-button type="primary"><Icon icon="ep:upload-filled" />上传合同</el-button> <el-button type="primary"><Icon icon="ep:upload-filled" />上传合同</el-button>
</el-upload> </el-upload>
<el-upload <el-upload
v-if="formData.hasTechnologyProtocol == 1"
ref="protocolUploadRef" ref="protocolUploadRef"
multiple multiple
:limit="10" :limit="10"
@ -1005,13 +1023,14 @@ const queryData = async (type: string, id?: number) => {
if (id) { if (id) {
formData.value = await ProjectOrderApi.getProjectOrder(id) formData.value = await ProjectOrderApi.getProjectOrder(id)
// //
formData.value.projectOrderSubs = await ProjectOrderApi.getProjectOrderSubListByProjectOrderId(id) formData.value.projectOrderSubs =
await ProjectOrderApi.getProjectOrderSubListByProjectOrderId(id)
// //
let businessType = 'PROJECT_ORDER'; let businessType = 'PROJECT_ORDER'
if(type == 'detailArchive'){ if (type == 'detailArchive') {
businessType = 'PROJECT_ORDER_SNAPSHOT' businessType = 'PROJECT_ORDER_SNAPSHOT'
}else{ } else {
// //
let logParams = { let logParams = {
pageNo: 1, pageNo: 1,
@ -1094,7 +1113,7 @@ const submitForm = async (active) => {
} }
// //
if (active == 'ALTER') { if (active == 'ALTER') {
formData.value.hasAlter = 1; formData.value.hasAlter = 1
} }
const data = formData.value as unknown as ProjectOrderApi.ProjectOrderVO const data = formData.value as unknown as ProjectOrderApi.ProjectOrderVO
@ -1131,22 +1150,22 @@ const submitForm = async (active) => {
} }
// //
if('SUBMIT_AUDIT,ALTER'.indexOf(active) > -1){ if ('SUBMIT_AUDIT,ALTER'.indexOf(active) > -1) {
if(formData.value.hasContract){ if (formData.value.hasContract) {
const hasContractFile = formData.value.attachments.some((file) => { const hasContractFile = formData.value.attachments.some((file) => {
return file.businessFileType == 'CONTRACT'; return file.businessFileType == 'CONTRACT'
}) })
if(!hasContractFile){ if (!hasContractFile) {
message.error("请上传合同"); message.error('请上传合同')
return return
} }
} }
if(formData.value.hasTechnologyProtocol){ if (formData.value.hasTechnologyProtocol) {
const hasProtocolFile = formData.value.attachments.some((file) => { const hasProtocolFile = formData.value.attachments.some((file) => {
return file.businessFileType == 'TECHNOLOGY_PROTOCOL'; return file.businessFileType == 'TECHNOLOGY_PROTOCOL'
}) })
if(!hasProtocolFile){ if (!hasProtocolFile) {
message.error("请上传技术协议"); message.error('请上传技术协议')
return return
} }
} }
@ -1236,7 +1255,7 @@ const refreshAttachments = (files, type) => {
} }
// //
formData.value.attachments.sort((v1, v2) => { formData.value.attachments.sort((v1, v2) => {
return (v1.createTime - v2.createTime) > 0 return v1.createTime - v2.createTime > 0
}) })
} }
@ -1323,7 +1342,7 @@ onMounted(() => {
if (query.active == 'alter') { if (query.active == 'alter') {
alterDisabled.value = true alterDisabled.value = true
} }
if('detail,audit,approve,terminate,detailArchive'.indexOf(query.active) > -1){ if ('detail,audit,approve,terminate,detailArchive'.indexOf(query.active) > -1) {
detailDisabled.value = true detailDisabled.value = true
} }
queryData(query.active, query.id) queryData(query.active, query.id)

Loading…
Cancel
Save