<template> <el-dialog :title="orderNo + $t('订单转异')" center :visible.sync="show" v-bind="$attrs" :close-on-click-modal="false" :before-close="cancel"> <el-form label-position="top" label-width="200" ref="exceptionForm" :model="form" :rules="exceptionRules"> <el-form-item :label="$t('原因类型')" prop="manualExceptionType"> <dict-selector v-model="form.manualExceptionType" form-type="checkbox" :type="DICT_TYPE.MANUAL_EXCEPTION_TYPE" multiple ></dict-selector> </el-form-item> <el-form-item :label="$t('附件')"> <image-upload v-model="form.exceptionUrls"></image-upload> </el-form-item> <el-form-item :label="$t('详细信息')"> <el-input v-model="form.descZh" type="textarea"></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-button type="primary" @click="handleException">{{$t('确认转异')}}</el-button> <el-button @click="cancel">{{$t('取消')}}</el-button> </span> </el-dialog> </template> <script> import imageUpload from "@/components/ImageUpload/index.vue"; import {batchException} from "@/api/ecw/order"; export default { components: {imageUpload}, props:{ orderNo:{ type: String, }, orderId:{ type: Number, } }, data(){ return { show: false, form: { manualExceptionType: [], exceptionUrls: '', descZh: '' }, exceptionRules:{} } }, async created(){ this.$nextTick() this.show = true }, methods:{ cancel(){ this.show = false this.$emit('cancel'); }, handleException(){ if(!this.form.manualExceptionType.length){ return this.$message.error(this.$t('请选择异常类型')) } batchException({ orderIds: [this.orderId], manualExceptionType: this.form.manualExceptionType.join(","), exceptionUrls: this.form.exceptionUrls?.split(",") || [], descZh: this.form.descZh }).then(res=>{ this.$message.success(this.$t('操作成功')); this.show = false this.$emit('success'); }) } } } </script> <style scoped lang="scss"> </style>