cargoControlDetail.vue 10.6 KB
Newer Older
dragondean@qq.com's avatar
dragondean@qq.com committed
1
<template>
2
    <div  class="app-container" v-if="detail">
3
        <div class="page-title">{{$t('控货订单')}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
4 5 6
        <el-form ref="elForm" :model="formData" :rules="rules" size="small" label-width="100px" >
            <el-row>
                <el-col :span="6">
7
                <el-form-item :label="$t('订单号')">
8
                    {{detail.orderNo}}
dragondean@qq.com's avatar
dragondean@qq.com committed
9 10 11
                </el-form-item>
                </el-col>
                <el-col :span="6">
12
                <el-form-item :label="$t('总控货数')">
13
                    {{detail.sumNum}}
dragondean@qq.com's avatar
dragondean@qq.com committed
14 15 16
                </el-form-item>
                </el-col>
                <el-col :span="6">
17
                <el-form-item :label="$t('体积')">
18
                    {{detail.sumVolume}}
dragondean@qq.com's avatar
dragondean@qq.com committed
19 20 21
                </el-form-item>
                </el-col>
                <el-col :span="6">
22
                <el-form-item :label="$t('重量')">
23
                    {{detail.sumWeight}} kg
dragondean@qq.com's avatar
dragondean@qq.com committed
24 25 26
                </el-form-item>
                </el-col>
                <el-col :span="6">
27
                <el-form-item :label="$t('可放货箱数')">
dragondean@qq.com's avatar
dragondean@qq.com committed
28
                    {{detail.sumNum - detail.releaseNum}}
dragondean@qq.com's avatar
dragondean@qq.com committed
29 30 31
                </el-form-item>
                </el-col>
                <el-col :span="6">
32
                <el-form-item :label="$t('已放货箱数')">
dragondean@qq.com's avatar
dragondean@qq.com committed
33
                    {{detail.releaseNum}}
dragondean@qq.com's avatar
dragondean@qq.com committed
34 35 36 37 38
                </el-form-item>
                </el-col>
            </el-row>
        </el-form>

39
        <div class="page-title">{{$t('放货详情')}}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
40
        <el-table :data="detail.cargoControlPickBackVOList || []" border>
41
            <el-table-column :label="$t('序号')" width="50px">
dragondean@qq.com's avatar
dragondean@qq.com committed
42 43
                <template slot-scope="scope">{{scope.$index + 1}}</template>
            </el-table-column>
44
            <el-table-column :label="$t('收货人')" prop="consigneeName" />
dragondean@qq.com's avatar
dragondean@qq.com committed
45 46 47 48 49
            <el-table-column :label="$t('收货人电话')" prop="consigneePhone">
                <template slot-scope="{row}">
                    +{{row.consigneeCountryCode}} {{row.consigneePhone}}
                </template>
            </el-table-column>
50 51 52 53 54
            <el-table-column :label="$t('控货箱数')" prop="controlNum"></el-table-column>
            <el-table-column :label="$t('放货箱数')" prop="pickNum"></el-table-column>
            <el-table-column :label="$t('体积') + '(m³)'" prop="pickVolume"></el-table-column>
            <el-table-column :label="$t('提单号')" prop="tidanNo"></el-table-column>
            <el-table-column :label="$t('备注')" prop="remarks"></el-table-column>
55
            <el-table-column :label="$t('操作人')" prop="operator"></el-table-column>
56
            <el-table-column :label="$t('放货日期')" prop="createTime">
dragondean@qq.com's avatar
dragondean@qq.com committed
57 58 59
                <template slot-scope="{row}">
                    {{row.createTime|parseTime}}
                </template>
dragondean@qq.com's avatar
dragondean@qq.com committed
60
            </el-table-column>
61 62 63 64 65
          <el-table-column :label="$t('复核日期')" prop="createTime">
            <template slot-scope="{row}">
              {{row.checkTime|parseTime}}
            </template>
          </el-table-column>
66
            <el-table-column :label="$t('状态')" prop="status">
dragondean@qq.com's avatar
dragondean@qq.com committed
67 68 69
                <template slot-scope="{row}">
                    <dict-tag :type="DICT_TYPE.ECW_RELEASE_STATUS" :value="row.status" />
                </template>
dragondean@qq.com's avatar
dragondean@qq.com committed
70
            </el-table-column>
71
            <el-table-column :label="$t('操作')" width="300px">
dragondean@qq.com's avatar
dragondean@qq.com committed
72
                <template slot-scope="scope">
73
                    <el-button v-if="scope.row.status == 1" type="primary" size="mini" @click="editIndex=scope.$index">{{$t('修改')}}</el-button>
74
                    <el-button v-if="scope.row.status == 1" type="danger" size="mini" @click="cancelCargoPickId = scope.row.id">{{$t('取消')}}</el-button>
75 76 77
                    <el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">{{$t('放货复核')}}</el-button>
                    <el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button>
                    <el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button>
78

79
                    <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.formId)">{{$t('审核详情')}}</el-button>
