| | |
| | | // è°ç¨æ°å»ºæ¥å£ |
| | | this.isWorking = true |
| | | this.api.create(this.form) |
| | | .then(() => { |
| | | .then((res) => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('æ°å»ºæå') |
| | | this.$tip.apiSuccess(res || 'æ°å»ºæå') |
| | | this.$emit('success') |
| | | }) |
| | | .catch(e => { |
| | |
| | | <el-input v-model="form.name" :placeholder="form.type==0?'è¾å
¥å¸åç§°':'è¾å
¥å¿åºåç§°'" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | |
| | | <el-option v-for="item in labels()" :key="item.id" :value="item.id" :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="èæ¯å¾" prop="imgurlfull"> |
| | | <UploadAvatarImage |
| | | :file="{ 'imgurlfull': form.imgFullUrl, 'imgurl': form.imgurl }" |
| | |
| | | <RichEditor :content="{ content : form.content}" @edit="form.content=$event" /> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | |
| | | </el-select> |
| | | </el-form-item>--> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | |
| | | </el-select> |
| | | </el-form-item>--> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç ï¼ååºï¼" v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç ï¼ååºï¼" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalAlertWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="110px" label-suffix="ï¼" inline> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' |
| | | export default { |
| | | name: 'OperaLabelExpressWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalAlertWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | module: 0, |
| | | type: 17, |
| | | sortnum: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥åç§°', tigger: 'blur' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/labels', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/alertstyle.scss"; |
| | | ::v-deep .el-select { |
| | | width: 100%; |
| | | .el-input__inner { |
| | | width: 100%; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼" inline> |
| | | <el-form-item label="åºååç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" :maxlength="5" v-trim/> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="éæ©ç份" prop="name"> |
| | | <el-select v-model="form.areaIdList" placeholder="è¯·éæ©ç份" multiple filterable> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | v-loading="isUploading" |
| | | :title="title" |
| | | width="70%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼" inline> |
| | | <el-form-item label="è§ååç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥è§ååç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="éæ©ç份" prop="name"> |
| | | <el-select v-model="form.areaIdList" placeholder="è¯·éæ©ç份" multiple filterable> |
| | | <el-option |
| | | v-for="item in province" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div style="display: flex"> |
| | | <el-form-item label="é¦é" prop="weight0" style="display: inline-block;flex: 1;"> |
| | | <el-input v-model="form.weight0" style="width: 150px" placeholder="请è¾å
¥é¦é" type="number"> <template slot="append" >kg</template> </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é¦éè¿è´¹" prop="fee0" style="display: inline-block;flex: 1;"> |
| | | <el-input v-model="form.fee0" style="width: 150px" placeholder="请è¾å
¥éé¢" > <template slot="append" >å
</template> </el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="display: flex"> |
| | | <el-form-item label="ç»é" prop="weight1" style="display: inline-block;flex:1"> |
| | | <el-input v-model="form.weight1" style="width: 150px" placeholder="请è¾å
¥ç»é" type="number"> <template slot="append" >kg</template> </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç»éè¿è´¹å¢å " prop="fee1" style="display: inline-block;flex: 1;"> |
| | | <el-input v-model="form.fee1" style="width: 150px" placeholder="请è¾å
¥éé¢" > <template slot="append" >å
</template> </el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { listByParentId } from '@/api/business/areas' |
| | | |
| | | export default { |
| | | name: 'OperaLabelsFeeAreaWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | isUploading: false, |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | info: '', |
| | | type: 16, |
| | | module: 0, |
| | | sortnum: '', |
| | | weight0: null, |
| | | fee0: null, |
| | | weight1: null, |
| | | fee1: null, |
| | | areaIdList: [], |
| | | areaList: [] |
| | | }, |
| | | province: [], |
| | | // éªè¯è§å |
| | | rules: { |
| | | areaIdList: [ |
| | | { required: true, message: 'è¯·éæ©ç份信æ¯' } |
| | | ], |
| | | weight0: [ |
| | | { required: true, message: '请è¾å
¥é¦é' } |
| | | ], |
| | | fee0: [ |
| | | { required: true, message: '请è¾å
¥éé¢' } |
| | | ], |
| | | weight1: [ |
| | | { required: true, message: '请è¾å
¥ç»é' } |
| | | ], |
| | | fee1: [ |
| | | { required: true, message: '请è¾å
¥éé¢' } |
| | | ], |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥åç§°' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/labels', |
| | | 'field.id': 'id' |
| | | }) |
| | | listByParentId({ type: 0, parentId: '' }) |
| | | .then(data => { |
| | | this.province = data |
| | | }) |
| | | }, |
| | | methods: { |
| | | confirm () { |
| | | this.form.param = JSON.stringify({ |
| | | weight0: this.form.weight0, |
| | | fee0: this.form.fee0, |
| | | weight1: this.form.weight1, |
| | | fee1: this.form.fee1 |
| | | }) |
| | | if (this.form.id == null || this.form.id === '') { |
| | | this.__confirmCreate() |
| | | return |
| | | } |
| | | this.__confirmEdit() |
| | | }, |
| | | open (title, target) { |
| | | var that = this |
| | | this.title = title |
| | | this.visible = true |
| | | // this.isEdit = false |
| | | this.form.areaList = [] |
| | | this.form.areaIdList = [] |
| | | this.form.paramObj = { weight0: null, fee0: null, weight1: null, fee1: null } |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | this.isEdit = true |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | that.form.areaIdList = [] |
| | | var t = JSON.parse(target.param) |
| | | if (t) { |
| | | that.form.weight0 = parseFloat(t.weight0 || 0) |
| | | that.form.fee0 = parseFloat(t.fee0 || 0) |
| | | that.form.weight1 = parseFloat(t.weight1 || 0) |
| | | that.form.fee1 = parseFloat(t.fee1 || 0) |
| | | } |
| | | if (this.form.areaList && this.form.areaList.length) { |
| | | this.form.areaList.forEach(item => { |
| | | that.form.areaIdList.push(item.id) |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/alertstyle.scss"; |
| | | $image-width: 100px; |
| | | |
| | | ::v-deep .el-select { |
| | | width: 100%; |
| | | .el-input__inner { |
| | | width: 100%; |
| | | } |
| | | } |
| | | .avatar-uploader { |
| | | width: $image-width; |
| | | height: $image-width; |
| | | } |
| | | ::v-deep .el-upload { |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | width: $image-width; |
| | | height: $image-width; |
| | | overflow: hidden; |
| | | } |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: #409EFF; |
| | | } |
| | | .avatar-uploader-icon { |
| | | font-size: 28px; |
| | | color: #8c939d; |
| | | width: $image-width; |
| | | height: $image-width; |
| | | line-height: $image-width; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: $image-width; |
| | | height: $image-width; |
| | | display: block; |
| | | } |
| | | </style> |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼" inline> |
| | | <el-form-item label="åæ¾å¯¹è±¡" prop="applyType"> |
| | | <el-radio-group v-model="form.addType"> |
| | | <el-form-item label="åæ¾å¯¹è±¡" prop="addType" > |
| | | <el-radio-group v-model="form.addType" @change="changeType"> |
| | | <el-radio :label="0">æå®ä¼å</el-radio> |
| | | <el-radio :label="1">æå®ææºå·</el-radio> |
| | | <el-radio :label="2">å
¨é¨ä¼å</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.addType===0" label="éæ©ç¨æ·" prop="addMemberIds" > |
| | | <div v-if="form.addType===0" id="bbb"> |
| | | <el-form-item label="éæ©ç¨æ·" prop="addMemberIds" > |
| | | <el-select v-model="form.addMemberIds" placeholder="请è¾å
¥ä¼åæµç§°/ææºå·ï¼åéæ©" clearable filterable remote reserve-keyword :remote-method="remoteMethod" |
| | | :loading="searchLoading" |
| | | style="width: 400px;" |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.addType===1" label="æå®ææºå·" prop="addMemberPhones" > |
| | | </div> |
| | | <div v-if="form.addType===1" id="aaaa"> |
| | | <el-form-item label="æ æº å·" prop="addMemberPhones" > |
| | | <el-input style="width: 400px;" type="textarea" v-model="form.addMemberPhones" placeholder="请è¾å
¥ææºå·" v-trim/> |
| | | <p class="tip-warn" style="margin-bottom: 1px;"><i class="el-icon-warning"></i>æéï¼å¤ä¸ªææºå·ï¼è¯·æ¢è¡è¾å
¥</p> |
| | | <p class="tip-warn" style="margin-bottom: 2px;"><i class="el-icon-warning"></i>æéï¼å¤ä¸ªææºå·ï¼è¯·æ¢è¡è¾å
¥</p> |
| | | </el-form-item> |
| | | <el-form-item label="åæ¾å
容" prop="num"> |
| | | </div> |
| | | <el-form-item label="åæ¾å
容" prop="addCouponList" style="margin-top: 20px" > |
| | | <div style="border: 1px solid #f2f2f2"> |
| | | <el-table style="width: 600px;" :data="form.addCouponList"> |
| | | <el-table-column prop="name" label="伿 å¸" min-width="300px" align="center"> |
| | | <template slot-scope="{row}" > |
| | | <el-select v-model="row.couponId" style="width: 200px;margin: 0px 20px" clearable filterable placeholder="è¯·éæ©ä¼æ å¸" > |
| | | <el-select v-model="row.id" style="width: 200px;margin: 0px 20px" clearable filterable placeholder="è¯·éæ©ä¼æ å¸" > |
| | | <el-option v-for="item in couponList" :label="item.name" :value="item.id"> </el-option> |
| | | </el-select> |
| | | </template> |
| | |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <OperaCouponGoodsWindow ref="OperaCouponGoodsWindow" @success="doSelect"/> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import OperaCouponGoodsWindow from '@/components/business/OperaCouponGoodsWindow' |
| | | import { allList } from '@/api/business/coupon' |
| | | import { findAll, findAll as memberlist } from '@/api/business/member' |
| | | import { findAll as memberlist } from '@/api/business/member' |
| | | export default { |
| | | name: 'OperaCouponWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow, OperaCouponGoodsWindow }, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | const couponRules = (rule, value, callback) => { |
| | | if (!this.form.addCouponList || !this.form.addCouponList.length) { |
| | |
| | | addType: [ |
| | | { required: true, message: 'è¯·éæ©åæ¾å¯¹è±¡' } |
| | | ], |
| | | addMemberIds: [ |
| | | { required: true, message: '请éä¸äººåä¿¡æ¯' } |
| | | ], |
| | | addMemberPhones: [ |
| | | { required: true, message: '请æå®äººåææºå·' } |
| | | ], |
| | | addCouponList: [ |
| | | { required: true, validator: couponRules, tigger: 'blur' } |
| | | ] |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | changeType(t){ |
| | | this.$refs.form.validate() |
| | | }, |
| | | remoteMethod (query) { |
| | | if (query !== '') { |
| | | this.searchLoading = true |
| | | findAll({ |
| | | memberlist({ |
| | | capacity: 999, |
| | | model: { |
| | | nickname: query, |
| | |
| | | } |
| | | }, |
| | | getCouponList () { |
| | | allList({status:0}) |
| | | allList({ status: 0 }) |
| | | .then(res => { |
| | | if (res) { |
| | | this.couponList = res || [] |
| | |
| | | open (title, target, type) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.form.addMemberIds=null |
| | | this.form.addMemberPhones=null |
| | | this.form.addMemberIds = null |
| | | this.form.addMemberPhones = null |
| | | this.form.addType = 0 |
| | | this.form.addCouponList = [{id:null,num:null}] |
| | | this.form.addCouponList = [{ id: null, num: null }] |
| | | this.getCouponList() |
| | | } |
| | | } |
| | |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼" inline> |
| | | |
| | | |
| | | <el-form-item label="åç±»åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" :maxlength="5" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-input v-model="form.sortnum" type="number" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | |
| | | created () { |
| | | this.config({ |
| | | api: '/business/labels', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | |
| | | |
| | | } |
| | | </script> |
| | | |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li><el-button type="primary" @click="$refs.operaDictDataWindow.open('æ°å»ºåå
¸æ°æ®', searchForm.dictId)" icon="el-icon-plus">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDictDataWindow.open('ç¼è¾åå
¸æ°æ®', searchForm.dictId, row)" icon="el-icon-edit">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:activity:create', 'business:activity:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaActivityWindow.open('æ°å»º')" icon="el-icon-plus" v-permissions="['business:activity:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaActivityWindow.open('ç¼è¾', row)" icon="el-icon-edit" v-permissions="['business:activity:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template slot-scope="{ row }"> |
| | | <el-button type="text" @click="edit(row)" v-permissions="['business:areas:update']">ç¼è¾</el-button> |
| | | <el-button v-if="row.type!=2" type="text" @click="createChild(row)" v-permissions="['business:areas:create']">æ°å»º{{ row.type==0 ? 'å¸' : 'åºå¿' }}</el-button> |
| | | <el-button type="text" @click="deleteById(row)" v-permissions="['business:areas:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" v-permissions="['business:areas:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:article:create', 'business:article:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaArticleWindow.open('æ°å»ºåå¡ç¾ç§æç« ä¿¡')" icon="el-icon-plus" v-permissions="['business:article:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:article:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:article:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaArticleWindow.open('ç¼è¾åå¡ç¾ç§æç« ', row)" icon="el-icon-edit" v-permissions="['business:article:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:article:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:article:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:labels:create', 'business:labels:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaLabelsWindow.open('æ°å»ºæ ç¾ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:labels:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | style="with:50px;height:50px;" |
| | | :scr="row.imgFullurl" |
| | | :preview-src-list="[row.imgFullurl]" |
| | | |
| | | |
| | | ></el-image> |
| | | <!-- <el-image v-if="row.imgFullurl" :lazy="true" style="with:50px;height:50px;" scr="@/assets/logo.png" :preview-src-list="[row.imgurlfull]"></el-image> --> |
| | | </template> |
| | |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | align="center" |
| | | align="center" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaLabelsWindow.open('ç¼è¾æ ç¾ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:labels:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | type: '8', |
| | | }, |
| | | type: [ |
| | | // 0åååç±» 1åååç 2åå®¶æ ç¾ 3å¿«é 4éè´§é项 5æ¢è´§é项 6鿬¾é项 |
| | | // 0åååç±» 1åååç 2åå®¶æ ç¾ 3å¿«é 4éè´§é项 5æ¢è´§é项 6鿬¾é项 |
| | | // 7åæ¶è®¢åé项 8åå¡ç¾ç§åç±» 9å¨è¯¢åç±» 10æ´»å¨èµäºåç±» 11达人æ¢åºåç±» |
| | | { label: 'åååç±»', id: 0 }, |
| | | { label: 'åååç', id: 1 }, |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:banner:create', 'business:banner:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaBannerWindow.open('æ°å»ºè½®æå¾')" icon="el-icon-plus" v-permissions="['business:banner:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:banner:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:banner:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaBannerWindow.open('ç¼è¾è½®æå¾', row)" icon="el-icon-edit" v-permissions="['business:banner:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:banner:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:banner:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaBannerWindow ref="operaBannerWindow" @success="handlePageChange"/> |
| | | <ShowRich ref="showRich"/> |
| | | |
| | | |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | >ç¼è¾</el-button> |
| | | <el-button |
| | | type="text" |
| | | style="color: red;" |
| | | @click="deleteById(row)" |
| | | v-permissions="['business:banner:delete']" |
| | | >å é¤</el-button> |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaCouponWindow.open('ç¼è¾ä¼æ å¸', row)" icon="el-icon-edit" v-permissions="['business:coupon:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:coupon:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:coupon:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-form-item label="ç¨æ·" prop="nickname"> |
| | | <el-input v-model="searchForm.nickname" placeholder="请è¾å
¥æµç§°/ææºå·/å§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select |
| | | v-model="searchForm.status" |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:creation:create', 'business:creation:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaCreationWindow.open('æ°å»ºåä½è
')" icon="el-icon-plus" v-permissions="['business:creation:create']">æ°å»ºåä½è
</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:creation:delete']">å é¤åä½è
</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:creation:delete']">å é¤åä½è
</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <template slot-scope="{row}"> |
| | | <!-- {{ row.imgFullUrl+row.imgurl }} --> |
| | | <div style="display: flex; line-height: 60px;"> |
| | | |
| | | |
| | | <el-image style="width: 60px; height: 60px; border-radius: 50%;margin-right: 10px;" :scr="row.imgFullUrl+row.imgurl" :preview-src-list="[row.imgurlfull]"></el-image> |
| | | {{ row.nickname }} |
| | | </div> |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaCreationWindow.open('ç¼è¾åä½è
', row)" v-permissions="['business:creation:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" v-permissions="['business:creation:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" v-permissions="['business:creation:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="$refs.operaCreationApplyDetail.open('åä½è
详æ
', row)">详æ
</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | }) |
| | | }, |
| | | showDetail(row) { |
| | | |
| | | |
| | | } |
| | | }, |
| | | } |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:productlabel:create', 'business:productlabel:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaProductLabelWindow.open('æ°å»ºååæ ç¾ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:productlabel:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaProductLabelWindow.open('ç¼è¾ååæ ç¾ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:productlabel:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:productlabel:create', 'business:productlabel:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaProductLabelWindow.open('æ°å»ºåååç±»')" icon="el-icon-plus" v-permissions="['business:productlabel:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaProductLabelWindow.open('ç¼è¾åååç±»', row)" icon="el-icon-edit" v-permissions="['business:productlabel:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:goodssku:create', 'business:goodssku:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaGoodsSkuWindow.open('æ°å»ºååSKUè§æ ¼ç»ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:goodssku:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:goodssku:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:goodssku:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaGoodsSkuWindow.open('ç¼è¾ååSKUè§æ ¼ç»ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:goodssku:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:goodssku:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:goodssku:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <TableLayout :permissions="['business:hotcity:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | |
| | | |
| | | <el-form-item label="åå¸åç§°" prop="cityName"> |
| | | <el-input v-model="searchForm.cityName" placeholder="请è¾å
¥åå¸åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:hotcity:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:hotcity:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:activity:create', 'business:activity:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaInformationWindow.open('æ°å»º')" icon="el-icon-plus" v-permissions="['business:activity:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaInformationWindow.open('ç¼è¾', row)" icon="el-icon-edit" v-permissions="['business:activity:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | return temp ? temp.label : '-' |
| | | }, |
| | | shopDetail(row) { |
| | | |
| | | |
| | | } |
| | | }, |
| | | } |
| | |
| | | <el-table-column prop="labels" label="ååæ ç¾éå,å¤ä¸ªç¨è±æéå·éå¼" min-width="100px"></el-table-column> --> |
| | | <!-- v-if="containPermissions(['business:goods:update', 'business:goods:delete'])" --> |
| | | <el-table-column |
| | | |
| | | |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | |
| | | <template v-if="row.status==1"> |
| | | <el-button type="text" @click="$refs.operaGoodsWindow.open('ç¼è¾åå', row, 1)" v-permissions="['business:goods:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaPlatformGoodsSkuWindow.open('å¹³å°SKU', row)">SKU</el-button> |
| | | <el-button type="text" @click="deleteById(row)" v-permissions="['business:goods:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" v-permissions="['business:goods:delete']">å é¤</el-button> |
| | | </template> |
| | | <template v-else> |
| | | <el-button type="text" @click="$refs.operaGoodsDetailWindow.open('åå详æ
', row, 0)">æ¥ç详æ
</el-button> |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | |
| | | |
| | | labelList({ |
| | | capacity: 999, |
| | | model: { |
| | |
| | | |
| | | }, |
| | | /** |
| | | * |
| | | * |
| | | * @param {ä¸ä¸ç¶æ} status 0䏿¶ 1䏿¶ |
| | | */ |
| | | issued(status) { |
| | |
| | | |
| | | }) |
| | | }, |
| | | |
| | | |
| | | statusChange(row) { |
| | | updateById(row) |
| | | .then(() => { |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaLabelsWindow.open('ç¼è¾æ ç¾ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:labels:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:labels:create', 'business:labels:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaLabelsWindow.open('æ°å»ºå¤§åºä¿¡æ¯')" icon="el-icon-plus" v-permissions="['business:labels:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaLabelsWindow.open('ç¼è¾åºåä¿¡æ¯', row)" icon="el-icon-edit" v-permissions="['business:labels:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:labels:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:labels:create', 'business:labels:delete']"> |
| | | <li><el-button type="primary" @click="$refs.OperaLabelExpressWindow.open('æ°å»ºå¿«éä¿¡æ¯')" icon="el-icon-plus" v-permissions="['business:labels:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç (ååº)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | v-model="row.status" |
| | | :active-value="1" |
| | | :inactive-value="0" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | @change="statusChange(row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:labels:update', 'business:labels:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.OperaLabelExpressWindow.open('ç¼è¾å¿«éä¿¡æ¯', row)" icon="el-icon-edit" v-permissions="['business:labels:update']">ç¼è¾</el-button> |
| | | <el-button style="color: red;" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaLabelExpressWindow ref="OperaLabelExpressWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaLabelExpressWindow from '@/components/business/OperaLabelExpressWindow' |
| | | export default { |
| | | name: 'ProductLabel', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaLabelExpressWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | type: 17 |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å¿«éä¿¡æ¯', |
| | | api: '/business/labels', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | statusChange (row) { |
| | | this.api.updateById({ id: row.id, status: row.status }) |
| | | .then(() => { |
| | | this.$message.success('æä½æå') |
| | | }) |
| | | .catch(e => { |
| | | this.$message.error('æä½æå') |
| | | }) |
| | | .then(() => { |
| | | this.handlePageChange() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:labels:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:labels:create', 'business:labels:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaLabelsWindow.open('æ°å»ºè¿è´¹é
置信æ¯')" icon="el-icon-plus" v-permissions="['business:labels:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | border |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areas" label="å
å«å°åº" min-width="200px" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.areaList && row.areaList.length" > |
| | | <span v-for="item in row.areaList">{{item.name}}ï¼> </span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | v-model="row.status" |
| | | :active-value="1" |
| | | :inactive-value="0" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | @change="statusChange(row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æè¿æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:labels:update', 'business:labels:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaLabelsWindow.open('ç¼è¾è¿è´¹ä¿¡æ¯', row)" icon="el-icon-edit" v-permissions="['business:labels:update']">ç¼è¾</el-button> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaLabelsFeeAreaWindow ref="operaLabelsWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaLabelsFeeAreaWindow from '@/components/business/OperaLabelsFeeAreaWindow' |
| | | export default { |
| | | name: 'Labels', |
| | | extends: BaseTable, |
| | | components: { OperaLabelsFeeAreaWindow, TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | type: 16 |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'æ ç¾ä¿¡æ¯è¡¨', |
| | | api: '/business/labels', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | statusChange (row) { |
| | | this.api.updateById({ id: row.id, status: row.status }) |
| | | .then(() => { |
| | | this.$message.success('æä½æå') |
| | | }) |
| | | .catch(e => { |
| | | this.$message.error('æä½æå') |
| | | }) |
| | | .then(() => { |
| | | this.handlePageChange() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:notice:create', 'business:notice:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaNoticeWindow.open('æ°å»ºæ¶æ¯éç¥')" icon="el-icon-plus" v-permissions="['business:notice:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:notice:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:notice:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaNoticeWindow.open('ç¼è¾æ¶æ¯éç¥', row)" icon="el-icon-edit" v-permissions="['business:notice:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:notice:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:notice:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaOrgsWindow.open('ç¼è¾æºæ', row)" icon="el-icon-edit" v-permissions="['business:orgs:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:orgs:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:orgs:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-if="row.status==1"> |
| | | <el-button type="text" @click="$refs.operaGoodsWindow.open('ç¼è¾åå', row, 2)" v-permissions="['business:goods:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaPlatformGoodsSkuWindow.open('å¹³å°SKU', row)">SKU</el-button> |
| | | <el-button type="text" @click="deleteById(row)" v-permissions="['business:goods:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" v-permissions="['business:goods:delete']">å é¤</el-button> |
| | | </template> |
| | | <template v-else> |
| | | <el-button type="text" @click="$refs.operaGoodsDetailWindow.open('åå详æ
', row, 0)">æ¥ç详æ
</el-button> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:labels:create', 'business:labels:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaLabelsWindow.open('æ°å»ºæ ç¾')" icon="el-icon-plus" v-permissions="['business:labels:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | align="center" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | <el-button style="color: red;"type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | name: '', |
| | | type: '2' |
| | | }, |
| | | |
| | | |
| | | } |
| | | }, |
| | | |
| | | |
| | | created () { |
| | | this.config({ |
| | | module: 'æ ç¾ä¿¡æ¯è¡¨', |
| | |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:activity:create', 'business:activity:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaVisiteStoreWindow.open('æ°å»º')" icon="el-icon-plus" v-permissions="['business:activity:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaVisiteStoreWindow.open('ç¼è¾', row)" icon="el-icon-edit" v-permissions="['business:activity:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:activity:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | return temp ? temp.label : '-' |
| | | }, |
| | | shopDetail(row) { |
| | | |
| | | |
| | | } |
| | | }, |
| | | } |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:datapermission:create', 'system:datapermission:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaDataPermissionWindow.open('æ°å»ºæ°æ®æé')" icon="el-icon-plus" v-permissions="['system:datapermission:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:datapermission:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:datapermission:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | |
| | | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" align="center" width="55"></el-table-column> |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDataPermissionWindow.open('ç¼è¾æ°æ®æé', row)" icon="el-icon-edit" v-permissions="['system:datapermission:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:datapermission:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:datapermission:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:department:create', 'system:department:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaDepartmentWindow.open('æ°å»ºé¨é¨')" icon="el-icon-plus" v-permissions="['system:department:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:department:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:department:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <el-button type="text" @click="$refs.operaDepartmentWindow.open('ç¼è¾é¨é¨', row)" icon="el-icon-edit" v-permissions="['system:department:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaDepartmentWindow.open('æ°å»ºä¸çº§é¨é¨', null, row)" icon="el-icon-edit" v-permissions="['system:department:create']">æ°å»ºä¸çº§é¨é¨</el-button> |
| | | <el-button type="text" @click="$refs.departmentUserWindow.open(row.id, row.name)" icon="el-icon-user-solid" v-permissions="['system:department:queryUsers']">æ¥ç人å</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:department:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:department:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:dict:create', 'system:dict:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaDictWindow.open('æ°å»ºåå
¸')" icon="el-icon-plus" v-permissions="['system:dict:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:dict:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:dict:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDictWindow.open('ç¼è¾åå
¸', row)" icon="el-icon-edit" v-permissions="['system:dict:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.dictDataManagerWindow.open(row.id, row.name)" icon="el-icon-edit" v-permissions="['system:dict:update']">æ°æ®ç®¡ç</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:dict:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:dict:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:menu:create', 'system:menu:delete', 'system:menu:sort']"> |
| | | <li><el-button type="primary" @click="$refs.operaMenuWindow.open('æ°å»ºä¸çº§èå')" icon="el-icon-plus" v-permissions="['system:menu:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:menu:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:menu:delete']">å é¤</el-button></li> |
| | | <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">ä¸ç§»</el-button></li> |
| | | <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">ä¸ç§»</el-button></li> |
| | | </ul> |
| | |
| | | row-key="id" |
| | | stripe |
| | | border |
| | | |
| | | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" align="center" fixed="left"></el-table-column> |
| | |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:menu:delete']">å é¤</el-button> |
| | | <el-button v-if="!row.fixed" style="color: red;" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:menu:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:permission:create', 'system:permission:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaPermissionWindow.open('æ°å»ºç³»ç»æé')" icon="el-icon-plus" v-permissions="['system:permission:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:permission:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:permission:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button v-if="!row.fixed" type="text" @click="$refs.operaPermissionWindow.open('ç¼è¾ç³»ç»æé', row)" icon="el-icon-edit" v-permissions="['system:permission:update']">ç¼è¾</el-button> |
| | | <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:permission:delete']">å é¤</el-button> |
| | | <el-button v-if="!row.fixed" style="color: red;" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:permission:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:position:create', 'system:position:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaPositionWindow.open('æ°å»ºå²ä½')" icon="el-icon-plus" v-permissions="['system:position:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:position:delete']">å é¤</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:position:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <el-button type="text" @click="$refs.operaPositionWindow.open('ç¼è¾å²ä½', row)" icon="el-icon-edit" v-permissions="['system:position:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaPositionWindow.open('æ°å¢ä¸çº§å²ä½', null, row)" icon="el-icon-edit" v-permissions="['system:position:update']">æ°å¢ä¸çº§å²ä½</el-button> |
| | | <el-button type="text" @click="$refs.positionUserWindow.open(row.id, row.name)" icon="el-icon-user-solid" v-permissions="['system:position:queryUsers']">æ¥ç人å</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:position:delete']">å é¤</el-button> |
| | | <el-button type="text" style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:position:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:role:create', 'system:role:delete']"> |
| | | <li v-permissions="['system:role:create']"><el-button type="primary" @click="$refs.operaRoleWindow.open('æ°å»ºè§è²')" icon="el-icon-plus">æ°å»º</el-button></li> |
| | | <li v-permissions="['system:role:delete']"><el-button @click="deleteByIdInBatch" icon="el-icon-delete">å é¤</el-button></li> |
| | | <li v-permissions="['system:role:delete']"><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <el-button type="text" @click="$refs.operaRoleWindow.open('ç¼è¾è§è²', row)" icon="el-icon-edit" v-permissions="['system:role:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.permissionConfigWindow.open(row)" v-permissions="['system:role:createRolePermission']">é
ç½®æé</el-button> |
| | | <el-button type="text" @click="$refs.menuConfigWindow.open(row)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">ææèå</el-button> |
| | | <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">å é¤</el-button> |
| | | <el-button v-if="!row.fixed" style="color: red;" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']"> |
| | | <li v-permissions="['system:user:create']"><el-button icon="el-icon-plus" type="primary" @click="$refs.operaUserWindow.open('æ°å»ºç¨æ·')">æ°å»º</el-button></li> |
| | | <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">å é¤</el-button></li> |
| | | <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" type="danger" @click="deleteByIdInBatch">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('ç¼è¾ç¨æ·', row)" v-permissions="['system:user:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">é
ç½®è§è²</el-button> |
| | | <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">éç½®å¯ç </el-button> |
| | | <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">å é¤</el-button> |
| | | <el-button v-if="!row.fixed" style="color: red;" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:labels:create") |
| | | public ApiResponse create(@RequestBody Labels labels) { |
| | | return ApiResponse.success(labelsService.create(labels)); |
| | | labelsService.create(labels); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | |
| | | BIG_AREA(13, "åºååç±»", "åºååç±»"), |
| | | APPLICABLE_BRAND(14, "éç¨åç", "éç¨åç"), |
| | | SERIES_BRAND(15, "åçç³»å", "åçç³»å"), |
| | | YUN_FEE(16, "è¿è´¹é
ç½®", "è¿è´¹é
ç½®"), |
| | | EXPRESS_DELIVERY(17, "å¿«éä¿¡æ¯", "å¿«éä¿¡æ¯"), |
| | | ; |
| | | // æååé |
| | | private String name; |
| | |
| | | @ApiModelProperty(value = "æå±å¤§åºç¼ç ï¼å
³èlabels)", example = "1") |
| | | @ExcelColumn(name="æå±å¤§åºç¼ç ï¼å
³èlabels)") |
| | | private Integer bigAreaId; |
| | | @ApiModelProperty(value = "æå±è¿è´¹é
ç½®ï¼å
³èlabels)", example = "1") |
| | | @ExcelColumn(name="æå±è¿è´¹é
ç½®ç¼ç ï¼å
³èlabels)") |
| | | private Integer yunFeeId; |
| | | @ApiModelProperty(value = "æå±å¤§åºåç§°", example = "1") |
| | | @TableField(exist = false) |
| | | private String bigAreaName; |
| | |
| | | @ApiModelProperty(value = "徿 ") |
| | | @ExcelColumn(name="徿 ") |
| | | private String imgurl; |
| | | @ApiModelProperty(value = "é
ç½®åæ°(json),è¿è´¹åæ°æ ¼å¼{weight0:10,fee0:10,weight1:10,fee1:10},{é¦é:10,é¦éè¿è´¹ï¼10,ç»éï¼10,ç»éè´¹ï¼10}") |
| | | @ExcelColumn(name="é
ç½®åæ°(json)") |
| | | private String param; |
| | | |
| | | @ApiModelProperty(value = "ç±»å0åååç±» 1åååç 2åå®¶æ ç¾ 3å¿«é 4éè´§é项 5æ¢è´§é项 6鿬¾é项 7åæ¶è®¢åé项 8åå¡ç¾ç§åç±» 9å¨ è¯¢åç±» 10æ´»å¨èµäºåç±» 11达人æ¢åºåç±»", example = "1") |
| | | @TableField(exist = false) |
| | |
| | | @ApiModelProperty(value = "å®é
éç¨æ¶éé¢") |
| | | @TableField(exist = false) |
| | | private BigDecimal validAmount; |
| | | @ApiModelProperty(value = "ç¨æ·ææºå·") |
| | | @TableField(exist = false) |
| | | private String memberPhone; |
| | | |
| | | @ApiModelProperty(value = "伿 éé¢ï¼å
ï¼", example = "1") |
| | | @ExcelColumn(name="伿 éé¢ï¼å
ï¼",width = 10,index = 7) |
| | |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | private GoodsAdminJoinMapper goodsAdminJoinMapper; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Integer create(Labels labels) { |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | labels.setCreator(user.getId()); |
| | |
| | | labels.setEditDate(labels.getCreateDate()); |
| | | labels.setIsdeleted(Constants.ZERO); |
| | | labels.setStatus(Constants.ZERO); |
| | | /* if(labels.getParentId()!=null){ |
| | | /*if(labels.getParentId()!=null){ |
| | | labels.setType(Constants.LabelsType.GOODSTYPE.getKey()); |
| | | }else{ |
| | | labels.setType(Constants.LabelsType.GOODSBRAND.getKey()); |
| | | }*/ |
| | | |
| | | labelsMapper.insert(labels); |
| | | if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey()) |
| | | if((Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey()) |
| | | ||Constants.equalsInteger(labels.getType(),Constants.LabelsType.YUN_FEE.getKey())) |
| | | && labels.getAreaIdList()!=null |
| | | &&labels.getAreaIdList().size()>0){ |
| | | areasMapper.update(null,new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId,labels.getId()) |
| | | .in(Areas::getId,labels.getAreaIdList())); |
| | | areasMapper.update(null,new UpdateWrapper<Areas>().lambda() |
| | | .set(Constants.equalsInteger(labels.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,labels.getId()) |
| | | .set(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,labels.getId()) |
| | | .in(Constants.equalsInteger(labels.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getId,labels.getAreaIdList()) |
| | | .in(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getId,labels.getAreaIdList())); |
| | | areasService.cacheData(); |
| | | } |
| | | return labels.getId(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void deleteById(Integer id) { |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | Labels query= labelsJoinMapper.selectById(id); |
| | |
| | | labels.setEditDate(new Date()); |
| | | labels.setEditor(user.getId()); |
| | | labelsMapper.updateById(labels); |
| | | if(query!=null && Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey())){ |
| | | if(query!=null &&( Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey()) |
| | | || Constants.equalsInteger(query.getType(),Constants.LabelsType.YUN_FEE.getKey()))){ |
| | | int num = areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, null) |
| | | .eq(Areas::getBigAreaId, labels.getId())); |
| | | .set(Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, null) |
| | | .eq(Constants.equalsInteger(query.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, labels.getId()) |
| | | .set(Constants.equalsInteger(query.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, null) |
| | | .eq(Constants.equalsInteger(query.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, labels.getId())); |
| | | if(num>0){ |
| | | areasService.cacheData(); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | |
| | | num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, null) |
| | | .eq(Areas::getBigAreaId, labels.getId())); |
| | | num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getYunFeeId, null) |
| | | .eq(Areas::getYunFeeId, labels.getId())); |
| | | } |
| | | if(num>0){ |
| | | areasService.cacheData(); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void updateById(Labels labels) { |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | labels.setEditDate(new Date()); |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | labelsMapper.updateById(labels); |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()) |
| | | ||Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){ |
| | | //å
æ¸
ç©ºåæ¥ææç»å®çæ°æ® |
| | | int num = areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, null) |
| | | .eq(Areas::getBigAreaId, labels.getId())); |
| | | .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, null) |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, labels.getId()) |
| | | .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, null) |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, labels.getId())); |
| | | if( labels.getAreaIdList()!=null |
| | | &&labels.getAreaIdList().size()>0){ |
| | | //è®¾ç½®ææ°ç»å®çæ°æ® |
| | | num += areasMapper.update(null, new UpdateWrapper<Areas>().lambda() |
| | | .set(Areas::getBigAreaId, labels.getId()) |
| | | .in(Areas::getId, labels.getAreaIdList())); |
| | | .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId, labels.getId()) |
| | | .in(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getId, labels.getAreaIdList()) |
| | | .set(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId, labels.getId()) |
| | | .in(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getId, labels.getAreaIdList())); |
| | | } |
| | | if(num>0){ |
| | | areasService.cacheData(); |
| | |
| | | |
| | | @Override |
| | | public Labels findById(Integer id) { |
| | | Labels labels= labelsMapper.selectById(id); |
| | | if(labels != null){ |
| | | Labels model= labelsMapper.selectById(id); |
| | | if(model != null){ |
| | | String resourcePath=systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode(); |
| | | getLablesIcon(labels,resourcePath); |
| | | if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.BIG_AREA.getKey())){ |
| | | getLablesIcon(model,resourcePath); |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()) |
| | | ||Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){ |
| | | //妿æ¯å¤§åºä¿¡æ¯ï¼æ¥è¯¢ææç»å®é¢çä»½ä¿¡æ¯ |
| | | labels.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>() |
| | | model.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>() |
| | | .eq(Areas::getIsdeleted,Constants.ZERO) |
| | | .eq(Areas::getBigAreaId,labels.getId()))); |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,model.getId()) |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,model.getId()))); |
| | | |
| | | } |
| | | } |
| | | return labels; |
| | | return model; |
| | | } |
| | | |
| | | @Override |
| | |
| | | .orderByAsc(Labels::getSortnum)); |
| | | } |
| | | for(Labels model:list){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()) |
| | | ||Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){ |
| | | //妿æ¯å¤§åºä¿¡æ¯ï¼æ¥è¯¢ææç»å®é¢çä»½ä¿¡æ¯ |
| | | model.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>() |
| | | .eq(Areas::getIsdeleted,Constants.ZERO) |
| | | .eq(Areas::getBigAreaId,model.getId()))); |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,model.getId()) |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,model.getId()))); |
| | | } |
| | | if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey()) |
| | | &&Constants.equalsInteger(model.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())){ |
| | |
| | | if(StringUtils.isNotBlank(model.getImgurl())){ |
| | | model.setImgFullurl(path + model.getImgurl()); |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()) |
| | | || Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey())){ |
| | | //妿æ¯å¤§åºä¿¡æ¯ï¼æ¥è¯¢ææç»å®é¢çä»½ä¿¡æ¯ |
| | | model.setAreaList(areasMapper.selectList(new LambdaQueryWrapper<Areas>() |
| | | .eq(Areas::getIsdeleted,Constants.ZERO) |
| | | .eq(Areas::getBigAreaId,model.getId()))); |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey()),Areas::getBigAreaId,model.getId()) |
| | | .eq(Constants.equalsInteger(model.getType(),Constants.LabelsType.YUN_FEE.getKey()),Areas::getYunFeeId,model.getId()))); |
| | | } |
| | | } |
| | | } |
| | |
| | | public String addBatch(MemberCouponAddDTO memberCoupon){ |
| | | checkAddBatchParamValid(memberCoupon); |
| | | |
| | | int num = 0; |
| | | List<Coupon> couponList = getCouponListByParam(memberCoupon); |
| | | List<Member> memberList = getMemberListByParam(memberCoupon); |
| | | List<MemberCoupon> addList = new ArrayList<>(); |
| | |
| | | //æ¨ä¸ªé |
| | | addList.add(initMemberCouponByParam(coupon,member,loginUserInfo,now)); |
| | | } |
| | | num++; |
| | | } |
| | | index++; |
| | | } |
| | | |
| | | |
| | | if(addList.size()>0){ |
| | | //æ¹éæå
¥æ°æ® |
| | | memberCouponMapper.insert(addList); |
| | | } |
| | | return "æä½æå,æåäººåæ°éï¼"+num+",å
±åæ¾ä¼æ 叿°éï¼"+addList.size(); |
| | | return "æä½æå,æåäººåæ°éï¼"+memberList.size()+",å
±åæ¾ä¼æ 叿°éï¼"+addList.size(); |
| | | |
| | | } |
| | | |
| | |
| | | insert.setMemberId(member.getId()); |
| | | insert.setShopId(coupon.getShopId()); |
| | | insert.setType(coupon.getType()); |
| | | insert.setCouponType(coupon.getType()); |
| | | insert.setLimitPrice(coupon.getLimitPrice()); |
| | | insert.setPrice(coupon.getPrice()); |
| | | if(Constants.equalsObject(coupon.getUseType(),Constants.ZERO)){ |
| | |
| | | if(list == null || list.size()==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼æªæ¥è¯¢å°ææä¼æ 叿°æ®,è¯·å·æ°é¡µé¢éè¯ï¼"); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | private void checkAddBatchParamValid(MemberCouponAddDTO memberCoupon) { |
| | | if(memberCoupon.getAddType() == null || memberCoupon.getAddCouponList()==null || memberCoupon.getAddCouponList().size()==0){ |
| | | if(memberCoupon.getAddType() == null |
| | | || memberCoupon.getAddCouponList()==null |
| | | || memberCoupon.getAddCouponList().size()==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | if(Constants.equalsObject(memberCoupon.getAddType(),Constants.ZERO)){ |
| | |
| | | if( StringUtils.isBlank(memberCoupon.getAddMemberPhones())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | String[] ss =memberCoupon.getAddMemberPhones().split("\n"); |
| | | String[] ss =memberCoupon.getAddMemberPhones().replace(" ","").split("\n"); |
| | | if(ss == null ||ss.length==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | |
| | | MPJLambdaWrapper<MemberCoupon> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.selectAll(MemberCoupon.class); |
| | | queryWrapper.selectAs(Member::getPhone,MemberCoupon::getMemberPhone); |
| | | queryWrapper.selectAs(Member::getNickname,MemberCoupon::getNikeName); |
| | | queryWrapper.selectAs(Goodsorder::getCode,MemberCoupon::getOrderCode); |
| | | queryWrapper.selectAs(Goodsorder::getCouponPrice,MemberCoupon::getCouponPrice);//伿 éé¢ |
| | |
| | | IPage<MemberCoupon> result = memberCouponJoinMapper.selectJoinPage(page, MemberCoupon.class, queryWrapper); |
| | | if(result!=null && result.getRecords()!=null){ |
| | | for(MemberCoupon model :result.getRecords()){ |
| | | model.setNikeName(StringUtils.defaultString(model.getNikeName(),"")+" "+StringUtils.defaultString(model.getMemberPhone(),"")); |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ZERO) |
| | | && model.getEndDate()!=null |
| | | && model.getEndDate().before(new Date())){ |
| | |
| | | loginLog.setLoginUsername(dto.getUsername()); |
| | | loginLog.setLoginTime(new Date()); |
| | | loginLog.setSystemVersion(systemVersion); |
| | | loginLog.setIp(Utils.User_Client.getIP(request)); |
| | | loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); |
| | | // loginLog.setIp(Utils.User_Client.getIP(request)); |
| | | // loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); |
| | | loginLog.setPlatform(Utils.User_Client.getPlatform(request)); |
| | | loginLog.setClientInfo(Utils.User_Client.getBrowser(request)); |
| | | loginLog.setOsInfo(Utils.User_Client.getOS(request)); |