Commit 70316fa7 authored by zhanglw's avatar zhanglw

产品列表

parent 54cd76aa
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<el-select v-model="query.status" clearable placeholder="请选择状态" style="width: 120px"> <el-select v-model="query.status" clearable placeholder="请选择状态" style="width: 120px">
<el-option v-for="item in dict.custom_status" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in dict.custom_status" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
<date-range-picker v-model="query.createTime" start-placeholder="开始日期(注册)" style="width: 280px" /> <date-range-picker v-model="query.createTime" start-placeholder="注册开始日期" style="width: 280px" />
<el-button type="success" icon="el-icon-search" @click="toSearch">搜索</el-button> <el-button type="success" icon="el-icon-search" @click="toSearch">搜索</el-button>
<el-button type="warning" icon="el-icon-refresh" @click="clearLimit">重置</el-button> <el-button type="warning" icon="el-icon-refresh" @click="clearLimit">重置</el-button>
</div> </div>
...@@ -21,14 +21,15 @@ ...@@ -21,14 +21,15 @@
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="toAdd">添加客户</el-button> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="toAdd">添加客户</el-button>
</div> </div>
<div style="text-align: right"> <div style="text-align: right">
<el-button type="danger" icon="el-icon-help" @click="batchOperate(0)">批量锁定</el-button> <el-button type="success" icon="el-icon-finished" :disabled="!multipleSelection.length" @click="batchOperate(1)">批量激活</el-button>
<el-button type="success" icon="el-icon-finished" @click="batchOperate(1)">批量激活</el-button> <el-button type="danger" icon="el-icon-help" :disabled="!multipleSelection.length" @click="batchOperate(0)">批量锁定</el-button>
</div> </div>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="content"> <div class="content">
<el-table id="dataTable" ref="dataTable" v-loading="loading" :data="tableData" tooltip-effect="dark" style="width:auto;min-height: 70vh" @selection-change="handleSelectionChange"> <el-table id="dataTable" ref="dataTable" v-loading="loading" :data="tableData" tooltip-effect="dark" style="width:auto;min-height: 70vh" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column type="index" width="55" label="序号" :index="indexMethod" />
<el-table-column prop="username" label="用户名" /> <el-table-column prop="username" label="用户名" />
<el-table-column prop="area" label="区域" /> <el-table-column prop="area" label="区域" />
<el-table-column prop="xxx" label="企业名称" /> <el-table-column prop="xxx" label="企业名称" />
...@@ -41,15 +42,15 @@ ...@@ -41,15 +42,15 @@
</el-table-column> </el-table-column>
<el-table-column label="锁定/激活" align="center" width="100"> <el-table-column label="锁定/激活" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.enabled" :disabled="scope.row.status>2" active-color="#409EFF" inactive-color="#F56C6C" @change="changeEnabled(scope.row, scope.row.enabled)" /> <el-switch v-model="scope.row.enabled" :disabled="scope.row.status>2" active-color="#13ce66" inactive-color="#F56C6C" @change="changeEnabled(scope.row, scope.row.enabled)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="xxx" label="注册时间" align="center" width="100" /> <el-table-column prop="xxx" label="注册时间" align="center" width="100" />
<el-table-column prop="xxx" label="操作" align="center" width="200"> <el-table-column prop="xxx" label="操作" align="right" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="编辑"><el-button round plain type="primary" icon="el-icon-edit-outline" @click="toEdit(scope.row)" /></el-tooltip> <el-tooltip content="编辑"><el-button round plain type="primary" icon="el-icon-edit-outline" @click="toEdit(scope.row)" /></el-tooltip>
<el-tooltip content="审核"><el-button round plain type="warning" icon="el-icon-s-check" @click="toEdit(scope.row)" /></el-tooltip>
<el-tooltip content="查看"><el-button round plain icon="el-icon-view" @click="toEdit(scope.row)" /></el-tooltip> <el-tooltip content="查看"><el-button round plain icon="el-icon-view" @click="toEdit(scope.row)" /></el-tooltip>
<el-tooltip content="审核"><el-button round plain type="danger" icon="el-icon-s-check" @click="toEdit(scope.row)" /></el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -85,6 +86,9 @@ export default { ...@@ -85,6 +86,9 @@ export default {
}) })
}, },
methods: { methods: {
indexMethod(index) {
return 1 + index + this.page * this.pageSize - this.pageSize
},
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val this.multipleSelection = val
}, },
......
This diff is collapsed.
<template> <template>
<div style="padding:30px;"> <div class="app-container">
<el-alert :closable="false" title="预留" type="success" /> <!--工具栏-->
<div class="head-container">
<el-input v-model="query.username" clearable placeholder="请输入产品ID" style="width:150px;" />
<el-input v-model="query.username" clearable placeholder="请输入产品名称" style="width:280px;" />
<el-select v-model="query.area" clearable placeholder="请选择分类" style="width: 150px">
<el-option v-for="item in dict.product_type" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="query.status" clearable placeholder="请选择状态" style="width: 150px">
<el-option v-for="item in dict.product_status" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<date-range-picker v-model="query.createTime" start-placeholder="最后维护开始日期" style="width: 320px" />
<el-button type="success" icon="el-icon-search" @click="toSearch">搜索</el-button>
<el-button type="warning" icon="el-icon-refresh" @click="clearLimit">重置</el-button>
</div>
<div class="toolbar">
<div>
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="toAdd">新增产品</el-button>
</div>
<div style="text-align: right">
<el-button type="success" icon="el-icon-finished" :disabled="!multipleSelection.length" @click="batchOperate(1)">批量发布</el-button>
<el-button type="danger" icon="el-icon-download" :disabled="!multipleSelection.length" @click="batchOperate(0)">批量下架</el-button>
</div>
</div>
<!-- 表格 -->
<div class="content">
<el-table id="dataTable" ref="dataTable" v-loading="loading" :data="tableData" tooltip-effect="dark" style="width:auto;min-height: 70vh" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column type="index" width="55" label="序号" :index="indexMethod" />
<el-table-column prop="username" label="产品ID" width="140" />
<el-table-column prop="area" label="产品分类" />
<el-table-column prop="xxx" label="产品名称" />
<el-table-column label="状态" width="100">
<template slot-scope="scope">
<div :style="'color:'+textColors[scope.row.status]">{{ dict.label.product_status[scope.row.status] }}</div>
</template>
</el-table-column>
<el-table-column prop="xxx" label="最后维护日期" align="center" width="100" />
<el-table-column prop="xxx" label="操作" align="right" width="200">
<template slot-scope="scope">
<el-tooltip v-show="scope.row.status==3" content="审核"><el-button round plain type="warning" icon="el-icon-s-check" @click="toEdit(scope.row)" /></el-tooltip>
<el-tooltip v-show="scope.row.status==4" content="发布"><el-button round plain type="success" icon="el-icon-finished" @click="toEdit(scope.row)" /></el-tooltip>
<el-tooltip v-show="scope.row.status==5" content="下架"><el-button round plain type="danger" icon="el-icon-download" @click="toEdit(scope.row)" /></el-tooltip>
<el-tooltip v-show="scope.row.status>=4" content="编辑"><el-button round plain type="primary" icon="el-icon-edit-outline" @click="toEdit(scope.row)" /></el-tooltip>
<el-tooltip content="查看"><el-button round plain icon="el-icon-view" @click="toEdit(scope.row)" /></el-tooltip>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination :total="total" :current-page="page" :page-size="pageSize" style="margin-top: 8px;" layout="total, prev, pager, next, sizes" @size-change="sizeChange" @current-change="pageChange" />
</div>
<add-view ref="addView" />
</div> </div>
</template> </template>
<script>
import DateRangePicker from '@/components/DateRangePicker'
import AddView from './add'
export default {
components: { DateRangePicker, AddView },
dicts: ['product_type', 'product_status'],
data() {
return {
textColors: ['#ccc', '#000', '#f00', '#000',
'#000', '#32cd32', '#bba'],
loading: false,
page: 1,
pageSize: 20,
total: 0,
query: {},
tableData: [],
currentTime: '',
multipleSelection: []
}
},
mounted() {
this.currentTimeFn()
this.$nextTick(() => {
this.loadData()
})
},
methods: {
indexMethod(index) {
return 1 + index + this.page * this.pageSize - this.pageSize
},
handleSelectionChange(val) {
this.multipleSelection = val
},
loadData() {
var sort = 'id,desc'
var param = { ...this.query }
param.page = this.page
param.pageSize = this.pageSize
param.sort = sort
this.tableData = [
{ username: '张三', area: '火星', status: 2, enabled: false, xxx: '2023-05-09' },
{ username: '张三', area: '火星', status: 3, enabled: false, xxx: '2023-05-09' },
{ username: '张三', area: '火星', status: 4, enabled: false, xxx: '2023-05-09' },
{ username: '李四', area: '地球', status: 5, enabled: true, xxx: '2023-05-09' },
{ username: '张三', area: '火星', status: 6, enabled: false, xxx: '2023-05-09' }
]
this.total = 2
},
batchOperate(opt) {
if (!this.multipleSelection.length) {
return this.$message({
message: '未选取数据',
type: 'info'
})
}
if (opt) {
console.log('启用', this.multipleSelection)
} else {
console.log('启用', this.multipleSelection)
}
},
changeEnabled(data, val) {
this.$confirm('此操作将 "' + this.dict.label.user_status[val] + '" ' + data.username + ', 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
}).catch(() => {
data.enabled = !data.enabled
})
},
toAdd() {
this.$refs.addView.showView()
},
toEdit(item) {
},
toSearch() {
this.page = 1
this.loadData()
},
clearLimit() {
this.query = {}
this.currentTimeFn()
this.loadData()
},
pageChange(e) {
this.page = e
this.loadData()
},
sizeChange(e) {
this.page = 1
this.pageSize = e
this.loadData()
},
currentTimeFn() {
var date = new Date()
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDate()
if (month >= 1 && month <= 9) {
month = '0' + month
}
if (day >= 0 && day <= 9) {
day = '0' + day
}
this.currentTime = year + '-' + month + '-' + day
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.toolbar {
display: flex;
justify-content: space-between;
}
.content {
margin-top: 15px;
overflow: auto;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment