积分商城
This commit is contained in:
		| @@ -11,24 +11,23 @@ | ||||
|             <el-form-item label="商品名称" prop="merchandiseName" :rules="[{required: true, message: '请输入商品名称', trigger: 'blur'}]"> | ||||
|               <el-input type="input" v-model="form.merchandiseName" clearable placeholder="请输入商品名称" maxlength="30" show-word-limit></el-input> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="商品图片" prop="imageUrl"> | ||||
|             <el-form-item label="商品图片" prop="imageUrl" :rules="[{required: true, message: '请选择商品图片', trigger: 'change'}]"> | ||||
|               <ai-uploader | ||||
|                 :instance="instance" | ||||
|                 isShowTip | ||||
|                 v-model="form.imageUrl" | ||||
|                 :limit="9" | ||||
|                 is-crop> | ||||
|                 :limit="1"> | ||||
|                 <template slot="tips"> | ||||
|                   <p>最多上传1张图片,单个文件最大10MB,支持jpg、jpeg、png格式</p> | ||||
|                   <p>图片比例:1.6:1</p> | ||||
|                   <p>建议尺寸:800*800</p> | ||||
|                 </template> | ||||
|               </ai-uploader> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="商品单价" prop="merchandiseIntegral" :rules="[{required: true, message: '请输入商品单价', trigger: 'blur'}]"> | ||||
|               <el-input-number type="input" v-model="form.merchandiseIntegral" clearable placeholder="请输入商品单价" :min="0"></el-input-number> | ||||
|               <el-input-number type="input" v-model="form.merchandiseIntegral" clearable placeholder="请输入商品单价" :min="1"></el-input-number> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="商品库存" prop="merchandiseNumber" :rules="[{required: true, message: '请输入商品库存', trigger: 'blur'}]"> | ||||
|               <el-input-number type="input" v-model="form.merchandiseNumber" clearable placeholder="请输入商品库存" :min="0"></el-input-number> | ||||
|               <el-input-number type="input" v-model="form.merchandiseNumber" clearable placeholder="请输入商品库存" :min="1"></el-input-number> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="可见范围" prop="visibleRange" :rules="[{required: true, message: '请输入商品名称', trigger: 'blur'}]"> | ||||
|               <el-radio-group v-model="form.visibleRange"> | ||||
| @@ -50,7 +49,7 @@ | ||||
|                 <div class="AppAnnounceDetail-select"> | ||||
|                   <el-input size="small" class="AppAnnounceDetail-select__input" placeholder="请选择..." disabled v-model="form.wxGroupsName"></el-input> | ||||
|                   <div class="select-left" v-if="form.rangeList.length"> | ||||
|                     <span v-for="(item, index) in form.girdList" :key="index" v-if="index < 9">{{ item }}</span> | ||||
|                     <span v-for="(item, index) in form.girdList" :key="index" v-if="index < 9">{{ item.girdName }}</span> | ||||
|                     <em v-if="form.girdList.length > 9">等{{ form.girdList.length }}个</em> | ||||
|                   </div> | ||||
|                   <i v-if="!form.rangeList.length">请选择</i> | ||||
| @@ -70,15 +69,13 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   import { mapState } from 'vuex' | ||||
|   export default { | ||||
|     name: 'Add', | ||||
|  | ||||
|     props: { | ||||
|       instance: Function, | ||||
|       dict: Object, | ||||
|       params: Object, | ||||
|       menuName: String | ||||
|       params: Object | ||||
|     }, | ||||
|  | ||||
|     data () { | ||||
| @@ -89,9 +86,7 @@ | ||||
|           merchandiseIntegral: '', | ||||
|           merchandiseNumber: '', | ||||
|           wxGroupsName: '', | ||||
|           createUnitName: '', | ||||
|           rangeList: [], | ||||
|           createUserName: '', | ||||
|           visibleRange: '', | ||||
|           imageUrl: [] | ||||
|         }, | ||||
| @@ -104,14 +99,7 @@ | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     computed: { | ||||
|       ...mapState(['user']), | ||||
|       pageTitle: v => `${!!v.params.id ? '编辑' : '添加'}${v.menuName}` | ||||
|     }, | ||||
|  | ||||
|     created () { | ||||
|       this.form.areaId = this.user.info.areaId | ||||
|       this.disabledLevel = this.user.info.areaList.length | ||||
|       if (this.params && this.params.id) { | ||||
|         this.id = this.params.id | ||||
|         this.getInfo(this.params.id) | ||||
| @@ -129,7 +117,7 @@ | ||||
|       }, | ||||
|  | ||||
|       onPick (e) { | ||||
|         this.form.girdList = e.map(v => v.girdName) | ||||
|         this.form.girdList = e | ||||
|       }, | ||||
|  | ||||
|       onSelcetChange (e) { | ||||
| @@ -144,13 +132,15 @@ | ||||
|       confirm () { | ||||
|         this.$refs.form.validate((valid) => { | ||||
|           if (valid) { | ||||
|             this.instance.post(`/app/appcountrysidetourism/addOrUpdate`, { | ||||
|             this.instance.post(`/app/appintegralmerchandise/addOrUpdate`, { | ||||
|               ...this.form, | ||||
|               type: 5, | ||||
|               createUserName: this.user.info.name, | ||||
|               thumbUrl: this.form.thumbUrl.length ? JSON.stringify([{ | ||||
|                 url: this.form.thumbUrl[0].url | ||||
|               }]) : '' | ||||
|               imageUrl: this.form.imageUrl[0].url, | ||||
|               rangeList: this.form.girdList.length ? this.form.girdList.map(v => { | ||||
|                 return { | ||||
|                   rangeId: v.id, | ||||
|                   rangeName: v.girdName | ||||
|                 } | ||||
|               }): [] | ||||
|             }).then(res => { | ||||
|               if (res.code == 0) { | ||||
|                 this.$message.success('提交成功') | ||||
|   | ||||
| @@ -71,13 +71,17 @@ | ||||
|         <el-table-column slot="goods" width="240px" label="商品" align="left"> | ||||
|           <template slot-scope="{ row }"> | ||||
|             <div class="goods"> | ||||
|               <img :src="row.imageUrl"> | ||||
|               <span>{{ row.merchandiseName }}</span> | ||||
|             </div> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column slot="options" width="100px" fixed="right" label="操作" align="center"> | ||||
|         <el-table-column slot="options" width="160px" fixed="right" label="操作" align="center"> | ||||
|           <template slot-scope="{ row }"> | ||||
|             <div class="table-options"> | ||||
|               <el-button type="text" @click="toDetail(row.id)">详情</el-button> | ||||
|               <el-button type="text" @click="toDetail(row.id)" v-if="row.status === '0' || row.status === '2'">下架</el-button> | ||||
|               <el-button type="text" @click="toDetail(row.id)" v-if="row.status === '1'">上架</el-button> | ||||
|               <el-button type="text" @click="toAdd(row.id)">编辑</el-button> | ||||
|               <el-button type="text" @click="remove(row.id)">删除</el-button> | ||||
|             </div> | ||||
|           </template> | ||||
| @@ -108,18 +112,24 @@ | ||||
|         info: {}, | ||||
|         colConfigs: [ | ||||
|           { slot: 'goods', label: '商品' }, | ||||
|           { prop: 'phone', align: 'center', label: '单价/数量' }, | ||||
|           { prop: 'startTime', align: 'center', label: '消耗积分' }, | ||||
|           { prop: 'startAreaName', align: 'center', label: '兑换人' }, | ||||
|           { prop: 'merchandiseIntegral', align: 'center', label: '单价' }, | ||||
|           { prop: 'merchandiseNumber', align: 'center', label: '数量' }, | ||||
|           { | ||||
|             prop: 'arriveTime', | ||||
|             align: 'center', | ||||
|             label: '兑换时间' | ||||
|             label: '兑换量' | ||||
|           }, | ||||
|           { | ||||
|             prop: 'arriveAreaName', | ||||
|             prop: 'visibleRange', | ||||
|             align: 'center', | ||||
|             label: '状态' | ||||
|             label: '可见范围', | ||||
|             formart: v => v === '0' ? '不限' : '指定网格' | ||||
|           }, | ||||
|           { | ||||
|             prop: 'status', | ||||
|             align: 'center', | ||||
|             label: '状态', | ||||
|             formart: v => this.mapStatus(v) | ||||
|           } | ||||
|         ], | ||||
|         ids: [], | ||||
| @@ -131,7 +141,7 @@ | ||||
|     }, | ||||
|  | ||||
|     created () { | ||||
|       this.dict.load(['EP_riskLevel', 'EP_handleType', 'modeType', 'EP_riskStatus', 'EP_source']).then(() => { | ||||
|       this.dict.load(['EP_riskLevel']).then(() => { | ||||
|         this.getList() | ||||
|       }) | ||||
|     }, | ||||
| @@ -153,6 +163,15 @@ | ||||
|         }) | ||||
|       }, | ||||
|  | ||||
|       mapStatus (status) { | ||||
|         return { | ||||
|           '0': '可兑换', | ||||
|           '1': '已下架', | ||||
|           '2': '已兑完', | ||||
|           '3': '已删除' | ||||
|         }[status] | ||||
|       }, | ||||
|  | ||||
|       toAdd (id) { | ||||
|         this.$emit('change', { | ||||
|           type: 'Add', | ||||
| @@ -178,6 +197,17 @@ | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
|   .list { | ||||
|     .goods { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|  | ||||
|       img { | ||||
|         width: 80px; | ||||
|         height: 80px; | ||||
|         margin-right: 20px; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .userSelcet { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user