123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- <template>
- <div class="wrapper">
- <el-tabs v-model="searchForm.type" @tab-click="handleClick">
- <el-tab-pane :label="'上架('+type1Count+')'" name="1"></el-tab-pane>
- <el-tab-pane :label="'下架('+type2Count+')'" name="2"></el-tab-pane>
- <el-tab-pane :label="'审核列表('+type3Count+')'" name="3"></el-tab-pane>
- </el-tabs>
- <div class="serach flex row space-between">
- <el-button class="blackbtn" icon="el-icon-plus" @click="addGoods">新增商品</el-button>
- <div class="flex row">
- <el-input v-model="searchForm.searchName" placeholder="请输入商品名称/ID" clearable></el-input>
- <el-button class="btn_search blackbtn" icon="el-icon-search" @click="search">查询</el-button>
- </div>
- </div>
- <e-table class="table" ref="eTable" :tableHeadConfig="tableHeadConfig" :tableLoadData="tableLoadData"
- :pageShow="true" :total="searchForm.total" :currentPage="searchForm.page" :pageSize="searchForm.pageSize"
- @getPageList="getPageList" @changeSort="changeSort">
- <template v-slot:operation="slotData">
- <div class="operationDiv">
- <el-button type="text" @click="toEdit(slotData.data.row)" v-if="searchForm.type!='3'">
- {{searchForm.type=='1'?'下架':'上架'}}</el-button>
- <el-button type="text" @click="toView(slotData.data.row)">查看</el-button>
- <el-button type="text" @click="copy(slotData.data.row)">复制</el-button>
- </div>
- </template>
- </e-table>
- </div>
- </template>
- <script>
- import eTable from '@/components/base-table'
- import {
- list,
- changeStatus,
- getCountByType,
- detail,
- authDetail
- } from '@/api/goods'
- import store from '@/store/index'
- export default {
- name: "goods",
- components: {
- eTable
- },
- data() {
- return {
- type1Count: 0,
- type2Count: 0,
- type3Count: 0,
- searchForm: {
- searchName: '',
- total: 0,
- page: 1,
- pageSize: 10,
- type: '1',
- sortField: '',
- sortOrder: ''
- },
- tableHeadConfig: [{
- label: '商品名称',
- prop: 'title',
- isShow: true,
- },
- {
- label: '商品ID',
- prop: 'out_product_id',
- isShow: true,
- },
- {
- label: '价格',
- prop: 'sale_price',
- isShow: true,
- sortable: true,
- width: 120,
- },
- {
- label: '库存',
- prop: 'stock_num',
- isShow: true,
- sortable: true,
- width: 120,
- },
- {
- label: '审核状态',
- prop: 'status_name',
- isShow: true,
- },
- {
- label: '创建时间',
- prop: 'create_time',
- isShow: true,
- sortable: true
- },
- {
- label: '上架时间',
- prop: 'stand_down_time',
- isShow: true,
- },
- {
- label: '操作',
- columnType: 'operation',
- slotName: 'operation',
- width: 200,
- isShow: true,
- }
- ],
- tableLoadData: [],
- };
- },
- created() {},
- methods: {
- getPageList(pageRequest) {
- if (pageRequest) {
- this.searchForm.page = pageRequest.pageIndex;
- this.searchForm.pageSize = pageRequest.pageSize;
- this.searchForm.sortField=''
- this.searchForm.sortOrder =''
- if(pageRequest.order){
- this.searchForm.sortField = pageRequest.sort;
- this.searchForm.sortOrder = pageRequest.order
- }
- }
- list(this.searchForm).then(res => {
- this.searchForm.total = res.data.totalCount
- this.tableLoadData = res.data.list
- })
- this.getCount()
- },
- addGoods() { // 新增商品
- this.$router.push({
- name: "addGoods",
- params: {
- isNew:true
- }
- });
- },
- handleClick(tab, event) {
- if(this.searchForm.type==1){
- this.tableHeadConfig[6].isShow=true
- this.tableHeadConfig[6].label='上架时间'
- }else if(this.searchForm.type==2){
- this.tableHeadConfig[6].isShow=true
- this.tableHeadConfig[6].label='下架时间'
- }else{
- this.tableHeadConfig[6].isShow=false
- }
- this.searchForm.searchName = ''
- this.searchForm.page = 1
- this.getPageList()
- },
- copy(row) {
- if(this.searchForm.type==1 || this.searchForm.type==2){
- detail({outProductId: row.out_product_id}).then(res => {
- this.copyToAdd(res)
- })
- }else{
- authDetail({outProductId: row.out_product_id}).then(res => {
- this.copyToAdd(res)
- })
- }
- },
- copyToAdd(res) {
- let params = {}
- params.commodity_id = res.data.commodity_id
- params.title = res.data.title
- params.out_product_id = res.data?.auditInfo?.out_product_id
- params.brand_id=res.data.has_brand==0?'-1':res.data.has_brand
- params.third=res.data.third_cat_audit==0?res.data.third_cat_id:''
- params.stock_num = res.data.stock_num
- params.sale_price = res.data.sale_price
- params.market_price = res.data.market_price
- params.path = res.data.path
- params.third_cat_id =res.data.third_cat_audit==0?'-1':res.data.third_cat_id
- params.goodsList = [{url: res.data.thumb_img}]
- params.goodszizhiList = []
- if (res.data.qualificationImgs.length > 0) {
- res.data.qualificationImgs.forEach(element => {
- params.goodszizhiList.push({
- url: element
- })
- });
- }
- this.$router.push({
- name: "addGoods",
- params: {
- isNew: true,
- data:JSON.stringify(params)
- }
- });
- },
- toView(row) {
- this.$router.push({
- name: "goodsDetail",
- params: {
- outProductId: row.out_product_id
- }
- });
- },
- toEdit(row) {
- this.$confirm('确定' + (this.searchForm.type == '1' ? '下架?' : '上架?'), '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- changeStatus({
- commodityId: row.commodity_id,
- editStatus: this.searchForm.type == '1' ? 11 : 5
- }).then(res => {
- this.$message.success((this.searchForm.type == '1' ? '下架' : '上架') + '成功');
- this.searchForm.searchName = ''
- this.searchForm.page = 1
- this.getPageList()
- })
- }).catch(() => {});
- },
- search() {
- this.searchForm.page = 1
- this.getPageList()
- },
- getCount() {
- getCountByType().then(res => {
- res.data.forEach(element => {
- if (element.type == 1) {
- this.type1Count = element.count
- }
- if (element.type == 2) {
- this.type2Count = element.count
- }
- if (element.type == 3) {
- this.type3Count = element.count
- }
- });
- })
- },
- initPage(){
- if(this.$route.params.checking){
- this.searchForm.type='3'
- this.getPageList()
- }
- }
- },
- activated() {
- this.getPageList()
- this.initPage()
- },
- mounted() {
- }
- };
- </script>
- <style lang="less" scoped>
- .wrapper{
- .btn_search {
- width: 150px;
- margin-left: 10px;
- }
- .serach {
- width: 100%;
- margin-bottom: 10px;
- }
- }
- </style>
|