| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- <template id="com-boss">
- <div class="com-boss">
- <el-card class="edit-card" shadow="never">
- <!-- <div slot="header" class="clearfix">
- <div class="card-title">股东分红设置<span class="card-sub-title"></span></div>
- </div> -->
- <el-form :model="form" size="small">
- <el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane v-for="(setting,index) in form" :label="boss_commission_type[index]" :name="index" :key="index">
- <div>
- <el-form-item label="商品是否参与股东分红" prop="is_enable">
- <el-switch :active-value="1" :inactive-value="0" v-model="setting.is_enable"></el-switch>
- </el-form-item>
- <el-form-item label="是否独立设置" prop="is_alone">
- <el-switch :active-value="1" :inactive-value="0" v-model="setting.is_alone"></el-switch>
- </el-form-item>
-
- <template v-if="index == 'commission' && extend_data?.is_show_prize_pool !== false">
- <el-form-item label="商品是否进入奖金池分红" prop="is_prize_pool">
- <el-switch :active-value="1" :inactive-value="0" v-model="setting.is_prize_pool"></el-switch>
- </el-form-item>
- <template v-if="setting.is_prize_pool == 1">
- <el-form-item label="分红类型" prop="prize_pool_type">
- <el-radio-group v-model="setting.prize_pool_type" size="small">
- <el-radio :label="0">百分比</el-radio>
- <el-radio :label="1">固定值</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="分红金额" prop="prize_pool_num">
- <el-input v-model="setting.prize_pool_num" type="number" style="max-width:200px">
- <template slot="append">
- <span v-if="setting.prize_pool_type == 0">%</span>
- <span v-else>元</span>
- </template>
- </el-input>
- </el-form-item>
- </template>
- </template>
- <el-row :gutter="16" v-if="setting.is_alone == 1">
- <el-col :span="8">
- <el-card shadow="always">
- <!--永久分红设置 -->
- <div slot="header" class="clearfix">
- <span>永久分红</span>
- </div>
- <el-form-item>
- <el-col :span="24">
- <el-row>
- <el-col :span="5">
- <div class="grid-content bg-purple">股东等级</div>
- </el-col>
- <el-col :span="18">
- <div class="grid-content bg-purple-light">提成比例</div>
- </el-col>
- </el-row>
- <el-row v-for="(item,index) in level_arr.Boss" :key="index" style="margin-bottom:10px">
- <el-col :span="5">{{ item.name }}</el-col>
- <el-col :span="18">
- <el-input type="number" v-model="setting.detail[item.level].prize" placeholder="输入数值">
- <template slot="append">%</template>
- </el-input>
- </el-col>
- </el-row>
- </el-col>
- </el-form-item>
- </el-card>
- </el-col>
- <el-col :span="8">
- <el-card shadow="always">
- <div slot="header" class="clearfix">
- <span>开启额外分红</span>
- <el-switch :active-value="1" :inactive-value="0" v-model="setting.is_extra" style="margin-left: 10px;"></el-switch>
- </div>
- <!-- 额外分红设置 -->
- <el-form-item>
- <el-col :span="24">
- <el-row>
- <el-col :span="5">
- <div class="grid-content bg-purple">股东等级</div>
- </el-col>
- <el-col :span="18">
- <div class="grid-content bg-purple-light">额外分红比例</div>
- </el-col>
- </el-row>
- <el-row v-for="(item,index) in level_arr.Boss" :key="index" style="margin-bottom:10px">
- <el-col :span="5">{{ item.name }}</el-col>
- <el-col :span="18">
- <el-input type="number" v-model="setting.detail[item.level].extra_prize" placeholder="输入数值">
- <template slot="append">%</template>
- </el-input>
- </el-col>
- </el-row>
- </el-col>
- </el-form-item>
- </el-card>
- </el-col>
- </el-row>
- <template v-if="extend_data?.is_show_extra_ratio !== false">
- <el-form-item label="是否开启额外计算比例" prop="is_extra_ratio">
- <el-switch :active-value="1" :inactive-value="0" v-model="setting.is_extra_scale_ratio"></el-switch>
- <el-tooltip
- class="item"
- effect="dark"
- placement="bottom"
- >
- <i class="el-icon-question stat_icon"></i>
- <div slot="content" style="width: 300px; white-space: pre-line;">
- 开启后,股东的永久分红/额外分红/业绩分红需额外计算比例<br>
- 如:商品1000元,股东永久分红1%,原计算公式为:股东均分1000元*1%<br>
- 开启额外计算比例10%,则股东均分1000元*10%*1%
- </div>
- </el-tooltip>
- </el-form-item>
- <template v-if="setting.is_extra_scale_ratio == 1">
- <el-form-item label="额外计算比例" prop="extra_scale_ratio">
- <el-input v-model="setting.extra_scale_ratio" onInput="value=toNumber(value,2)" style="max-width:200px">
- <template slot="append">
- <span>%</span>
- </template>
- </el-input>
- </el-form-item>
- </template>
- </template>
- </div>
- </el-tab-pane>
- </el-tabs>
- </el-form>
- </el-card>
- </div>
- </template>
- <script>
- Vue.component('com-boss', {
- template: "#com-boss",
- props: {
- goods: {
- type: Object,
- default: () => {
- return {};
- }
- },
- level_arr: {
- type: Object,
- default: () => {
- return {};
- }
- },
- setting: {
- type: Object,
- default: () => {
- return {};
- }
- },
- boss_commission_type: {
- type: Object,
- default: () => {
- return {
- commission: '佣金',
- digital: '数字币'
- };
- }
- },
- extend_data: {
- type: Object,
- default: () => {
- return {
- is_show_prize_pool: true,
- is_show_extra_ratio: true
- };
- }
- }
- },
- data() {
- return {
- activeName: 'commission',
- form: {
- commission: {
- is_enable: 1,
- is_alone: 0,
- item_type: 'goods',
- commission_type: 'commission',
- is_extra: 0,
- detail: {},
- is_prize_pool: 0,
- prize_pool_type: 0,
- prize_pool_num: 0,
- is_extra_scale_ratio: 0,
- extra_scale_ratio: 0
- },
- digital: {
- is_enable: 1,
- is_alone: 0,
- item_type: 'goods',
- commission_type: ' digital',
- is_extra: 0,
- detail: {},
- is_prize_pool: 0,
- prize_pool_type: 0,
- prize_pool_num: 0
- },
- }
- }
- },
- watch: {
- setting: {
- deep: true,
- immediate: true,
- handler(value) {
- if (!isEmpty(value)) {
- this.form = value;
- }
- }
- },
- level_arr: {
- deep: true,
- immediate: true,
- handler(value) {
- if (!isEmpty(value)) {
- let _this = this
- var data = value.Boss;
- for (let name in _this.boss_commission_type) {
- let detail = {};
- var prize = isEmpty(_this.form[name]) ? {} : _this.form[name].detail;
- Object.keys(data).forEach(function(key) {
- var formKey = data[key].level;
- Object.assign(detail, {
- [formKey]: {
- level: data[key].level,
- prize: prize[formKey] ? prize[formKey].prize : 0,
- extra_prize: prize[formKey] ? prize[formKey].extra_prize : 0
- }
- });
- });
- _this.install = {
- is_enable: isEmpty(_this.form[name]) ? 1 : _this.form[name].is_enable,
- is_alone: isEmpty(_this.form[name]) ? 0 : _this.form[name].is_alone,
- is_extra: isEmpty(_this.form[name]) ? 0 : _this.form[name].is_extra,
- item_type: isEmpty(_this.form[name]) ? 'goods' : _this.form[name].item_type,
- commission_type: name,
- detail: detail,
- is_prize_pool: isEmpty(_this.form[name]) ? 0 : _this.form[name].is_prize_pool,
- prize_pool_type: isEmpty(_this.form[name]) ? 0 : _this.form[name].prize_pool_type,
- prize_pool_num: isEmpty(_this.form[name]) ? 0 : _this.form[name].prize_pool_num,
- is_extra_scale_ratio: isEmpty(_this.form[name]) ? 0 : _this.form[name].is_extra_scale_ratio,
- extra_scale_ratio: isEmpty(_this.form[name]) ? 0 : _this.form[name].extra_scale_ratio,
- };
- _this.$set(_this.form, name, JSON.parse(JSON.stringify(_this.install)));
- }
- }
- }
- },
- form: {
- deep: true,
- immediate: true,
- handler(value) {
- this.$emit("change", JSON.stringify(value), "Boss");
- }
- }
- },
- mounted() {
- this.getCurrencyText()
- },
- methods: {
- handleClick(tab, event) {
- console.log(tab, event);
- },
- getCurrencyText() {
- request({
- params: {
- r: 'mall/setting/get-currency-text',
- currency: Object.keys(this.boss_commission_type)
- },
- method: 'get',
- }).then(e => {
- if (e.data.code == 0) {
- let data = e.data.data
- for (let key in this.boss_commission_type) {
- if(key in data) {
- this.boss_commission_type[key] = data[key];
- }
- }
- console.log(e.data.data);
- }
- })
- },
- }
- });
- </script>
|