|
@@ -1,247 +1,273 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
|
- <el-form-item label="是否开启积分规则功能" label-width="160px">
|
|
|
+ <el-form-item
|
|
|
+ label="是否开启积分"
|
|
|
+ label-width="160px"
|
|
|
+ prop="integralFlag"
|
|
|
+ >
|
|
|
<el-radio-group v-model="form.integralFlag">
|
|
|
<el-radio label="0">关闭</el-radio>
|
|
|
<el-radio label="1">开启</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="油品积分规则">
|
|
|
- <div
|
|
|
- v-for="(item, index) in form.itemsDetail || []"
|
|
|
- :key="index"
|
|
|
- style="border: 1px solid"
|
|
|
+ <div v-show="form.integralFlag==1">
|
|
|
+ <el-form-item
|
|
|
+ label="积分规则"
|
|
|
+ prop="itemsDetail"
|
|
|
+ :required="form.integralFlag==1"
|
|
|
>
|
|
|
- <div>
|
|
|
- 适用油品
|
|
|
- <el-select
|
|
|
- v-model="item.oilName"
|
|
|
- placeholder="请选择油品"
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- @change="oilNameChang(item, index)"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in oilNameOptions"
|
|
|
- :key="item.oilName"
|
|
|
- :label="item.oilName"
|
|
|
- :value="item.oilName"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in form.itemsDetail"
|
|
|
+ :key="index"
|
|
|
+ style="border: 1px solid"
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ 适用油品
|
|
|
+ <el-select
|
|
|
+ v-model="item.oilName"
|
|
|
+ placeholder="请选择油品"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @change="oilNameChang(item, index)"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="ele in oilNameOptions"
|
|
|
+ :key="ele.oilName"
|
|
|
+ :label="ele.oilName"
|
|
|
+ :value="ele.oilName"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div v-if="item.oilType != 3">
|
|
|
+ 规则类型
|
|
|
+ <el-select
|
|
|
+ v-model="item.ruleType"
|
|
|
+ placeholder="请选择规则"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ >
|
|
|
+ <el-option label="以订单实付累计" value="1"></el-option>
|
|
|
+ <el-option label="以订单应付累计" value="2"></el-option>
|
|
|
+ <el-option label="以加油升数累计" value="3"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div v-if="item.oilType != 3">
|
|
|
+ 适用等级
|
|
|
+ <el-select
|
|
|
+ v-model="item.grade"
|
|
|
+ placeholder="请选择等级"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @change="gradeChange(item)"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="ele in item.gradeList || []"
|
|
|
+ :key="ele.id"
|
|
|
+ :label="ele.grade"
|
|
|
+ :value="ele.id"
|
|
|
+ ></el-option>
|
|
|
+ <el-option key="0" label="所有人" :value="0"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 满
|
|
|
+ <el-input-number
|
|
|
+ v-model="item.ruleTerms"
|
|
|
+ :min="0"
|
|
|
+ size="small"
|
|
|
+ />元(L) 开始积分
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 每消费
|
|
|
+ <el-input-number
|
|
|
+ v-model="item.saleAmt"
|
|
|
+ size="small"
|
|
|
+ :min="0"
|
|
|
+ />元获得
|
|
|
+ <el-input-number
|
|
|
+ v-model="item.integral"
|
|
|
+ size="small"
|
|
|
+ :min="0"
|
|
|
+ />积分
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-button type="danger" @click="delItem(index)" size="small"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-show="index == form.itemsDetail.length - 1"
|
|
|
+ type="success"
|
|
|
+ @click="addItem()"
|
|
|
+ size="small"
|
|
|
+ >新增</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div v-if="item.oilType != 3">
|
|
|
- 规则类型
|
|
|
- <el-select
|
|
|
- v-model="item.ruleType"
|
|
|
- placeholder="请选择规则"
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item
|
|
|
+ label="积分有效期"
|
|
|
+ prop="integralTermSetting"
|
|
|
+ :required="form.integralFlag == 1"
|
|
|
+ >
|
|
|
+ <el-radio-group v-model="form.integralTermSetting">
|
|
|
+ <el-radio label="1">永久有效</el-radio>
|
|
|
+ <el-radio label="2">指定清空积分时间</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <div v-show="form.integralTermSetting == 2">
|
|
|
+ <el-date-picker
|
|
|
clearable
|
|
|
size="small"
|
|
|
+ style="width: 200px; margin-left: 10px"
|
|
|
+ v-model="form.integralEmptyTime"
|
|
|
+ type="datetime"
|
|
|
>
|
|
|
- <el-option label="以订单实付累计" value="1"></el-option>
|
|
|
- <el-option label="以订单应付累计" value="2"></el-option>
|
|
|
- <el-option label="以加油升数累计" value="3"></el-option>
|
|
|
- </el-select>
|
|
|
+ </el-date-picker>
|
|
|
</div>
|
|
|
- <div v-if="item.oilType != 3">
|
|
|
- 适用等级
|
|
|
- <el-select
|
|
|
- v-model="item.gread"
|
|
|
- placeholder="请选择等级"
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item
|
|
|
+ label="积分活动时限"
|
|
|
+ prop="termDateManage"
|
|
|
+ :required="form.integralFlag == 1"
|
|
|
+ >
|
|
|
+ <el-radio-group v-model="form.termDateManage">
|
|
|
+ <el-radio label="1">永久有效</el-radio>
|
|
|
+ <el-radio label="2">指定活动结束时间</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <div v-show="form.termDateManage == 2">
|
|
|
+ <el-date-picker
|
|
|
clearable
|
|
|
size="small"
|
|
|
+ style="width: 200px; margin-left: 10px"
|
|
|
+ v-model="form.emptyDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="ele in item.gradeList || []"
|
|
|
- :key="ele.id"
|
|
|
- :label="ele.grade"
|
|
|
- :value="ele.id.toString()"
|
|
|
- ></el-option>
|
|
|
- <el-option key="0" label="所有人" value="0"></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- 满
|
|
|
- <el-input-number
|
|
|
- v-model="item.ruleTerms"
|
|
|
- :min="0"
|
|
|
- size="small"
|
|
|
- />元(L) 开始积分
|
|
|
+ </el-date-picker>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- 每消费
|
|
|
- <el-input-number
|
|
|
- v-model="item.saleAmt"
|
|
|
- size="small"
|
|
|
- :min="0"
|
|
|
- />元获得
|
|
|
- <el-input-number
|
|
|
- v-model="item.integral"
|
|
|
- size="small"
|
|
|
- :min="0"
|
|
|
- />积分
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <el-button type="danger" @click="del(index)" size="small"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- v-show="index == rowsnum"
|
|
|
- type="success"
|
|
|
- @click="addItem()"
|
|
|
- size="small"
|
|
|
- >新增</el-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="积分有效期设置" prop="termDateManage">
|
|
|
- <el-radio-group v-model="form.integralTermSetting">
|
|
|
- <el-radio label="1"> 永久有效 </el-radio>
|
|
|
- <el-radio label="2"> 指定清空积分时间 </el-radio>
|
|
|
- </el-radio-group>
|
|
|
- <div v-show="form.integralTermSetting == 2">
|
|
|
- <el-date-picker
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- style="width: 200px; margin-left: 10px"
|
|
|
- v-model="form.integralEmptyTime"
|
|
|
- type="datetime"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="积分活动时限" prop="termDateManage">
|
|
|
- <el-radio-group v-model="form.termDateManage">
|
|
|
- <el-radio label="1">不指定结束时间</el-radio>
|
|
|
- <el-radio label="2">指定结束时间</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- <div v-show="form.termDateManage == 2">
|
|
|
- <el-date-picker
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- style="width: 200px; margin-left: 10px"
|
|
|
- v-model="form.emptyDate"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="多倍积分活动">
|
|
|
- <el-radio-group v-model="form.integralActivity">
|
|
|
- <el-radio label="0">关闭</el-radio>
|
|
|
- <el-radio label="1">开启</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="周期类型"
|
|
|
- prop="datePicker"
|
|
|
- v-show="form.integralActivity == 1"
|
|
|
- >
|
|
|
- <el-select v-model="form.datePicker" clearable size="small">
|
|
|
- <el-option label="每周指定日" value="1"></el-option>
|
|
|
- <el-option label="每月指定日" value="2"></el-option>
|
|
|
- <el-option label="固定活动日" value="3"></el-option>
|
|
|
- </el-select>
|
|
|
- <div
|
|
|
- v-show="form.datePicker != 3"
|
|
|
- style="
|
|
|
- display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
- border-style: solid;
|
|
|
- border-color: #f5f7fa;
|
|
|
- "
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="多倍积分"
|
|
|
+ prop="integralActivity"
|
|
|
+ :required="form.integralFlag == 1"
|
|
|
+ >
|
|
|
+ <el-radio-group v-model="form.integralActivity">
|
|
|
+ <el-radio label="0">关闭</el-radio>
|
|
|
+ <el-radio label="1">开启</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="周期类型"
|
|
|
+ prop="datePicker"
|
|
|
+ :required="form.integralActivity == 1"
|
|
|
+ v-show="form.integralActivity == 1"
|
|
|
>
|
|
|
+ <el-select v-model="form.datePicker" clearable size="small">
|
|
|
+ <el-option label="每周指定日" value="1"></el-option>
|
|
|
+ <el-option label="每月指定日" value="2"></el-option>
|
|
|
+ <el-option label="固定活动日" value="3"></el-option>
|
|
|
+ </el-select>
|
|
|
<div
|
|
|
- v-for="(item, index) in timeSelect[form.datePicker]"
|
|
|
- :key="index"
|
|
|
- style="margin: 3px"
|
|
|
+ v-show="form.datePicker != 3"
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ border-style: solid;
|
|
|
+ border-color: #f5f7fa;
|
|
|
+ "
|
|
|
>
|
|
|
<div
|
|
|
- class="hover-style"
|
|
|
- style="
|
|
|
- border-radius: 5px;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 12px;
|
|
|
- cursor: pointer;
|
|
|
- "
|
|
|
- @click="clickCalendar(index)"
|
|
|
+ v-for="(item, index) in timeSelect[form.datePicker]"
|
|
|
+ :key="index"
|
|
|
+ style="margin: 3px"
|
|
|
>
|
|
|
- <div>{{ item }}</div>
|
|
|
<div
|
|
|
- v-if="form.collectClickCalendar.indexOf(index) > -1"
|
|
|
+ class="hover-style"
|
|
|
style="
|
|
|
- width: 4px;
|
|
|
- height: 4px;
|
|
|
- border-radius: 50%;
|
|
|
- background-color: red;
|
|
|
- position: relative;
|
|
|
- left: calc(50% - 2px);
|
|
|
+ border-radius: 5px;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 12px;
|
|
|
+ cursor: pointer;
|
|
|
"
|
|
|
- ></div>
|
|
|
- <div v-else style="width: 4px; height: 4px"></div>
|
|
|
+ @click="clickCalendar(index)"
|
|
|
+ >
|
|
|
+ <div>{{ item }}</div>
|
|
|
+ <div
|
|
|
+ v-if="form.collectClickCalendar.indexOf(index) > -1"
|
|
|
+ style="
|
|
|
+ width: 4px;
|
|
|
+ height: 4px;
|
|
|
+ border-radius: 50%;
|
|
|
+ background-color: red;
|
|
|
+ position: relative;
|
|
|
+ left: calc(50% - 2px);
|
|
|
+ "
|
|
|
+ ></div>
|
|
|
+ <div v-else style="width: 4px; height: 4px"></div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="积分比例"
|
|
|
- prop="integralProportion"
|
|
|
- v-show="form.integralActivity == 1"
|
|
|
- >
|
|
|
- <el-input-number
|
|
|
- v-model="form.integralProportion"
|
|
|
- style="width: 130px"
|
|
|
- :min="1"
|
|
|
- placeholder="请输入加倍比例"
|
|
|
- />
|
|
|
- <span>倍</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item> </el-form-item>
|
|
|
- <el-form-item v-show="datetrue">
|
|
|
- <el-date-picker
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- style="margin-left: 10px; width: 200px"
|
|
|
- v-model="form.collectClickDay"
|
|
|
- type="dates"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择提醒时间设置"
|
|
|
+ <div v-show="form.datePicker == 3">
|
|
|
+ <el-date-picker
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ style="margin-left: 10px; width: 200px"
|
|
|
+ v-model="form.collectClickDay"
|
|
|
+ type="dates"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择提醒时间设置"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="积分比例"
|
|
|
+ prop="integralProportion"
|
|
|
+ v-show="form.integralActivity == 1"
|
|
|
+ :required="form.integralActivity == 1"
|
|
|
>
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-row v-show="form.integralActivity == 1">
|
|
|
- <el-col :span="8" style=""> </el-col>
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.integralProportion"
|
|
|
+ style="width: 130px"
|
|
|
+ :min="1"
|
|
|
+ placeholder="请输入加倍比例"
|
|
|
+ />
|
|
|
+ <span>倍</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item> </el-form-item>
|
|
|
+ <el-row v-show="form.integralActivity == 1">
|
|
|
+ <el-col :span="8" style=""> </el-col>
|
|
|
|
|
|
- <el-col :span="8"> </el-col>
|
|
|
- </el-row>
|
|
|
- <el-form-item label="积分轮播图">
|
|
|
- <el-upload
|
|
|
- class="avatar-uploader"
|
|
|
- :action="addressUrl"
|
|
|
- :headers="headers"
|
|
|
- multiple
|
|
|
- list-type="picture-card"
|
|
|
- :limit="5"
|
|
|
- :file-list="form.imgFileList"
|
|
|
- accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
- :on-remove="handleRemove"
|
|
|
- :on-success="handlepaymentSuccess"
|
|
|
- >
|
|
|
- <i class="el-icon-plus"></i>
|
|
|
- <div class="el-upload__tip" slot="tip">
|
|
|
- 只能上传jpg/png文件,最多上传5张且单张图片不超过1M
|
|
|
- </div>
|
|
|
- </el-upload>
|
|
|
- <el-dialog :visible.sync="dialogVisible" append-to-body>
|
|
|
- <img width="100%" :src="dialogImageUrl" alt="" />
|
|
|
- </el-dialog>
|
|
|
- </el-form-item>
|
|
|
+ <el-col :span="8"> </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item label="积分轮播图" prop="imgFileList">
|
|
|
+ <el-upload
|
|
|
+ class="avatar-uploader"
|
|
|
+ :action="addressUrl"
|
|
|
+ :headers="headers"
|
|
|
+ multiple
|
|
|
+ list-type="picture-card"
|
|
|
+ :limit="5"
|
|
|
+ :file-list="form.imgFileList"
|
|
|
+ accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"
|
|
|
+ :before-upload="beforeAvatarUpload"
|
|
|
+ :on-remove="handleRemove"
|
|
|
+ :on-success="handlepaymentSuccess"
|
|
|
+ >
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
+ <div class="el-upload__tip" slot="tip">
|
|
|
+ 只能上传jpg/png文件,最多上传5张且单张图片不超过1M
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+ <el-dialog :visible.sync="dialogVisible" append-to-body>
|
|
|
+ <img width="100%" :src="dialogImageUrl" alt="" />
|
|
|
+ </el-dialog>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
</el-form>
|
|
|
+
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitForm" :disabled="false"
|
|
|
>确 定</el-button
|
|
@@ -265,30 +291,98 @@ import { queryOilType } from "@/utils/oil";
|
|
|
export default {
|
|
|
name: "Point_Rule",
|
|
|
data() {
|
|
|
+ let validateItemsDetail = (rule, value, callback) => {
|
|
|
+ if (this.form.itemsDetail.length <= 0) {
|
|
|
+ callback(new Error("请先配置设置规则"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.form.itemsDetail.forEach((ele) => {
|
|
|
+ if (!ele.oilName || !ele.ruleTerms || !ele.saleAmt || !ele.integral) {
|
|
|
+ console.log("1");
|
|
|
+ callback(new Error("请检查规则完整性"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (ele.oilType != 3) {
|
|
|
+ if (!ele.ruleType || ele.grade == undefined || ele.grade == "") {
|
|
|
+ console.log("2");
|
|
|
+ callback(new Error("请检查规则完整性"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ callback();
|
|
|
+ };
|
|
|
+ let validateIntegralTermSetting = (rule, value, callback)=>{
|
|
|
+ if(!this.form.integralTermSetting){
|
|
|
+ callback(new Error("请选择积分有效期"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(this.form.integralTermSetting == 2){
|
|
|
+ if(!this.form.integralEmptyTime){
|
|
|
+ callback(new Error("请填写积分指定的到期时间"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ let validateTermDateManage = (rule, value, callback)=>{
|
|
|
+ if(!this.form.termDateManage){
|
|
|
+ callback(new Error("请选择积分活动的结束时间"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(this.form.termDateManage == 2){
|
|
|
+ if(!this.form.emptyDate){
|
|
|
+ callback(new Error("请填写积分活动的结束时间"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ let validateDatePicker =(rule, value, callback)=>{
|
|
|
+ if(!this.form.datePicker){
|
|
|
+ callback(new Error("请选择多倍积分的周期类型"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ console.log('列表',this.form.collectClickCalendar,this.form.datePicker)
|
|
|
+ if(this.form.datePicker == 1 || this.form.datePicker == 2){
|
|
|
+ if(this.form.collectClickCalendar.length<= 0){
|
|
|
+ callback(new Error("请选择多倍积分的时间"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(this.form.datePicker == 3){
|
|
|
+ if(!this.form.collectClickDay){
|
|
|
+ callback(new Error("请填写指定的多倍积分日"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ }
|
|
|
return {
|
|
|
oilNameOptions: [],
|
|
|
- gradeOptions: [],
|
|
|
dialogImageUrl: "",
|
|
|
num: 0,
|
|
|
dialogVisible: false,
|
|
|
- workDaytrue: false,
|
|
|
- moonDaytrue: false,
|
|
|
- datetrue: false,
|
|
|
- rowsnum: 0,
|
|
|
// 表单参数
|
|
|
form: {
|
|
|
itemsDetail: [{}],
|
|
|
- notOilList: [{}],
|
|
|
imgFileList: [],
|
|
|
collectClickCalendar: [], // 收集固定日期选择的日子
|
|
|
collectClickDay: "",
|
|
|
},
|
|
|
- deptInfo: {},
|
|
|
- query: {
|
|
|
- deptId: null,
|
|
|
+ rules: {
|
|
|
+ integralFlag: [
|
|
|
+ { required: true, message: "请选择是否开启积分", trigger: "change" },
|
|
|
+ ],
|
|
|
+ integralTermSetting: [{ validator:validateIntegralTermSetting, trigger: "change" }],
|
|
|
+ // termDateManage:[{ required: true, message: "请选择是否开启积分", trigger: "change" }],
|
|
|
+ // integralActivity:[{ required: true, message: "请选择是否开启积分", trigger: "change" }],
|
|
|
+ imgFileList: [{ required: true, message: "", trigger: "change" }],
|
|
|
+ itemsDetail: [{ validator: validateItemsDetail, trigger: "change" }],
|
|
|
+ termDateManage:[{ validator: validateTermDateManage, trigger: "change" }],
|
|
|
+ datePicker:[{ validator: validateDatePicker, trigger: "change" }],
|
|
|
+
|
|
|
},
|
|
|
- // 表单校验
|
|
|
- rules: {},
|
|
|
headers: {
|
|
|
Authorization: "Bearer " + getToken(),
|
|
|
},
|
|
@@ -343,18 +437,22 @@ export default {
|
|
|
pageNum: 1,
|
|
|
pageSize: 100,
|
|
|
}).then((response) => {
|
|
|
- console.log("拉取", response.data);``
|
|
|
+ console.log("拉取", response.data);
|
|
|
this.form = response.data;
|
|
|
this.form.collectClickCalendar = [];
|
|
|
this.form.collectClickDay = "";
|
|
|
-
|
|
|
+ if (!this.form.itemsDetail || this.form.itemsDetail.length == 0) {
|
|
|
+ this.form.itemsDetail = [{}];
|
|
|
+ }
|
|
|
if (this.form.datepicker == "1" || this.form.datepicker == "2") {
|
|
|
this.collectClickCalendar = this.form.datePickerTime
|
|
|
.split(",")
|
|
|
.map(parseFloat);
|
|
|
} else {
|
|
|
- this.collectClickDay = this.form.datePickerTime;
|
|
|
+ console.log(this.form.datePickerTime);
|
|
|
+ this.form.collectClickDay = "";
|
|
|
}
|
|
|
+ this.form = { ...this.form };
|
|
|
});
|
|
|
|
|
|
oilNameList({
|
|
@@ -365,29 +463,21 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
- async initGrade(itemDetail) {
|
|
|
- for (let j = 0; j < itemDetail.length; j++) {
|
|
|
- const response = await gradeList({
|
|
|
- oilName: itemDetail[j].oilName,
|
|
|
- });
|
|
|
- console.log("12");
|
|
|
- console.log(response);
|
|
|
- response.rows.push({
|
|
|
- id: 0,
|
|
|
- grade: "所有人",
|
|
|
- });
|
|
|
- this.gradeOptions.push(response.rows);
|
|
|
- }
|
|
|
+ gradeChange(item) {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.form = { ...this.form };
|
|
|
+ }, 0);
|
|
|
},
|
|
|
//添加行
|
|
|
addItem() {
|
|
|
this.form.itemsDetail.push({});
|
|
|
- this.rowsnum = this.form.itemsDetail.length - 1;
|
|
|
},
|
|
|
// 删除行
|
|
|
- del(index) {
|
|
|
+ delItem(index) {
|
|
|
+ console.log(123456);
|
|
|
+ console.log(index);
|
|
|
this.form.itemsDetail.splice(index, 1);
|
|
|
- if (this.form.itemsDetail.length <= 1) {
|
|
|
+ if (this.form.itemsDetail.length <= 0) {
|
|
|
this.form.itemsDetail = [{}];
|
|
|
}
|
|
|
},
|
|
@@ -395,6 +485,9 @@ export default {
|
|
|
this.form.notOilList = [{}];
|
|
|
},
|
|
|
oilNameChang(item, index) {
|
|
|
+ item.grade = "";
|
|
|
+ item.gradeList = [];
|
|
|
+ this.form = { ...this.form };
|
|
|
gradeList({
|
|
|
oilName: item.oilName,
|
|
|
}).then((response) => {
|
|
@@ -402,8 +495,8 @@ export default {
|
|
|
this.form = {
|
|
|
...this.form,
|
|
|
};
|
|
|
+ console.log(item);
|
|
|
});
|
|
|
-
|
|
|
queryOilType(item.oilName).then((res) => {
|
|
|
item.oilType = res;
|
|
|
this.form = {
|
|
@@ -411,7 +504,6 @@ export default {
|
|
|
};
|
|
|
});
|
|
|
},
|
|
|
-
|
|
|
handleRemove(file, fileList) {
|
|
|
if (fileList != null && fileList.length > 0) {
|
|
|
this.form.imgFileList = [];
|
|
@@ -451,6 +543,7 @@ export default {
|
|
|
submitForm() {
|
|
|
console.log("提交");
|
|
|
this.$refs["form"].validate((valid) => {
|
|
|
+ console.log(valid);
|
|
|
if (valid) {
|
|
|
if (this.form.datePicker == "1" || this.form.datePicker == "2") {
|
|
|
this.form.datePickerTime = this.form.collectClickCalendar.toString();
|