dragondean@qq.com's avatar
dragondean@qq.com committed
80
                    <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button>
dragondean@qq.com's avatar
dragondean@qq.com committed
81 82 83 84
                </template>
            </el-table-column>
        </el-table>

Marcus's avatar
Marcus committed
85
        <!-- <div class="page-title">{{ $t('历史放货记录') }}</div>
dragondean@qq.com's avatar
dragondean@qq.com committed
86
        <el-table :data="[1]" border>
Marcus's avatar
Marcus committed
87
            <el-table-column :label="$t('序号')" width="50px">
dragondean@qq.com's avatar
dragondean@qq.com committed
88 89

            </el-table-column>
Marcus's avatar
Marcus committed
90 91
            <el-table-column :label="$t('操作')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
92
            </el-table-column>
Marcus's avatar
Marcus committed
93 94
            <el-table-column :label="$t('申请原因')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
95
            </el-table-column>
Marcus's avatar
Marcus committed
96 97
            <el-table-column :label="$t('附件')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
98
            </el-table-column>
Marcus's avatar
Marcus committed
99 100
            <el-table-column :label="$t('申请时间')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
101
            </el-table-column>
Marcus's avatar
Marcus committed
102 103
            <el-table-column :label="$t('申请人')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
104
            </el-table-column>
Marcus's avatar
Marcus committed
105 106
            <el-table-column :label="$t('审批时间')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
107
            </el-table-column>
Marcus's avatar
Marcus committed
108 109
            <el-table-column :label="$t('审批人')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
110
            </el-table-column>
Marcus's avatar
Marcus committed
111 112
            <el-table-column :label="$t('备注')">
                <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
113
            </el-table-column>
dragondean@qq.com's avatar
dragondean@qq.com committed
114 115 116
        </el-table> -->
        <fallback v-if="fallbackIndex !== null" :order="detail" :index="fallbackIndex" @close="fallbackIndex=null" @success="onFallbackSuccess"  />
        <edit v-if="editIndex !== null" @close="editIndex=null" :order="detail" :index="editIndex" @success="onEditSuccess" />
117
        <transfer-cargo
118 119 120 121 122 123 124 125 126 127
            v-if="cargoControlPickId !== null"
            :order-id="detail.orderId"
            :cargo-control-pick-id="cargoControlPickId"
            @close="cargoControlPickId=null"
            @success="onTransferCargoSuccess" />
        <cancel-cargo v-if="!!cancelCargoPickId"
            :order="detail"
            :cargo-control-pick-id="cancelCargoPickId"
            @close="cancelCargoPickId=null"
            @success="onCancelCargoSuccess"  />
dragondean@qq.com's avatar
dragondean@qq.com committed
128 129 130 131
    </div>
</template>
<script>
import edit from './components/CargoControlEdit.vue'
dragondean@qq.com's avatar
dragondean@qq.com committed
132 133 134
import {createPick, getPickRleaseInfo, review, cancel, cancelApproval} from '@/api/ecw/orderCargoControl'
import {parseTime} from '@/utils/ruoyi'
import Fallback from './components/Fallback'
135
import TransferCargo from '@/views/ecw/order/components/TransferCargo'
136
import CancelCargo from './components/CancelCargo.vue'
137

