From 58e344a0c14692fce547d64ea9295f866754fe63 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期四, 03 四月 2025 18:19:26 +0800
Subject: [PATCH] 1
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CommontController.java | 19 +
cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_add.html | 346 +++++++++++---------
cloud-server-management/src/main/webapp/static/modular/system/tHuiminCard/tHuiminCard2.js | 5
package.json | 47 ++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminCardController.java | 20
cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard.html | 14
cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html | 548 +++++++++++++++++--------------
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminCard.java | 21
8 files changed, 592 insertions(+), 428 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminCard.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminCard.java
index 310c633..a785821 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminCard.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminCard.java
@@ -91,17 +91,20 @@
*有效期 不填表示永久
*/
@TableField("endTime")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
- *有效期结束时间 不填表示永久
+ *有效期开始时间
*/
@TableField("startTime")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
+
+
+
/**
*可使用时间段,周,多个逗号分隔
*/
@@ -112,11 +115,13 @@
*/
@TableField("useTimes")
private String useTimes;
- /**
- *不可用时间段,yyyy-MM-dd HH:mm:ss,多个逗号分隔
- */
- @TableField("unUseTimes")
- private String unUseTimes;
+// /**
+// *不可用时间段,yyyy-MM-dd HH:mm:ss,多个逗号分隔
+// */
+// @TableField("unUseTimes")
+// private String unUseTimes;
+
+
/**
*使用范围1门店2场地
*/
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CommontController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CommontController.java
index fb23e6b..f66caea 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CommontController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CommontController.java
@@ -2,18 +2,23 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.dsh.guns.modular.system.model.TCity;
+import com.dsh.guns.modular.system.model.TOperator;
import com.dsh.guns.modular.system.service.ICityService;
+import com.dsh.guns.modular.system.service.TOperatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
+import java.util.stream.Collectors;
@RestController
@RequestMapping("/base")
public class CommontController {
@Autowired
private ICityService cityService;
+ @Autowired
+ private TOperatorService operatorService;
/**
@@ -30,8 +35,22 @@
*/
@RequestMapping("/region/getCity")
public List<TCity> getCity() {
+ List<Integer> ids = cityService.list(new LambdaQueryWrapper<TCity>()
+ .eq(TCity::getParentId, 0))
+ .stream()
+ .map(TCity::getId)
+ .collect(Collectors.toList());
return cityService.list(new LambdaQueryWrapper<TCity>()
+ .in(TCity::getParentId, ids)
.isNotNull(TCity::getCitycode));
}
+ /**
+ * 获取所有的运营商
+ */
+ @RequestMapping("/operator/getOperator")
+ public List<TOperator> getOperator() {
+ return operatorService.list();
+ }
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminCardController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminCardController.java
index 95e930c..8e7d2d2 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminCardController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminCardController.java
@@ -67,20 +67,18 @@
*/
@RequestMapping("/tHuiminCard_detail/{id}")
public String tHuiminCardDetail(@PathVariable("id") Integer id) {
- THuiminCard byId = huiminCardClient.getById(id);
- Date startTime = byId.getStartTime();
- if (startTime != null){
- byId.setStartTimeStr(DateUtil.format(startTime, "yyyy-MM-dd HH:mm:ss"));
- }
- Date endTime = byId.getEndTime();
- if (endTime != null){
- byId.setEndTimeStr(DateUtil.format(endTime, "yyyy-MM-dd HH:mm:ss"));
- }
- String jsonString = JSONObject.toJSONString(byId);
- setAttr("tHuiminCard", jsonString);
return PREFIX + "tHuiminCard_detail.html";
}
+ /**
+ * 获取惠民卡详情
+ */
+ @RequestMapping("/getDetail")
+ @ResponseBody
+ public THuiminCard getDetail(Integer id) {
+ return huiminCardClient.getById(id);
+ }
+
/**
* 获取惠民卡列表
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard.html
index 6a8c60b..bda1fca 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard.html
@@ -39,16 +39,18 @@
</el-form>
<div class="row">
<div class="col-sm-12">
- <el-button type="primary" size="mini" v-on:click="handleAdd" icon="el-icon-circle-plus-outline">添加</el-button>
- <el-button type="primary" size="mini" v-on:click="handleEdit" icon="el-icon-edit">编辑</el-button>
- <el-button type="primary" size="mini" v-on:click="handleDelete" icon="el-icon-delete">删除</el-button>
- <el-button type="primary" size="mini" v-on:click="handleShelves(1)" icon="el-icon-upload2">上架</el-button>
- <el-button type="primary" size="mini" v-on:click="handleShelves(2)" icon="el-icon-download">下架</el-button>
- <el-button type="primary" size="mini" v-on:click="handleViewDetail" icon="el-icon-tickets">查看详情</el-button>
+ <el-button type="primary" size="medium" style="background-color:#1ab394;color: #ffffff;border:#1ab394;" v-on:click="handleSearch" icon="el-icon-search">搜索</el-button>
+ <el-button type="primary" size="medium" style="background-color:#1ab394;color: #ffffff;border:#1ab394;" v-on:click="handleAdd" icon="el-icon-circle-plus-outline">添加</el-button>
+ <el-button type="primary" size="medium" style="background-color:#1ab394;color: #ffffff;border:#1ab394;" v-on:click="handleEdit" icon="el-icon-edit">编辑</el-button>
+ <el-button type="primary" size="medium" style="background-color:#1ab394;color: #ffffff;border:#1ab394;" v-on:click="handleDelete" icon="el-icon-delete">删除</el-button>
+ <el-button type="primary" size="medium" style="background-color:#1ab394;color: #ffffff;border:#1ab394;" v-on:click="handleShelves(1)" icon="el-icon-upload2">上架</el-button>
+ <el-button type="primary" size="medium" style="background-color:#1ab394;color: #ffffff;border:#1ab394;" v-on:click="handleShelves(2)" icon="el-icon-download">下架</el-button>
+ <el-button type="primary" size="medium" style="background-color:#1ab394;color: #ffffff;border:#1ab394;" v-on:click="handleViewDetail" icon="el-icon-tickets">查看详情</el-button>
</div>
</div>
<el-table
:data="tableData"
+ :v-loading="loading"
stripe
style="width: 100%"
v-on:selection-change="handleSelectionChange">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_add.html
index 86d4f84..f4dd384 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_add.html
@@ -24,7 +24,7 @@
<!-- 封面图片 -->
<el-row>
- <el-form-item label="封面图片2" prop="cover">
+ <el-form-item label="封面图片" prop="cover">
<el-col :span="12">
<div class="upload-area text-center">
<el-upload
@@ -122,9 +122,13 @@
<!-- 有效期 -->
<el-form-item label="有效期">
<el-date-picker
- v-model="huiminCard.endTime"
- type="date"
- placeholder="选择日期">
+ v-model="periodOfValidity"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetimerange"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ :default-time="['12:00:00']">
</el-date-picker>
</el-form-item>
@@ -133,7 +137,7 @@
<el-form-item label="可用时间" prop="weeks">
<el-card
shadow="never"
- v-for="(weekGroup, groupIndex) in huiminCard.weeks"
+ v-for="(weekGroup, groupIndex) in weeks"
:key="'weekGroup_' + groupIndex">
<div slot="header"
style="display: flex;
@@ -199,13 +203,15 @@
<!-- 不可用时间 -->
<el-form-item label="不可用时间" prop="unUseTimes">
<el-button type="text" v-on:click="addUnUseTime()">添加</el-button>
- <div v-for="(item, dayIndex) in times"
+ <div v-for="(item, dayIndex) in huiminCard.unUseTimes"
:key="dayIndex"
class="date-picker-item mb-2">
<el-date-picker
- type="datetime"
- placeholder="选择日期"
- v-model="item.date">
+ v-model="item.date"
+ type="datetimerange"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ :default-time="['12:00:00']">
</el-date-picker>
<button
type="button"
@@ -323,7 +329,7 @@
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="所在省">
- <el-select v-model="storeForm.provinceCode" size="mini" filterable placeholder="请选择">
+ <el-select v-model="storeForm.provinceCode" size="mini" clearable filterable placeholder="请选择">
<el-option
v-for="item in provinces"
:key="item.code"
@@ -334,8 +340,8 @@
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item label="所在市2">
- <el-select v-model="storeForm.cityCode" size="mini" filterable placeholder="请选择">
+ <el-form-item label="所在市">
+ <el-select v-model="storeForm.cityCode" clearable size="mini" filterable placeholder="请选择">
<el-option
v-for="item in cities"
:key="item.citycode"
@@ -347,7 +353,14 @@
</el-col>
<el-col :span="6">
<el-form-item label="所属运营商">
- <el-input size="mini" v-model="storeForm.operatorId" placeholder="请输入内容"></el-input>
+ <el-select v-model="storeForm.operatorId" clearable size="mini" filterable placeholder="请选择">
+ <el-option
+ v-for="item in operations"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -363,47 +376,42 @@
</el-button>
</el-col>
</el-row>
-
- <el-row>
- <el-col :span="24">
- <el-table
- v-loading="tableStoreLoading"
- :data="tableStoreData"
- height="250"
- v-on:selection-change="handleSelectionChange"
- border>
- <el-table-column
- type="selection"
- width="55">
- </el-table-column>
- <el-table-column
- prop="province"
- label="所在省市">
- </el-table-column>
- <el-table-column
- prop="operatorName"
- label="所属运营商">
- </el-table-column>
- <el-table-column
- prop="storeName"
- label="门店名称">
- </el-table-column>
- <el-table-column
- prop="ids"
- label="闸机ID">
- </el-table-column>
- </el-table>
- <el-pagination
- background
- layout="prev, pager, next"
- v-on:pagination="storeList"
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- :total="tableStoreTotal">
- </el-pagination>
- </el-col>
- </el-row>
</el-form>
+ <el-table
+ v-loading="tableStoreLoading"
+ :data="tableStoreData"
+ height="250"
+ v-on:selection-change="handleSelectionChange"
+ border>
+ <el-table-column
+ type="selection"
+ width="55">
+ </el-table-column>
+ <el-table-column
+ prop="province"
+ label="所在省市">
+ </el-table-column>
+ <el-table-column
+ prop="operatorName"
+ label="所属运营商">
+ </el-table-column>
+ <el-table-column
+ prop="storeName"
+ label="门店名称">
+ </el-table-column>
+ <el-table-column
+ prop="ids"
+ label="闸机ID">
+ </el-table-column>
+ </el-table>
+ <el-pagination
+ background
+ layout="prev, pager, next"
+ v-on:pagination="storeList"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ :total="tableStoreTotal">
+ </el-pagination>
<span slot="footer" class="dialog-footer">
<el-button v-on:click="dialogVisible2 = false">取 消</el-button>
<el-button type="primary" v-on:click="handleStore">确 定</el-button>
@@ -416,6 +424,59 @@
:visible.sync="dialogVisible3"
width="80%"
:before-close="handleSiteClose">
+
+ <el-form ref="form" :model="siteForm" label-width="80px">
+ <el-row :gutter="10">
+ <el-col :span="6">
+ <el-form-item label="所在省">
+ <el-select v-model="siteForm.provinceCode" size="mini" clearable filterable placeholder="请选择">
+ <el-option
+ v-for="item in provinces"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="所在市">
+ <el-select v-model="siteForm.cityCode" clearable size="mini" filterable placeholder="请选择">
+ <el-option
+ v-for="item in cities"
+ :key="item.citycode"
+ :label="item.name"
+ :value="item.citycode">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="所属运营商">
+ <el-select v-model="siteForm.operatorId" clearable size="mini" filterable placeholder="请选择">
+ <el-option
+ v-for="item in operations"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="门店名称">
+ <el-input size="mini" v-model="siteForm.storeName" placeholder="请输入内容"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-button v-on:click="siteList" style="background-color:#1ab394;color: #ffffff" size="mini" icon="el-icon-search">
+ 搜索
+ </el-button>
+ </el-col>
+ </el-row>
+ </el-form>
<el-table
v-loading="tableSiteLoading"
@@ -525,17 +586,63 @@
operatorId: null,
storeName: '',
},
-
+ siteForm: {
+ provinceCode: null,
+ cityCode: null,
+ operatorId: null,
+ storeName: '',
+ },
+ weeks: [
+ {
+ days: [ // 每个星期组的星期选项
+ {
+ value: '1',
+ label: '星期一',
+ checked: false,
+ },
+ {
+ value: '2',
+ label: '星期二',
+ checked: false,
+ },
+ {
+ value: '3',
+ label: '星期三',
+ checked: false,
+ },
+ {
+ value: '4',
+ label: '星期四',
+ checked: false,
+ },
+ {
+ value: '5',
+ label: '星期五',
+ checked: false,
+ },
+ {
+ value: '6',
+ label: '星期六',
+ checked: false,
+ },
+ {
+ value: '7',
+ label: '星期日',
+ checked: false,
+ }
+ ],
+ },
+ ],
provinces: [],
cities: [],
stores: [],
operations: [],
+ periodOfValidity: null,
autoUpload: true,//自动上传
previewImg: '',//模型数据,用于上传图片完成后图片预览
dialogVisible: false,
dialogVisible2: false,
dialogVisible3: false,
- times: [{}],
banners: [],
introduces: null,
multipleSelection1: [],
@@ -556,49 +663,8 @@
useWeeks: null,
useTimes: null,
introduce: null,
- weeks: [
- {
- days: [ // 每个星期组的星期选项
- {
- value: '1',
- label: '星期一',
- checked: false,
- },
- {
- value: '2',
- label: '星期二',
- checked: false,
- },
- {
- value: '3',
- label: '星期三',
- checked: false,
- },
- {
- value: '4',
- label: '星期四',
- checked: false,
- },
- {
- value: '5',
- label: '星期五',
- checked: false,
- },
- {
- value: '6',
- label: '星期六',
- checked: false,
- },
- {
- value: '7',
- label: '星期日',
- checked: false,
- }
- ],
- },
- ],
unUseTimes: [
- {date: null}
+ {}
],
useScope: '1',
useIds: null,
@@ -644,7 +710,7 @@
message: '请填写可用时间',
trigger: 'blur',
validator: (rule, value, callback) => {
- const everyFalse = this.huiminCard.weeks.every(week =>
+ const everyFalse = this.weeks.every(week =>
week.days.every(day =>
day.checked === false
)
@@ -652,7 +718,7 @@
if (everyFalse) {
callback(new Error('请选择可用星期'));
}
- const everyNull = this.huiminCard.weeks.every(obj =>
+ const everyNull = this.weeks.every(obj =>
obj.startTime === null ||
obj.endTime === null
);
@@ -725,7 +791,6 @@
},
beforeUpload(file) {
- console.log(111111)
const isLt2M = file.size / 1024 / 1024 < 10;
if (!isLt2M) {
Feng.error('上传图片大小不能超过 10MB!');
@@ -743,7 +808,7 @@
},
addWeek() {
// 新增一个包含默认星期的组
- this.huiminCard.weeks.push({
+ this.weeks.push({
days: [
{
value: '1',
@@ -784,14 +849,14 @@
});
},
removeWeek(index) {
- this.huiminCard.weeks.splice(index, 1);
+ this.weeks.splice(index, 1);
console.log(this.weeks)
},
addUnUseTime() {
- this.times.push({date: null});
+ this.huiminCard.unUseTimes.push({});
},
removeUnUseTime(index) {
- this.times.splice(index, 1);
+ this.huiminCard.unUseTimes.splice(index, 1);
},
storeList() {
this.tableStoreLoading = true;
@@ -829,6 +894,9 @@
Feng.error("请求失败: " + data.responseJSON.message);
}
);
+ this.siteForm.pageNum = vm.queryParams.pageNum;
+ this.siteForm.pageSize = vm.queryParams.pageSize
+ ajax.set(this.siteForm);
ajax.start();
},
handleStoreClose() {
@@ -887,18 +955,21 @@
console.log(valid)
if (valid) {
let data = this.huiminCard;
- let weeks = data.weeks;
- var formatWeekAndTime1 = formatWeekAndTime(weeks);
- data.useTimes = formatWeekAndTime1.useTimes;
- data.useWeeks = formatWeekAndTime1.useWeeks;
- data.unUseTimes = formatUnUseTimes(this.times);
+ let weeks = this.weeks;
+ data.useWeeks = JSON.stringify(weeks)
data.introduce = UE.getEditor('editor_1').getContent();
- console.log(data.introduce)
+ //data
+ if (this.periodOfValidity){
+ data.startTime = this.periodOfValidity[0];
+ data.endTime = this.periodOfValidity[1];
+ }
+ console.log(data.startTime)
+ console.log(data.endTime)
let vm = this;
let ajax = new $ax(Feng.ctxPath + "/tHuiminCard/add",
(data) => {
- window.parent.THuiminCard.table.refresh();
+ window.parent.parentVue.handleSearch();
THuiminCardInfoDlg.close();
},
(data) => {
@@ -936,52 +1007,21 @@
);
ajax2.start();
+ let ajax3 = new $ax(Feng.ctxPath + "/base/operator/getOperator",
+ (data) => {
+ this.operations = data;
+ },
+ (data) => {
+ Feng.error("请求失败: " + data.responseJSON.message);
+ }
+ );
+ ajax3.start();
+
+
},
});
- function formatWeekAndTime(data) {
- const weekTimeMap = {};
- data.forEach(item => {
- // 确定时间段(优先使用直接字段)
- const startTime = item.startTime || item.time?.startTime || '';
- const endTime = item.endTime || item.time?.endTime || '';
- const timePair = startTime + ";" + endTime;
-
- // 遍历days数组,记录每个选中星期对应的时间段
- item.days.forEach(day => {
- if (day.checked && day.value) {
- weekTimeMap[day.value] = timePair;
- }
- });
- });
-
- // 按星期数字排序并生成最终字符串
- const sortedWeeks = Object.keys(weekTimeMap).sort((a, b) => a - b);
- const useWeeks = sortedWeeks.join(',');
- const useTimes = sortedWeeks.map(week => weekTimeMap[week]).join(',');
-
- return {useWeeks, useTimes};
- }
-
- function formatUnUseTimes(nUseTimes) {
- if (!nUseTimes) {
- return "";
- }
- let dates = [];
- nUseTimes.forEach(item => {
- // 格式化
- const date = item.date;
- const year = date.getFullYear();
- const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要+1
- const day = String(date.getDate()).padStart(2, '0');
- const hours = String(date.getHours()).padStart(2, '0');
- const minutes = String(date.getMinutes()).padStart(2, '0');
- const seconds = String(date.getSeconds()).padStart(2, '0');
- dates.push(year + '-' + month + '-' + day + '-' + hours + ':' + minutes + ':' + seconds)
- });
- return dates.join(',');
- }
</script>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html
index 535210a..c8ef0ef 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html
@@ -1,7 +1,8 @@
@layout("/common/_container.html"){
<body>
<div id="app0" class="form-container">
- <el-form :rules="rules" :disabled="huiminCard.id != null && pageType === 'detail'" label-position="left" ref="formRef" label-width="120px" :model="huiminCard" size="small">
+ <el-form :rules="rules" :disabled="pageType === 'detail'" label-position="left" ref="formRef" label-width="120px"
+ :model="huiminCard" size="small">
<el-form-item label="惠民卡名称" prop="huiMinName">
<el-input v-model="huiminCard.huiMinName"></el-input>
</el-form-item>
@@ -26,20 +27,21 @@
<el-row>
<el-form-item label="封面图片" prop="cover">
<el-col :span="12">
- <div class="upload-area text-center" style="display: flex">
+ <div class="upload-area text-center">
<el-upload
:limit="1"
- class="avatar-uploader"
action="/tCouponManage/uploadPic"
list-type="picture-card"
+ :file-list="unBuyCoverFileList"
:multiple="false"
accept="."
:on-success="handleUnBuyCoverSuccess"
:before-upload="beforeUpload"
+ :on-exceed="handleUnBuyCoverExceed"
:on-remove="handleUnBuyCoverRemove">
- <img :src="huiminCard.unBuyCover" class="avatar">
+ <i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
- <span>已购买封面</span>
+ <span>未购买封面</span>
</div>
</el-col>
@@ -50,12 +52,12 @@
class="avatar-uploader"
action="/tCouponManage/uploadPic"
list-type="picture-card"
+ :file-list="buyCoverFileList"
:multiple="false"
accept="."
:on-success="handleBuyCoverSuccess"
:before-upload="beforeUpload"
:on-remove="handleBuyCoverRemove">
- <img :src="huiminCard.buyCover" class="avatar">
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<span>已购买封面</span>
@@ -95,8 +97,8 @@
:limit="5"
class="avatar-uploader"
action="/tCouponManage/uploadPic"
+ :file-list="bannerFileList"
list-type="picture-card"
- :file-list="banners"
accept="."
:on-success="handleSuccess"
:before-upload="beforeUpload"
@@ -124,16 +126,19 @@
<!-- 有效期 -->
<el-form-item label="有效期">
<el-date-picker
- v-model="huiminCard.endTime"
- type="date"
- placeholder="选择日期">
+ v-model="periodOfValidity"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetimerange"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ :default-time="['12:00:00']">
</el-date-picker>
</el-form-item>
<!-- 可用时间 -->
<el-form-item label="可用时间" prop="weeks">
- <el-button type="text" v-on:click="addWeek()">添加</el-button>
<el-card
shadow="never"
v-for="(weekGroup, groupIndex) in weeks"
@@ -202,13 +207,15 @@
<!-- 不可用时间 -->
<el-form-item label="不可用时间" prop="unUseTimes">
<el-button type="text" v-on:click="addUnUseTime()">添加</el-button>
- <div v-for="(item, dayIndex) in times"
+ <div v-for="(item, dayIndex) in huiminCard.unUseTimes"
:key="dayIndex"
class="date-picker-item mb-2">
<el-date-picker
- type="datetime"
- placeholder="选择日期"
- v-model="item.date">
+ v-model="item.date"
+ type="datetimerange"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ :default-time="['12:00:00']">
</el-date-picker>
<button
type="button"
@@ -313,18 +320,72 @@
<!-- 操作按钮 -->
<div class="row mt-5">
<div class="col-sm-9 offset-sm-3">
- <button v-if="pageType === 'edit'" type="button" v-on:click="submitForm('formRef')" class="btn btn-primary px-4">提交保存</button>
+ <button type="button" v-if="pageType === 'edit'" v-on:click="submitForm('formRef')" class="btn btn-primary px-4">提交保存</button>
<button type="button" v-on:click="cancelForm()" class="btn btn-primary px-4">取 消</button>
</div>
</div>
-
<!-- 选择门店 -->
<el-dialog
title="选择门店"
:visible.sync="dialogVisible2"
width="80%"
:before-close="handleStoreClose">
-
+ <el-form ref="form" :model="storeForm" label-width="80px">
+ <el-row :gutter="10">
+ <el-col :span="6">
+ <el-form-item label="所在省">
+ <el-select v-model="storeForm.provinceCode" size="mini" clearable filterable
+ placeholder="请选择">
+ <el-option
+ v-for="item in provinces"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="所在市">
+ <el-select v-model="storeForm.cityCode" clearable size="mini" filterable
+ placeholder="请选择">
+ <el-option
+ v-for="item in cities"
+ :key="item.citycode"
+ :label="item.name"
+ :value="item.citycode">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="所属运营商">
+ <el-select v-model="storeForm.operatorId" clearable size="mini" filterable
+ placeholder="请选择">
+ <el-option
+ v-for="item in operations"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="门店名称">
+ <el-input size="mini" v-model="storeForm.storeName" placeholder="请输入内容"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-button v-on:click="storeList" style="background-color:#1ab394;color: #ffffff" size="mini"
+ icon="el-icon-search">
+ 搜索
+ </el-button>
+ </el-col>
+ </el-row>
+ </el-form>
<el-table
v-loading="tableStoreLoading"
:data="tableStoreData"
@@ -356,9 +417,10 @@
background
layout="prev, pager, next"
v-on:pagination="storeList"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
:total="tableStoreTotal">
</el-pagination>
-
<span slot="footer" class="dialog-footer">
<el-button v-on:click="dialogVisible2 = false">取 消</el-button>
<el-button type="primary" v-on:click="handleStore">确 定</el-button>
@@ -371,6 +433,63 @@
:visible.sync="dialogVisible3"
width="80%"
:before-close="handleSiteClose">
+
+ <el-form ref="form" :model="siteForm" label-width="80px">
+ <el-row :gutter="10">
+ <el-col :span="6">
+ <el-form-item label="所在省">
+ <el-select v-model="siteForm.provinceCode" size="mini" clearable filterable
+ placeholder="请选择">
+ <el-option
+ v-for="item in provinces"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="所在市">
+ <el-select v-model="siteForm.cityCode" clearable size="mini" filterable
+ placeholder="请选择">
+ <el-option
+ v-for="item in cities"
+ :key="item.citycode"
+ :label="item.name"
+ :value="item.citycode">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="所属运营商">
+ <el-select v-model="siteForm.operatorId" clearable size="mini" filterable
+ placeholder="请选择">
+ <el-option
+ v-for="item in operations"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="门店名称">
+ <el-input size="mini" v-model="siteForm.storeName" placeholder="请输入内容"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-button v-on:click="siteList" style="background-color:#1ab394;color: #ffffff" size="mini"
+ icon="el-icon-search">
+ 搜索
+ </el-button>
+ </el-col>
+ </el-row>
+ </el-form>
<el-table
v-loading="tableSiteLoading"
@@ -451,31 +570,8 @@
margin-bottom: 10px;
}
- .avatar-uploader .el-upload {
- border: 1px dashed #d9d9d9;
- border-radius: 6px;
- cursor: pointer;
- position: relative;
- overflow: hidden;
- }
-
- .avatar-uploader .el-upload:hover {
- border-color: #409EFF;
- }
-
- .avatar-uploader-icon {
- font-size: 28px;
- color: #8c939d;
- width: 178px;
- height: 178px;
- line-height: 178px;
- text-align: center;
- }
-
- .avatar {
- width: 178px;
- height: 178px;
- display: block;
+ input[type=file] {
+ display: none;
}
@@ -497,21 +593,21 @@
},
data() {
return {
- autoUpload: true,//自动上传
- previewImg: '',//模型数据,用于上传图片完成后图片预览
- dialogVisible: false,
- dialogVisible2: false,
- dialogVisible3: false,
- pageType: null,
- times: [
- {
-
- }
- ],
- banners: [],
- introduces: null,
- multipleSelection1: [],
- multipleSelection2: [],
+ storeForm: {
+ provinceCode: null,
+ cityCode: null,
+ operatorId: null,
+ storeName: '',
+ },
+ siteForm: {
+ provinceCode: null,
+ cityCode: null,
+ operatorId: null,
+ storeName: '',
+ },
+ unBuyCoverFileList: [],
+ buyCoverFileList: [],
+ bannerFileList: [],
weeks: [
{
days: [ // 每个星期组的星期选项
@@ -553,6 +649,20 @@
],
},
],
+ provinces: [],
+ cities: [],
+ stores: [],
+ operations: [],
+ periodOfValidity: null,
+ autoUpload: true,//自动上传
+ previewImg: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false,
+ dialogVisible2: false,
+ dialogVisible3: false,
+ banners: [],
+ introduces: null,
+ multipleSelection1: [],
+ multipleSelection2: [],
huiminCard: {
id: null,
huiMinName: null,
@@ -570,7 +680,7 @@
useTimes: null,
introduce: null,
unUseTimes: [
- {date: null}
+ {}
],
useScope: '1',
useIds: null,
@@ -635,20 +745,6 @@
},
}
],
- unUseTimes: [{
- required: true,
- message: '请选择可用时间',
- trigger: 'blur',
- validator: (rule, value, callback) => {
- const everyNull = this.times.every(obj =>
- obj.date === null
- );
- if (everyNull) {
- callback(new Error('请选择可用时间'));
- }
- callback();
- },
- }],
storeIds: [
{
required: true,
@@ -693,6 +789,9 @@
handleUnBuyCoverSuccess(res, file) {
this.huiminCard.unBuyCover = res;
},
+ handleUnBuyCoverExceed() {
+ Feng.error('最多上传一张图片');
+ },
handleUnBuyCoverRemove(file, fileList) {
this.huiminCard.unBuyCover = '';
},
@@ -703,20 +802,8 @@
this.huiminCard.buyCover = '';
},
handleSuccess(res, file) {
- let banner = this.huiminCard.banner;
-
- if (banner === null) {
- this.huiminCard.banner = res;
- } else {
- let banners = banner.split(',');
-
- banners.push({
- url: res,
- });
- this.huiminCard.banner = this.banners.map(item => {
- return item.url;
- }).join(',');
- }
+ this.banners.push(res)
+ this.huiminCard.banner = this.banners.join(',');
},
beforeUpload(file) {
@@ -728,18 +815,15 @@
},
handleRemove(file, fileList) {
const fileUrl = file.response;
- // 1.删除 this.banners中的图片地址
- this.banners = this.banners.filter(item => {
- return item.url !== fileUrl;
+ this.banners.forEach((item, index) => {
+ if (item === fileUrl) {
+ this.banners.splice(index, 1);
+ }
});
- //2.重新给this.huiminCard.banner 赋值
- thi.huiminCard.banner = this.banners.map(item => {
- return item.url;
- }).join(',');
+ this.huiminCard.banner = this.banners.join(',');
},
addWeek() {
// 新增一个包含默认星期的组
- console.log(this.huiminCard)
this.weeks.push({
days: [
{
@@ -782,12 +866,13 @@
},
removeWeek(index) {
this.weeks.splice(index, 1);
+ console.log(this.weeks)
},
addUnUseTime() {
- this.times.push({date: null});
+ this.huiminCard.unUseTimes.push({});
},
removeUnUseTime(index) {
- this.times.splice(index, 1);
+ this.huiminCard.unUseTimes.splice(index, 1);
},
storeList() {
this.tableStoreLoading = true;
@@ -804,6 +889,10 @@
Feng.error("请求失败: " + data.responseJSON.message);
}
);
+ this.storeForm.pageNum = vm.queryParams.pageNum;
+ this.storeForm.pageSize = vm.queryParams.pageSize
+ ajax.set(this.storeForm);
+
ajax.start();
},
siteList() {
@@ -821,6 +910,9 @@
Feng.error("请求失败: " + data.responseJSON.message);
}
);
+ this.siteForm.pageNum = vm.queryParams.pageNum;
+ this.siteForm.pageSize = vm.queryParams.pageSize
+ ajax.set(this.siteForm);
ajax.start();
},
handleStoreClose() {
@@ -846,6 +938,8 @@
this.tableData.splice(index, 1);
},
handleSelectStore() {
+ this.queryParams.pageNum = 1;
+ this.queryParams.pageSize = 10;
if (this.huiminCard.useScope === '1') {
this.dialogVisible2 = true;
this.storeList();
@@ -874,20 +968,21 @@
},
submitForm(formName) {
this.$refs[formName].validate(valid => {
+ console.log(valid)
if (valid) {
let data = this.huiminCard;
let weeks = this.weeks;
- console.log(weeks)
- const formatWeekAndTime1 = formatWeekAndTime(weeks);
- data.useTimes = formatWeekAndTime1.useTimes;
- data.useWeeks = formatWeekAndTime1.useWeeks;
- data.unUseTimes = formatUnUseTimes(this.times);
+ data.useWeeks = JSON.stringify(weeks)
data.introduce = UE.getEditor('editor_1').getContent();
+ //data
+ if (this.periodOfValidity) {
+ data.startTime = this.periodOfValidity[0];
+ data.endTime = this.periodOfValidity[1];
+ }
let vm = this;
let ajax = new $ax(Feng.ctxPath + "/tHuiminCard/update",
(data) => {
- // 正确调用父页面方法
window.parent.parentVue.handleSearch();
THuiminCardInfoDlg.close();
},
@@ -906,168 +1001,133 @@
}
},
created() {
- // 初始化编辑器
- this.editor = UE.getEditor('editor_1');
- // 设置内容(需在编辑器就绪后调用)
- this.editor.ready(() => {
- this.editor.setContent(this.huiminCard.introduce);
- });
- const rawData = JSON.parse(`${tHuiminCard}`);
+ let editor_1 = UE.getEditor('editor_1');
- console.log("rawData",rawData)
- this.weeks = parseWeekAndTime(rawData.useWeeks, rawData.useTimes)
- console.log("rawData.banner",rawData.banner)
- // 将原始数据转换为banner数组
- this.banners = rawData.banner.split(",").map(item => {
- return {
- url: item
- }
- });
+ const urlParams = new URLSearchParams(window.location.search);
+ this.pageType = urlParams.get('pageType');
+ // 直接获取参数值
+ this.pageType = urlParams.get('pageType');
+ if (this.pageType === 'edit' || this.pageType === 'detail') {
- // 将原始数据转换为times数组
- this.times = rawData.unUseTimes.split(",").map(item => {
- const formattedDate = item.replace(/(\d{4}-\d{2}-\d{2})-(\d{2}:\d{2}:\d{2})/, "$1T$2");
- return {
- original: item, // 原始字符串
- date: new Date(formattedDate) // 转换后的 Date 对象
- };
- });
+ // 1. 解析URL路径获取ID
+ const pathArray = window.location.pathname.split('/');
+ // 获取最后一段路径(13)
+ let id = pathArray[pathArray.length - 1]; // 将ID赋值给huiminCard.id
- let url
- if (rawData.useScope == '1'){
- url = Feng.ctxPath + "/tHuiminCard/storeList"
- }else {
- url = Feng.ctxPath + "/tHuiminCard/siteList"
- }
- if (rawData.useIds !== '' && rawData.useIds !== null){
- let vm = this;
- let ajax = new $ax(Feng.ctxPath + url,
+ let ajax = new $ax(Feng.ctxPath + "/tHuiminCard/getDetail",
(data) => {
- vm.tableData = data.records; // 使用 vm 替代 this
+
+ this.periodOfValidity = [data.startTime, data.endTime]
+
+ this.huiminCard = {
+ ...data,
+ huiMinType: Number(data.huiMinType),
+ startTime: data.startTimeStr,
+ endTime: data.endTimeStr,
+ }
+ // 设置内容(需在编辑器就绪后调用)
+ editor_1.ready(() => {
+ editor_1.setContent(this.huiminCard.introduce);
+ });
+
+ this.unBuyCoverFileList = [{
+ url: this.huiminCard.unBuyCover,
+ name: 'unBuyCover',
+ status: 'done'
+ }]
+
+ this.buyCoverFileList = [{
+ url: this.huiminCard.buyCover,
+ name: 'buyCover',
+ status: 'done'
+ }]
+
+
+ this.banners = data.banner.split(",");
+ for (let i = 0; i < this.banners.length; i++) {
+ this.bannerFileList.push({
+ url: this.banners[i],
+ name: 'banner' + i,
+ status: 'done'
+ })
+ }
+
+
+ this.weeks = JSON.parse(data.useWeeks);
+
+ if (data.useIds !== '' && data.useIds !== null){
+ let url
+ if (data.useScope == '1'){
+ url = Feng.ctxPath + "/tHuiminCard/storeList"
+ }else {
+ url = Feng.ctxPath + "/tHuiminCard/siteList"
+ }
+
+ let vm = this;
+ let ajax = new $ax(Feng.ctxPath + url,
+ (data1) => {
+ vm.tableData = data1.records; // 使用 vm 替代 this
+ },
+ (data1) => {
+ Feng.error("请求失败: " + data1.responseJSON.message);
+ }
+ );
+ ajax.set("storeIds",data.useIds)
+ ajax.start();
+ }
+
},
(data) => {
+ vm.tableStoreLoading = false;
Feng.error("请求失败: " + data.responseJSON.message);
}
);
- ajax.set("storeIds",rawData.useIds)
+ ajax.set({id: id})
ajax.start();
+
+ init();
}
+ // // 设置内容(需在编辑器就绪后调用)
+ // this.editor.ready(() => {
+ // this.editor.setContent(this.huiminCard.introduce);
+ // });
- // 将原始数据转换为tableData数组
- this.huiminCard = {
- ...rawData,
- huiMinType: Number(rawData.huiMinType),
- startTime: rawData.startTimeStr,
- endTime: rawData.endTimeStr,
- }
-
- const urlParams = new URLSearchParams(window.location.search);
- // 直接获取参数值
- this.pageType = urlParams.get('pageType');
},
});
- function formatWeekAndTime(data) {
- const weekTimeMap = {};
- data.forEach(item => {
- // 确定时间段(优先使用直接字段)
- const startTime = item.startTime || item.time?.startTime || '';
- const endTime = item.endTime || item.time?.endTime || '';
- const timePair = startTime + ";" + endTime;
-
- // 遍历days数组,记录每个选中星期对应的时间段
- item.days.forEach(day => {
- if (day.checked && day.value) {
- weekTimeMap[day.value] = timePair;
- }
- });
- });
-
- // 按星期数字排序并生成最终字符串
- const sortedWeeks = Object.keys(weekTimeMap).sort((a, b) => a - b);
- const useWeeks = sortedWeeks.join(',');
- const useTimes = sortedWeeks.map(week => weekTimeMap[week]).join(',');
-
- return {useWeeks, useTimes};
- }
-
-
- function parseWeekAndTime(useWeeks, useTimes) {
- // 将字符串按逗号分割成数组
- const weeks = useWeeks.split(',').filter(Boolean); // 去除空值
- const times = useTimes.split(',').filter(Boolean);
-
- // 确保星期和时间段的数量一致
- if (weeks.length !== times.length) {
- throw new Error("星期和时间段的数量不匹配");
- }
-
- // 定义完整的 days 数组模板
- const fullDays = [
- { value: '1', label: '星期一', checked: false },
- { value: '2', label: '星期二', checked: false },
- { value: '3', label: '星期三', checked: false },
- { value: '4', label: '星期四', checked: false },
- { value: '5', label: '星期五', checked: false },
- { value: '6', label: '星期六', checked: false },
- { value: '7', label: '星期日', checked: false }
- ];
-
- // 构造还原的数据结构
- const result = [];
-
- weeks.forEach((week, index) => {
- const [startTime, endTime] = times[index].split(';'); // 分割时间段
-
- // 查找是否已有相同时间段的项,如果有则复用
- let existingItem = result.find(item =>
- item.startTime === startTime && item.endTime === endTime
- );
-
- if (!existingItem) {
- // 如果没有找到,则创建新项
- existingItem = {
- startTime,
- endTime,
- days: JSON.parse(JSON.stringify(fullDays)) // 深拷贝完整 days 数组
- };
- result.push(existingItem);
+ function init() {
+ let ajax = new $ax(Feng.ctxPath + "/base/region/getProvince",
+ (data) => {
+ this.provinces = data;
+ },
+ (data) => {
+ Feng.error("请求失败: " + data.responseJSON.message);
}
+ );
+ ajax.start();
- // 更新当前星期的 checked 状态
- const dayToUpdate = existingItem.days.find(day => day.value === week);
- if (dayToUpdate) {
- dayToUpdate.checked = true;
+ let ajax2 = new $ax(Feng.ctxPath + "/base/region/getCity",
+ (data) => {
+ this.cities = data;
+ },
+ (data) => {
+ Feng.error("请求失败: " + data.responseJSON.message);
}
- });
+ );
+ ajax2.start();
- return result;
- }
-
-
-
-
-
- function formatUnUseTimes(nUseTimes) {
- if (!nUseTimes) {
- return "";
- }
- let dates = [];
- nUseTimes.forEach(item => {
- // 格式化
- const date = item.date;
- const year = date.getFullYear();
- const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要+1
- const day = String(date.getDate()).padStart(2, '0');
- const hours = String(date.getHours()).padStart(2, '0');
- const minutes = String(date.getMinutes()).padStart(2, '0');
- const seconds = String(date.getSeconds()).padStart(2, '0');
- dates.push(year + '-' + month + '-' + day + '-' + hours + ':' + minutes + ':' + seconds)
- });
- return dates.join(',');
+ let ajax3 = new $ax(Feng.ctxPath + "/base/operator/getOperator",
+ (data) => {
+ this.operations = data;
+ },
+ (data) => {
+ Feng.error("请求失败: " + data.responseJSON.message);
+ }
+ );
+ ajax3.start();
}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tHuiminCard/tHuiminCard2.js b/cloud-server-management/src/main/webapp/static/modular/system/tHuiminCard/tHuiminCard2.js
index 994fce8..fcde6a0 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tHuiminCard/tHuiminCard2.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tHuiminCard/tHuiminCard2.js
@@ -8,6 +8,7 @@
dateRange: [],
status: ''
},
+ loading: false,
currentPage: 1,
pageSize: 10,
total: 800,
@@ -19,11 +20,12 @@
methods: {
handleSearch() {
console.log('搜索条件:', this.query)
- // 修复方案:使用箭头函数 + 字段校验
+ this.loading = true;
const vm = this; // 保留Vue实例引用
let ajax = new $ax(Feng.ctxPath + "/tHuiminCard/list",
(data) => { // 改用箭头函数
console.log('原始数据:', data);
+ this.loading = false;
if(data.rows && Array.isArray(data.rows)){
vm.tableData = data.rows;
vm.total = data.total;
@@ -33,6 +35,7 @@
}
},
(data) => {
+ this.loading = false;
Feng.error("搜索失败: " + (data.responseJSON?.message || '服务器异常')); // 错误提示优化
});
diff --git a/package.json b/package.json
index 2a784d8..e8de7bd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,43 @@
-{
- "dependencies": {
- "html2canvas": "^1.4.1",
- "jspdf": "^2.5.1"
+[
+ {
+ "days": [
+ {
+ "value": "1",
+ "label": "星期一",
+ "checked": true
+ },
+ {
+ "value": "2",
+ "label": "星期二",
+ "checked": true
+ },
+ {
+ "value": "3",
+ "label": "星期三",
+ "checked": true
+ },
+ {
+ "value": "4",
+ "label": "星期四",
+ "checked": false
+ },
+ {
+ "value": "5",
+ "label": "星期五",
+ "checked": false
+ },
+ {
+ "value": "6",
+ "label": "星期六",
+ "checked": false
+ },
+ {
+ "value": "7",
+ "label": "星期日",
+ "checked": false
+ }
+ ],
+ "startTime": "00:00",
+ "endTime": "23:00"
}
-}
+]
\ No newline at end of file
--
Gitblit v1.7.1