前言
大家好 我是歌谣 今天继续给大家带来代码的解读
首先 已知页面的组件为
<release-embryos-dialog ref="releaseEmbryosRef" @ok="searchChange" @close="refreshChange"/>
明细和新增出发不同的方法
handleCreated () {
this.$refs.releaseEmbryosRef.init(1)
},
// 明细
handleRow (row) {
this.$refs.releaseEmbryosRef.init(2, row)
}
看到这一步还是很妙啊 自己不会用
来到组件内部 不同的数据对应不同的初始化操作
init (type, row) {
this.type = type
this.visible = true
if (type === 1) {
this.tableOption = tableDetailOption
this.title = `创建毛坯发出单`
this.tableData = []
this.$nextTick( () => {
this.$refs.form.resetForm()
})
}
if (type === 2) {
this.tableOption = tableDetailOptionLook
this.detail = row
this.title = `毛坯发出单详情`
this.getDetailList()
}
},
页面的主体逻辑也是不一样的 是通过判断走出来的
<avue-form ref="form" v-model="form" :option="formDetailOption" @submit="submit" v-if="type === 1">
<template slot-scope="scope" slot="groupNo">
<el-input v-model="form.groupNo" @keyup.enter.native="handleSearchInfo" placeholder="扫码或者直接进行输入组批号"/>
</template>
<template slot="menuForm">
<el-button type="primary" @click="handleAddItem">新增</el-button>
<el-button @click="handleReset">重置</el-button>
</template>
</avue-form>
<el-descriptions title="" v-if="type === 2">
<el-descriptions-item label="毛坯发出单编号">{{ detail.inventoryNo }}</el-descriptions-item>
<el-descriptions-item label="申请日期">{{ detail.createTime }}</el-descriptions-item>
<el-descriptions-item label="申请人">{{ detail.createBy }}</el-descriptions-item>
</el-descriptions>
<avue-crud
class="avue-affixed avue-new-table hide-menu-header"
ref="crud"
:option="tableOption"
:table-loading="listLoading"
:data="tableData"
>
<template slot-scope="scope" slot="returnTotalQty">
<div v-if="type === 2">{{ scope.row.returnTotalQty }}</div>
<el-input v-else type="number" placeholder="回厂总数量" v-model="scope.row.returnTotalQty"></el-input>
</template>
<template slot-scope="scope" slot="returnDetails">
<div v-if="type === 2">{{ scope.row.returnDetails }}</div>
<el-input v-else placeholder="回厂详情" v-model="scope.row.returnDetails"></el-input>
</template>
<template slot-scope="scope" slot="blankDeliveryDate">
<div v-if="type === 2">{{ scope.row.blankDeliveryDate }}</div>
<el-date-picker v-else v-model="scope.row.blankDeliveryDate" value-format="yyyy-MM-dd" placeholder="发出日期"></el-date-picker>
</template>
<template slot-scope="scope" slot="totalQtyIssued">
<div v-if="type === 2">{{ scope.row.totalQtyIssued }}</div>
<el-input v-else type="number" placeholder="发出总数量" v-model="scope.row.totalQtyIssued"></el-input>
</template>
<template slot-scope="scope" slot="blankOutboundWeight">
<div v-if="type === 2">{{ scope.row.blankOutboundWeight }}</div>
<el-input v-else type="number" placeholder="发出总重量" v-model="scope.row.blankOutboundWeight"></el-input>
</template>
<template slot-scope="scope" slot="detailedDeliveryInBatches">
<div v-if="type === 2">{{ scope.row.detailedDeliveryInBatches }}</div>
<el-input v-else placeholder="分次发出详细" v-model="scope.row.detailedDeliveryInBatches"></el-input>
</template>
<template slot-scope="scope" slot="menu">
<table-column-btns :btns="tableBtns" :scope="scope"></table-column-btns>
</template>
</avue-crud>
走到这一步 就是更加的nice了 思维十个好东西 这个东西很常规 但是自己为什么不这样写 好好想一想吧 why