You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
4.1 KiB
151 lines
4.1 KiB
<template> |
|
<div> |
|
<el-form ref="artFrom" :model="page" label-width="80px" label-position="right" class="tabform" |
|
@submit.native.prevent inline> |
|
<el-form-item label="输入搜索"> |
|
<el-input clearable v-model="page.params.siteName" placeholder="请输入油站名称" |
|
class="form_content_width"></el-input> |
|
</el-form-item> |
|
<el-form-item> |
|
<el-button type="primary" @click="userSearchs">查询</el-button> |
|
<el-button type="primary" @click="submit">确定选择</el-button> |
|
</el-form-item> |
|
</el-form> |
|
<el-table max-height="500" @selection-change="selectionChange" v-loading="loading" ref="table" :data="tableList" |
|
:row-key="(row) => row.siteId" highlight-current-row empty-text="暂无数据" class="mt14"> |
|
<el-table-column type="selection" reserve-selection width="55"> |
|
</el-table-column> |
|
<el-table-column label="油站名称" prop="siteName"></el-table-column> |
|
<el-table-column label="渠道" prop="channel"></el-table-column> |
|
</el-table> |
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" |
|
:current-page="page.currentPage" :page-sizes="[10, 15, 20, 30]" :page-size="page.pageSize" |
|
layout="total, sizes, prev, pager, next, jumper" :total="page.totalCount" /> |
|
</div> |
|
</template> |
|
<script> |
|
import productApi from '@/api/product/productAttr.js' |
|
|
|
export default { |
|
name: 'OilStationSelection', |
|
props: { |
|
OilStationSelectionList: { |
|
type: Array, |
|
default: () => [] |
|
}, |
|
selectAttrId: { |
|
type: String, |
|
default: () => '' |
|
} |
|
}, |
|
data() { |
|
return { |
|
selectionList: [], |
|
loading: false, |
|
tableList: [], |
|
page: { |
|
'currentPage': 1, |
|
'pageSize': 10, |
|
'totalCount': 0, |
|
'params': { |
|
'siteName': '' |
|
} |
|
} |
|
} |
|
}, |
|
watch: { |
|
OilStationSelectionList: { |
|
handler(n, o) { |
|
this.$refs.table.clearSelection() |
|
n.forEach(element => { |
|
this.$refs.table.toggleRowSelection(element) |
|
}) |
|
}, |
|
deep: true |
|
} |
|
}, |
|
created() { |
|
this.init() |
|
}, |
|
methods: { |
|
submit() { |
|
this.$emit('submit', this.getSelectionList()) |
|
}, |
|
getSelectionList() { |
|
return this.selectionList |
|
}, |
|
selectionChange(e) { |
|
this.selectionList = e |
|
}, |
|
userSearchs() { |
|
this.getByPage() |
|
}, |
|
isStrictPromise(value) { |
|
return !!value |
|
&& typeof value === 'object' |
|
&& typeof value.then === 'function' |
|
&& typeof value.finally === 'function' |
|
}, |
|
loadingFn(callback) { |
|
this.loading = true |
|
if (this.isStrictPromise(callback)) { |
|
callback.finally(() => { |
|
this.loading = false |
|
}) |
|
} |
|
|
|
}, |
|
getByPage() { |
|
this.loadingFn(productApi.getAllSites(this.page).then(res => { |
|
if (res.code === 20000) { |
|
this.tableList = res.data.list |
|
this.page.totalCount = parseInt(res.data.totalCount) |
|
|
|
} else { |
|
this.tableList = [] |
|
this.page.totalCount = 0 |
|
} |
|
})) |
|
}, |
|
handleCurrentChange(val) { |
|
this.page.currentPage = val |
|
this.getByPage() |
|
}, |
|
handleSizeChange(val) { |
|
this.page.pageSize = val |
|
this.getByPage() |
|
}, |
|
del(e) { |
|
productApi.delete(e).then(res => { |
|
if (res.code == 20000) { |
|
this.$message.success('操作成功') |
|
this.handleCurrentChange() |
|
} |
|
}) |
|
}, |
|
edit(row) { |
|
let data = Object.assign({}, row, { |
|
name: this.selectAttrId.split('/')[1] || '', |
|
spec: [{ |
|
value: row.attributeName, |
|
detail: row.attributeContent.split(',') |
|
}] |
|
}) |
|
this.$parent.$parent.selection = [data] |
|
this.$parent.$parent.addAttr('typeUpdate') |
|
}, |
|
init() { |
|
// this.getByPage(); |
|
|
|
// if (this.selectAttrId && this.selectAttrId.indexOf("/") !== -1) { |
|
// this.page.params.typeId = this.selectAttrId.split("/")[0] || ""; |
|
// this.getByPage(); |
|
// } else { |
|
// this.$message.warning("初始化出错") |
|
// } |
|
} |
|
} |
|
} |
|
</script> |
|
|
|
<style></style>
|
|
|