index.vue 3.86 KB
Newer Older
张成 committed
1 2 3 4
<template>
	<el-dialog title="选择商品" :visible.sync="open" width="1000px" append-to-body>
		<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
			label-width="68px">
5 6
			<el-form-item label="商品名称" prop="goodsName">
				<el-input v-model="queryParams.goodsName" placeholder="请输入商品名称" clearable
张成 committed
7 8 9 10 11 12 13 14 15 16 17 18 19
					@keyup.enter.native="handleQuery" />
			</el-form-item>
			<el-form-item label="分类" prop="category">
				<SelectCategory v-model="queryParams.category" placeholder="分类" />
			</el-form-item>
			<el-form-item>
				<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
				<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
			</el-form-item>
		</el-form>
		<el-table v-loading="loading" :data="spuList" @selection-change="handleSelectionChange">
			<el-table-column type="selection" width="55" align="center" />
			<el-table-column label="商品名称" align="center" prop="name" />
lixiaomin committed
20 21 22 23 24 25 26
      <el-table-column label="缩略图" align="center" prop="">
        <template slot-scope="scope">              
           <div class="image-tmp">
            <el-image style="width: 100px; height: 100px"  :src="getPicsList(scope.row.pics)" :preview-src-list="getPicsBigList(scope.row.pics)">
              <div slot="error" class="image-slot"></div>            
            </el-image>
          </div>    
张成 committed
27
        </template>
lixiaomin committed
28 29 30 31 32
      </el-table-column>
      <el-table-column label="商品分类" align="center" prop="categoryName"/>
      <el-table-column label="售价" align="center" prop="price" />
      <el-table-column label="折扣价" align="center" prop="discount" />
			<el-table-column label="总销量" align="center" prop="salesVolume" />
lixiaomin committed
33
			<el-table-column label="上架时间" align="center" prop="shelfAt" />
张成 committed
34 35 36 37 38 39 40 41 42 43 44
		</el-table>
		<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
			:limit.sync="queryParams.pageSize" @pagination="getList" />
		<div slot="footer" class="dialog-footer">
			<el-button type="primary" @click="submit">确 定</el-button>
			<el-button @click="cancel">取 消</el-button>
		</div>
	</el-dialog>
</template>

<script>
45
import { goodslist } from "@/api/system/goods";
张成 committed
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
import SelectCategory from '@/components/SelectCategory'
export default {
	components: { SelectCategory },
	name: "Spu",
	data() {
		return {
			ids: [],
			// 遮罩层
			loading: true,
			// 显示搜索条件
			showSearch: true,
			// 总条数
			total: 0,
			// 表格数据
			spuList: [],
			// 是否显示弹出层
			open: false,
			// 查询参数
			queryParams: {
				pageNum: 1,
				pageSize: 10,
67
				goodsName: null,
lixiaomin committed
68 69
				category: null,
				state: 3,
70
        shopId: null
张成 committed
71 72 73 74
			},
		};
	},
	created() {
lixiaomin committed
75
		//this.getList();
张成 committed
76 77
	},
	methods: {
lixiaomin committed
78 79 80 81 82 83 84 85 86 87
    getPicsList(str){   
      let picObj = JSON.parse(str);  
      return picObj.thumbnail
    },
    getPicsBigList(str){
      let list=[];
      let picObj = JSON.parse(str);  
      list.push(picObj.thumbnail)
      return list;
    },
张成 committed
88
		/** 查询列表 */
89
		getList(shopId) {
张成 committed
90
			this.loading = true;
91 92
      this.queryParams.shopId=shopId
			goodslist(this.queryParams).then((response) => {
张成 committed
93 94 95 96 97 98 99 100 101 102 103 104 105
				this.spuList = response.rows;
				this.total = response.total;
				this.loading = false;
			});
		},

		/** 搜索按钮操作 */
		handleQuery() {
			this.queryParams.pageNum = 1;
			this.getList();
		},
		/** 重置按钮操作 */
		resetQuery() {
106
      this.queryParams.goodsName=null;
lixiaomin committed
107
      this.queryParams.category=null;
张成 committed
108 109 110 111 112 113 114 115 116
			this.handleQuery();
		},
		// 多选框选中数据
		handleSelectionChange(selection) {
			this.ids = selection.map((item) => item.id);
		},
		// 取消按钮
		cancel() {
			this.open = false;
lixiaomin committed
117
			//this.reset();
张成 committed
118
		},
119
		openModal(shopId) {
lixiaomin committed
120
			this.open = true;
121
      this.getList(shopId);
张成 committed
122 123
		},
		submit() {
124 125
			this.$emit('callback', this.ids);
			//this.open = false
张成 committed
126 127 128 129
		}
	},
};
</script>