From f0f6bd6f7499d1fa737f705091337befb98f5112 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期四, 28 九月 2023 18:33:31 +0800
Subject: [PATCH] 后台
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java | 43
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java | 7
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js | 804 ++++++++++++++
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 2
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html | 11
cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java | 2
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java | 30
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java | 9
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html | 569 ++++++++++
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js | 259 ++++
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java | 7
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_pay.html | 48
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html | 58 +
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java | 8
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_two.html | 396 +++++++
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html | 157 ++
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html | 208 +++
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 45
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js | 157 ++
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java | 4
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml | 34
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html | 66 +
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html | 98 +
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 25
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java | 35
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java | 5
cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js | 102 +
27 files changed, 3,177 insertions(+), 12 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
index 40394d3..1cdf5c9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
@@ -3,6 +3,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.List;
+
@Data
public class RecordAppoint {
@@ -27,4 +29,11 @@
@ApiModelProperty(value = "课状态(1待上课 2已开始 3已完成 4已取消 5已请假 6旷课)")
private Integer status;
+
+ private Integer userId;
+
+ private Integer siteId;
+
+ private List<Integer> ids;
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 3759f72..ebb83f8 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -925,4 +925,49 @@
}
+
+ @ResponseBody
+ @PostMapping("/base/pointMerchars/getIntegralGoodsListOfSearchAudit")
+ public List<Map<String,Object>> getIntegralGoodsListOfSearchAudit(@RequestBody IntegralGoodsOfSearch ofSearch){
+ System.out.println(ofSearch);
+ List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearchAudit(ofSearch);
+ if (mapList.size() > 0){
+ for (Map<String, Object> stringObjectMap : mapList) {
+ Integer o = (Integer) stringObjectMap.get("id");
+ String startTime = (String) stringObjectMap.get("startTime");
+ String endTime = (String) stringObjectMap.get("endTime");
+ stringObjectMap.put("timeValue",startTime + "至"+endTime);
+ int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getPointsMerchandiseId, o));
+ int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getPointsMerchandiseId, o)
+ .eq(UserPointsMerchandise::getStatus,2));
+ stringObjectMap.put("hasExchangeQty",count1);
+ stringObjectMap.put("hasPickQty",count2);
+
+ stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime));
+ }
+ if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){
+ mapList = dealTimeData(mapList,ofSearch.getActiveStatus());
+ }
+ }
+ System.out.println("mapList->"+mapList);
+ return mapList;
+ }
+
+
+ @PostMapping("/base/pointMerchars/updateType")
+ @ResponseBody
+ public Object updateType(@RequestBody String s){
+ String[] split = s.split("_");
+ PointsMerchandise byId = pmdsService.getById(split[0]);
+ byId.setStatus(Integer.valueOf(split[1]));
+ if(Integer.valueOf(split[1])==3){
+
+ byId.setRemark(split[2]);
+ }
+ return pmdsService.updateById(byId);
+
+ }
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
index bb20553..4fa8b3b 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
@@ -165,6 +165,10 @@
private Integer shelves;
@TableField("cardType")
private Integer cardType;
+ @TableField("status")
+ private Integer status;
+ @TableField("remark")
+ private String remark;
@Override
protected Serializable pkVal() {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
index 721e0d3..cfb3782 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
@@ -25,6 +25,13 @@
@Param("activeStatus") Integer activeStatus,
@Param("state") Integer state,
@Param("page") Page<Map<String, Object>> page);
+ List<Map<String, Object>> queryGoodsListOfSearchAudit(@Param("name")String name,
+ @Param("type")Integer type,
+ @Param("redemptionMethod")Integer redemptionMethod,
+ @Param("userPopulation") Integer userPopulation,
+ @Param("activeStatus") Integer activeStatus,
+ @Param("state") Integer state,
+ @Param("page") Page<Map<String, Object>> page);
void saveCity(@Param("id") Integer id, @Param("province") String province, @Param("provinceCode") String provinceCode, @Param("city") String city, @Param("cityCode") String cityCode);
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
index 5ac48d5..2169a65 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
@@ -21,4 +21,6 @@
void saveCity(Integer id, String province, String provinceCode, String city, String cityCode);
+ List<Map<String, Object>> queryGoodsListOfSearchAudit(IntegralGoodsOfSearch ofSearch);
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
index 85e4cde..6680cea 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
@@ -26,6 +26,11 @@
return this.baseMapper.queryGoodsListOfSearch(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(),
ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage());
}
+ @Override
+ public List<Map<String, Object>> queryGoodsListOfSearchAudit(IntegralGoodsOfSearch ofSearch) {
+ return this.baseMapper.queryGoodsListOfSearchAudit(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(),
+ ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage());
+ }
@Override
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
index a69138a..c39989d 100644
--- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -16,6 +16,7 @@
pickUpQuantity,
`sort`,
shelves
+
from t_points_merchandise
where 1 = 1
<if test="name != null">
@@ -35,6 +36,39 @@
</if>
order by insertTime desc
</select>
+ <select id="queryGoodsListOfSearchAudit" resultType="java.util.Map">
+ SELECT id,
+ `name`,
+ `cover`,
+ `type`,
+ date_format(startTime ,'%Y-%m-%d') as startTime,
+ date_format(endTime ,'%Y-%m-%d') as endTime,
+ useScope,
+ userPopulation,
+ quantityIssued,
+ pickUpQuantity,
+ `sort`,
+ shelves,
+ status
+ from t_points_merchandise
+ where type =3 and `status` !=1
+ <if test="name != null">
+ and `name` like concat('%', #{name}, '%')
+ </if>
+ <if test="type != null">
+ and cardType = #{type}
+ </if>
+ <if test="redemptionMethod != null">
+ and redemptionMethod = #{redemptionMethod}
+ </if>
+ <if test="userPopulation != null">
+ and userPopulation = #{userPopulation}
+ </if>
+ <if test="activeStatus != null">
+ and `status` = #{activeStatus}
+ </if>
+ order by insertTime desc
+ </select>
<insert id="saveCity">
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index e26f7d6..0cb6701 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -1240,7 +1240,7 @@
return packagePaymentService.save(packagePayment);
}
-
+ @ResponseBody
@PostMapping("/base/coursePack/obtainStudentClassDetails")
public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId){
try {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
index 49d1ffc..c7d3f49 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
@@ -3,6 +3,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.List;
+
@Data
public class RecordAppoint {
@@ -27,4 +29,10 @@
@ApiModelProperty(value = "课状态(1待上课 2已开始 3已完成 4已取消 5已请假 6旷课)")
private Integer status;
+ private Integer userId;
+
+ private Integer siteId;
+
+ private List<Integer> ids;
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index 49b711f..5057fec 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -1,6 +1,9 @@
package com.dsh.course.service.impl;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.domain.Person;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -642,6 +645,12 @@
TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
+
+ recordVo.setUserId(appUserId);
+ recordVo.setSiteId(coursePackage.getSiteId());
+ List<Integer> ids = getIds(coursePackage.getSiteId());
+ recordVo.setIds(ids);
+
recordVo.setCoursePackageName(coursePackage.getName());
recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
Date date = DateUtil.getDate();
@@ -697,7 +706,23 @@
}
return recordVoList;
}
+ public List<Integer> getIds(Integer siteId) {
+ HttpRequest httpRequest = HttpRequest.get("https://try.daowepark.com/v7/user_api/general/get_space_area?space_id=" + siteId);
+ HttpResponse execute = httpRequest.execute();
+ String body = execute.body();
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ Object data = jsonObject.get("data");
+ JSONArray array = JSONArray.parseArray(data.toString());
+ List<Integer> ids =new ArrayList<>();
+ for (Object o : array) {
+ JSONObject jsonObject1 = JSONObject.parseObject(o.toString());
+ Object id = jsonObject1.get("id");
+ Integer integer = Integer.valueOf(id.toString());
+ ids.add(integer);
+ }
+ return ids;
+ }
@Override
public ResultUtil insertVipPaymentCallback(String code, String orderNumber) {
TCoursePackagePayment coursePackagePayment = this.baseMapper.getCoursePackagePaymentByCode(code);
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
index 21ca434..6589158 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
@@ -63,4 +63,11 @@
@PostMapping("/base/pointMerchars/writeOffGoodsStatus")
boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map);
+ @PostMapping("/base/pointMerchars/getIntegralGoodsListOfSearchAudit")
+ List<Map<String,Object>> getIntegralGoodsListOfSearchAudit(IntegralGoodsOfSearch ofSearch);
+
+ @PostMapping("/base/pointMerchars/updateType")
+ Object updateType(String s);
+
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
index 7c36464..a4caa3f 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
@@ -51,6 +51,7 @@
private String PREFIX = "/system/tGoods/";
+ private String PREFIX1 = "/system/tGoodsAudit/";
@Resource
@@ -85,6 +86,10 @@
public String index(Model model) {
return PREFIX + "TGoods.html";
+ }
+ @RequestMapping("/audit")
+ public String audit(Model model) {
+ return PREFIX1 + "TGoodsAudit.html";
}
/**
@@ -242,6 +247,8 @@
public String storePage(Model model) {
return PREFIX + "TStoreList.html";
}
+
+
@RequestMapping("/updateType")
@ResponseBody
public Object updateType(Long id) {
@@ -516,6 +523,34 @@
System.out.println(ofSearch);
return pointMercharsClient.getIntegralGoodsListOfSearch(ofSearch);
}
+ @RequestMapping(value = "/listAudit")
+ @ResponseBody
+ public Object listOfIntegralGoodsAudit(String name, Integer type, Integer redemptionMethod , Integer userPopulation, Integer activeStatus) {
+ Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
+
+ IntegralGoodsOfSearch ofSearch = new IntegralGoodsOfSearch();
+ ofSearch.setPage(page);
+ ofSearch.setName(name);
+ ofSearch.setType(type);
+ ofSearch.setRedemptionMethod(redemptionMethod);
+ ofSearch.setUserPopulation(userPopulation);
+ ofSearch.setActiveStatus(activeStatus);
+ return pointMercharsClient.getIntegralGoodsListOfSearchAudit(ofSearch);
+ }
+
+
+
+
+
+
+
+
+ @RequestMapping(value = "/updateTypeOne")
+ @ResponseBody
+ public Object updateTypeOne(Integer id, Integer type, String remark) {
+ Object o = pointMercharsClient.updateType(id + "_" + type + "_" + remark);
+ return SUCCESS_TIP;
+ }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
index ecd68dc..c182871 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
@@ -27,10 +27,12 @@
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.*;
import com.dsh.guns.modular.system.service.*;
+import com.dsh.guns.modular.system.util.HttpRequestUtil;
import com.dsh.guns.modular.system.util.ResultUtil;
import net.bytebuddy.asm.Advice;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@@ -40,10 +42,7 @@
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
+import java.util.*;
/**
* 车辆管理控制器
@@ -394,8 +393,44 @@
site.setInsertTime(new Date());
site.setState(1);
siteClient.addSite(site);
+
+ HashMap<String, String> map = new HashMap<>();
+ map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
+ map.put("name",site.getName());
+ map.put("short_name",site.getName());
+ map.put("location",city);
+ map.put("address",store.getAddress());
+ map.put("telephone",store.getPhone());
+ map.put("linkman","");
+ map.put("business_time","[{\"start_time\":\"00:00\",\"close_time\":\"23:59\"}]");
+ map.put("logo",store.getCoverDrawing());
+ map.put("remark",site.getIntroduce());
+ map.put("lat",store.getLat());
+ map.put("lng",store.getLon());
+ HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpace", map);
+
return ResultUtil.success("添加成功");
}
+
+ public static void main(String[] args) {
+
+ HashMap<String, String> map = new HashMap<>();
+ map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
+ map.put("name","测试场地");
+ map.put("short_name","测试场地");
+ map.put("location","成都");
+ map.put("address","成都地址");
+ map.put("telephone","17888888888");
+ map.put("linkman","成都");
+ map.put("business_time","[{\"start_time\":\"00:00\",\"close_time\":\"23:59\"}]");
+ map.put("logo","https://we-park-life.oss-cn-beijing.aliyuncs.com/img/f325d449f2634855ad1fb0cc796465e8.png");
+ map.put("remark","场地介绍");
+ map.put("lat","30.670124");
+ map.put("lng","103.929497");
+ String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpace", map);
+ System.out.println(s);
+ }
+
/**
* 编辑场地管理
*/
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html
index e0e7f55..41ec1ba 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html
@@ -117,7 +117,7 @@
<#input id="quantityIssued" name="*兑换地点:" type="text" value="${item.exchangeArea}" readonly="true" />
- @if(item.useScope == 2){
+ @if(item.useScope == 3){
<table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
<thead>
<tr>
@@ -134,18 +134,19 @@
</table>
@}
- @if(item.useScope == 3){
+ @if(item.useScope == 2){
<table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
<thead>
<tr>
- <td>所在省市</td>
- <td>所属账号</td>
- <td>门店名称</td>
+ <td>所在省</td>
+ <td>所在市</td>
</tr>
</thead>
@for(c in city){
+ <tr>
<td>${c.num1}</td>
<td>${c.num2}</td>
+ </tr>
@}
</table>
@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html
new file mode 100644
index 0000000..1d8f66c
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TCity_edit.html
@@ -0,0 +1,98 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+
+ <div class="form-horizontal" id="carInfoForm">
+ <input hidden id="id" value="${item.id}">
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">所在省:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)">
+ <option value="">选择省</option>
+ @for(obj in list){
+ <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
+ <option value="${obj.code}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">所在市:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="cCode" name="cCode">
+ <option value="">选择市</option>
+ @for(obj in list1){
+ <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <#input id="name" name="管理员姓名" type="text" value="${item.name}"/>
+ <#input id="phone" name="管理员手机号" type="text" value="${item.phone}"/>
+
+
+ </div>
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+ </div>
+ </div>
+
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
+<script>
+ laydate.render({
+ elem: '#annualInspectionTime'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#commercialInsuranceTime'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#certifyDateA'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#transDateStart'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#transDateStop'
+ ,lang:"en"
+ });
+ laydate.render({
+
+ elem: '#certifyDateB'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#nextFixDate'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#GPSInstallDate'
+ ,lang:"en"
+ });
+ laydate.render({
+ elem: '#registerDate'
+ ,lang:"en"
+ });
+</script>
+<script type="application/javascript">
+ $(function() {
+ var companyType = $("input[name='companyType']:checked").val();
+ if (1 == companyType){
+ $(".companyDiv").hide();
+ } else if (2 == companyType){
+ $(".companyDiv").show();
+ }
+
+ TCarInfoDlg.zcServerClick();
+ TCarInfoDlg.kcServerClick();
+
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html
new file mode 100644
index 0000000..8c5f2a7
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoodsAudit.html
@@ -0,0 +1,66 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+
+ <div class="ibox-title">
+ <h5>门票审核管理</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+
+ <div class="col-sm-3">
+ <#NameCon id="name" name="门票名称" />
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="type" name="门票类型">
+ <option value="">全部</option>
+ <option value="1">日卡</option>
+ <option value="2">月卡</option>
+ <option value="3">季卡</option>
+ <option value="4">年卡</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="redemptionMethod" name="兑换方式">
+ <option value="">全部</option>
+ <option value="1">积分</option>
+ <option value="2">现金+积分</option>
+ <option value="3">现金</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="userPopulation" name="用户人群">
+ <option value="">全部</option>
+ <option value="1">全部用户</option>
+ <option value="2">年度会员</option>
+ <option value="3">已有学员用户</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="activeStatus" name="审核状态">
+ <option value="">全部</option>
+ <option value="2">待审核</option>
+ <option value="3">已拒绝</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TPointProducts.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TPointProducts.resetSearch()" space="true"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TPointProductsTableToolbar" role="group">
+ <#button name="审核" icon="fa-remove" clickFun="TPointProducts.payDetail()" space="true"/>
+ <#button name="查看详情" icon="fa-remove" clickFun="TPointProducts.detail()" space="true"/>
+ </div>
+ <#table id="TPointProductsTable"/>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoodsAudit/tGoods.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html
new file mode 100644
index 0000000..e64b2c4
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_add.html
@@ -0,0 +1,569 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 34px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">商品类型:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="type" value="1" checked onclick="updateType(1)"> 实体商品
+ <input type="radio" name="type" value="2"onclick="updateType(2)" > 课包商品
+ <input type="radio" name="type" value="3" onclick="updateType(1)"> 门票商品
+ </div>
+ </div>
+ <div id="b1">
+ <#input id="name" name="商品名称" type="text"/>
+ <div class="form-group" id="ticket" hidden>
+ <label class="col-sm-3 control-label">门票类型:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="cardType" value="1" checked> 日卡
+ <input type="radio" name="cardType" value="2"> 月卡
+ <input type="radio" name="cardType" value="3" > 季卡
+ <input type="radio" name="cardType" value="4" > 年卡
+ </div>
+ </div>
+ <#input id="price" name="原价" type="text"/>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">兑换方式:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="redemptionMethod" value="1" onclick="updateMethod(3)" checked> 积分
+ <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(4)"> 现金+积分
+ <input type="radio" name="redemptionMethod" value="3" onclick="updateMethod(5)"> 现金
+ </div>
+ </div>
+
+
+ <div class="form-group" id="y1" hidden>
+ <label class="col-sm-3 control-label">所需现金:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="cash" name="cash" type="text">
+
+ </div>
+ </div>
+ <div class="form-group" id="y2">
+ <label class="col-sm-3 control-label">所需积分:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="integral" name="integral" type="text">
+
+ </div>
+ </div>
+
+ <#avatar id="cover" name="商品封面" />
+
+ <div class="row" id="app" >
+ <div class="col-sm-6" style="width: 100%">
+ <div class="form-group">
+ <label class="col-sm-3 control-label" style="width: 15%;margin-left: 7%">*商品图片(请上传不超过五张图片): </label>
+ <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept=".jpg,.jpeg,.png,.JPG,.JPEG"
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="imageUrl1" alt=""></el-dialog>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">用户人群:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="userPopulation" value="1" checked> 全部用户
+ <input type="radio" name="userPopulation" value="2" > 年度会员
+ <input type="radio" name="userPopulation" value="3" > 已有学员用户
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">发放数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="quantityIssued" name="quantityIssued" type="text">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">限领数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="pickUpQuantity" name="pickUpQuantity" type="text">
+ </div>
+ </div>
+ <#input id="startTime" name="有效期" type="text"/>
+
+ <div class="row" id="belongsCon" >
+ <div class="form-group">
+ <div class="form-group">
+ <div class="initialLevel col-sm-12 control-label form-group">
+ <label class="col-sm-3">*适用范围: </label>
+ <div class="col-sm-2" id="belongsNationwide" >
+ <input class="col-sm-1" onclick="scopeOfApplication1()" name="company" type="radio"
+ value="1" checked style="margin-top: 10px"/>
+ <label class="col-sm-1" style="width: 38%;margin-top: 7px">全国通用</label>
+ </div>
+ <div class="col-sm-2" id="belongsCity" >
+ <input class="col-sm-1" name="company" onclick="scopeOfApplication2()" type="radio"
+ value="2" style="margin-top: 10px"/>
+ <label class="col-sm-1" style="width: 38%;margin-top: 7px">指定城市</label>
+ </div>
+ <div class="col-sm-2" id="belongsStore" >
+ <input class="col-sm-1" name="company" onclick="scopeOfApplication3()" type="radio"
+ value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
+ <label class="col-sm-1" style="width: 38%;margin-top: 6px;">指定门店</label>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ <div class="row" id="citySelect" hidden="hidden">
+ <div class="form-group">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*指定城市: </label>
+ <div class="col-sm-9 control-label">
+ <select class="col-sm-1" id="provinceData" style="margin-top: 1%;width: 25%" onchange="changeCity(null)">
+ <option value="">请选择</option>
+ </select>
+ <label class="col-sm-1" style="width: 9%;margin-top: 7px">省</label>
+ <select class="col-sm-1" style="margin-top: 1%;width: 25%" id="cityData">
+ <option value="">请选择</option>
+ </select>
+ <label class="col-sm-1" style="width: 7%;margin-top: 7px">市</label>
+ <label name="addBranch" class="col-sm-1" onclick="TGoodsInfoDlg.addBranch()" style="border: 0px;cursor: pointer;margin-top: 1%"><i class="fa fa-plus-circle"></i></label>
+ </div>
+ <div id="cityDemo"></div>
+ </div>
+
+ </div>
+ </div>
+
+ <div class="row" id="storeSelect" hidden="hidden">
+ <div class="form-group">
+ <div class="form-group">
+ <div class="col-sm-12">
+ <label class="col-sm-3 control-label">*指定门店: </label>
+ <button onclick="storeList()"
+ style="height: 22px;width: 82px;background-color: #4a8ff1;color: white;z-index: 15;position:relative;border: none;margin-top: 1%">
+ 选择门店
+ </button>
+ </div>
+ <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px">
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" id="storeTable">
+ <thead>
+ <tr>
+ <td>所在省市</td>
+ <td>所属账号</td>
+ <td>门店名称</td>
+ <td>操作</td>
+ </tr>
+ </thead>
+ <tbody id="coun"></tbody>
+ </table>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <div class="form-group" style="margin-left:262px">
+ <label class="col-sm-1 control-label">兑换说明:</label>
+ <div class="col-sm-5">
+ <textarea type="text/plain" id="editor" style="height: 300px;width: 800px;"></textarea>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">排序:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="sort" name="sort" type="text">
+
+ </div>
+ </div>
+ </div>
+
+ <div id="b2" hidden>
+
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">所在省:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="pCode" name="pCode" onchange="TGoodsInfoDlg.oneChange(this)">
+ <option value="">选择省</option>
+ @for(obj in list){
+ <option value="${obj.code}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">所在市:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="cCode" name="cCode" onchange="TGoodsInfoDlg.storeChange(this)">
+ <option value="">选择市</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">所属门店:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="storeId" name="storeId">
+ <option value="">选择门店</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课包类型:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageTypeId" name="pCode" onchange="TGoodsInfoDlg.packageChange(this)">
+ <option value="">选择课包类型</option>
+ @for(obj in courseType){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课包名称:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageId" name="coursePackageId" onchange="TGoodsInfoDlg.timeChange(this)">
+ <option value="">选择课包</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课时数:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageConfigId" name="coursePackageConfigId">
+ <option value="">选择课时数</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">原价:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="price1" name="price" type="text">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">兑换方式:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="redemptionMethod" value="1" checked onclick="updateMethod(1)" > 积分
+ <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(2)"> 现金+积分
+ </div>
+ </div>
+
+ <div class="form-group" id="y3" hidden>
+ <label class="col-sm-3 control-label">所需现金:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="cash1" name="cash" type="text">
+
+ </div>
+ </div>
+ <div class="form-group" id="y4">
+ <label class="col-sm-3 control-label">所需积分:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="integral1" name="integral" type="text">
+
+ </div>
+ </div>
+
+
+ <#avatar id="cover1" name="*商品封面" />
+ <div class="row" id="app1" >
+ <div class="col-sm-6" style="width: 100%">
+ <div class="form-group">
+ <label class="col-sm-3 control-label" style="width: 15%;margin-left: 7%">*商品图片(请上传不超过五张图片): </label>
+ <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept=".jpg,.jpeg,.png,.JPG,.JPEG"
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="imageUrl1" alt=""></el-dialog>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">用户人群:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="userPopulation" value="1" checked> 全部用户
+ <input type="radio" name="userPopulation" value="2" > 年度会员
+ <input type="radio" name="userPopulation" value="3" > 已有学员用户
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">发放数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="quantityIssued1" name="quantityIssued" type="text">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">限领数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="pickUpQuantity1" name="pickUpQuantity" type="text">
+ </div>
+ </div>
+ <#input id="startTime1" name="有效期" type="text"/>
+
+ <div class="form-group" style="margin-left:262px">
+ <label class="col-sm-1 control-label">兑换说明:</label>
+ <div class="col-sm-5">
+ <textarea type="text/plain" id="editor1" style="height: 300px;width: 800px;"></textarea>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">排序:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="sort1" name="sort" type="text">
+
+ </div>
+ </div>
+
+ </div>
+
+
+ </div>
+</div>
+
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
+ </div>
+</div>
+
+ </div>
+
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script>
+<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
+<script>
+ laydate.render({
+ elem: '#startTime',
+ range: true
+ });
+ laydate.render({
+ elem: '#startTime1',
+ range: true
+ });
+ function updateMethod(e) {
+ console.log(e)
+ if(e==1){
+ $("#y3").hide()
+ $("#y4").show()
+ }else if(e==2){
+ $("#y4").show()
+ $("#y3").show()
+ }else if(e==3){
+ $("#y1").hide()
+ $("#y2").show()
+ }else if(e==4){
+ $("#y1").show()
+ $("#y2").show()
+ }else if(e==5) {
+ $("#y2").hide()
+ $("#y1").show()
+ }
+
+ }
+ let i =1;
+ function updateType(e) {
+
+ if(e==2){
+ $("#b1").hide()
+ $("#b2").show()
+ if(i==1){
+ var drivingLicensePhoto = new $WebUpload("cover1");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ i++;
+ }
+ $("#ticket").hide()
+ }else {
+ $("#b2").hide()
+ $("#b1").show()
+ $("#ticket").show()
+ }
+ }
+
+
+
+ function changeCity(n){
+
+ var provinceSelect = null;
+ if (n === undefined || n === null || n === ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+
+ var citySelect = null;
+ if (n === undefined || n === null || n === ''){
+ citySelect = document.getElementById("cityData");
+ }else {
+ citySelect = document.getElementById("cityData"+n);
+ }
+
+ var selectedProvince = provinceSelect.value;
+ // 清空城市下拉框
+ citySelect.innerHTML = '<option value="">请选择</option>';
+ if (selectedProvince === "") {
+ return;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvince);
+ ajax.start();
+ }
+
+ /**
+ * 全国通用
+ */
+ function scopeOfApplication1() {
+ $("#storeSelect").hide();
+ $("#citySelect").hide();
+ }
+ /**
+ * 指定城市
+ */
+ function scopeOfApplication2() {
+ $("#storeSelect").hide();
+ $("#citySelect").show();
+ }
+ /**
+ * 指定门店
+ */
+ function scopeOfApplication3() {
+ $("#storeSelect").show();
+ $("#citySelect").hide();
+ }
+
+
+
+
+ var vue2 = new Vue({
+ el: '#app',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+ var vue2 = new Vue({
+ el: '#app1',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray1.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html
new file mode 100644
index 0000000..41ec1ba
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_one.html
@@ -0,0 +1,208 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ display: inline-block;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 110px;
+ margin-top: 40px;
+ text-align: center;
+ }
+
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div id="b1">
+ <#input id="name" name="*商品名称:" type="text" value="${item.name}" readonly="true" />
+
+ <#input id="cover" name="*原价:" avatarImg="${item.price}" readonly="true" />
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*兑换方式:</label>
+ <div class="col-sm-4">
+ @if(exchangeMethod == 1){
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="1" checked style="margin-top: 10px" disabled/>
+ <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">全部用户</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
+ @}
+
+ @if(exchangeMethod == 2){
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="1" style="margin-top: 10px" disabled/>
+ <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">全部用户</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="2" checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
+ @}
+
+ @if(exchangeMethod == 3){
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="1" style="margin-top: 10px" disabled/>
+ <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">全部用户</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
+ <input class="col-sm-1 control-label" name="userGroup" type="radio"
+ value="3" checked style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
+ <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
+ @}
+
+ </div>
+ </div>
+
+ <#input id="cover" name="*所需现金:" avatarImg="${item.cash}" readonly="true" />
+ <#input id="cover" name="*所需积分:" avatarImg="${item.integral}" readonly="true" />
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*商品封面:</label>
+ <div class="col-sm-4">
+ <img height="100px" width="100px" src="${item.cover}">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
+ <div class="col-sm-4">
+ @if(pictures != null){
+ @for(im in pictures){
+ <img height="100px" width="100px" src="${im}">
+ @}
+ @}
+ </div>
+ </div>
+
+ <#input id="quantityIssued" name="*用户人群:" type="text" value="${item.userPopulation}" readonly="true" />
+ <#input id="quantityIssued" name="*发放数量:" type="text" value="${item.quantityIssued}" readonly="true" />
+ <#input id="quantityIssued" name="*限领数量:" type="text" value="${item.pickUpQuantity}" readonly="true" />
+ <#input id="quantityIssued" name="*已兑换数量:" type="text" value="${item.hasPicked}" readonly="true" />
+ <#input id="quantityIssued" name="*有效期:" type="text" value="${item.validTime}" readonly="true" />
+
+ <#input id="quantityIssued" name="*兑换地点:" type="text" value="${item.exchangeArea}" readonly="true" />
+
+ @if(item.useScope == 3){
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
+ <thead>
+ <tr>
+ <td>所在省市</td>
+ <td>所属账号</td>
+ <td>门店名称</td>
+ </tr>
+ </thead>
+ @for(s in store){
+ <td>${s.num1}</td>
+ <td>${s.num2}</td>
+ <td>${s.num3}</td>
+ @}
+ </table>
+ @}
+
+ @if(item.useScope == 2){
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
+ <thead>
+ <tr>
+ <td>所在省</td>
+ <td>所在市</td>
+ </tr>
+ </thead>
+ @for(c in city){
+ <tr>
+ <td>${c.num1}</td>
+ <td>${c.num2}</td>
+ </tr>
+ @}
+ </table>
+ @}
+ <div class="form-group" style="margin-left:262px">
+ <label class="col-sm-3 control-label">兑换说明:</label>
+ <div class="col-sm-4">
+ <textarea type="text/plain" id="editor" style="height: 300px;width: 800px;" readonly>${item.redemptionInstructions}</textarea>
+ </div>
+ </div>
+ <#input id="quantityIssued" name="*排序:" type="text" value="${item.sort}" readonly="true" />
+
+ </div>
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
+ </div>
+ </div>
+
+</div>
+
+</div>
+</div>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script>
+<script>
+ var vue2 = new Vue({
+ el: '#app',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray.push(file.response);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_two.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_two.html
new file mode 100644
index 0000000..7c62805
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_detail_two.html
@@ -0,0 +1,396 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 34px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <input id="s1" value="${item.redemptionMethod}" hidden>
+ <input id="s2" value="${item.userPopulation}" hidden>
+ <div class="form-horizontal" id="carInfoForm">
+ <#label id="types" name="商品类型" type="text" value="课包商品" />
+
+ <div id="b2" >
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">所在省:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="pCode" name="pCode">
+ <option value="">${item.province}</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">所在市:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="cCode" name="cCode" >
+ <option value="">${item.city}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">所属门店:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="storeId" name="storeId">
+ <option value="">${shopName}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课包类型:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageTypeId" name="pCode" onchange="TGoodsInfoDlg.packageChange(this)">
+ <option value="">${typeName}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课包名称:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageId" name="coursePackageId" onchange="TGoodsInfoDlg.timeChange(this)">
+ <option value="">${pageName}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">课时数:</label>
+ <div class="col-sm-9">
+ <select class="form-control" id="coursePackageConfigId" name="coursePackageConfigId">
+ <option value="">${classHours}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">原价:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="price1" name="price" type="text" value="${item.price}" readonly>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">兑换方式:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="redemptionMethod" value="1" checked onclick="updateMethod(1)"> 积分
+ <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(2)"> 现金+积分
+ </div>
+ </div>
+
+ <div class="form-group" id="y3" hidden>
+ <label class="col-sm-3 control-label">所需现金:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="cash1" name="cash" type="text" value="${item.cash}">
+
+ </div>
+ </div>
+ <div class="form-group" id="y4">
+ <label class="col-sm-3 control-label">所需积分:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="integral1" name="integral" type="text" value="${item.integral}">
+
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
+ <div class="col-sm-4">
+ <img height="100px" width="100px" src="${item.cover}">
+ </div>
+ </div>
+
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
+ <div class="col-sm-4">
+ @for(im in pictures){
+ <img height="100px" width="100px" src="${im}">
+ @}
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">用户人群:</label>
+ <div class="col-sm-9">
+ <input type="radio" name="userPopulation" value="1" checked> 全部用户
+ <input type="radio" name="userPopulation" value="2" > 年度会员
+ <input type="radio" name="userPopulation" value="3" > 已有学员用户
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">发放数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="quantityIssued1" name="quantityIssued" type="text" value="${item.quantityIssued}" readonly>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">限领数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="pickUpQuantity1" name="pickUpQuantity" type="text" value="${item.pickUpQuantity}" readonly>
+ </div>
+ </div>
+ <#input id="startTime1" name="有效期" type="text" value="${sTime} - ${eTime}" readonly="true"/>
+
+ <div class="form-group" style="margin-left:262px">
+ <label class="col-sm-1 control-label">兑换说明:</label>
+ <div class="col-sm-5">
+ <textarea type="text/plain" id="editor1" style="height: 300px;width: 800px;" readonly>${item.redemptionInstructions}</textarea>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">排序:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="sort1" name="sort" type="text" value="${item.sort}" readonly>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ </div>
+</div>
+
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
+ </div>
+</div>
+
+ </div>
+
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script>
+<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
+<script>
+ laydate.render({
+ elem: '#startTime',
+ range: true
+ });
+ laydate.render({
+ elem: '#startTime1',
+ range: true
+ });
+ function updateMethod(e) {
+ console.log(e)
+ if(e==1){
+ $("#y3").hide()
+ $("#y4").show()
+ }else if(e==2){
+ $("#y4").show()
+ $("#y3").show()
+ }else if(e==3){
+ $("#y1").hide()
+ $("#y2").show()
+ }else if(e==4){
+ $("#y1").show()
+ $("#y2").show()
+ }else if(e==5) {
+ $("#y2").hide()
+ $("#y1").show()
+ }
+
+ }
+ let i =1;
+ function updateType(e) {
+
+ if(e==2){
+ $("#b1").hide()
+ $("#b2").show()
+ if(i==1){
+ var drivingLicensePhoto = new $WebUpload("cover1");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ i++;
+ }
+
+ }else {
+ $("#b2").hide()
+ $("#b1").show()
+ }
+ }
+
+
+
+ function changeCity(n){
+
+ var provinceSelect = null;
+ if (n === undefined || n === null || n === ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+
+ var citySelect = null;
+ if (n === undefined || n === null || n === ''){
+ citySelect = document.getElementById("cityData");
+ }else {
+ citySelect = document.getElementById("cityData"+n);
+ }
+
+ var selectedProvince = provinceSelect.value;
+ // 清空城市下拉框
+ citySelect.innerHTML = '<option value="">请选择</option>';
+ if (selectedProvince === "") {
+ return;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvince);
+ ajax.start();
+ }
+
+ /**
+ * 全国通用
+ */
+ function scopeOfApplication1() {
+ $("#storeSelect").hide();
+ $("#citySelect").hide();
+ }
+ /**
+ * 指定城市
+ */
+ function scopeOfApplication2() {
+ $("#storeSelect").hide();
+ $("#citySelect").show();
+ }
+ /**
+ * 指定门店
+ */
+ function scopeOfApplication3() {
+ $("#storeSelect").show();
+ $("#citySelect").hide();
+ }
+
+
+
+
+ var vue2 = new Vue({
+ el: '#app',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+ var vue2 = new Vue({
+ el: '#app1',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray1.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+
+
+ window.onload = function(){
+ var OBJradio=document.getElementsByName("redemptionMethod")
+ if(OBJradio==1){
+ $("#y4").show()
+ $("#y3").hide()
+ }
+ if(OBJradio==2){
+ $("#y4").show()
+ $("#y3").show()
+ }
+ for(i=0;i<OBJradio.length;i++){//循环查找这个radio
+ if($("#s1").val()==OBJradio[i].value){//判断是否与radio的值相同
+ OBJradio[i].checked=true//修改选中状态
+ }
+ }
+ var OBJradio=document.getElementsByName("userPopulation")
+ for(i=0;i<OBJradio.length;i++){//循环查找这个radio
+ if($("#s2").val()==OBJradio[i].value){//判断是否与radio的值相同
+ OBJradio[i].checked=true//修改选中状态
+ }
+ }
+ }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html
new file mode 100644
index 0000000..0d43e8b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_edit.html
@@ -0,0 +1,157 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ display: inline-block;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 110px;
+ margin-top: 40px;
+ text-align: center;
+ }
+
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div id="b1">
+ <input id="goodsId" value="${id}" hidden="hidden">
+ <#input id="name" name="商品名称" type="text" value="${item.name}" readonly="true" />
+
+ <#avatar id="cover" name="商品封面:" avatarImg="${item.cover}" />
+
+
+ <div class="row" id="app" style="margin-left: 225px;">
+ <div class="col-sm-6">
+ <div class="form-group">
+ <label class="col-sm-3 control-label">商品图片(请上传不超过五张图片): </label>
+ <div class="col-sm-2" style="width: 100%;margin-left: 24%;margin-top: 1%">
+ <div class="avatar-uploader" style="display: flex;">
+ @for(im in pictures){
+ <div style="margin-right: 16px;position: relative">
+ <img height="100px" width="100px" src="${im}">
+ <i class="el-icon-delete" onclick="delImg(this)" style="color: red;font-size: 18px;position: absolute;left: 0;right: 0;top: 0;bottom: 0"></i>
+ </div>
+ @}
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept=".jpg,.jpeg,.png,.JPG,.JPEG"
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">发放数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="quantityIssued" name="quantityIssued" type="text" value="${item.quantityIssued}">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">限领数量:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="pickUpQuantity" name="pickUpQuantity" type="text" value="${item.pickUpQuantity}">
+ </div>
+ </div>
+
+ <div class="form-group" style="margin-left:262px">
+ <label class="col-sm-1 control-label">兑换说明:</label>
+ <div class="col-sm-5">
+ <textarea type="text/plain" id="editor" style="height: 300px;width: 800px;">${item.content}</textarea>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">排序:</label>
+ <div class="col-sm-9">
+ <input class="form-control" id="sort" name="sort" type="text" value="${item.sort}">
+ </div>
+ </div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.editSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
+ </div>
+ </div>
+
+</div>
+
+</div>
+</div>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script src="${ctxPath}/modular/system/tGoods/tGoods_info.js"></script>
+<script>
+ var vue2 = new Vue({
+ el: '#app',
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TGoodsInfoDlg.goodsPicArray.push(file.response);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_pay.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_pay.html
new file mode 100644
index 0000000..0f1e6ef
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TGoods_pay.html
@@ -0,0 +1,48 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <input id="id" value="${id}" hidden="hidden">
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+
+ <div class="col-sm-3">
+ <#NameCon id="name" name="姓名" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="phone" name="联系方式:" />
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="status" name="状态:">
+ <option value="">全部</option>
+ <option value="1">未使用</option>
+ <option value="2">已使用</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TPayInfo.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TPayInfo.resetSearch()" space="true"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TPayInfoTableToolbar" role="group">
+ <#button name="核销" icon="fa-plus" clickFun="TPayInfo.WriteOff()"/>
+ </div>
+ <#table id="TPayInfoTable"/>
+
+ <div style="margin-left: 40%">
+ <button type="button" class="btn btn-info button-margin" onclick="TPayInfo.close()"
+ id="submit" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+ <i class="fa fa-check"></i> 关闭
+ </button>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoods/tPay_info.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html
new file mode 100644
index 0000000..7c6e1a5
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoodsAudit/TStoreList.html
@@ -0,0 +1,58 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>所在门店</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ <div class="col-sm-3">
+ <select class="form-control" id="province">
+ <option value="">全部</option>
+ </select>
+ </div>
+ <div class="col-sm-3">
+ <select class="form-control" id="city">
+ <option value="">全部</option>
+ </select>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="userPopulation" name="所属账号" >
+ <option value="">全部</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="storeName" name="门店名称" placeholder="请输入门店名称"/>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TStoreProvince.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TStoreProvince.resetSearch()"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TStoreProvinceTableToolbar" role="group">
+ </div>
+ <#table id="TStoreProvinceTable"/>
+ <div style="margin-left: 30%">
+ <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.storeOfClosePage()"
+ id="closePage" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+ <i class="fa fa-check"></i> 关闭
+ </button>
+
+ <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.saveSelectStores()"
+ id="submit" style="margin-left: 5%;width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+ <i class="fa fa-check"></i> 保存
+ </button>
+ </div>
+ </div>
+ </div>
+</div>
+
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
+<script src="${ctxPath}/modular/system/tGoods/TCouponInfo.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js
new file mode 100644
index 0000000..329797c
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/TStoreInfo.js
@@ -0,0 +1,157 @@
+/**
+ * 管理初始化
+ */
+var TStoreProvince = {
+ id: "TStoreProvinceTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1,
+ storeList: []
+};
+
+/**
+ * 初始化表格的列
+ */
+TStoreProvince.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: '选择', field: '', visible: true, align: 'center', valign: 'middle'},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '所属账号', field: 'accountName', visible: true, align: 'center', valign: 'middle'},
+ {title: '所在省市', field: 'provinceCity', visible: true, align: 'center', valign: 'middle'},
+ {title: '门店名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TStoreProvince.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TStoreProvince.seItem = selected[0];
+ return true;
+ }
+};
+
+
+TStoreProvince.storeOfClosePage = function (){
+ parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id));
+}
+
+TStoreProvince.saveSelectStores = function (){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if (selected.length == 0) {
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }
+ var arr = [];
+ console.log('selected--->',selected)
+ for(var i in selected){
+ if(typeof selected[i].id != "undefined"){
+ arr.push({
+ id: selected[i].id,
+ provinceCity: typeof selected[i].provinceCity != "undefined" ? selected[i].provinceCity : "",
+ accountName: typeof selected[i].accountName != "undefined" ? selected[i].accountName : "",
+ name: typeof selected[i].name != "undefined" ? selected[i].name : ""
+ })
+ }
+ }
+ window.parent.TCarInfoDlg.selecUserOpt(arr);
+ TStoreProvince.storeOfClosePage();
+
+}
+
+
+
+/**
+ * 查询列表
+ */
+TStoreProvince.search = function () {
+ var queryData = {};
+
+ var provinceElement = document.getElementById("province");
+ var provinceId = provinceElement.value;
+
+ var cityElement = document.getElementById("city");
+ var cityElementId = cityElement.value;
+
+ queryData['provinceId'] = provinceId;
+ queryData['cityId'] = cityElementId;
+ queryData['cityManagerId'] = $("#userPopulation").val();
+ queryData['storeName'] = $("#storeName").val();
+ TStoreProvince.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TStoreProvince.resetSearch = function () {
+ var provinceSelect = document.getElementById("province");
+ provinceSelect.innerHTML = '<option value="">全部</option>';
+
+ var citySelect = document.getElementById("city");
+ citySelect.innerHTML = '<option value="">全部</option>';
+
+ queryProvince();
+
+ $("#userPopulation").val('');
+ $("#storeName").val('');
+ TStoreProvince.search();
+};
+
+function queryProvince(){
+ // 发送AJAX请求到后台获取省份数据
+ // 假设后台返回的数据格式为一个包含省份ID和名称的数组
+ var provinceSelect = document.getElementById("province");
+
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ provinceSelect.appendChild(option);
+ });
+ },function(data){
+ Feng.error("下拉失败!" + data.responseJSON.message + "!");
+ });
+ ajax.start();
+ provinceSelect.addEventListener("change", queryCity);
+}
+
+
+// 获取城市数据
+function queryCity() {
+ var selectedProvinceId = this.value; // 获取选择的省份ID
+ // 发送AJAX请求到后台获取对应省份的城市数据
+ // 假设后台返回的数据格式为一个包含城市ID和名称的数组
+
+ var citySelect = document.getElementById("city");
+ citySelect.innerHTML = "";
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvinceId);
+ ajax.start();
+}
+
+$(function () {
+ var defaultColunms = TStoreProvince.initColumn();
+ var table = new BSTable(TStoreProvince.id, "/tCouponManage/storeDetailsOfSearch", defaultColunms);
+ table.setPaginationType("client");
+ TStoreProvince.table = table.init();
+
+ queryProvince();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js
new file mode 100644
index 0000000..ebaab35
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods.js
@@ -0,0 +1,259 @@
+/**
+ * 车辆管理管理初始化
+ */
+var TPointProducts = {
+ id: "TPointProductsTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+var language =1
+/**
+ * 初始化表格的列
+ */
+TPointProducts.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '商品名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '兑换地点', field: 'useScope', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ return {1: "全国", 2: "指定城市", 3: "指定门店"}[value]
+ }
+ },
+ {title: '用户人群', field: 'userPopulation', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ return {1: "全部用户", 2: "年度会员", 3: "已有学员用户"}[value]
+ }
+ },
+ {title: '发放数量', field: 'quantityIssued', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '限领数量', field: 'pickUpQuantity', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '已领数量', field: 'hasPickQty', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '已兑换数量', field: 'hasExchangeQty', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '排序', field: 'sort', visible: true, align: 'center', valign: 'middle'
+ },
+ {title: '审核状态', field: 'status', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ return { 2: "待审核", 3: "已拒绝"}[value]
+ }
+ },
+
+ ];
+};
+function currentTime(timestamp){
+ var time = timestamp + '';
+ if(time.length != 13){
+ timestamp = timestamp * 1000;
+ }
+ var date = new Date(timestamp);;
+ var Y = date.getFullYear() + '-';
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+ var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
+
+ var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
+ var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
+ var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
+ var strDate = Y + M + D + h + m + s;
+ return strDate
+}
+
+function currentTime1(timestamp){
+ var time = timestamp + '';
+ if(time.length != 13){
+ timestamp = timestamp * 1000;
+ }
+ var date = new Date(timestamp);;
+ var Y = date.getFullYear() + '-';
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+ var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
+
+ var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
+ var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
+ var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
+ var strDate = Y + M + D ;
+ return strDate
+}
+/**
+ * 检查是否选中
+ */
+TPointProducts.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TPointProducts.seItem = selected[0];
+ return true;
+ }
+};
+
+/**
+ * 添加
+ */
+TPointProducts.openAddTPointProducts = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/tGoods_add'
+ });
+ this.layerIndex = index;
+};
+
+/**
+ * 查看详情
+ */
+TPointProducts.detail = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title:'详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/goods_info/' + TPointProducts.seItem.id
+ });
+ this.layerIndex = index;
+ }
+};
+
+/**
+ * 购买详情
+ */
+TPointProducts.payDetail = function () {
+ if (this.check()) {
+ layer.open({
+ type: 1
+ , title: '审核'
+ , area: ['50%', '50%']
+ , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+ , id: 'layerDemo' //防止重复弹出cge
+ , content: '<div class="form-horizontal">' +
+ ' <div class="col-sm-11" style="margin-top: 30px">' +
+ ' <div class="col-sm-11">' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">审核状态:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <input type="radio" name="type1" value="1" checked>通过 <input type="radio" name="type1" value="3">拒绝\n' +
+ ' </div>\n' +
+ ' </div>\n' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">拒绝理由:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <textarea id="remark" style="height: 193px; width: 368px;"></textarea>\n' +
+ ' </div>\n' +
+ ' </div>\n' +
+ ' </div>' +
+ ' </div>' +
+ '</div>'
+ , btn: ['保存', '取消']
+ , btnAlign: 'c' //按钮居中
+ , shade: 0.5 //不显示遮罩
+ , yes: function () {
+ var OBJradio= $("input[name='type1']:checked").val();
+ console.log(OBJradio)
+ let remark = $("#remark").val()
+ console.log(remark)
+ if(OBJradio==3){
+ if(remark==''){
+ Feng.info("请输入拒绝理由")
+ return;
+ }
+ }
+
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/updateTypeOne", function (data) {
+ if (data.code == 200) {
+ Feng.success("操作成功!");
+ TPointProducts.table.refresh();
+ window.parent.layer.closeAll();
+ } else {
+ return Feng.error(data.msg);
+ }
+ }, function (data) {
+ return Feng.error("操作失败!");
+ });
+ ajax.set("id",TPointProducts.seItem.id)
+ ajax.set("type",OBJradio)
+ ajax.set("remark",remark)
+ ajax.start();
+ layer.closeAll();
+ },
+ });
+
+ }
+};
+
+/**
+ * 编辑页面
+ */
+TPointProducts.openEditPage = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title:'编辑',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/tGoods_update/' + TPointProducts.seItem.id
+ });
+ this.layerIndex = index;
+ }
+}
+
+/**
+ * 上下架处理
+ * @param m
+ */
+TPointProducts.grounding = function (m) {
+ console.log('m:',m);
+ if (this.check()) {
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/grounding", function (data) {
+ Feng.success("操作成功!");
+ TPointProducts.table.refresh();
+ }, function (data) {
+ Feng.error("操作失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("id",this.seItem.id);
+ ajax.set("type",m);
+ ajax.start();
+ }
+};
+
+
+
+/**
+ * 查询车辆管理列表
+ */
+TPointProducts.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['type'] = $("#type").val();
+ queryData['redemptionMethod'] = $("#redemptionMethod").val();
+ queryData['userPopulation'] = $("#userPopulation").val();
+ queryData['activeStatus'] = $("#activeStatus").val();
+ queryData['state'] = $("#state").val();
+ TPointProducts.table.refresh({query: queryData});
+};
+
+TPointProducts.resetSearch = function () {
+ $("#name").val("");
+ $("#type").val("");
+ $("#redemptionMethod").val("");
+ $("#userPopulation").val("");
+ $("#activeStatus").val("");
+ $("#state").val("");
+ TPointProducts.search();
+};
+
+$(function () {
+ var defaultColunms = TPointProducts.initColumn();
+ var table = new BSTable(TPointProducts.id, "/tGoods/listAudit", defaultColunms);
+ table.setPaginationType("client");
+ TPointProducts.table = table.init();
+});
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js
new file mode 100644
index 0000000..6bb63f6
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tGoods_info.js
@@ -0,0 +1,804 @@
+/**
+ * 初始化车辆管理详情对话框
+ */
+var language=1;
+var TGoodsInfoDlg = {
+ tGoodsInfoData : {},
+ validateFields: {
+ },
+ goodsPicArray:[],
+ goodsPicArray1:[],
+ storeIds: [],
+
+};
+
+/**
+ * 验证数据是否为空
+ */
+TGoodsInfoDlg.validate = function () {
+ $('#carInfoForm').data("bootstrapValidator").resetForm();
+ $('#carInfoForm').bootstrapValidator('validate');
+ return $("#carInfoForm").data('bootstrapValidator').isValid();
+};
+
+/**
+ * 清除数据
+ */
+TGoodsInfoDlg.clearData = function() {
+ this.tGoodsInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TGoodsInfoDlg.set = function(key, val) {
+ this.tGoodsInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+ return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TGoodsInfoDlg.get = function(key) {
+ return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+TGoodsInfoDlg.close = function() {
+ parent.layer.close(window.parent.TPointProducts.layerIndex);
+}
+
+
+/**
+ * 收集数据
+ */
+TGoodsInfoDlg.collectData = function() {
+ this
+ .set('id')
+ .set('isPlatCar')
+ .set('companyId')
+ .set('franchiseeId')
+ .set('carColor')
+ .set('carModelId')
+ .set('carBrandId')
+ .set('carLicensePlate')
+ .set('carPhoto')
+ .set('drivingLicenseNumber')
+ .set('drivingLicensePhoto')
+ .set('annualInspectionTime')
+ .set('commercialInsuranceTime')
+ .set('createTime')
+ .set('state')
+ .set('addType')
+ .set('addObjectId')
+ .set('plateColor')
+ .set('vehicleType')
+ .set('ownerName')
+ .set('engineId')
+ .set('VIN')
+ .set('certifyDateA')
+ .set('fuelType')
+ .set('engineDisplace')
+ .set('certificate')
+ .set('transAgency')
+ .set('transArea')
+ .set('transDateStart')
+ .set('transDateStop')
+ .set('certifyDateB')
+ .set('fixState')
+ .set('nextFixDate')
+ .set('checkState')
+ .set('feePrintId')
+ .set('GPSBrand')
+ .set('GPSModel')
+ .set('GPSIMEI')
+ .set('GPSInstallDate')
+ .set('registerDate')
+ .set('commercialType');
+}
+function storeList(){
+ var index = layer.open({
+ type: 2,
+ title: '门店列表',
+ area: ['80%', '80%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tGoods/storeList'
+ });
+ this.layerIndex = index;
+}
+TGoodsInfoDlg.selecUserOpt = function (arrays){
+ console.log(arrays)
+ //获取所有的值
+ var subArr= this.storeIds;
+ $(".timeClass").each(function () {
+ subArr.push($(this).find("input[name*='id']").val());
+ });
+ var str = '';
+ for(var i in arrays){
+ var b = true;
+ for(var j in subArr){
+ if(arrays[i].id === Number(subArr[j])){
+ b = false;
+ break
+ }
+ }
+ if(b){
+ this.storeIds.push(arrays[i].id)
+ str += '<tr class="timeClass">' +
+ '<td><input type="hidden" id="id" name="id" value="'+arrays[i].id+'"><input type="hidden" id="provinceCity" name="provinceCity" value="'+arrays[i].provinceCity+'">' + arrays[i].provinceCity + '</td>' +
+ '<td><input type="hidden" id="accountName" name="accountName" value="'+arrays[i].accountName+'">' + arrays[i].accountName + '</td>' +
+ '<td><input type="hidden" id="name" name="name" value="'+arrays[i].name+'">' + arrays[i].name + '</td><td><button onclick="deleteSub(this)">移除</button></td></tr>';
+ }
+ }
+ $("#coun").append(str);
+ console.log('storeIds',this.storeIds)
+}
+function deleteSub(e) {
+ console.log(e);
+ var row = $(e).closest('tr');
+ var value = row.find('#id').val();
+ TGoodsInfoDlg.storeIds.splice(TGoodsInfoDlg.storeIds.indexOf(parseInt(value)), 1)
+ $(e).parent().parent().remove();
+ console.log('storeIds',TGoodsInfoDlg.storeIds)
+}
+TGoodsInfoDlg.delete = function (o) {
+ $(o).parent("div").remove()
+}
+var num = 0;
+TGoodsInfoDlg.addBranch = function () {
+ num=num+1;
+ var a= "";
+ a = "<div style=\'margin-left: 25%\' class=\"col-sm-9 control-label\">\n" +
+ " <select class=\"col-sm-1\" id=\'provinceData"+num+"\' style=\"margin-top: 1%;width: 25%\" onchange=\'changeCity("+num+")\'>\n" +
+ " <option value=\"\">请选择</option>\n" +
+ " </select>\n" +
+ " <label class=\"col-sm-1\" style=\"width: 9%;margin-top: 7px\">省</label>\n" +
+ " <select class=\"col-sm-1\" style=\"margin-top: 1%;width: 25%\" id=\'cityData"+num+"\'>\n" +
+ " <option value=\"\">请选择</option>\n" +
+ " </select>\n" +
+ " <label class=\"col-sm-1\" style=\"width: 7%;margin-top: 7px\">市</label>\n" +
+ " <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TGoodsInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
+ " </div>";
+ $("#cityDemo").append($(a));
+ getProvince(num);
+}
+function changeCity(n){
+
+ var provinceSelect = null;
+ if (n === undefined || n === null || n === ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+
+ var citySelect = null;
+ if (n === undefined || n === null || n === ''){
+ citySelect = document.getElementById("cityData");
+ }else {
+ citySelect = document.getElementById("cityData"+n);
+ }
+
+ var selectedProvince = provinceSelect.value;
+ // 清空城市下拉框
+ citySelect.innerHTML = '<option value="">请选择</option>';
+ if (selectedProvince === "") {
+ return;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ citySelect.appendChild(option);
+ });
+ },function(data){
+ console.log('data:',data)
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set('province',selectedProvince);
+ ajax.start();
+}
+function getProvince(n){
+ var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){
+ console.log(data)
+ var provinceSelect = null;
+ if (n === undefined || n === null || ''){
+ provinceSelect = document.getElementById("provinceData");
+ }else {
+ provinceSelect = document.getElementById("provinceData"+n);
+ }
+ data.forEach(province => {
+ var option = document.createElement("option");
+ option.value = province.id; // 根据你的数据结构确定省份的id字段
+ option.text = province.name; // 根据你的数据结构确定省份的name字段
+ provinceSelect.appendChild(option);
+ });
+ },function(data){
+ Feng.error("下拉失败!" + data.responseJSON.message + "!");
+ });
+ ajax.start();
+}
+/**
+ * 提交添加
+ */
+TGoodsInfoDlg.addSubmit = function() {
+
+ this.clearData();
+ this.collectData();
+ if(!this.validate()){
+ return ;
+ }
+
+ let typeAll = document.querySelector('input[name="type"]:checked').value;
+ if(typeAll==2){
+ let pCode = $("#pCode").val()
+ let cCode = $("#cCode").val()
+ if(pCode==''){
+ Feng.info("请选择省")
+ return;
+ }
+ if(cCode==''){
+ Feng.info("请选择市")
+ return;
+ }
+ let storeId = $("#storeId").val()
+ if(storeId==''){
+ Feng.info("请选择门店")
+ return;
+ }
+ let coursePackageTypeId = $("#coursePackageTypeId").val()
+ if(coursePackageTypeId==''){
+ Feng.info("请选择课包类型")
+ return;
+ }
+ let coursePackageId = $("#coursePackageId").val()
+ if(coursePackageId==''){
+ Feng.info("请选择课包")
+ return;
+ }
+ let coursePackageConfigId = $("#coursePackageConfigId").val()
+ if(coursePackageConfigId==''){
+ Feng.info("请选择课时数")
+ return;
+ }
+ let price = $("#price1").val()
+ if(price==''){
+ Feng.info("请填写原价")
+ return;
+ }
+ let type = document.querySelector('input[name="redemptionMethod"]:checked').value;
+ if(type==''){
+ Feng.info("请选择兑换方式")
+ return;
+ }
+ let integral='';
+ let cash='';
+ if(type==1){
+ integral = $("#integral1").val()
+ if(integral==''){
+ Feng.info("请填写所需积分")
+ return;
+ }
+ }
+ if(type==2){
+ integral = $("#integral1").val()
+ if(integral==''){
+ Feng.info("请填写所需积分")
+ return;
+ }
+ cash = $("#cash1").val()
+ if(cash==''){
+ Feng.info("请填写所需现金")
+ return;
+ }
+ }
+
+ let cover1 = $("#cover1").val()
+ // if(cover1==''){
+ // Feng.info("请上传封面")
+ // return;
+ // }
+ var goodImgs = this.goodsPicArray1;
+ var imgOne ="";
+ if(goodImgs.length==0){
+ }else {
+ for (let i = 0; i <goodImgs.length; i++) {
+ if(i==goodImgs.length-1){
+ imgOne += (goodImgs[i].response)
+ }else {
+ imgOne+=(goodImgs[i].response+",")
+ }
+ }
+ }
+
+ let userPopulation = document.querySelector('input[name="userPopulation"]:checked').value;
+ if(userPopulation==''){
+ Feng.info("请选择用户人群")
+ return;
+ }
+
+ let quantityIssued = $("#quantityIssued1").val()
+ if(quantityIssued==''){
+ Feng.info("请填写发放数量")
+ return;
+ }
+ let pickUpQuantity = $("#pickUpQuantity1").val()
+ if(pickUpQuantity==''){
+ Feng.info("请填写限领数量")
+ return;
+ }
+ let startTime = $("#startTime1").val()
+ if(startTime==''){
+ Feng.info("请选择有效期")
+ return;
+ }
+ let text = TGoodsInfoDlg.editor1.getContent();
+ console.log(text)
+ if(text==""){
+ Feng.info("请输入兑换说明")
+ return;
+ }
+
+ let sort = $("#sort1").val()
+ if(sort==''){
+ Feng.info("请填写排序")
+ return;
+ }
+
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/add", function(data){
+ if(data=="5001"){
+ Feng.error("改账号已经存在");
+ }else
+ if(data.code == 200){
+ if(language==1){
+ Feng.success("添加成功!");
+ }else if(language==2){
+ Feng.success("Successfully added!");
+ }else {
+ Feng.success("Sangat berhasil ditambah!");
+ }
+ window.parent.TPointProducts.table.refresh();
+ TGoodsInfoDlg.close();
+ }else{
+ Feng.error(data.msg);
+ }
+ },function(data){
+ Feng.error("添加失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("typeAll",typeAll);
+ ajax.set("provinceCode",pCode);
+ ajax.set("cityCode",cCode);
+ ajax.set("storeId",storeId);
+ ajax.set("coursePackageTypeId",coursePackageTypeId);
+ ajax.set("coursePackageId",coursePackageId);
+ ajax.set("coursePackageConfigId",coursePackageConfigId);
+ ajax.set("price",price);
+ ajax.set("type",type);
+ ajax.set("integral",integral);
+ ajax.set("cash",cash);
+ ajax.set("cover",cover1);
+ ajax.set("imgOne",imgOne);
+ ajax.set("userPopulation",userPopulation);
+ ajax.set("quantityIssued",quantityIssued);
+ ajax.set("pickUpQuantity",pickUpQuantity);
+ ajax.set("startTime",startTime);
+ ajax.set("text",text);
+ ajax.set("sort",sort);
+ ajax.start();
+
+ }else {
+ let name = $("#name").val()
+ if(name==''){
+ Feng.info("请填写商品名称")
+ return;
+ }
+ let price = $("#price").val()
+ if(price==''){
+ Feng.info("请填写原价")
+ return;
+ }
+ let type = document.querySelector('input[name="redemptionMethod"]:checked').value;
+ if(type==''){
+ Feng.info("请选择兑换方式")
+ return;
+ }
+
+ let integral='';
+ let cash='';
+ if(type==1){
+ integral = $("#integral").val()
+ if(integral==''){
+ Feng.info("请填写所需积分")
+ return;
+ }
+ }
+ if(type==2){
+ integral = $("#integral").val()
+ if(integral==''){
+ Feng.info("请填写所需积分")
+ return;
+ }
+ cash = $("#cash").val()
+ if(cash==''){
+ Feng.info("请填写所需现金")
+ return;
+ }
+ }
+ if(type==3){
+ cash = $("#cash").val()
+ if(cash==''){
+ Feng.info("请填写所需现金")
+ return;
+ }
+ }
+
+ let cover1 = $("#cover").val()
+ var goodImgs = this.goodsPicArray;
+ var imgOne ="";
+ if(goodImgs.length==0){
+ }else {
+ for (let i = 0; i <goodImgs.length; i++) {
+ if(i==goodImgs.length-1){
+ imgOne += (goodImgs[i].response)
+ }else {
+ imgOne+=(goodImgs[i].response+",")
+ }
+ }
+ }
+
+ let userPopulation = document.querySelector('input[name="userPopulation"]:checked').value;
+ if(userPopulation==''){
+ Feng.info("请选择用户人群")
+ return;
+ }
+
+ let quantityIssued = $("#quantityIssued").val()
+ if(quantityIssued==''){
+ Feng.info("请填写发放数量")
+ return;
+ }
+ let pickUpQuantity = $("#pickUpQuantity").val()
+ if(pickUpQuantity==''){
+ Feng.info("请填写限领数量")
+ return;
+ }
+ let startTime = $("#startTime").val()
+ if(startTime==''){
+ Feng.info("请选择有效期")
+ return;
+ }
+
+ let company = document.querySelector('input[name="company"]:checked').value;
+
+ var cityIds = [];
+ var cts = "";
+ if (company === '2'){
+ var myselect=document.getElementById('cityData');
+ var seCity = myselect.options[myselect.selectedIndex].value;
+ if (seCity === null || seCity === undefined || seCity === ''){
+ return Feng.error('请选中一个省市');
+ }
+ cityIds.push(seCity);
+ if (num > 0){
+ for (let i = 1; i <= num; i++) {
+ var insSelect=document.getElementById('cityData'+i);
+ var inData = insSelect.options[insSelect.selectedIndex].value;
+ if (inData !== undefined || inData !== null || inData !== ''){
+ cityIds.push(inData);
+ }
+ }
+ cts = cityIds.join(',');
+ }else {
+ cts = cityIds
+ }
+ }
+
+ const commaSeparatedString = this.goodsPicArray.join(',');
+
+ var stores = "";
+ if (company === '3'){
+ console.log('3---this.storeIds',this.storeIds);
+ if (TGoodsInfoDlg.storeIds.length === 0 ){
+ return Feng.error('请至少选择一个门店');
+ }
+ stores = this.storeIds.join(',');
+ console.log('stores--===--',stores)
+ }
+
+ let text = TGoodsInfoDlg.editor.getContent();
+ console.log(text)
+ if(text==""){
+ Feng.info("请输入兑换说明")
+ return;
+ }
+
+ let sort = $("#sort").val()
+ if(sort==''){
+ Feng.info("请填写排序")
+ return;
+ }
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/add", function(data){
+ if(data=="5001"){
+ Feng.error("改账号已经存在");
+ }else
+ if(data.code == 200){
+ if(language==1){
+ Feng.success("添加成功!");
+ }else if(language==2){
+ Feng.success("Successfully added!");
+ }else {
+ Feng.success("Sangat berhasil ditambah!");
+ }
+ window.parent.TPointProducts.table.refresh();
+ TGoodsInfoDlg.close();
+ }else{
+ Feng.error(data.msg);
+ }
+
+ },function(data){
+ Feng.error("添加失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("typeAll",typeAll);
+ ajax.set("name",name);
+ ajax.set("price",price);
+ ajax.set("type",type);
+ ajax.set("integral",integral);
+ ajax.set("cash",cash);
+ ajax.set("cover",cover1);
+ ajax.set("imgOne",imgOne);
+ ajax.set("userPopulation",userPopulation);
+ ajax.set("quantityIssued",quantityIssued);
+ ajax.set("pickUpQuantity",pickUpQuantity);
+ ajax.set("startTime",startTime);
+ ajax.set("useScope",company);
+ ajax.set("cityIds",cts);
+ ajax.set("storeIds",stores);
+ ajax.set("text",text);
+ ajax.set("sort",sort);
+ ajax.set("cardType",document.querySelector('input[name="cardType"]:checked').value);
+ ajax.start();
+
+ }
+
+
+}
+
+/**
+ * 删除图片的函数
+ * @param e
+ */
+function delImg(e){
+
+ $(e).parent().remove();
+}
+
+
+/**
+ * 提交修改
+ */
+TGoodsInfoDlg.editSubmit = function() {
+ let cover = $("#cover").val();
+ let goodsId = $("#goodsId").val();
+ var productImages = "";
+ if (TGoodsInfoDlg.goodsPicArray.length > 0){
+ productImages = TGoodsInfoDlg.goodsPicArray.join(',');
+ }
+ let quantityIssued = $("#quantityIssued").val();
+ let pickUpQuantity = $("#pickUpQuantity").val();
+ let editor = jQuery.trim(TGoodsInfoDlg.editor.getContent());
+ console.log('editor:',editor)
+
+ let sort = $("#sort").val();
+
+ if (quantityIssued === undefined || quantityIssued === null || quantityIssued === ''){
+ return Feng.error('发放数量不能为空!');
+ }
+ if (pickUpQuantity === undefined || pickUpQuantity === null || pickUpQuantity === ''){
+ return Feng.error('限领数量不能为空!');
+ }
+ let quantityHas = $("#quantityHas").val();
+ if (quantityIssued <= quantityHas){
+ return Feng.error('发放数量小于已领数量!');
+ }
+
+
+ if (editor === undefined || editor === null || editor === ''){
+ return Feng.error('兑换说明不能为空!');
+ }
+ if (sort === undefined || sort === null || sort === ''){
+ return Feng.error('排序不能为空!');
+ }
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/update", function(data){
+ Feng.success("修改成功!");
+ window.parent.TPointProducts.table.refresh();
+ TGoodsInfoDlg.close();
+ },function(data){
+ Feng.error("修改失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("pointMerchandiseId",goodsId);
+ ajax.set("quantityIssued",quantityIssued);
+ ajax.set("pickUpQuantity",pickUpQuantity);
+ ajax.set("redemptionInstructions",editor);
+ ajax.set("cover",cover);
+ ajax.set("productImages",productImages);
+ ajax.set("sort",sort);
+ ajax.start();
+}
+
+$(function() {
+
+ getProvince(null);
+ Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields);
+ // 初始化图片上传
+ var carPhoto = new $WebUpload("cover");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
+ var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
+ drivingLicensePhoto.setUploadBarId("progressBar");
+ drivingLicensePhoto.init();
+ TGoodsInfoDlg.editor = UE.getEditor('editor');
+ TGoodsInfoDlg.editor1 = UE.getEditor('editor1');
+});
+
+/**
+ * 选择分公司后执行
+ */
+TGoodsInfoDlg.oneChange = function (e) {
+ var oneId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择市</option>';
+ }else if(language==2){
+ var content='<option value="">Choose your franchisee</option>';
+ }else {
+ var content='<option value="">Pilih franchisee Anda</option>';
+ }
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+}
+TGoodsInfoDlg.storeChange = function (e) {
+ var oneId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCity/storeChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择门店</option>';
+ }else if(language==2){
+ var content='<option value="">Choose your franchisee</option>';
+ }else {
+ var content='<option value="">Pilih franchisee Anda</option>';
+ }
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#storeId").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+}
+TGoodsInfoDlg.packageChange = function (e) {
+ var oneId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCity/packageChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择课包</option>';
+ }else if(language==2){
+ var content='<option value="">Choose your franchisee</option>';
+ }else {
+ var content='<option value="">Pilih franchisee Anda</option>';
+ }
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#coursePackageId").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+}
+TGoodsInfoDlg.timeChange = function (e) {
+ var oneId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCity/timeChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择课时数</option>';
+ }else if(language==2){
+ var content='<option value="">Choose your franchisee</option>';
+ }else {
+ var content='<option value="">Pilih franchisee Anda</option>';
+ }
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.id+"'>"+v.classHours+"</option>";
+ });
+ $("#coursePackageConfigId").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+}
+
+/**
+ * 类型改变执行
+ * @param e
+ */
+TGoodsInfoDlg.companyTypeClick = function (e) {
+ if (1 == e){
+ $(".companyDiv").hide();
+ } else if (2 == e){
+ $(".companyDiv").show();
+ }
+}
+
+/**
+ * 车辆品牌改变时执行
+ */
+TGoodsInfoDlg.brandChange = function (e) {
+ var carBrandId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择车辆类型</option>';
+ }else if(language==2){
+ var content='<option value="">Please select the vehicle type</option>';
+ }else {
+ var content='<option value="">Pilih Jenis Kendaraan</option>';
+ }
+
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#carModelId").empty().append(content);
+ }
+ });
+ ajax.set("carBrandId",carBrandId);
+ ajax.start();
+}
+
+/**
+ * 专车服务被点击
+ */
+TGoodsInfoDlg.zcServerClick = function () {
+ var serverBox1 = $('#serverBox1').prop('checked');
+ if (serverBox1){
+ $("#zcModelDiv").show();
+ } else {
+ $("#zcModelDiv").hide();
+ }
+}
+
+/**
+ * 跨城服务被点击
+ */
+TGoodsInfoDlg.kcServerClick = function () {
+ var serverBox3 = $('#serverBox3').prop('checked');
+ if (serverBox3){
+ $("#kcModelDiv").show();
+ } else {
+ $("#kcModelDiv").hide();
+ }
+}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js
new file mode 100644
index 0000000..2c49494
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoodsAudit/tPay_info.js
@@ -0,0 +1,102 @@
+/**
+ * 管理初始化
+ */
+var TPayInfo = {
+ id: "TPayInfoTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1,
+};
+
+/**
+ * 初始化表格的列
+ */
+TPayInfo.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '选择', field: '', visible: true, align: 'center', valign: 'middle'},
+ {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+ {title: '使用状态', field: 'status', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ return {1: "未使用", 2: "已核销"}[value]
+ }
+ },
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TPayInfo.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TPayInfo.seItem = selected[0];
+ return true;
+ }
+};
+
+
+/**
+ * 核销操作
+ * @constructor
+ */
+TPayInfo.WriteOff = function (){
+ if (TPayInfo.check()) {
+ if (TPayInfo.seItem.status === 2){
+ return Feng.error("重复核销!");
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/write_off", function (data) {
+ Feng.success("核销成功!");
+ TPayInfo.table.refresh();
+ }, function (data) {
+ Feng.error("核销失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("id",TPayInfo.seItem.id);
+ ajax.start();
+ }
+}
+
+
+/**
+ * 关闭此对话框
+ */
+TPayInfo.close = function() {
+ parent.layer.close(window.parent.TPointProducts.layerIndex);
+}
+
+
+/**
+ * 查询列表
+ */
+TPayInfo.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['phone'] = $("#phone").val();
+ queryData['status'] = $("#status").val();
+ queryData['id'] = $("#id").val();
+ TPayInfo.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TPayInfo.resetSearch = function () {
+ $("#name").val('');
+ $("#phone").val('');
+ $("#status").val('');
+ TPayInfo.search();
+};
+
+$(function () {
+ let goodsId = $("#id").val();
+ var defaultColunms = TPayInfo.initColumn();
+ var table = new BSTable(TPayInfo.id, "/tGoods/payList/"+goodsId, defaultColunms);
+ table.setPaginationType("client");
+ TPayInfo.table = table.init();
+});
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 220999a..8b391ea 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -1,5 +1,9 @@
package com.dsh.other.controller;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.other.entity.Site;
import com.dsh.other.entity.SiteBooking;
@@ -313,16 +317,38 @@
@ApiImplicitParam(value = "id", name = "id", dataType = "int", required = true),
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
- public ResultUtil<SiteBooking> queryMySiteById(Integer id){
+ public ResultUtil<Map<String,Object>> queryMySiteById(Integer id){
try {
+ HashMap<String, Object> map = new HashMap<>();
SiteBooking byId = siteBookingService.getById(id);
- return ResultUtil.success(byId);
+ List<Integer> ids = getIds(byId.getSiteId());
+ map.put("data",byId);
+ map.put("ids",ids);
+ return ResultUtil.success(map);
}catch (Exception e){
e.printStackTrace();
return ResultUtil.runErr();
}
}
+ public List<Integer> getIds(Integer siteId) {
+ HttpRequest httpRequest = HttpRequest.get("https://try.daowepark.com/v7/user_api/general/get_space_area?space_id=" + siteId);
+ HttpResponse execute = httpRequest.execute();
+ String body = execute.body();
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ Object data = jsonObject.get("data");
+ JSONArray array = JSONArray.parseArray(data.toString());
+ List<Integer> ids =new ArrayList<>();
+ for (Object o : array) {
+ JSONObject jsonObject1 = JSONObject.parseObject(o.toString());
+ Object id = jsonObject1.get("id");
+ Integer integer = Integer.valueOf(id.toString());
+ ids.add(integer);
+ }
+ return ids;
+
+ }
+
@ResponseBody
@PostMapping("/api/site/cancelMySite")
--
Gitblit v1.7.1