| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572 |
- <?php
- use common\helpers\ComponentHelper;
- ?>
- <div id="app" v-cloak>
- <el-card class="box-card" v-loading="loading" shadow="never" style="border:0;min-width: 1200px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
- <div slot="header">
- <div>
- <span>基础设置</span>
- </div>
- </div>
- <div class="form_box">
- <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm" label-width="150px">
- <el-card shadow="never">
- <div slot="header">
- <div>
- <span>分销设置</span>
- </div>
- </div>
- <div>
- <el-row>
- <el-col :span="16">
- <el-form-item label="默认等级">
- <div>
- <el-switch v-model="ruleForm.is_default_level" :active-value="1" :inactive-value="0">
- </el-switch>
- <div class="tips-text">默认等级无需达成任何条件,启用后所有会员默认拥有该身份。</div>
- </div>
- </el-form-item>
- <el-form-item label="默认等级" prop="default_level_name" v-if="ruleForm.is_default_level==1">
- <el-input v-model="ruleForm.default_level_name" type="text">
- </el-input>
- </el-form-item>
- <el-form-item prop="is_apply" label="成为分销商的条件">
- <el-col :span="8">
- <el-radio-group v-model="ruleForm.is_apply" size="small">
- <el-radio :label="0" border>无条件</el-radio>
- <el-radio :label="1" border>申请</el-radio>
- </el-radio-group>
- </el-col>
- </el-form-item>
- <el-form-item label="推广中心显示">
- <div>
- <el-switch v-model="ruleForm.is_show_at_center" :active-value="1" :inactive-value="0">
- </el-switch>
- </div>
- </el-form-item>
- <el-form-item prop="is_check" label="是否需要审核">
- <el-col :span="8">
- <el-radio-group v-model="ruleForm.is_check" size="small">
- <el-radio :label="0" border>不需要</el-radio>
- <el-radio :label="1" border>需要</el-radio>
- </el-radio-group>
- </el-col>
- </el-form-item>
- <el-form-item label="申请协议" prop="protocol" v-if="ruleForm.is_apply==1">
- <el-input type="textarea" :rows="4" placeholder="申请协议" v-model="ruleForm.protocol">
- </el-input>
- </el-form-item>
- <el-form-item label="分销层级" prop="level" required>
- <el-radio-group v-model="ruleForm.level" @change="levelChange">
- <el-radio :label="0">关闭</el-radio>
- <el-radio :label="1">一级分销</el-radio>
- <el-radio :label="2">二级分销</el-radio>
- <!-- <el-radio :label="3">三级分销</el-radio>-->
- </el-radio-group>
- <!-- <div class="tips-text">为了规避涉传风险,三级分销建议配合开启分销内购一起使用!</div>-->
- </el-form-item>
- <el-form-item label="分销内购" prop="is_self_buy" required>
- <label slot="label">分销内购
- <el-tooltip class="item" effect="dark" content="开启分销内购,分销商自己购买商品,享受自购补贴,一级代理享受商城补贴,二级代理享受供应补贴" placement="top">
- <i class="el-icon-info"></i>
- </el-tooltip>
- </label>
- <el-switch v-model="ruleForm.is_self_buy" :active-value="1" :inactive-value="0">
- </el-switch>
- </el-form-item>
- <el-form-item label="权益中心" style="margin-bottom: 0">
- <div>
- <el-switch v-model="ruleForm.is_show_share_level" :active-value="1" :inactive-value="0">
- </el-switch>
- </div>
- </el-form-item>
- <el-form-item>
- <label slot="label">
- <el-button type="text" @click="show_share_level = true">前端图片展示</el-button>
- </label>
- <el-dialog title="查看分销商等级入口图例" :visible.sync="show_share_level" width="30%">
- <div style="text-align: center">
- <image src="resources/img/mall/is_show_share_level.png"></image>
- </div>
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="show_share_level = false">我知道了</el-button>
- </div>
- </el-dialog>
- </el-form-item>
- <el-form-item prop="compute_type" label="结算方式">
- <el-col :span="19">
- <el-radio-group v-model="ruleForm.compute_type" size="small">
- <el-radio :label="0" border>订单完成后</el-radio>
- <el-radio :label="1" border>订单支付后</el-radio>
- </el-radio-group>
- </el-col>
- </el-form-item>
- <el-form-item prop="computing_method" label="计算方式">
- <el-col :span="19">
- <el-radio-group v-model="ruleForm.computing_method" size="small">
- <el-radio :label="0" border>实际支付金额</el-radio>
- <el-radio :label="1" border>商品售价</el-radio>
- <el-radio :label="2" border>商品利润</el-radio>
- </el-radio-group>
- </el-col>
- </el-form-item>
- <el-form-item prop="is_decr_score" label="佣金奖励减去积分" v-if="ruleForm.is_show_decr_score == 1">
- <el-col :span="10">
- <el-switch v-model="ruleForm.is_decr_score" :active-value="1" :inactive-value="0" active-color="#13ce66">
- </el-switch>
- </el-col>
- </el-form-item>
- <el-form-item label="团队业绩计算">
- <el-col :span="20">
- <el-switch v-model="ruleForm.set_team_achievement" :active-value="1" :inactive-value="0"></el-switch>
- <div class="tips-text">开启后条件升级“成为分销商商后,好友人数____人,下级团队业绩达到____元”此条件才会开始计算好友人数跟团队业绩,否则将不进行计算</div>
- </el-col>
- </el-form-item>
- <el-form-item prop="is_open_level_limit">
- <label slot="label">升级等级限制
- <el-tooltip class="item" effect="dark"
- content="开启后等级只能一级一级往上升级"
- placement="top">
- <i class="el-icon-info"></i>
- </el-tooltip>
- </label>
- <el-col :span="18">
- <el-switch v-model="ruleForm.is_open_level_limit" :active-value="1" :inactive-value="0"></el-switch>
- </el-col>
- </el-form-item>
- <el-form-item label="复购等于报单" style="margin-bottom: 8px">
- <label slot="label">复购等于报单
- <el-tooltip class="item" effect="dark" placement="top-start">
- <div slot="content">
- 举例<br>
- 假设设置了分销一、二级奖励的话,一级10元,二级5元,开关开启以后复购等于报单,<br>
- 自己复购下单了1000元的商品那么就可以拿一个一级分销奖励
- </div>
- <i class="el-icon-info"></i>
- </el-tooltip>
- </label>
- <div>
- <el-switch v-model="ruleForm.enable_repurchase_reward" :active-value="1" :inactive-value="0">
- </el-switch>
- </div>
- </el-form-item>
- <el-form-item label="积分上限值" style="margin-bottom: 0px">
- <el-col :span="20">
- <el-switch v-model="ruleForm.is_reward_score_limit" :active-value="1" :inactive-value="0"></el-switch>
- <div class="tips-text">开启后,分销商通过分销商插件获得的积分奖励不会超过设置的数值</div>
- <el-input v-if="ruleForm.is_reward_score_limit == 1" v-model="ruleForm.reward_score_limit" onInput="value=toNumber(value,2)"></el-input>
- </el-col>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- </el-card>
- <el-card style="margin-top: 10px" shadow="never" v-if="ruleForm.level > 0 && ruleForm.is_default_level==1">
- <div slot="header">
- <div>分销佣金设置
- <el-tooltip class="item" effect="dark" content="需要开启分销层级,才能设置对应的分销佣金" placement="top">
- <i class="el-icon-info"></i>
- </el-tooltip>
- </div>
- </div>
- <el-col :span="14">
- <el-form-item label="分销佣金类型" prop="price_type">
- <el-radio-group v-model="ruleForm.commission.is_percent">
- <el-radio :label="0">百分比</el-radio>
- <el-radio :label="1">固定金额</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="一级佣金" prop="first_price" v-if="ruleForm.level > 0">
- <el-input v-model="ruleForm.commission.first_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.commission.is_percent == 1">元</template>
- <template slot="append" v-if="ruleForm.commission.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="二级佣金" prop="second_price" v-if="ruleForm.level > 1">
- <el-input v-model="ruleForm.commission.second_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.commission.is_percent == 1">元</template>
- <template slot="append" v-if="ruleForm.commission.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="三级佣金" prop="third_price" v-if="ruleForm.level > 2">
- <el-input v-model="ruleForm.commission.third_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.commission.is_percent == 1">元</template>
- <template slot="append" v-if="ruleForm.commission.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="14">
- <el-form-item label="分销积分奖励" prop="score_type" v-if="ruleForm.level > 0">
- <el-radio-group v-model="ruleForm.score.is_percent">
- <el-radio :label="0">百分比</el-radio>
- <el-radio :label="1">固定</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="一级积分" prop="first_score" v-if="ruleForm.level > 0">
- <el-input v-model="ruleForm.score.first_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.score.is_percent == 1">积分</template>
- <template slot="append" v-if="ruleForm.score.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="二级积分" prop="second_score" v-if="ruleForm.level > 1">
- <el-input v-model="ruleForm.score.second_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.score.is_percent == 1">积分</template>
- <template slot="append" v-if="ruleForm.score.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="三级积分" prop="third_score" v-if="ruleForm.level > 2">
- <el-input v-model="ruleForm.score.third_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.score.is_percent == 1">积分</template>
- <template slot="append" v-if="ruleForm.score.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="14" v-if="ruleForm.is_huiju_beauty > 0">
- <el-form-item label="分销推动力奖励" prop="score_type" v-if="ruleForm.level > 0">
- <el-radio-group v-model="ruleForm.drive_cy.is_percent">
- <el-radio :label="0">百分比</el-radio>
- <el-radio :label="1">固定</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="一级推动力" prop="first_score" v-if="ruleForm.level > 0">
- <el-input v-model="ruleForm.drive_cy.first_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.drive_cy.is_percent == 1">推动力</template>
- <template slot="append" v-if="ruleForm.drive_cy.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="二级推动力" prop="second_score" v-if="ruleForm.level > 1">
- <el-input v-model="ruleForm.drive_cy.second_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.drive_cy.is_percent == 1">推动力</template>
- <template slot="append" v-if="ruleForm.drive_cy.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="三级推动力" prop="third_score" v-if="ruleForm.level > 2">
- <el-input v-model="ruleForm.drive_cy.third_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.drive_cy.is_percent == 1">推动力</template>
- <template slot="append" v-if="ruleForm.drive_cy.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- </el-col>
- <el-col :span="14">
- <el-form-item label="分销数字币奖励" prop="score_type" v-if="ruleForm.level > 0">
- <el-radio-group v-model="ruleForm.digital.is_percent">
- <el-radio :label="0">百分比</el-radio>
- <el-radio :label="1">固定</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="一级数字币" prop="first_score" v-if="ruleForm.level > 0">
- <el-input v-model="ruleForm.digital.first_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.digital.is_percent == 1">数字币</template>
- <template slot="append" v-if="ruleForm.digital.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="二级数字币" prop="second_score" v-if="ruleForm.level > 1">
- <el-input v-model="ruleForm.digital.second_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.digital.is_percent == 1">数字币</template>
- <template slot="append" v-if="ruleForm.digital.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="三级数字币" prop="third_score" v-if="ruleForm.level > 2">
- <el-input v-model="ruleForm.digital.third_prize" type="text" onInput="value=toNumber(value,2)">
- <template slot="append" v-if="ruleForm.digital.is_percent == 1">数字币</template>
- <template slot="append" v-if="ruleForm.digital.is_percent == 0">%</template>
- </el-input>
- </el-form-item>
- </el-col>
- </el-card>
- </el-form>
- <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;" @click="store('ruleForm')" size="small">保存
- </el-button>
- </div>
- </el-card>
- </div>
- <script>
- const app = new Vue({
- el: '#app',
- data() {
- let firstPriceValidate = (rule, value, callback) => {
- if (this.ruleForm.level > 0 && !value && value !== 0) {
- callback(new Error('一级佣金不能为空'));
- }
- callback();
- };
- let secondPriceValidate = (rule, value, callback) => {
- if (this.ruleForm.level > 1 && !value && value !== 0) {
- callback(new Error('二级佣金不能为空'));
- }
- callback();
- };
- let thirdPriceValidate = (rule, value, callback) => {
- if (this.ruleForm.level > 2 && !value && value !== 0) {
- callback(new Error('三级佣金不能为空'));
- }
- callback();
- };
- let firstScoreValidate = (rule, value, callback) => {
- if (this.ruleForm.level > 0 && !value && value !== 0) {
- callback(new Error('一级佣金不能为空'));
- }
- callback();
- };
- let secondScoreValidate = (rule, value, callback) => {
- if (this.ruleForm.level > 1 && !value && value !== 0) {
- callback(new Error('二级佣金不能为空'));
- }
- callback();
- };
- let thirdScoreValidate = (rule, value, callback) => {
- if (this.ruleForm.level > 2 && !value && value !== 0) {
- callback(new Error('三级佣金不能为空'));
- }
- callback();
- };
- return {
- loading: false,
- btnLoading: false,
- cat_show: false,
- show_share_level: false,
- ruleForm: {
- level: 0,
- is_apply: 0,
- is_show_at_center: 1,
- is_check: 0,
- is_self_buy: 0,
- score: {
- is_percent: 0,
- first_prize: 0,
- second_prize: 0,
- third_prize: 0,
- },
- commission: {
- is_percent: 0,
- first_prize: 0,
- second_prize: 0,
- third_prize: 0,
- },
- digital: {
- is_percent: 0,
- first_prize: 0,
- second_prize: 0,
- third_prize: 0,
- },
- drive_cy: {
- is_percent: 0,
- first_prize: 0,
- second_prize: 0,
- third_prize: 0,
- },
- is_show_share_level: 1,
- rebuy_price_date: 1,
- is_rebuy: 0,
- is_team: 0,
- subsidy_price_date: 1,
- is_subsidy: 0,
- computing_method: 0,
- compute_type: 0,
- protocol: '',
- is_default_level: 1,
- default_level_name: '',
- is_show_decr_score: 0,
- is_decr_score: 0,
- set_team_achievement:0,
- is_open_level_limit:0,
- enable_repurchase_reward:0,
- is_distributor_dividends_switch:0,
- distributor_dividends_goods_ids:'',
- is_huiju_beauty: 0,
- is_reward_score_limit: 0,
- reward_score_limit: 0,
- },
- rules: {
- level: [{
- message: '请选择分销层级',
- trigger: 'blur',
- required: true
- }],
- is_self_buy: [{
- message: '请选择分销内购',
- trigger: 'blur',
- required: true
- }],
- // price_type: [{
- // message: '请选择分销佣金类型',
- // trigger: 'blur',
- // required: true
- // }],
- // score_type: [{
- // message: '请选择分销积分类型',
- // trigger: 'blur',
- // required: true
- // }],
- // first_price: [{
- // validator: firstPriceValidate,
- // trigger: 'blur'
- // },
- // {
- // type: 'number',
- // message: '一级佣金必须为数字',
- // trigger: 'blur'
- // },
- // ],
- // second_price: [{
- // validator: secondPriceValidate,
- // trigger: 'blur'
- // },
- // {
- // type: 'number',
- // message: '二级佣金必须为数字',
- // trigger: 'blur'
- // },
- // ],
- // third_price: [{
- // validator: thirdPriceValidate,
- // trigger: 'blur'
- // },
- // {
- // type: 'number',
- // message: '三级佣金必须为数字',
- // trigger: 'blur'
- // },
- // ],
- // first_score: [{
- // validator: firstScoreValidate,
- // trigger: 'blur'
- // },
- // {
- // type: 'number',
- // message: '一级积分必须为数字',
- // trigger: 'blur'
- // },
- // ],
- // second_score: [{
- // validator: secondScoreValidate,
- // trigger: 'blur'
- // },
- // {
- // type: 'number',
- // message: '二级积分必须为数字',
- // trigger: 'blur'
- // },
- // ],
- // third_score: [{
- // validator: thirdScoreValidate,
- // trigger: 'blur'
- // },
- // {
- // type: 'number',
- // message: '三级积分必须为数字',
- // trigger: 'blur'
- // },
- // ],
- }
- }
- },
- mounted: function() {
- this.loadData();
- },
- methods: {
- loadData() {
- this.loading = true;
- request({
- params: {
- r: 'distribution/setting/index',
- },
- method: 'get'
- }).then(e => {
- console.log('e:', e);
- this.loading = false;
- if (e.data.code == 0) {
- Object.assign(this.ruleForm, e.data.data);
- this.ruleForm.commission = e.data.data.commission;
- this.ruleForm.score = e.data.data.score;
- }
- }).catch(e => {
- this.loading = false;
- this.$message.error(e);
- })
- },
- store(formName) {
- if (this.ruleForm.rebuy_price_date > 28) {
- this.$message.error('为防止部分月份低于28天,请填写28日及之前');
- return;
- }
- if (this.ruleForm.is_reward_score_limit && !this.ruleForm.reward_score_limit) {
- this.$message.error('请填写积分上限值');
- return;
- }
- let title_obj = {};
- this.$nextTick(() => {
- let elFormItemLabelDom = document.getElementsByClassName("el-form-item__label");
- for (let i = 0; i < elFormItemLabelDom.length; i++) {
- let labKey = elFormItemLabelDom[i].getAttribute("for");
- let labVal = elFormItemLabelDom[i].innerText;
- title_obj[labKey] = labVal;
- }
- })
- this.$refs[formName].validate((valid) => {
- if (valid) {
- this.btnLoading = true;
- request({
- params: {
- r: 'distribution/setting/index',
- },
- method: 'post',
- data: {
- basic: this.ruleForm,
- // title: title_obj,
- }
- }).then(e => {
- this.btnLoading = false;
- if (e.data.code == 0) {
- this.$message.success(e.data.msg);
- } else {
- this.$message.error(e.data.msg);
- }
- }).catch(e => {
- this.$message.error(e);
- this.btnLoading = false;
- })
- } else {
- this.btnLoading = false;
- console.log('error submit!!');
- return false;
- }
- });
- },
- levelChange(value){
- if(value==3){
- //为了规避涉传风险,不建议开启!
- this.$message.error('为了规避涉传风险,三级分销建议配合开启分销内购一起使用!');
- }
- }
- }
- });
- </script>
- <style>
- .form_box {
- background-color: #f3f3f3;
- padding: 0 0 20px;
- }
- .button-item {
- margin-top: 12px;
- padding: 9px 25px;
- }
- .el-input-group__append {
- background-color: #fff;
- color: #353535;
- }
- </style>
|