Plat Admin

compProduct.vue 6.7KB

    <template> <div class="app-container"> <div class="box-container"> <div class="contain-title">企业产品</div> <div class="contian-operate" v-if="companyId"> <el-button type="primary" @click="addProductInfo">发布产品</el-button> </div> </div> <div class="content-container"> <div class="select-box" v-if="!companyId"> <p>请选择需要查看的企业</p> <el-select v-model="selectComp" filterable remote maxlength="50" placeholder="搜索企业名称" :remote-method="remoteCompName" :loading="selectLoading" suffix-icon="el-icon-search" @change="compChanged"> <el-option v-for="item in compOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> <div v-else> <div class="lit-tit">{{companyName}}</div> <el-table :data="tableData" height="600" v-loading="tableLoading" border> <el-table-column v-for="item in tableItem" :key="item.index" :prop="item.prop ? item.prop : ''" :label="item.tit ? item.tit : ''" :width="item.width ? item.width : ''" align="center"> <template slot-scope="scope"> <div v-if="scope.row[item.prop]"> <el-button type="text" v-if="item.link"><a :href="queryDetailShow(scope.row.id)" target="_blank">{{scope.row[item.prop]}}</a></el-button> <span v-else>{{scope.row[item.prop]}}</span> </div> <div class="operate-row" v-if="item.operate && typeof scope.row === 'object'"> <el-button size="medium" type="primary" @click="handelEdit(scope.row)">修改</el-button> <el-button size="medium" type="danger" @click="handelDel(scope.row.id)">删除</el-button> </div> </template> </el-table-column> </el-table> <div class="pagination-container"> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper" :total="total"> </el-pagination> </div> </div> </div> </div> </template> <script> import { queryCompanyOne, queryCompName, pageProduct, delProduct } from '@/api/companyCen' import { urlParse, parseTime, xtUrl } from '@/utils' import comTable from '@/utils/comTable' export default { data() { return { companyId: '', companyName: '', selectComp: '', compOptions: [], selectLoading: false, pageSize: 10, pageNo: 1, total: 0, tableData: [], tableLoading: true, tableItem: [ { prop: 'name', tit: '产品名称', link: true }, { prop: 'spec', tit: '厂商型号' }, { prop: 'createTime', tit: '创建时间', width: '160' }, { operate: true, width: '200' } ] } }, created() { if (urlParse('cid')) { this.companyId = urlParse('cid') this.getCompanyInfo() this.pageQuery() } }, methods: { getCompanyInfo() { var that = this that.$http.get(queryCompanyOne, { id: that.companyId }, function(res) { if (res.success) { that.companyName = res.data.name } }) }, pageQuery() { var that = this this.$http.get(pageProduct, { companyId: that.companyId, pageSize: that.pageSize, pageNo: that.pageNo }, function(res) { that.tableLoading = false if (res.success && res.data) { const obj = res.data.data if (obj.length > 0) { for (let i = 0; i < obj.length; ++i) { if (obj[i].createTime) { obj[i].createTime = parseTime(obj[i].createTime) } } that.total = res.data.total that.tableData = obj comTable.gapFilling(that.tableData) } else { that.pageNo = 1 that.total = 0 that.tableData = [] } } else { that.pageNo = 1 that.total = 0 that.tableData = [] } }) }, addProductInfo() { this.$router.push({ name: 'productInfo', query: { cid: this.companyId } }) }, handelEdit(row) { this.$router.push({ name: 'productInfo', query: { id: row.id, cid: row.companyId } }) }, handelDel(id) { var that = this that.$confirm(`确认删除该产品?`, '提示信息', { type: 'warning', center: true }).then(() => { that.$http.post(delProduct, { id: id }, function(res) { if (res.success) { if (res.data) { that.pageNo = 1 that.total = 0 that.tableData = [] this.pageQuery() } else { that.$message({ type: 'warning', message: '该产品删除失败,请重试' }) } } }) }) }, remoteCompName(query) { var that = this if (query !== '') { that.selectLoading = true that.$http.get(queryCompName, { name: query, size: 5 }, function(res) { that.selectLoading = false if (res.success && res.data) { const obj = res.data that.compOptions = obj.map(item => { return { value: item.id, label: item.name } }) } else { that.compOptions = [] } }) } else { that.compOptions = [] } }, compChanged(val) { this.$router.push({ name: 'compProduct', query: { cid: val } }) }, handleCurrentChange(val) { this.pageNo = val this.pageQuery() }, queryDetailShow(id) { return xtUrl + '/product.html?id=' + id } } } </script> <style rel="stylesheet/scss" lang="scss"> .select-box{ width:350px; margin: 15% auto 22%; p{ font-size: 20px; font-weight: bold; line-height: 40px; text-align: center; } } .lit-tit{ font-size: 17px; line-height: 30px; margin-bottom: 10px; } </style>