|
@@ -1,33 +1,105 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <el-dialog
|
|
|
- title="任务单送达"
|
|
|
- width="50%"
|
|
|
- :close-on-click-modal="false"
|
|
|
- :visible.sync="visible">
|
|
|
+ <div class="my-title">送达</div>
|
|
|
<!-- 表单 -->
|
|
|
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
|
|
|
- <el-row class="my-row">
|
|
|
- <el-col>
|
|
|
- <el-form-item label="送达数量" prop="cnt">
|
|
|
- <el-input-number v-model="dataForm.cnt" :min="0" :max="Number(max)"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row class="my-row">
|
|
|
- <upload-component :display="false" :title="'签收附件'" :accept="'*'" :file-obj-list="fileList" @uploadSuccess="uploadSuccess"/>
|
|
|
- </el-row>
|
|
|
+ <el-table :data="dataForm.list" border>
|
|
|
+ <el-table-column
|
|
|
+ label="序号"
|
|
|
+ type="index"
|
|
|
+ width="50"
|
|
|
+ align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="名称">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productSpec"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="型号/规格">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="productNumber"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="编号">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="batchNumber"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="批次号">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="deliverCnt"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="数量">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="price"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="单价">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="总价">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="notes"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="备注">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ prop="arriveCnt"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="送达数量">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input-number v-model="scope.row.arriveCnt" size="mini"></el-input-number>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-form-item label="签收附件" prop="attachList">
|
|
|
+ <upload-component :accept="'*'" v-model="dataForm.attachList" />
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
- <span slot="footer">
|
|
|
- <el-button @click="onChose">取消</el-button>
|
|
|
- <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="onChose">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
|
|
|
</span>
|
|
|
- </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import UploadComponent from '../common/upload-component'
|
|
|
+ import UploadComponent from '../common/upload-component-v2'
|
|
|
|
|
|
export default {
|
|
|
name: 'dispatch-arrived',
|
|
@@ -35,11 +107,15 @@ export default {
|
|
|
data () {
|
|
|
return {
|
|
|
visible: false,
|
|
|
+ id: 0,
|
|
|
fileList: [],
|
|
|
- dataForm: {},
|
|
|
+ dataForm: {
|
|
|
+ list:[],
|
|
|
+ attachList:[]
|
|
|
+ },
|
|
|
max: 0,
|
|
|
dataRule: {
|
|
|
- cnt: [{ required: true, message: '请输入送达数量', trigger: 'change' }]
|
|
|
+ attachList: [{ required: true, message: '请上传签收附件', trigger: 'blur' }]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -48,14 +124,22 @@ export default {
|
|
|
this.visible = false
|
|
|
this.$emit('onChose')
|
|
|
},
|
|
|
- async init (deliverId, max) {
|
|
|
- if (!deliverId) return
|
|
|
- this.max = max
|
|
|
- this.fileList = []
|
|
|
- this.dataForm = {
|
|
|
- deliverId: deliverId
|
|
|
- }
|
|
|
- this.visible = true
|
|
|
+ async init (id) {
|
|
|
+ this.id = id
|
|
|
+ this.getDetails()
|
|
|
+ },
|
|
|
+ getDetails () {
|
|
|
+ this.$http({
|
|
|
+ url: this.$http.adornUrl(`/biz-service/deliver/info/${this.id}`),
|
|
|
+ method: 'get',
|
|
|
+ }).then(({data}) => {
|
|
|
+ if (data && data.code === '200') {
|
|
|
+ this.dataForm.list = data.data
|
|
|
+ this.dataForm.list.map(t => t.arriveCnt = t.deliverCnt)
|
|
|
+ } else {
|
|
|
+ this.$message.error(data.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
uploadSuccess (fileList) {
|
|
|
this.fileList = fileList
|
|
@@ -67,24 +151,26 @@ export default {
|
|
|
dataFormSubmit () {
|
|
|
this.$refs['dataForm'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- // 附件检查
|
|
|
- let fList = this.fileList
|
|
|
- if (fList.length > 0) {
|
|
|
- this.dataForm.attachList = []
|
|
|
- for (let i = 0; i < fList.length; i++) {
|
|
|
- this.dataForm.attachList.push({
|
|
|
- fileName: fList[i].name,
|
|
|
- url: fList[i].url
|
|
|
- })
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.$message.error('请上传文件')
|
|
|
- return
|
|
|
+ let submitData = this.dataForm.list.map(t => ({
|
|
|
+ arriveCnt: t.arriveCnt,
|
|
|
+ deliverId: t.deliverId,
|
|
|
+ contractId: t.contractId
|
|
|
+ }))
|
|
|
+ let attachList = []
|
|
|
+
|
|
|
+ for (let i = 0; i < this.dataForm.attachList.length; i++) {
|
|
|
+ attachList.push({
|
|
|
+ fileName: this.dataForm.attachList[i].name,
|
|
|
+ url: this.dataForm.attachList[i].url
|
|
|
+ })
|
|
|
}
|
|
|
+
|
|
|
+ submitData.map(t => t.attachList = attachList)
|
|
|
+
|
|
|
this.$http({
|
|
|
url: this.$http.adornUrl(`/biz-service/deliver/arrive`),
|
|
|
method: 'post',
|
|
|
- data: this.$http.adornData({...this.dataForm})
|
|
|
+ data: this.$http.adornData(submitData)
|
|
|
}).then(({data}) => {
|
|
|
if (data && data.code === '200') {
|
|
|
this.$message({
|
|
@@ -107,6 +193,8 @@ export default {
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style scoped>
|
|
|
-
|
|
|
+<style scoped lang="scss">
|
|
|
+/deep/ .el-input-number--mini {
|
|
|
+ width:100px;
|
|
|
+}
|
|
|
</style>
|