index.vue 3.92 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
			},
lixiaomin committed
72
      shopId: null
张成 committed
73 74 75
		};
	},
	created() {
lixiaomin committed
76
		//this.getList();
张成 committed
77 78
	},
	methods: {
lixiaomin committed
79 80 81 82 83 84 85 86 87 88
    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
89
		/** 查询列表 */
90
		getList(shopId) {
张成 committed
91
			this.loading = true;
lixiaomin committed
92 93
      this.queryParams.shopId=shopId;
      this.shopId=shopId;
94
			goodslist(this.queryParams).then((response) => {
张成 committed
95 96 97 98 99 100 101 102 103
				this.spuList = response.rows;
				this.total = response.total;
				this.loading = false;
			});
		},

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