| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- define({
- name: "pointInt",
- template: `
- <div>
- <el-form label-width="140px">
- <div class="vue-main-title">
- <div class="vue-main-title-left"></div>
- <div class="vue-main-title-content">购物抵扣</div>
- </div>
- <div style="margin:0 auto;width:80%;">
- <el-form-item class="rad" label="购物抵扣开关">
- <el-radio v-model="json.deduction_set" :label="0">关闭</el-radio>
- <el-radio v-model="json.deduction_set" :label="1">开启</el-radio>
- </el-form-item>
- <div style="margin-left:155px;" v-if="json.deduction_set == 1">
- <el-input style="width:350px;" v-model="json.deduction_set_min" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="prepend">商品抵扣比例</template>
- <template slot="append">至</template>
- </el-input>
- <el-input style="width:250px;margin-left:-10px;" v-model="json.deduction_set_max" maxlength="300" oninput="if(value<0)value=''" type="number">
- </el-input>
- <div class="form-item_tips">商品最低至最高抵扣比例, 商品独立的的比例</div>
- </div>
- </div>
- <div class="vue-main-title">
- <div class="vue-main-title-left"></div>
- <div class="vue-main-title-content">购物上级赠送</div>
- </div>
- <div style="margin:0 auto;width:80%;">
- <el-form-item class="rad" label="购物上级赠送">
- <el-radio v-model="json.parent_award" :label="0">关闭</el-radio>
- <el-radio v-model="json.parent_award" :label="1">开启</el-radio>
- </el-form-item>
- <div v-if="json.parent_award == 1">
- <el-form-item v-if="integralSet.parent_award == 1">
- <el-row :gutter="25" class="gutter">
- <el-col :span="6">购物上一级赠送比例</el-col>
- <el-col :span="18" class="flex-col">
- <el-input v-model="json.parent_award_proportion" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">%</template>
- </el-input>
- <el-input style="margin-left: 10px" v-model="json.parent_award_fixed" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">{{pluginName}}</template>
- </el-input>
- </el-col>
- </el-row>
- <el-row :gutter="25" class="gutter">
- <el-col :span="6">购物上二级赠送比例</el-col>
- <el-col :span="18" class="flex-col">
- <el-input v-model="json.second_award_proportion" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">%</template>
- </el-input>
- <el-input style="margin-left: 10px" v-model="json.second_award_fixed" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">{{pluginName}}</template>
- </el-input>
- </el-col>
- </el-row>
- </el-form-item>
- <el-form-item class="row-item" v-else-if="integralSet.parent_award == 2">
- <el-row :gutter="25" class="gutter">
- <el-col :span="4"><div class="grid-content bg-purple">等级名称</div></el-col>
- <el-col :span="10"><div class="grid-content bg-purple" style="text-align: center;">一级赠送比例</div></el-col>
- <el-col :span="10"><div class="grid-content bg-purple" style="text-align: center;">二级赠送比例</div></el-col>
- </el-row>
- <el-row :gutter="25" class="gutter" v-for="(level, index) in commissionLevels" :key="level.id">
- <el-col :span="4">
- <div class="grid-content bg-purple">{{level.name}}</div>
- </el-col>
- <el-col :span="10" class="flex-col">
- <el-input v-model="level.first_level_rate" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">%</template>
- </el-input>
- <el-input v-model="level.first_level_fixed" style="margin-left: 10px" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">{{pluginName}}</template>
- </el-input>
- </el-col>
- <el-col :span="10" class="flex-col">
- <el-input v-model="level.second_level_rate" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">%</template>
- </el-input>
- <el-input v-model="level.second_level_fixed" style="margin-left: 10px" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">{{pluginName}}</template>
- </el-input>
- </el-col>
- </el-row>
- </el-form-item>
- <el-form-item v-else>
- <span>亲~您还没有开启购物上级赠送哦~您可以前往{{ pluginName }}设置处开启</span>
- <el-link type="primary" @click="toBaseSet">【点击前往{{ integralSet.pluginName }}设置】</el-link>
- </el-form-item>
- </div>
-
- </div>
- <div class="vue-main-title">
- <div class="vue-main-title-left"></div>
- <div class="vue-main-title-content">购物赠送</div>
- </div>
- <div style="margin:0 auto;width:80%;">
- <el-form-item class="rad" label="购物赠送" >
- <el-radio v-model="json.is_self_reward" :label="0">关闭</el-radio>
- <el-radio v-model="json.is_self_reward" :label="1">开启</el-radio>
- </el-form-item>
- <el-form-item class="rad">
- <el-radio v-model="json.self_reward_type" :label="0">比例</el-radio>
- <el-radio v-model="json.self_reward_type" :label="1">固定值</el-radio>
- </el-form-item>
- <div style="margin-left:155px;">
- <el-input style="width:300px;" v-model="json.self_award" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">{{json.self_reward_type == 0 ? '%' : pluginName}}</template>
- </el-input>
- </div>
-
-
- <el-form-item class="row-item" label="按会员等级赠送积分">
- <el-row :gutter="25" class="gutter">
- <el-col :span="6"><div class="grid-content bg-purple">会员等级</div></el-col>
- <el-col :span="5"><div class="grid-content bg-purple" style="text-align: center;">赠送数量</div></el-col>
- </el-row>
- <el-row :gutter="25" class="gutter" v-for="(level, index) in memberLevels" :key="level.id">
- <el-col :span="6">
- <div class="grid-content bg-purple">{{level.level_name}}</div>
- </el-col>
- <el-col :span="5" class="flex-col">
- <el-input v-model="level.give_integral" maxlength="300" oninput="if(value<0)value=''" type="number">
- <template slot="append">消费积分</template>
- </el-input>
- </el-col>
- </el-row>
- <div class="tip">
- 不受购物赠送开关影响<br/>
- 如果设置为空,则走会员等级统一设置<br/>
- 如果设置为0,则不赠送<br/>
- 如:购买2件,设置10消费积分,不管成交价格是多少,购买后获得20消费积分
- </div>
- </el-form-item>
- </div>
-
- </el-form>
- </div>
- `,
- style: `
- .row-item .el-input-group__append{
- width: 80px;
- text-align: center;
- }
- .el-row {
- margin-top:10px;
- }
- .flex-col {
- display: flex;
- }
- `,
- props: {
- form: {
- default() {
- return {};
- },
- },
- },
- data() {
- return {
- integralSet: {},
- pluginName: '',
- json: {
- deduction_set: 0,
- deduction_set_min: '',
- deduction_set_max: '',
- parent_award: 0,
- parent_award_proportion: '',
- parent_award_fixed: '',
- second_award_proportion: '',
- second_award_fixed: '',
- is_self_reward: 0,
- self_reward_type: 0,
- self_award: '',
- commission_level_award: ''
- },
- commissionLevels: [],
- memberLevels:[],
- };
- },
- mounted () {
- if (this.form.integralGoods) {
- this.json = this.pick(this.form.integralGoods, Object.keys(this.json));
- }
- this.integralSet = this.form.integralSet;
- this.pluginName = this.form.integralSet.plugin_name ? this.form.integralSet.plugin_name : '消费积分';
- this.commissionLevels = this.form.commissionLevels ? JSON.parse(JSON.stringify(this.form.commissionLevels)) : [];
- this.memberLevels = this.form.memberLevels ? JSON.parse(JSON.stringify(this.form.memberLevels)) : [];
- },
- methods: {
- pick(obj, params) {
- return params.reduce((iter, val) => (val in obj && (iter[val] = obj[val]), iter), {});
- },
- assignParams (origin, target, params) {
- params.forEach(item => {
- (item in origin) && (target[item] = origin[item]);
- })
- },
- prevent(e){
- let keynum = window.event ? e.keyCode : e.which; //获取键盘码
- if (keynum ==189|| keynum==190||keynum == 109 ||keynum == 110 ) {
- e.target.value = ""
- }
- },
- filterList (list=[]) {
- let levelArr = {};
- list.forEach((item, index) => {
- levelArr[item.fromName] = this.pick(item, [
- "first_level_rate",
- "first_level_fixed",
- "second_level_rate",
- "second_level_fixed"
- ]);
- })
- return levelArr;
- },
- toBaseSet () {
- let url = this.changeURLArg(window.location.href, "route", "plugin.integral.Backend.Controllers.base-set.store");
- window.location.href = url;
- },
- changeURLArg(url,arg,arg_val){
- var pattern=arg+'=([^&]*)';
- var replaceText=arg+'='+arg_val;
- if(url.match(pattern)){
- var tmp='/('+ arg+'=)([^&]*)/gi';
- tmp=url.replace(eval(tmp),replaceText);
- return tmp;
- }else{
- if(url.match('[\?]')){
- return url+'&'+replaceText;
- }else{
- return url+'?'+replaceText;
- }
- }
- },
- validate(){
- let formData = {};
- if (this.json.parent_award == 1 && this.integralSet.parent_award == 1) {
- this.assignParams(this.json, formData, [
- "parent_award_proportion",
- "parent_award_fixed",
- "second_award_proportion",
- "second_award_fixed"
- ]);
- } else if (this.json.parent_award == 1 && this.integralSet.parent_award == 2) {
- formData.commission_level_award = this.filterList(this.commissionLevels);
- }
- formData.memberLevels = this.memberLevels;
- this.assignParams(this.json, formData, [
- 'deduction_set',
- 'deduction_set_min',
- 'deduction_set_max',
- 'parent_award',
- 'is_self_reward',
- 'self_reward_type',
- 'self_award',
- ]);
- return formData;
- },
- }
- });
|