积分商城后台管理
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.

152 lines
4.1 KiB

1 year ago
<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>
1 year ago
<script>
import productApi from '@/api/product/productAttr.js'
1 year ago
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': ''
1 year ago
}
}
}
},
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()
1 year ago
},
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
1 year ago
}
}))
1 year ago
},
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()
1 year ago
}
})
1 year ago
},
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')
1 year ago
},
init() {
// this.getByPage();
1 year ago
// if (this.selectAttrId && this.selectAttrId.indexOf("/") !== -1) {
// this.page.params.typeId = this.selectAttrId.split("/")[0] || "";
// this.getByPage();
// } else {
// this.$message.warning("初始化出错")
// }
1 year ago
}
}
1 year ago
}
</script>
<style></style>