1.父组件模板
<template>
<div class="productupcmanage">
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
<el-form-item>
<el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-select v-model="queryParams.whetherAvailable" placeholder="--是否已使用--">
<el-option v-for="item in whetherAvailables" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="UPC" prop="UPC">
<el-input v-model="queryParams.upcCode" placeholder="请输入产品sku" clearable size="small"
@keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-select v-model="queryParams.availableSourceChannel" placeholder="--可使用来源渠道--">
<el-option v-for="item in sources" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-select v-model="queryParams.afterUseSourceChannel" placeholder="--使用后来源渠道(亚马逊平台)--">
<el-option v-for="item in sources" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
//父子传值按钮演示
<el-button type="primary" icon="el-icon-setting" size="mini" @click="SetState">设置使用状态</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading " style="margin-top: 25px; " stripe :data="productList "
@selection-change="handleSelectionChange " :default-sort="{prop: 'date', order: 'descending'} ">
<el-table-column type="selection" width="50" align="center"/>
<el-table-column label="ID" align="center " prop="id" width="80 "/>
<el-table-column label="UPC" align="center " prop="upcCode" width="150 "/>
<el-table-column label="是否可用" align="center " prop="whetherAvailable" width="200 " :formatter="OrNot"/>
<el-table-column label="可使用来源渠道" align="center " prop="availableSourceChannel" width="180"
:formatter="BeforeUsing"/>
<el-table-column label="使用后来源渠道(亚马逊平台) " align="center " prop="afterUseSourceChannel" width="200 "
:formatter="AfterUsing"/>
<el-table-column label="添加时间" align="center " prop="createTime" width="160 "/>
<el-table-column label="使用时间" align="center " prop="useTime" width="160 "/>
<el-table-column label="操作人员" align="center " prop="createBy" width="180 "/>
<el-table-column label="备注" align="center " prop="remark" width="210 "/>
<el-table-column label="使用日志" align="center " prop="useJournal" width="150 "/>
</el-table>
<setStatus v-if="setStatusVisible" ref="setStatus" @refreshDataList="getListll"/>
<el-dialog :title="title " :visible.sync="OpenLoad">
</el-dialog>
</div>
</template>
<script>
import setStatus from './setStatus-dialog'
import { getToken } from '@/utils/auth'
import { GetUpcList, UpcImport, UpcExport } from '@/api/sku/productupcmanage'
import { sourceSelect } from '@/api/system/select'
export default {
components: {
setStatus
},
data() {
return {
fatherseller: {
id: '',
state: '',
source: '',
Ids: []
},
UpLoad: process.env.VUE_APP_BASE_API + '/product/productUpcManage/importExcel',
headers: {
Authorization: 'Bearer ' + getToken()
},
open: false,
title: '',
ids: [],
single: true,
multiple: true,
sources: '',
dateRange: [],
whetherAvailables: '',
productList: [],
queryParams: {
afterUseSourceChannel: '',
availableSourceChannel: '',
beginTime: '',
endTime: '',
pageNum: '',
pageSize: '',
upcCode: '',
whetherAvailable: ''
},
setStatusVisible: false,
OpenLoad: false
}
},
created() {
this.getList()
sourceSelect().then(res => {
this.sources = res.data
})
this.getDicts('sys_zero_one').then(response => {
this.whetherAvailables = response.data
})
},
methods: {
getList() {
this.loading = false
GetUpcList(this.queryParams).then(response => {
this.productList = response.rows
this.total = response.total
})
},
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
SetState() {
this.setStatusVisible = true
this.$nextTick(() => {
this.$refs.setStatus.date = '1'
this.$refs.setStatus.init()
})
},
getListll(value) {
console.log('接收子组件值:' + value)
},
SearchTime(dateRange) {
if (null != dateRange && '' != dateRange) {
this.queryParams.beginTime = dateRange[0]
this.queryParams.endTime = dateRange[1]
}
},
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
OrNot(row) {
return this.selectDictLabel(this.whetherAvailables, row.whetherAvailable)
},
BeforeUsing(row) {
return this.selectLabel(this.sources, row.availableSourceChannel)
},
AfterUsing(row) {
return this.selectLabel(this.sources, row.afterUseSourceChannel)
},
ExportUpc() {
if (this.ids == 0) {
this.$confirm('请选择产品', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
} else {
const queryParams = this.queryParams
this.$confirm('是否确认导出所有产品基础数据数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(function() {
return UpcExport(queryParams)
})
.then(response => {
this.download(response.msg)
})
.catch(error => {
alert(error)
})
}
},
handleChange(file, fileList) {
this.fileList = fileList.slice(-3)
},
EditSource() {
if (this.ids == 0) {
this.$confirm('请选择产品', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
} else {
GetUpcList(this.ids).then(response => {
this.fatherseller.id = response.rows.id
this.open = true
this.title = '修改可使用来源'
this.fatherseller.source = 1
})
}
},
ImportUpc() {
},
fatherMethod() {
this.open = false
this.getList()
}
}
}
</script>
2.子组件演示
<template>
<el-dialog :visible="visible" width="70%" title="产品访客记录" @close="visible = false">
<div class="popup">
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
<el-select v-model="queryParams.whetherAvailable" placeholder="--是否已使用--">
<el-option v-for="item in whetherAvailables" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
<el-button type="success" @click="submitForm">成功按钮</el-button>
</el-form>
</div>
</el-dialog>
</template>
<script>
import { GetUpcList, UpcImport, UpcExport, BulkChanges, BulkEdit } from '@/api/sku/productupcmanage'
import { sourceSelect } from '@/api/system/select'
export default {
props: {
childseller: Object,
fatherMethod: {
type: Function,
default: null
}
},
data() {
return {
states: '',
sources: '',
whetherAvailables: '',
date: '',
visible: false,
queryParams: {
ids: [],
availableSourceChannel: '',
whetherAvailable: ''
}
}
},
created() {
this.getDicts('sys_zero_one').then(response => {
this.whetherAvailables = response.data
})
sourceSelect().then(res => {
this.sources = res.data
})
},
methods: {
init() {
console.log('接收父组件值:' + this.date)
this.visible = true
},
OrNot(row) {
return this.selectDictLabel(this.whetherAvailables, row.whetherAvailable)
},
AfterUsing(row) {
return this.selectLabel(this.sources, row.afterUseSourceChannel)
},
submitForm() {
this.visible = false
this.$emit('refreshDataList','1')
},
cese() {
if (this.fatherMethod) {
this.fatherMethod()
}
}
}
}
</script>