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