|
|
@@ -1,28 +1,29 @@
|
|
|
<template>
|
|
|
- <el-dialog :title="title" :visible.sync="dialogFormVisible" @close="close">
|
|
|
- <el-form ref="form" :model="form" :rules="rules" style="margin: 0px">
|
|
|
- <el-row :gutter="20" style="margin: 0px">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="客户名称:" style="margin: 0px">
|
|
|
- {{ theDeliverOrder.custName }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="项目名称:" style="margin: 0px">
|
|
|
- {{ theDeliverOrder.projectName }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="合同编号:" style="margin: 0px">
|
|
|
- {{ theDeliverOrder.contractCode }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="工单编号:" style="margin: 0px">
|
|
|
- {{ theDeliverOrder.orderCode }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="theProgress.progressType != ''" :span="12">
|
|
|
+ <div>
|
|
|
+ <el-dialog :title="title" :visible.sync="dialogFormVisible" @close="close">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" style="margin-top: -24px">
|
|
|
+ <el-row :gutter="20" style="margin: 0px">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="客户名称:" style="margin: 0px">
|
|
|
+ {{ theDeliverOrder.custName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目名称:" style="margin: 0px">
|
|
|
+ {{ theDeliverOrder.projectName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="合同编号:" style="margin: 0px">
|
|
|
+ {{ theDeliverOrder.contractCode }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="工单编号:" style="margin: 0px">
|
|
|
+ {{ theDeliverOrder.orderCode }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <!-- <el-col v-if="theProgress.progressType != ''" :span="12">
|
|
|
<el-form-item label="要求发货时间:" style="margin: 0px">
|
|
|
{{ parseTime(theDeliverOrder.requiredDeliveryTime, '{y}-{m}-{d}') }}
|
|
|
</el-form-item>
|
|
|
@@ -31,117 +32,168 @@
|
|
|
<el-form-item label="收货信息:" style="margin: 0px">
|
|
|
{{ theDeliverOrder.receivingInfo }}
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="theProgress.progressType != ''" :span="24">
|
|
|
- <el-form-item label="特殊要求说明:" style="margin: 0px">
|
|
|
- {{ theDeliverOrder.specialRequirements }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ </el-col> -->
|
|
|
+ <el-col v-if="theProgress.progressType != ''" :span="24">
|
|
|
+ <el-form-item label="特殊要求说明:" style="margin: 0px">
|
|
|
+ {{ theDeliverOrder.specialRequirements }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <!-- <el-col :span="12">
|
|
|
<el-form-item label="任务标题:" style="margin: 0px">
|
|
|
{{ form.progressTitle }}
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="form.progressType != ''" :span="12">
|
|
|
+ </el-col> -->
|
|
|
+ <!-- <el-col v-if="form.progressType != ''" :span="12">
|
|
|
<el-form-item label="任务类型:" style="margin: 0px">
|
|
|
<span v-show="form.progressType == '10'">发货任务单</span>
|
|
|
<span v-show="form.progressType == '20'">组装任务单</span>
|
|
|
<span v-show="form.progressType == '30'">部署安装单</span>
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ </el-col> -->
|
|
|
+ <!-- <el-col :span="12">
|
|
|
<el-form-item label="负责人:" style="margin: 0px">
|
|
|
{{ form.principalPerson }}
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ </el-col> -->
|
|
|
+ <!-- <el-col :span="12">
|
|
|
<el-form-item label="优先级:" style="margin: 0px">
|
|
|
<span v-show="form.progressLevel == '10'">最高</span>
|
|
|
<span v-show="form.progressLevel == '20'">普通</span>
|
|
|
<span v-show="form.progressLevel == '30'">较低</span>
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ </el-col> -->
|
|
|
+ <!-- <el-col :span="12">
|
|
|
<el-form-item label="开始/截止日期:">
|
|
|
{{ parseTime(form.startDate, '{y}-{m}-{d}') }} 至
|
|
|
{{ parseTime(form.endDate, '{y}-{m}-{d}') }}
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-table ref="productTable" :data="products" style="width: 100%">
|
|
|
- <el-table-column label="产品名称" prop="productName" />
|
|
|
- <el-table-column label="产品编号" prop="productCode" />
|
|
|
- <el-table-column v-if="!workId" label="数量" prop="num" />
|
|
|
- <el-table-column v-if="form.progressType == '10'" label="组装/采购数量" prop="productNum" />
|
|
|
- <el-table-column v-if="form.progressType != '10'" label="数量" prop="productNum" />
|
|
|
- <el-table-column v-if="form.progressType == '10'" label="获取方式" prop="operateType" />
|
|
|
- </el-table>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="theProgress && theProgress.deliverStatus >= 30" :span="12">
|
|
|
- <el-form-item label="快递名称:" style="margin-top: 10px; margin-bottom: 0px">
|
|
|
- {{ theProgress.expressName }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="theProgress && theProgress.deliverStatus >= 30" :span="12">
|
|
|
- <el-form-item label="快递单号:" style="margin-top: 10px; margin-bottom: 0px">
|
|
|
- {{ theProgress.expressCode }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="theProgress && theProgress.deliverStatus >= 30" :span="12">
|
|
|
- <el-form-item label="预计到货时间:" style="margin: 0px">
|
|
|
- {{ parseTime(theProgress.estimatedArrivalTime, '{y}-{m}-{d}') }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="theProgress && theProgress.deliverStatus >= 40" :span="12">
|
|
|
- <el-form-item label="到货时间:" style="margin: 0px">
|
|
|
- {{ parseTime(theProgress.arrivalTime, '{y}-{m}-{d}') }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" style="margin-top: 10px">
|
|
|
- <el-button
|
|
|
- v-if="theProgress && theProgress.assembleFileName != ''"
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- @click="showFile(theProgress.assembleFileUrl, theProgress.assembleFileName)">
|
|
|
- 组装报告:{{ theProgress.assembleFileName }}
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- v-if="theProgress && theProgress.checkFileName != ''"
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- @click="showFile(theProgress.checkFileUrl, theProgress.checkFileName)">
|
|
|
- 验收单:{{ theProgress.checkFileName }}
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- v-if="theProgress && theProgress.installCheckFileName != ''"
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- @click="showFile(theProgress.installCheckFileUrl, theProgress.installCheckFileName)">
|
|
|
- 安装验收单:{{ theProgress.installCheckFileName }}
|
|
|
- </el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="备注:" style="margin: 0px">
|
|
|
- {{ form.remark }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- <template #footer>
|
|
|
- <el-button @click="close">关 闭</el-button>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
+ </el-col> -->
|
|
|
+ <el-col v-if="form.progressType == '30'" :span="12">
|
|
|
+ <el-form-item label="期望安装时间:" style="margin: 0px">
|
|
|
+ {{ parseTime(form.expectInstallTime, '{y}-{m}-{d}') }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="form.progressType == '30'" :span="12">
|
|
|
+ <el-form-item label="安装时间:" style="margin: 0px">
|
|
|
+ {{ parseTime(form.installBeginTime, '{y}-{m}-{d}') }} 至
|
|
|
+ {{ parseTime(form.installEndTime, '{y}-{m}-{d}') }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="form.progressType == '30'" :span="12">
|
|
|
+ <el-form-item label="审核人:" style="margin: 0px">
|
|
|
+ {{ form.auditUser }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="form.progressType == '30'" :span="12">
|
|
|
+ <el-form-item label="审核时间:" style="margin: 0px">
|
|
|
+ {{ form.auditTime }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="form.progressType == '30'" :span="24">
|
|
|
+ <el-form-item label="审核描述:" style="margin: 0px">
|
|
|
+ {{ form.auditDesc }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-table ref="productTable" :data="products" style="width: 100%; margin-top: 10px">
|
|
|
+ <el-table-column label="产品名称" prop="productName" />
|
|
|
+ <el-table-column label="产品编号" prop="productCode" />
|
|
|
+ <el-table-column v-if="!workId" label="数量" prop="num" />
|
|
|
+ <el-table-column v-if="form.progressType == '10'" label="组装/采购数量" prop="productNum" />
|
|
|
+ <el-table-column v-if="form.progressType != '10'" label="数量" prop="productNum" />
|
|
|
+ <el-table-column v-if="form.progressType == '10'" label="获取方式" prop="operateType" />
|
|
|
+ <el-table-column v-if="form.progressType == '30'" label="安装图片" prop="pictures">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-button v-if="row.pictures != ''" type="text" @click="showPictures(row)">查看</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="theProgress.progressStatus == '20' || theProgress.progressStatus == '30'"
|
|
|
+ type="text"
|
|
|
+ @click="showUploadPicturesDialog(row)">
|
|
|
+ 上传
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column v-if="form.progressType == '30'" label="安装描述" prop="desc">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-input
|
|
|
+ v-model="row.desc"
|
|
|
+ :disabled="theProgress.progressStatus != '20' && theProgress.progressStatus != '30'"
|
|
|
+ @change="updateProduceInfo(row)" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="theProgress && theProgress.deliverStatus >= 30" :span="12">
|
|
|
+ <el-form-item label="快递名称:" style="margin-top: 10px; margin-bottom: 0px">
|
|
|
+ {{ theProgress.expressName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="theProgress && theProgress.deliverStatus >= 30" :span="12">
|
|
|
+ <el-form-item label="快递单号:" style="margin-top: 10px; margin-bottom: 0px">
|
|
|
+ {{ theProgress.expressCode }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="theProgress && theProgress.deliverStatus >= 30" :span="12">
|
|
|
+ <el-form-item label="预计到货时间:" style="margin: 0px">
|
|
|
+ {{ parseTime(theProgress.estimatedArrivalTime, '{y}-{m}-{d}') }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="theProgress && theProgress.deliverStatus >= 40" :span="12">
|
|
|
+ <el-form-item label="到货时间:" style="margin: 0px">
|
|
|
+ {{ parseTime(theProgress.arrivalTime, '{y}-{m}-{d}') }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" style="margin-top: 10px">
|
|
|
+ <el-button
|
|
|
+ v-if="theProgress && theProgress.assembleFileName != ''"
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ @click="showFile(theProgress.assembleFileUrl, theProgress.assembleFileName)">
|
|
|
+ 组装报告:{{ theProgress.assembleFileName }}
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="theProgress && theProgress.checkFileName != ''"
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ @click="showFile(theProgress.checkFileUrl, theProgress.checkFileName)">
|
|
|
+ 验收单:{{ theProgress.checkFileName }}
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="theProgress && theProgress.installCheckFileName != ''"
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ @click="showFile(theProgress.installCheckFileUrl, theProgress.installCheckFileName)">
|
|
|
+ 安装验收单:{{ theProgress.installCheckFileName }}
|
|
|
+ </el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="备注:" style="margin: 0px">
|
|
|
+ {{ form.remark }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <el-button @click="close">关 闭</el-button>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 产品图片 -->
|
|
|
+ <pictures ref="pictures" @submit="uploadPictures" />
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import orderWorkApi from '@/api/work/deliver'
|
|
|
+ import deliverWorkApi from '@/api/work/deliverWork'
|
|
|
import to from 'await-to-js'
|
|
|
+ import pictures from './pictrues.vue'
|
|
|
|
|
|
export default {
|
|
|
name: 'WorkOrderFeedback',
|
|
|
- components: {},
|
|
|
+ components: { pictures },
|
|
|
data() {
|
|
|
return {
|
|
|
+ theProduct: {},
|
|
|
theDeliverOrder: {},
|
|
|
theProgress: {},
|
|
|
form: {
|
|
|
@@ -154,6 +206,13 @@
|
|
|
principalPersonId: '',
|
|
|
principalPerson: '',
|
|
|
remark: undefined,
|
|
|
+ expectInstallTime: '',
|
|
|
+ installBeginTime: '',
|
|
|
+ installEndTime: '',
|
|
|
+ auditUser: '',
|
|
|
+ auditTime: '',
|
|
|
+ auditDesc: '',
|
|
|
+ deliverStatus: '',
|
|
|
},
|
|
|
rules: {
|
|
|
progressTitle: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
@@ -187,6 +246,13 @@
|
|
|
principalPersonId: row.principalPersonId,
|
|
|
principalPerson: row.principalPerson,
|
|
|
remark: row.remark,
|
|
|
+ expectInstallTime: row.expectInstallTime,
|
|
|
+ installBeginTime: row.installBeginTime,
|
|
|
+ installEndTime: row.installEndTime,
|
|
|
+ auditUser: row.auditUser,
|
|
|
+ auditTime: row.auditTime,
|
|
|
+ auditDesc: row.auditDesc,
|
|
|
+ deliverStatus: row.deliverStatus,
|
|
|
}
|
|
|
this.getOrderDetails()
|
|
|
this.dialogFormVisible = true
|
|
|
@@ -239,6 +305,27 @@
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ // 保存产品信息
|
|
|
+ async updateProduceInfo(row) {
|
|
|
+ const [err, res] = await to(
|
|
|
+ deliverWorkApi.updateProgressProductInfo({ id: row.id, pictures: row.pictures, desc: row.desc })
|
|
|
+ )
|
|
|
+ if (err) return
|
|
|
+ },
|
|
|
+ // 展示图片
|
|
|
+ showPictures(row) {
|
|
|
+ this.$refs['pictures'].showPictures(row.pictures)
|
|
|
+ },
|
|
|
+ // 上传图片
|
|
|
+ showUploadPicturesDialog(row) {
|
|
|
+ this.theProduct = row
|
|
|
+ this.$refs['pictures'].uploadPictures(row)
|
|
|
+ },
|
|
|
+ // 更新图片信息
|
|
|
+ uploadPictures(pictures) {
|
|
|
+ this.theProduct.pictures = pictures
|
|
|
+ this.updateProduceInfo(this.theProduct)
|
|
|
+ },
|
|
|
},
|
|
|
}
|
|
|
</script>
|