|
@@ -61,12 +61,12 @@
|
|
|
<el-row class="my-row">
|
|
|
<upload-component :title="'附件'" :accept="'*'" :file-obj-list="fileList" @uploadSuccess="uploadSuccess"/>
|
|
|
</el-row>
|
|
|
- <el-row style="margin-top: 10px" class="my-row">
|
|
|
+ <el-row v-if="Number(contactType) === 1" style="margin-top: 10px" class="my-row">
|
|
|
<div class="title"><span style="color: red">*</span> 采购物品明细</div>
|
|
|
<el-table
|
|
|
:data="materialList"
|
|
|
border
|
|
|
- style="width: 100%;">
|
|
|
+ style="width: 100%;margin-top: 10px">
|
|
|
<el-table-column
|
|
|
label="序号"
|
|
|
type="index"
|
|
@@ -164,13 +164,164 @@
|
|
|
<el-button type="primary" icon="el-icon-plus" @click="addItemHandle"></el-button>
|
|
|
</el-row>
|
|
|
</el-row>
|
|
|
+ <el-row v-if="Number(contactType) === 2" style="margin-top: 10px" class="my-row">
|
|
|
+ <div class="title"><span style="color: red">*</span> 委外物品明细</div>
|
|
|
+ <el-table
|
|
|
+ :data="outsourceList"
|
|
|
+ border
|
|
|
+ style="width: 100%;margin-top: 10px">
|
|
|
+ <el-table-column
|
|
|
+ label="序号"
|
|
|
+ type="index"
|
|
|
+ width="50"
|
|
|
+ align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="purchaseCode"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="120"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="采购编码">
|
|
|
+ </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="prodCode"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="120"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="产品编号">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="commissionTypeName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ :formatter="formatType"
|
|
|
+ label="委外类别">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="specificationExplian"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="100"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="型号及规格">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="cnt"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="数量">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="qualifiedCnt"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ label="合格数量">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="unitName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="100"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="单位">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="deadline"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="160"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="采购期限">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="arrivedTime"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="160"
|
|
|
+ :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="supplierName"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="供应商">
|
|
|
+ </el-table-column><el-table-column
|
|
|
+ prop="applyTime"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="160"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="申请时间">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="applier"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ min-width="140"
|
|
|
+ :show-tooltip-when-overflow="true"
|
|
|
+ label="申请人">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="orgName"
|
|
|
+ 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="180"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ label="备注">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ header-align="center"
|
|
|
+ align="center"
|
|
|
+ width="100"
|
|
|
+ label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button style="color: red" type="text" size="small" @click="deleteItemHandle(scope.row.recordId)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-row style="text-align: center; margin-top: 10px;">
|
|
|
+ <el-button type="primary" icon="el-icon-plus" @click="addItemHandle"></el-button>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
</el-form>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="onChose">取消</el-button>
|
|
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
|
|
</span>
|
|
|
<add-purchase v-if="addPurchaseVisible" ref="addPurchase" @addItems="addMaterialItems"/>
|
|
|
- <add-outsource v-if="addOutsourceVisible" ref="addOutsource" @addItems="addMaterialItems"/>
|
|
|
+ <add-outsource v-if="addOutsourceVisible" ref="addOutsource" @addItems="addOutsourceItems"/>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -200,7 +351,12 @@ export default {
|
|
|
addPurchaseVisible: false,
|
|
|
addOutsourceVisible: false,
|
|
|
dataForm: {},
|
|
|
+ // 合同类型: 1 采购合同;2 委外合同
|
|
|
+ contactType: 1,
|
|
|
+ // 采购物品明细
|
|
|
materialList: [],
|
|
|
+ // 委外物品明细
|
|
|
+ outsourceList: [],
|
|
|
optionsPurchaseType: [],
|
|
|
dataRule: {
|
|
|
type: [{ required: true, message: '请选择合同类别', trigger: 'change' }],
|
|
@@ -233,6 +389,7 @@ export default {
|
|
|
await getContractDetail(this.id).then(({data}) => {
|
|
|
if (data && data.code === '200') {
|
|
|
this.dataForm = data.data
|
|
|
+ this.contactType = data.data.type
|
|
|
// 附件
|
|
|
if (data.data.attachList) {
|
|
|
data.data.attachList.forEach((item) => {
|
|
@@ -243,14 +400,20 @@ export default {
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
- // 采购物品明细
|
|
|
- if (data.data.purchaseDetailList) {
|
|
|
+ if (Number(this.dataForm.type) === 1 && data.data.purchaseDetailList) {
|
|
|
+ // 采购物品明细
|
|
|
data.data.purchaseDetailList.forEach((item) => {
|
|
|
- if (!item.recordId) {
|
|
|
- item.recordId = Math.round(Math.random() * 1000000)
|
|
|
- }
|
|
|
this.materialList.push({
|
|
|
- ...item
|
|
|
+ ...item,
|
|
|
+ recordId: item.recordId || Math.round(Math.random() * 1000000)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ // 委外物品明细
|
|
|
+ data.data.purCommissionDetailList.forEach((item) => {
|
|
|
+ this.outsourceList.push({
|
|
|
+ ...item,
|
|
|
+ recordId: item.recordId || Math.round(Math.random() * 1000000)
|
|
|
})
|
|
|
})
|
|
|
}
|
|
@@ -284,13 +447,25 @@ export default {
|
|
|
// 产品明细
|
|
|
// console.log(JSON.stringify(this.materialList))
|
|
|
this.dataForm.purPurchaseContractDetailsList = []
|
|
|
- if (this.materialList) {
|
|
|
- this.materialList.forEach((item) => {
|
|
|
- this.dataForm.purPurchaseContractDetailsList.push({
|
|
|
- contractId: this.id || 0,
|
|
|
- dataId: item.purchaseDetailId
|
|
|
+ if (Number(this.contactType) === 1) {
|
|
|
+ if (this.materialList) {
|
|
|
+ this.materialList.forEach((item) => {
|
|
|
+ this.dataForm.purPurchaseContractDetailsList.push({
|
|
|
+ contractId: this.id || 0,
|
|
|
+ dataId: item.purchaseDetailId
|
|
|
+ })
|
|
|
})
|
|
|
- })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Number(this.contactType) === 2) {
|
|
|
+ if (this.outsourceList) {
|
|
|
+ this.outsourceList.forEach((item) => {
|
|
|
+ this.dataForm.purPurchaseContractDetailsList.push({
|
|
|
+ contractId: this.id || 0,
|
|
|
+ dataId: item.purComDetailId
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
this.$http({
|
|
|
url: this.$http.adornUrl(`/biz-service/purPurchaseContract/${!this.id ? 'save' : 'update'}`),
|
|
@@ -321,17 +496,18 @@ export default {
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs.addPurchase.init()
|
|
|
})
|
|
|
- } else if (Number(this.dataForm.type) === 2) {}
|
|
|
- this.addOutsourceVisible = true
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs.addOutsource.init()
|
|
|
- })
|
|
|
+ } else if (Number(this.dataForm.type) === 2) {
|
|
|
+ this.addOutsourceVisible = true
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.addOutsource.init()
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
// 删除项目
|
|
|
deleteItemHandle (recordId) {
|
|
|
- this.materialList.splice(this.materialList.findIndex((item) => item.recordId === recordId))
|
|
|
+ this.materialList.splice(this.materialList.findIndex((item) => item.recordId === recordId), 1)
|
|
|
},
|
|
|
- addItem (item) {
|
|
|
+ addPurchaseItem (item) {
|
|
|
if (!item.recordId) {
|
|
|
item.recordId = Math.round(Math.random() * 1000000)
|
|
|
}
|
|
@@ -341,6 +517,16 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
+ addOutsourceItem (item) {
|
|
|
+ if (!item.recordId) {
|
|
|
+ item.recordId = Math.round(Math.random() * 1000000)
|
|
|
+ }
|
|
|
+ if (this.outsourceList.findIndex(item1 => item1.recordId === item.recordId) === -1) {
|
|
|
+ this.outsourceList.push({
|
|
|
+ ...item
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
// 转换属性“类别”
|
|
|
formatType (row) {
|
|
|
if (this.optionsPurchaseType && row.purchaseType) {
|
|
@@ -351,15 +537,17 @@ export default {
|
|
|
addMaterialItems (items) {
|
|
|
this.materialList = []
|
|
|
items.forEach((item) => {
|
|
|
- if (Number(this.dataForm.type) === 1) {
|
|
|
- this.addItem(item)
|
|
|
- } else if (Number(this.dataForm.type) === 2) {
|
|
|
- this.addItem(item)
|
|
|
- }
|
|
|
+ this.addPurchaseItem(item)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ addOutsourceItems (items) {
|
|
|
+ this.outsourceList = []
|
|
|
+ items.forEach((item) => {
|
|
|
+ this.addOutsourceItem(item)
|
|
|
})
|
|
|
},
|
|
|
typeChanged (type) {
|
|
|
- this.materialList = []
|
|
|
+ this.contactType = type
|
|
|
}
|
|
|
}
|
|
|
}
|