| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" width="70%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <div class="head"> |
| | | <el-form :inline="true" :model="form" class="demo-form-inline"> |
| | | <el-form-item label="åååç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åååç§°"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç±»å«" prop="categoryId"> |
| | | <el-select v-model="form.categoryId" disabled placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in categoryList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="getList">æ¥è¯¢</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="tab"> |
| | | <el-table |
| | | :data="tableData" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="id" label="ååID" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åååç§°/åå·" show-overflow-tooltip min-width="200px"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <div style="width: 70px; height: 70px; flex-shrink: 0;"> |
| | | <el-image |
| | | v-if="row.imgurl" |
| | | style="width: 70px; height: 70px" |
| | | :src="row.fullImgUrl" |
| | | fit="cover"></el-image> |
| | | </div> |
| | | {{ row.name }} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="brandName" label="åç" show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="categoryName" label="ç±»å«" show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="zdPrice" label="æå¯¼ä»·ï¼å
ï¼" show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="price" label="éè´ä»·ï¼å
ï¼" show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column label="å
¥æä»·ï¼å
ï¼" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.purchasePrice" placeholder="请è¾å
¥"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="page" |
| | | :page-sizes="[10, 20, 30]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { baseCategoryList } from '@/api/business/category.js' |
| | | import { pageT } from '@/api/business/goods' |
| | | import { createPlat } from '@/api/business/goods' |
| | | |
| | | export default { |
| | | name: 'OperaBrandWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | categoryId: '', |
| | | type: 0, |
| | | rate: '', |
| | | name: '', |
| | | goodsParamList: [] |
| | | }, |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0, |
| | | tableData: [], |
| | | categoryList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | api: '/business/anchor', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | pageT({ |
| | | capacity: this.pageSize, |
| | | model: { |
| | | categoryId: this.form.categoryId, |
| | | name: this.form.name |
| | | }, |
| | | page: this.page |
| | | }).then(res => { |
| | | res.records.forEach(item => { |
| | | item.purchasePrice = item.price * this.form.rate |
| | | }) |
| | | this.tableData = res.records |
| | | this.total = res.total |
| | | }) |
| | | }, |
| | | handleCurrentChange(e) { |
| | | this.page = e |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(e) { |
| | | this.pageSize = e |
| | | this.getList() |
| | | }, |
| | | handleSelectionChange(e) { |
| | | let arr = [] |
| | | e.forEach(item => { |
| | | arr.push({ goodsId: item.id, price: item.purchasePrice }) |
| | | }) |
| | | this.form.goodsParamList = arr |
| | | console.log(arr) |
| | | }, |
| | | confirm() { |
| | | // è°ç¨æ°å»ºæ¥å£ |
| | | this.isWorking = true |
| | | createPlat({ |
| | | categoryId: this.form.categoryId, |
| | | goodsParamList: this.form.goodsParamList, |
| | | rate: this.form.rate, |
| | | type: this.form.type |
| | | }).then(res => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('æä½æå') |
| | | // this.$emit('success') |
| | | this.$emit('result') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | }, |
| | | /** |
| | | * æå¼çªå£ |
| | | * @title çªå£æ é¢ |
| | | * @target ç¼è¾ç对象 |
| | | */ |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.form.categoryId = target.categoryId |
| | | this.form.rate = Number(target.rate) |
| | | this.form.type = target.type |
| | | // è·ååç±»å表 |
| | | baseCategoryList({}) |
| | | .then(res => { |
| | | this.categoryList = res |
| | | }) |
| | | this.getList() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .head { |
| | | width: 100%; |
| | | |
| | | } |
| | | </style> |