dragondean@qq.com's avatar
dragondean@qq.com committed
138
export default {
dragondean@qq.com's avatar
dragondean@qq.com committed
139
    filters: {parseTime},
140
    components: {edit, Fallback, TransferCargo, CancelCargo, CancelCargo},
dragondean@qq.com's avatar
dragondean@qq.com committed
141 142
    data(){
        return {
143 144
            detail: null,
            formData:{},
dragondean@qq.com's avatar
dragondean@qq.com committed
145 146 147
            rules: {},
            editIndex: null, // 修改索引
            fallbackIndex: null, // 反复核索引
148
            cargoControlPickId: null, // 调货ID
149
            cancelCargoPickId: null, // 取消返货ID
dragondean@qq.com's avatar
dragondean@qq.com committed
150 151
        }
    },
152
    created(){
dragondean@qq.com's avatar
dragondean@qq.com committed
153
        this.loadData()
154
    },
dragondean@qq.com's avatar
dragondean@qq.com committed
155
    methods:{
dragondean@qq.com's avatar
dragondean@qq.com committed
156 157 158 159 160
        loadData(){
            console.log('loadData')
            getPickRleaseInfo(this.$route.query.id).then(res => this.detail = res.data)
        },
        review(id){
161
            this.$confirm(this.$t('已核实放货信息,确认放货?'))
dragondean@qq.com's avatar
dragondean@qq.com committed
162
                .then(res => {
dragondean@qq.com's avatar
dragondean@qq.com committed
163 164 165
                   return review(id)
                })
                .then(res => {
166
                    this.$message.success(this.$t('操作成功'))
dragondean@qq.com's avatar
dragondean@qq.com committed
167 168 169 170 171 172 173
                    this.loadData()
                })
        },
        unReview(){

        },
        cancel(id){
174
            this.$confirm(this.$t('确定取消这条放货么?'))
dragondean@qq.com's avatar
dragondean@qq.com committed
175 176 177 178
                .then(res => {
                    return cancel(id)
                })
                .then(res => {
179
                    this.$message.success(this.$t('操作成功'))
dragondean@qq.com's avatar
dragondean@qq.com committed
180 181 182 183 184 185 186 187 188 189 190 191 192
                    this.loadData()
                })
        },
        onEditSuccess(){
            console.log('onEditSuccess')
            this.loadData()
            this.editIndex = null
        },
        onFallbackSuccess(){
            this.fallbackIndex = null
            this.loadData()
        },
        // 查看审核详情
193 194
        showApprovalDetail(formId){
            this.$router.push('/bpm/process-instance/detail?id=' + formId)
dragondean@qq.com's avatar
dragondean@qq.com committed
195 196 197
        },
        // 取消审核
        cancelApproval(id){
198
            this.$confirm(this.$t('确定取消此申请么?'))
dragondean@qq.com's avatar
dragondean@qq.com committed
199 200
                .then(res => {
                    let approvalId = this.getApproval(id)
Marcus's avatar
Marcus committed
201
                    return cancelApproval(approvalId, {reason: this.$t('')})
dragondean@qq.com's avatar
dragondean@qq.com committed
202 203
                })
                .then(res => {
204
                    this.$message.success(this.$t('操作成功'))
dragondean@qq.com's avatar
dragondean@qq.com committed
205
                    this.loadData()
dragondean@qq.com's avatar
dragondean@qq.com committed
206
                })
dragondean@qq.com's avatar
dragondean@qq.com committed
207 208 209 210
        },
        // 根据id查找审核id
        getApproval(id, field = 'orderApprovalId'){
            if(!this.detail.orderApprovalBackVOList || !this.detail.orderApprovalBackVOList.length){
211 212
                this.$message.error(this.$t('未找到审批ID'))
                Promise.reject(this.$t('未找到审批ID'))
dragondean@qq.com's avatar
dragondean@qq.com committed
213 214 215 216 217 218 219
            }
            let item = this.detail.orderApprovalBackVOList.find(item => {
                let details = JSON.parse(item.details)
                return details.cargoControlPickId == id && details.applyStatus == 1
            })
            console.log({item})
            return item[field]
220 221 222 223
        },
        onTransferCargoSuccess(){
            this.cargoControlPickId = null
            this.loadData()
224 225 226 227
        },
        onCancelCargoSuccess(){
            this.cancelCargoPickId = null
            this.loadData()
dragondean@qq.com's avatar
dragondean@qq.com committed
228 229 230 231
        }
    }
}
</script>