123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- <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>
|