<template>
|
<el-card class="card">
|
<el-col :span="12">
|
<el-form-item label="厂家代表">
|
<el-input v-model="model.acceptance.producer"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="相关附件">
|
<div class="table-between">
|
<el-input v-model="model.acceptance.file" style="width: 82%;"></el-input>
|
<el-upload
|
ref="upload"
|
style="float: left; margin: 0 12px 0 20px;"
|
:action="action"
|
:show-file-list="false"
|
:on-success="onSuccess"
|
>
|
<el-button type="primary">
|
附件上传
|
</el-button>
|
</el-upload>
|
</div>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="接收人">
|
<el-input v-model="model.acceptance.recipient"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="接受签字">
|
<el-input v-model="model.acceptance.signature"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="验收情况">
|
<el-input v-model="model.acceptance.situation"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="安装调试情况">
|
<el-input v-model="model.acceptance.installation"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="清单" prop="substanceId" required>
|
<el-select v-model="model.acceptance.substanceId" placeholder="请选择" style="width: 100%">
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.name"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="到货日期">
|
<el-date-picker
|
v-model="model.acceptance.arriveDate"
|
align="right"
|
type="date"
|
placeholder="选择日期"
|
style="width: 100%"
|
value-format="yyyy-MM-dd"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="维修单位">
|
<el-input v-model="model.acceptance.maintenanceUnit"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24">
|
<el-form-item label="备件确认">
|
<el-button type="primary" style="float: right;" @click="addSpareTable">增加行</el-button>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24">
|
<el-form-item>
|
<lims-table :tableData="model.list" :column="spareColumns" :height="'calc(100vh - 250px)'">
|
<template slot="name" slot-scope="{ row, index }">
|
<el-input v-if="row.isEdit" size="small" v-model="row.name"></el-input>
|
<span v-else>{{ row.name }}</span>
|
</template>
|
<template slot="number" slot-scope="{ row, index }">
|
<el-input v-if="row.isEdit" size="small" v-model="row.number"></el-input>
|
<span v-else>{{ row.number }}</span>
|
</template>
|
<template slot="action" slot-scope="{ row, index }">
|
<div v-if="row.isEdit">
|
<el-button type="text" @click="save(index)">保存</el-button>
|
<el-button type="text">取消</el-button>
|
</div>
|
<div v-else>
|
<el-button type="text" @click="edit(index)">修改</el-button>
|
</div>
|
</template>
|
</lims-table>
|
</el-form-item>
|
</el-col>
|
</el-card>
|
</template>
|
|
<script>
|
// import { getStandardSubstanceAll } from "@/assets/api/api";
|
import axios from 'axios';
|
import limsTable from '@/components/Table/lims-table.vue'
|
import {
|
getStandardSubstanceAll
|
} from '@/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept'
|
|
export default {
|
components: {
|
limsTable
|
},
|
props: {
|
model: {
|
type: Object,
|
default: () => {}
|
}
|
},
|
data() {
|
return {
|
spareColumns: [
|
{
|
label: "名称",
|
prop: "name",
|
align: "center",
|
dataType: "slot",
|
slot: "name",
|
}, {
|
label: "数量",
|
prop: "number",
|
align: "center",
|
dataType: "slot",
|
slot: "number",
|
}, {
|
label: "操作",
|
align: "center",
|
dataType: "slot",
|
slot: "action",
|
width: 150
|
}
|
],
|
options: []
|
}
|
},
|
computed: {
|
action() {
|
return `${this.javaApi}/personBasicInfo/saveCNASFile`
|
}
|
},
|
mounted() {
|
this.getStand()
|
},
|
methods: {
|
async getStand() {
|
getStandardSubstanceAll().then(res => {
|
this.options = res.data
|
})
|
},
|
addSpareTable() {
|
this.model.list.push({
|
acceptanceId: this.model.acceptance.id,
|
name: '',
|
number: '',
|
isEdit: true
|
})
|
},
|
onSuccess(response) {
|
this.model.acceptance.file = response.data
|
this.$emit('update:model', this.model)
|
},
|
save(index) {
|
this.model.list[index].isEdit = false
|
this.$emit('update:model', this.model)
|
},
|
edit(index) {
|
this.model.list[index].isEdit = true
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.card {
|
margin-top: 1em;
|
height: 56vh;
|
overflow-y: scroll;
|
}
|
.table-between {
|
display: flex;
|
justify-content: space-between;
|
}
|
</style>
|