【功能优化】完善项目订单归档、变更交互

pull/1/head
zengchenxi 9 months ago
parent 7c104a124b
commit 5c41ae14a8

@ -11,6 +11,7 @@ import lombok.Getter;
public enum ProjectOrderStatusEnum {
REPULSE(3, "已打回"),
SAVE(4, "已保存"),
ALTER(8, "发起变更"),
SUBMIT_AUDIT(8, "已送审"),
AUDIT(16, "已审核"),
APPROVE(32, "已启动"),

@ -301,6 +301,7 @@ export default {
approve: 'Approve',
terminate: 'Terminate',
detailArchive: 'Detail',
alter: 'Alter',
typeCreate: 'Dict Type Create',
typeUpdate: 'Dict Type Eidt',
dataCreate: 'Dict Data Create',

@ -302,6 +302,7 @@ export default {
approve: '批准',
terminate: '终止',
detailArchive: '详情',
alter: '变更',
typeCreate: '字典类型新增',
typeUpdate: '字典类型编辑',
dataCreate: '字典数据新增',

@ -212,6 +212,7 @@ defineOptions({ name: 'ProjectOrderArchive' })
const message = useMessage() //
const { t } = useI18n() //
const router = useRouter();
const { query } = useRoute()
const loading = ref(true) //
const list = ref([]) //
@ -248,7 +249,7 @@ const queryParams = reactive({
businessManName: undefined,
isSnapshot: 1,
snapshotId: undefined,
snapshotCode: undefined,
snapshotCode: query.code,
orderTime: [],
snapshotOrderTime: [],
})

@ -7,7 +7,7 @@
<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="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 +27,9 @@
>距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
</span>
</div>
<img src="/src/assets/imgs/status/status32.png" alt="" />
</div>
</div>
<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"
@ -53,11 +53,19 @@
<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>
@ -142,7 +150,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="单据日期" prop="orderTime">
{{ formatDate(formData.orderTime, '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>
@ -454,7 +462,7 @@
<el-row>
<el-col>
<el-card class="hl-incard">
<el-col v-if="'update,create'.indexOf(query.active) > -1">
<el-col v-if="'update,create,alter'.indexOf(query.active) > -1">
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem"
>新增</el-button
>
@ -1048,9 +1056,13 @@ const submitForm = async (active) => {
if (active != 'REPULSE') {
formData.value.activeOpinion = ''
}
//
if (active == 'ALTER') {
formData.value.hasAlter = 1;
}
const data = formData.value as unknown as ProjectOrderApi.ProjectOrderVO
if (active == 'SUBMIT_AUDIT') {
if ('SUBMIT_AUDIT,ALTER'.indexOf(active) > -1) {
//
if (!data.projectOrderSubs || data.projectOrderSubs.length == 0) {
message.error('子项目信息不能为空')
@ -1058,7 +1070,7 @@ const submitForm = async (active) => {
}
}
if ((active == 'SAVE' || active == 'SUBMIT_AUDIT') && !formData.value.hasAlter) {
if ((active == 'SAVE' || active == 'SUBMIT_AUDIT') && active != 'ALTER') {
// 0
if (data.projectOrderSubs && data.projectOrderSubs.length > 0) {
if (data.projectOrderSubs.some((sub) => !sub.amount || sub.amount <= 0)) {
@ -1068,11 +1080,12 @@ const submitForm = async (active) => {
}
}
//
if (active == 'ALTER') {
// 0
if (data.projectOrderSubs && data.projectOrderSubs.length > 0) {
const total = data.projectOrderSubs.reduce((acc, cur) => {
return acc + cur
return acc + cur.amount
}, 0)
if (total <= 0) {
message.error('子项目数量和不能为0')
@ -1081,7 +1094,7 @@ const submitForm = async (active) => {
}
}
//
//
if('SUBMIT_AUDIT,ALTER'.indexOf(active) > -1){
if(formData.value.hasContract){
const hasContractFile = formData.value.attachments.some((file) => {

@ -196,7 +196,7 @@
>
编辑
</el-button>
<el-dropdown @command="(command) => handleCommand(command, scope.row.id)">
<el-dropdown @command="(command) => handleCommand(command, scope.row.id, scope.row.code)">
<span class="el-dropdown-link">更多
<el-icon class="el-icon--right">
<arrow-down />
@ -207,7 +207,7 @@
<el-dropdown-item command="detail">查看详情</el-dropdown-item>
<el-dropdown-item v-if="scope.row.orderStatus == 32" command="printProject"></el-dropdown-item>
<el-dropdown-item v-if="scope.row.orderStatus == 32" command="alter"></el-dropdown-item>
<el-dropdown-item v-if="scope.row.hasAlter" command="viewAlter"></el-dropdown-item>
<el-dropdown-item v-if="scope.row.hasAlter" command="viewArchive"></el-dropdown-item>
<el-dropdown-item v-if="scope.row.orderStatus == 32" command="delivery"></el-dropdown-item>
</el-dropdown-menu>
</template>
@ -343,7 +343,7 @@ const handleExport = async () => {
}
}
const handleCommand = async (command, id) => {
const handleCommand = async (command, id, code) => {
switch (command){
case 'detail':
openDetail('detail', id);
@ -354,8 +354,13 @@ const handleCommand = async (command, id) => {
case 'alter':
openDetail('alter', id);
break;
case 'viewAlter':
// TODO
case 'viewArchive':
router.push({
name: 'ProjectOrderArchive',
query: {
code: code
}
})
break;
case 'delivery':
// TODO

Loading…
Cancel
Save