|
@@ -1,151 +1,471 @@
|
|
<template>
|
|
<template>
|
|
<div class="divBox">
|
|
<div class="divBox">
|
|
- <el-card class="box-card" :bordered="false" shadow="never" :body-style="{ padding: '40px 50px' }">
|
|
|
|
- <el-form
|
|
|
|
- ref="promoterForm"
|
|
|
|
- :model="promoterForm"
|
|
|
|
- :rules="rules"
|
|
|
|
- label-width="200px"
|
|
|
|
- class="demo-promoterForm"
|
|
|
|
- v-loading="loading"
|
|
|
|
- >
|
|
|
|
- <el-form-item prop="basicFee">
|
|
|
|
- <span slot="label">
|
|
|
|
- <span>基础配送费:</span>
|
|
|
|
- <el-tooltip class="item" effect="dark" content="骑手基础配送费" placement="top-start">
|
|
|
|
- <i class="el-icon-warning-outline" />
|
|
|
|
- </el-tooltip>
|
|
|
|
- </span>
|
|
|
|
- <el-input-number
|
|
|
|
- v-model.trim="promoterForm.basicFee"
|
|
|
|
- placeholder="骑手基础配送费"
|
|
|
|
- :min="0"
|
|
|
|
- :max="100"
|
|
|
|
- class="selWidth"
|
|
|
|
- ></el-input-number>
|
|
|
|
- <span>元</span>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="distanceInKm">
|
|
|
|
- <span slot="label">
|
|
|
|
- <span>设置配送距离:</span>
|
|
|
|
- <el-tooltip
|
|
|
|
- class="item"
|
|
|
|
- effect="dark"
|
|
|
|
- content="设置配送距离"
|
|
|
|
- placement="top-start"
|
|
|
|
- >
|
|
|
|
- <i class="el-icon-warning-outline" />
|
|
|
|
- </el-tooltip>
|
|
|
|
- </span>
|
|
|
|
- <el-input-number
|
|
|
|
- v-model.trim="promoterForm.distanceInKm"
|
|
|
|
- :min="0"
|
|
|
|
- :max="8"
|
|
|
|
- class="selWidth"
|
|
|
|
- placeholder="设置配送距离"
|
|
|
|
- ></el-input-number>
|
|
|
|
- <span>km</span>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="feePerKm">
|
|
|
|
- <span slot="label">
|
|
|
|
- <span>超过距离配送费用:</span>
|
|
|
|
- <el-tooltip
|
|
|
|
- class="item"
|
|
|
|
- effect="dark"
|
|
|
|
- content="设置超过距离配送费用"
|
|
|
|
- placement="top-start"
|
|
|
|
|
|
+ <el-card class="box-card mb20" :body-style="{ padding: '0 20px 20px' }" shadow="never" :bordered="false">
|
|
|
|
+ <el-tabs class="list-tabs" v-model="currentTab">
|
|
|
|
+ <el-tab-pane v-for="(item, index) in tabList" :key="index" :name="item.value" :label="item.title" />
|
|
|
|
+ </el-tabs>
|
|
|
|
+ <!-- 配送费设置-->
|
|
|
|
+ <template v-if="currentTab === '0'">
|
|
|
|
+ <el-form
|
|
|
|
+ ref="promoterForm"
|
|
|
|
+ :model="promoterForm"
|
|
|
|
+ :rules="rules"
|
|
|
|
+ label-width="200px"
|
|
|
|
+ class="demo-promoterForm"
|
|
|
|
+ v-loading="loading"
|
|
|
|
+ >
|
|
|
|
+ <el-form-item prop="basicFee">
|
|
|
|
+ <span slot="label">
|
|
|
|
+ <span>基础配送费:</span>
|
|
|
|
+ <el-tooltip class="item" effect="dark" content="骑手基础配送费" placement="top-start">
|
|
|
|
+ <i class="el-icon-warning-outline" />
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </span>
|
|
|
|
+ <el-input-number
|
|
|
|
+ v-model.trim="promoterForm.basicFee"
|
|
|
|
+ placeholder="骑手基础配送费"
|
|
|
|
+ :min="0"
|
|
|
|
+ :max="100"
|
|
|
|
+ class="selWidth"
|
|
|
|
+ ></el-input-number>
|
|
|
|
+ <span>元</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item prop="distanceInKm">
|
|
|
|
+ <span slot="label">
|
|
|
|
+ <span>设置配送距离:</span>
|
|
|
|
+ <el-tooltip
|
|
|
|
+ class="item"
|
|
|
|
+ effect="dark"
|
|
|
|
+ content="设置配送距离"
|
|
|
|
+ placement="top-start"
|
|
|
|
+ >
|
|
|
|
+ <i class="el-icon-warning-outline" />
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </span>
|
|
|
|
+ <el-input-number
|
|
|
|
+ v-model.trim="promoterForm.distanceInKm"
|
|
|
|
+ :min="0"
|
|
|
|
+ :max="8"
|
|
|
|
+ class="selWidth"
|
|
|
|
+ placeholder="设置配送距离"
|
|
|
|
+ ></el-input-number>
|
|
|
|
+ <span>km</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item prop="feePerKm">
|
|
|
|
+ <span slot="label">
|
|
|
|
+ <span>每超过1km距离配送费用:</span>
|
|
|
|
+ <el-tooltip
|
|
|
|
+ class="item"
|
|
|
|
+ effect="dark"
|
|
|
|
+ content="每超过1km距离配送费用"
|
|
|
|
+ placement="top-start"
|
|
|
|
+ >
|
|
|
|
+ <i class="el-icon-warning-outline" />
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </span>
|
|
|
|
+ <el-input-number
|
|
|
|
+ v-model.trim="promoterForm.feePerKm"
|
|
|
|
+ :min="0"
|
|
|
|
+ :max="100"
|
|
|
|
+ class="selWidth"
|
|
|
|
+ placeholder="每超过1km距离配送费用"
|
|
|
|
+ ></el-input-number>
|
|
|
|
+ <span>元</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ :loading="loading"
|
|
|
|
+ @click="submitForm('promoterForm')"
|
|
|
|
+ v-hasPermi="['platform:rider:fee:add']"
|
|
|
|
+ >提交</el-button
|
|
>
|
|
>
|
|
- <i class="el-icon-warning-outline" />
|
|
|
|
- </el-tooltip>
|
|
|
|
- </span>
|
|
|
|
- <el-input-number
|
|
|
|
- v-model.trim="promoterForm.feePerKm"
|
|
|
|
- :min="0"
|
|
|
|
- :max="100"
|
|
|
|
- class="selWidth"
|
|
|
|
- placeholder="设置超过距离配送费用"
|
|
|
|
- ></el-input-number>
|
|
|
|
- <span>元</span>
|
|
|
|
- </el-form-item>
|
|
|
|
-
|
|
|
|
- <el-form-item>
|
|
|
|
- <el-button
|
|
|
|
- type="primary"
|
|
|
|
- :loading="loading"
|
|
|
|
- @click="submitForm('promoterForm')"
|
|
|
|
- v-hasPermi="['platform:rider:fee:add']"
|
|
|
|
- >提交</el-button
|
|
|
|
- >
|
|
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <!-- 配送时间范围-->
|
|
|
|
+ <template v-if="currentTab === '1'">
|
|
|
|
+ <el-button
|
|
|
|
+ v-hasPermi="['platform:pc:shopping:home:recommended:add']"
|
|
|
|
+ type="primary"
|
|
|
|
+ size="small"
|
|
|
|
+ class="mb20"
|
|
|
|
+ @click="handleAdd"
|
|
|
|
+ >添加预约时间范围</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ size="small"
|
|
|
|
+ class="mb20"
|
|
|
|
+ @click.native="handleBatchSales()"
|
|
|
|
+ v-if="
|
|
|
|
+ checkPermi(['platform:product:batch:set:virtual:sales'])
|
|
|
|
+ "
|
|
|
|
+ >批量设置</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-table
|
|
|
|
+ v-loading="listLoading"
|
|
|
|
+ :data="tableData.data"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ size="small"
|
|
|
|
+ row-key="brand_id"
|
|
|
|
+ :default-expand-all="false"
|
|
|
|
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column prop="id" label="ID" min-width="60" />
|
|
|
|
+ <el-table-column label="预约时间范围" prop="beginTime" min-width="150">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span>{{ scope.row.beginTime | formatDate }}-{{ scope.row.endTime | formatDate }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="sort" label="排序" min-width="50" />
|
|
|
|
+ <el-table-column prop="status" label="是否显示" min-width="100" fixed="right">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-switch
|
|
|
|
+ v-if="checkPermi(['platform:pc:shopping:home:recommended:switch'])"
|
|
|
|
+ v-model="scope.row.status"
|
|
|
|
+ :active-value="true"
|
|
|
|
+ :inactive-value="false"
|
|
|
|
+ active-text="显示"
|
|
|
|
+ inactive-text="关闭"
|
|
|
|
+ @change="onchangeIsShow(scope.row)"
|
|
|
|
+ />
|
|
|
|
+ <div v-else>{{ scope.row.status ? '启用' : '关闭' }}</div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="操作" width="120" fixed="right">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <a @click="handleEdit(scope.row)">编辑</a>
|
|
|
|
+ <el-divider direction="vertical"></el-divider>
|
|
|
|
+ <a
|
|
|
|
+ @click="handleDelete(scope.row.id, scope.$index)"
|
|
|
|
+ >删除</a
|
|
|
|
+ >
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ </el-card>
|
|
|
|
+ <!-- 批量增加销量-->
|
|
|
|
+ <el-dialog title="批量设置" :visible.sync="dialogVisible" width="540px" :before-close="handleTimeBatchClose">
|
|
|
|
+ <el-form :model="formData" ref="formData" label-width="100px" class="demo-ruleForm">
|
|
|
|
+ <el-form-item label="间隔时间:" required>
|
|
|
|
+ <el-input-number v-model.trim="formData.intervalTime" :min="20" :max="50"></el-input-number>分钟
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
- </el-card>
|
|
|
|
|
|
+ <span slot="footer">
|
|
|
|
+ <el-button @click="dialogVisible = false">取消</el-button>
|
|
|
|
+ <el-button type="primary" @click="submitBatchSetDeliveForm('formData')" v-hasPermi="['platform:express:update']"
|
|
|
|
+ >确定</el-button
|
|
|
|
+ >
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!--添加首页推荐模板-->
|
|
|
|
+ <el-dialog width="540px" :visible.sync="drawer" direction="rtl" class="showHeader" :before-close="handleClose">
|
|
|
|
+ <div slot="title" class="demo-drawer_title">{{ dataForm.id ? '编辑预约配送时间范围' : '添加预约配送时间范围' }}</div>
|
|
|
|
+ <div v-if="drawer" class="demo-drawer__content detailSection">
|
|
|
|
+ <el-form
|
|
|
|
+ ref="dataForm"
|
|
|
|
+ v-loading="fullscreenLoading"
|
|
|
|
+ class="dataForm mt20"
|
|
|
|
+ :rules="ruleValidate"
|
|
|
|
+ :model="dataForm"
|
|
|
|
+ label-width="120px"
|
|
|
|
+ @submit.native.prevent
|
|
|
|
+ >
|
|
|
|
+ <el-form-item label="起始时间:" prop="beginTime">
|
|
|
|
+ <el-time-picker v-model="dataForm.beginTime"
|
|
|
|
+ format="HH:mm"
|
|
|
|
+ value-format="HH:mm"
|
|
|
|
+ arrow-control
|
|
|
|
+ placeholder="选择时间"></el-time-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="截止时间:" prop="endTime">
|
|
|
|
+ <el-time-picker
|
|
|
|
+ arrow-control
|
|
|
|
+ format="HH:mm"
|
|
|
|
+ value-format="HH:mm"
|
|
|
|
+ v-model="dataForm.endTime"
|
|
|
|
+ placeholder="结束时间"></el-time-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="排序:">
|
|
|
|
+ <el-input-number
|
|
|
|
+ v-model.trim="dataForm.sort"
|
|
|
|
+ :min="0"
|
|
|
|
+ :max="99"
|
|
|
|
+ :step="1"
|
|
|
|
+ step-strictly
|
|
|
|
+ label="排序"
|
|
|
|
+ ></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="是否开启:">
|
|
|
|
+ <el-switch
|
|
|
|
+ :width="56"
|
|
|
|
+ v-model="dataForm.status"
|
|
|
|
+ :active-value="true"
|
|
|
|
+ :inactive-value="false"
|
|
|
|
+ active-text="开启"
|
|
|
|
+ inactive-text="关闭"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item class="btn">
|
|
|
|
+ <div>
|
|
|
|
+ <div class="acea-row justify-content">
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ v-debounceClick="
|
|
|
|
+ () => {
|
|
|
|
+ handleRecommendedSave('dataForm');
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ >{{ loadingBtn ? '提交中 ...' : '保存' }}</el-button
|
|
|
|
+ >
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
-
|
|
|
|
<script>
|
|
<script>
|
|
-// +---------------------------------------------------------------------
|
|
|
|
-// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|
|
|
-// +---------------------------------------------------------------------
|
|
|
|
-// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
|
|
|
-// +---------------------------------------------------------------------
|
|
|
|
-// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|
|
|
-// +---------------------------------------------------------------------
|
|
|
|
-// | Author: CRMEB Team <admin@crmeb.com>
|
|
|
|
-// +---------------------------------------------------------------------
|
|
|
|
-import { configApi, configUpdateApi } from '@/api/rider';
|
|
|
|
-import * as selfUtil from '@/utils/ZBKJIutil.js';
|
|
|
|
-import { checkPermi } from '@/utils/permission'; // 权限判断函数
|
|
|
|
|
|
+import FromList from '@/components/FromList';
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+import productAssociationForm from '@/components/productAssociationForm';
|
|
|
|
+
|
|
|
|
+import { configApi, configUpdateApi,deliveTimeAddApi,deliveTimeUpdateApi,deliveTimeListApi,deliveTimeDeleteApi,deliveTimeSwitchApi,deliveTimeBatchSetApi } from '@/api/rider';
|
|
|
|
+import { mapGetters } from 'vuex';
|
|
|
|
+import { checkPermi } from '@/utils/permission';
|
|
import { Debounce } from '@/utils/validate';
|
|
import { Debounce } from '@/utils/validate';
|
|
|
|
+import { advertisementDefault, bannerDefault, menuDefault } from '@/views/systemSetting/pcConfig/defaultPcConfig';
|
|
|
|
+const fromData = {
|
|
|
|
+ endTime: null,
|
|
|
|
+ beginTime: null,
|
|
|
|
+ sort: 0,
|
|
|
|
+ id: 0,
|
|
|
|
+ status: false
|
|
|
|
+};
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
- name: 'deliverySetting',
|
|
|
|
|
|
+ name: 'homeSettings',
|
|
|
|
+ components: { productAssociationForm, FromList },
|
|
data() {
|
|
data() {
|
|
|
|
+
|
|
|
|
+ // 自定义组件校验规则
|
|
|
|
+ let validatePlayTypeAndPlayProducts = (rule, value, callback) => {
|
|
|
|
+ if (value === '' || this.dataForm.playProducts.length === 0) {
|
|
|
|
+ callback(new Error('请选择参与类型和对应规则'));
|
|
|
|
+ } else {
|
|
|
|
+ callback();
|
|
|
|
+ }
|
|
|
|
+ };
|
|
return {
|
|
return {
|
|
- promoterForm: {},
|
|
|
|
- loading: false,
|
|
|
|
- rules: {
|
|
|
|
- basicFee: [{ required: true, message: '请设置骑手基础费用', trigger: 'change' }],
|
|
|
|
- distanceInKm: [{ required: true, message: '请设置公里数', trigger: 'blur' }],
|
|
|
|
- feePerKm: [{ required: true, message: '请输入每公里费用', trigger: 'blur' }],
|
|
|
|
|
|
+ formData: { intervalTime: 20 },
|
|
|
|
+ dialogVisible: false,
|
|
|
|
+ loading: false,
|
|
|
|
+ promoterForm: {},
|
|
|
|
+ currentTab: '0',
|
|
|
|
+ tabList: [
|
|
|
|
+ { value: '0', title: '配送费设置' },
|
|
|
|
+ { value: '1', title: '配送预约时间设置' }
|
|
|
|
+ ],
|
|
|
|
+ drawer: false,
|
|
|
|
+ fullscreenLoading: false,
|
|
|
|
+ rules: {
|
|
|
|
+ basicFee: [{ required: true, message: '请设置骑手基础费用', trigger: 'change' }],
|
|
|
|
+ distanceInKm: [{ required: true, message: '请设置公里数', trigger: 'blur' }],
|
|
|
|
+ feePerKm: [{ required: true, message: '请输入每公里费用', trigger: 'blur' }],
|
|
|
|
+ },
|
|
|
|
+ ruleValidate: {
|
|
|
|
+ beginTime: [{ required: true, message: '请输入预约起始时间', trigger: 'blur' }],
|
|
|
|
+ endTime: [{ required: true, message: '请输入预约结束时间', trigger: 'blur' }],
|
|
|
|
+ },
|
|
|
|
+ dataForm: Object.assign({}, fromData),
|
|
|
|
+ loadingBtn: false,
|
|
|
|
+ tableData: {
|
|
|
|
+ data: [],
|
|
},
|
|
},
|
|
|
|
+ listLoading: false,
|
|
|
|
+ productData: [], //选中的商品类型值
|
|
|
|
+ // 首页广告语
|
|
|
|
+ advertisementlistConfig: Object.assign({}, advertisementDefault()),
|
|
|
|
+ // banner数据
|
|
|
|
+ bannerListConfig: Object.assign({}, bannerDefault()),
|
|
|
|
+ playValues: null, // 待添加的商品参与类型
|
|
|
|
+ //顶部菜单
|
|
|
|
+ menuListConfig: Object.assign({}, menuDefault()),
|
|
|
|
+ multipleMer: true,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
|
|
+ filters: {
|
|
|
|
+ formatDate(date) {
|
|
|
|
+ return date.substr(0,date.lastIndexOf(':'));
|
|
|
|
+ }
|
|
|
|
+ },
|
|
mounted() {
|
|
mounted() {
|
|
- if (checkPermi(['platform:rider:fee:add'])) this.getDetal();
|
|
|
|
|
|
+ // if (this.id > 0) {
|
|
|
|
+ // this.getRecommendedInfo(this.id);
|
|
|
|
+ // }
|
|
|
|
+ if (checkPermi(['platform:rider:fee:add'])) this.getDetal();
|
|
|
|
+ this.getList();
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ ...mapGetters(['merPlatProductClassify', 'productBrand']),
|
|
|
|
+ isEdit() {
|
|
|
|
+ return this.dataForm.id > 0 ? true : false;
|
|
|
|
+ }
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
checkPermi,
|
|
checkPermi,
|
|
- getDetal() {
|
|
|
|
- this.loading = true;
|
|
|
|
- configApi()
|
|
|
|
|
|
+ //顶部菜单保存
|
|
|
|
+ handleMenuSave() {
|
|
|
|
+ this.menuListConfig.list.map((item, index) => {
|
|
|
|
+ item.sort = index + 1;
|
|
|
|
+ });
|
|
|
|
+ this.loadingBtn = true;
|
|
|
|
+ pcHomeNavigationSaveApi(this.menuListConfig.list)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.$message.success('保存成功');
|
|
|
|
+ this.loadingBtn = false;
|
|
|
|
+ this.getPcHomeNavigation();
|
|
|
|
+ })
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.loadingBtn = false;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ //首页推荐模板列表
|
|
|
|
+ getList() {
|
|
|
|
+ this.listLoading = true;
|
|
|
|
+ deliveTimeListApi()
|
|
.then((res) => {
|
|
.then((res) => {
|
|
- this.loading = false;
|
|
|
|
- this.promoterForm = res;
|
|
|
|
|
|
+ this.tableData.data = res;
|
|
|
|
+ this.listLoading = false;
|
|
})
|
|
})
|
|
- .catch((res) => {
|
|
|
|
- this.loading = false;
|
|
|
|
- this.$message.error(res.message);
|
|
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.listLoading = false;
|
|
});
|
|
});
|
|
},
|
|
},
|
|
- submitForm: Debounce(function (formName) {
|
|
|
|
|
|
+ handleTimeBatchClose() {
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
+ this.formData.ficti = 0;
|
|
|
|
+ },
|
|
|
|
+ //模板弹窗
|
|
|
|
+ handleClose() {
|
|
|
|
+ //this.$refs['formValidate'].resetFields();
|
|
|
|
+ this.drawer = false;
|
|
|
|
+ },
|
|
|
|
+ //新增模板
|
|
|
|
+ handleAdd() {
|
|
|
|
+ this.dataForm = Object.assign({}, fromData);
|
|
|
|
+ this.drawer = true;
|
|
|
|
+ this.loadingBtn = false;
|
|
|
|
+ },
|
|
|
|
+ //模板状态
|
|
|
|
+ onchangeIsShow(row) {
|
|
|
|
+ deliveTimeSwitchApi(row.id).then((res) => {
|
|
|
|
+ this.$message.success('操作成功');
|
|
|
|
+ this.getList();
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ //编辑首页推荐模板
|
|
|
|
+ handleEdit(row) {
|
|
|
|
+ this.dataForm.id = row.id;
|
|
|
|
+ Object.assign(this.dataForm, row);
|
|
|
|
+ this.drawer = true;
|
|
|
|
+ this.loadingBtn = false;
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 删除首页推荐
|
|
|
|
+ handleDelete(id, idx) {
|
|
|
|
+ this.$modalSure('删除该配置吗?').then(() => {
|
|
|
|
+ deliveTimeDeleteApi(id).then((res) => {
|
|
|
|
+ this.$message.success('删除成功');
|
|
|
|
+ this.getList();
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ /** 提交按钮 */
|
|
|
|
+ submitBatchSetDeliveForm: Debounce(function (formData) {
|
|
|
|
+ this.loadingBtn = false;
|
|
|
|
+ this.$refs[formData].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ deliveTimeBatchSetApi(this.formData).then((response) => {
|
|
|
|
+ this.$modal.msgSuccess('操作成功');
|
|
|
|
+ this.getList();
|
|
|
|
+ this.loadingBtn = true;
|
|
|
|
+ this.handleTimeBatchClose();
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }),
|
|
|
|
+ submitForm: Debounce(function (formName) {
|
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ this.loading = true;
|
|
|
|
+ configUpdateApi(this.promoterForm)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.getDetal();
|
|
|
|
+ this.$message.success('提交成功');
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }),
|
|
|
|
+ //推荐模板保存
|
|
|
|
+ handleRecommendedSave(formName) {
|
|
this.$refs[formName].validate((valid) => {
|
|
this.$refs[formName].validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
- this.loading = true;
|
|
|
|
- configUpdateApi(this.promoterForm)
|
|
|
|
- .then((res) => {
|
|
|
|
- this.loading = false;
|
|
|
|
- this.getDetal();
|
|
|
|
- this.$message.success('提交成功');
|
|
|
|
- })
|
|
|
|
- .catch((err) => {
|
|
|
|
- this.loading = false;
|
|
|
|
- });
|
|
|
|
|
|
+ this.loadingBtn = true;
|
|
|
|
+ this.isEdit
|
|
|
|
+ ? deliveTimeUpdateApi(this.dataForm)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.$message.success('编辑成功');
|
|
|
|
+ this.handleClose();
|
|
|
|
+ this.getList();
|
|
|
|
+ })
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.loadingBtn = false;
|
|
|
|
+ })
|
|
|
|
+ : deliveTimeAddApi(this.dataForm)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.$message.success('新增成功');
|
|
|
|
+ this.handleClose();
|
|
|
|
+ this.getList();
|
|
|
|
+ })
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.loadingBtn = false;
|
|
|
|
+ });
|
|
} else {
|
|
} else {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- }),
|
|
|
|
|
|
+ },
|
|
|
|
+ //批量增加初始销量
|
|
|
|
+ handleBatchSales() {
|
|
|
|
+ this.dialogVisible = true;
|
|
|
|
+ },
|
|
|
|
+ getDetal() {
|
|
|
|
+ configApi().then((res) => {
|
|
|
|
+ this.promoterForm = res;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
-
|
|
|
|
-<style scoped lang="scss"></style>
|
|
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
+.demo-drawer__content {
|
|
|
|
+ padding: 0 40px;
|
|
|
|
+}
|
|
|
|
+.selWidth {
|
|
|
|
+ width: 500px;
|
|
|
|
+}
|
|
|
|
+</style>
|