Compare commits
2 Commits
9ad2938003
...
77c3c07a21
Author | SHA1 | Date | |
---|---|---|---|
77c3c07a21 | |||
2bc0e0eca2 |
@ -44,12 +44,12 @@ public class OmTeamApplicationController extends BaseController
|
||||
public TableDataInfo listByOm(OmTeamApplication omTeamApplication)
|
||||
{
|
||||
startPage();
|
||||
// if(StringUtils.isEmpty(omTeamApplication.getContacts())){
|
||||
// omTeamApplication.setContacts(IdUtils.fastSimpleUUID());
|
||||
// }
|
||||
// if(StringUtils.isEmpty(omTeamApplication.getTelephone())){
|
||||
// omTeamApplication.setTelephone(IdUtils.fastSimpleUUID());
|
||||
// }
|
||||
if(StringUtils.isEmpty(omTeamApplication.getContacts())){
|
||||
omTeamApplication.setContacts(IdUtils.fastSimpleUUID());
|
||||
}
|
||||
if(StringUtils.isEmpty(omTeamApplication.getTelephone())){
|
||||
omTeamApplication.setTelephone(IdUtils.fastSimpleUUID());
|
||||
}
|
||||
List<OmTeamApplication> list = omTeamApplicationService.selectOmTeamApplicationList(omTeamApplication);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
@ -0,0 +1,49 @@
|
||||
package com.inspur.web.controller.order;
|
||||
|
||||
import com.inspur.common.annotation.Log;
|
||||
import com.inspur.common.core.controller.BaseController;
|
||||
import com.inspur.common.core.domain.AjaxResult;
|
||||
import com.inspur.common.core.page.TableDataInfo;
|
||||
import com.inspur.common.enums.BusinessType;
|
||||
import com.inspur.common.utils.poi.ExcelUtil;
|
||||
import com.inspur.order.domain.OmOrderInfo;
|
||||
import com.inspur.order.service.IOmOrderAnalysisService;
|
||||
import com.inspur.order.service.IOmOrderInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 运维订单信息数据分析Controller
|
||||
*
|
||||
* @author zhanghan11
|
||||
* @date 2024-04-16
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/order/analysis")
|
||||
public class OmOrderAnalysisController extends BaseController {
|
||||
@Autowired
|
||||
private IOmOrderAnalysisService omOrderAnalysisService;
|
||||
|
||||
/**
|
||||
* 查询运维订单信息列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('order:analysis:query')")
|
||||
@GetMapping("/orderDataAnalysis")
|
||||
public AjaxResult orderDataAnalysis() {
|
||||
return AjaxResult.success(omOrderAnalysisService.orderDataAnalysis());
|
||||
}
|
||||
|
||||
/**
|
||||
* 分析报告下载
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('order:analysis:query')")
|
||||
@PostMapping("/downloadReport")
|
||||
public void fileDownload(HttpServletResponse response, HttpServletRequest request) {
|
||||
omOrderAnalysisService.downloadReport(response);
|
||||
}
|
||||
}
|
@ -35,6 +35,17 @@
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.13</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>5.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jfree</groupId>
|
||||
<artifactId>jfreechart</artifactId>
|
||||
<version>1.5.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@ -0,0 +1,39 @@
|
||||
package com.inspur.order.mapper;
|
||||
|
||||
import com.inspur.order.domain.OmOrderCollect;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单收藏Mapper接口
|
||||
*
|
||||
* @author inspur
|
||||
* @date 2024-04-22
|
||||
*/
|
||||
public interface OmOrderAnalysisMapper
|
||||
{
|
||||
/**
|
||||
* 查询总订单数量和金额
|
||||
*
|
||||
* @param tenantId 租户ID
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> selectCountAndAmount(String tenantId);
|
||||
|
||||
/**
|
||||
* 根据类型查询订单数量和金额
|
||||
*
|
||||
* @param tenantId 租户ID
|
||||
* @return
|
||||
*/
|
||||
public List<Map<String, Object>> selectCountAndAmountByType(String tenantId);
|
||||
|
||||
/**
|
||||
* 根据实际查询订单数量和金额
|
||||
*
|
||||
* @param tenantId 租户ID
|
||||
* @return
|
||||
*/
|
||||
public List<Map<String,Object>> selectCountAndAmountByDate(String tenantId);
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.inspur.order.service;
|
||||
|
||||
import com.inspur.order.domain.OmOrderCollect;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单分析Service接口
|
||||
*
|
||||
* @author inspur
|
||||
* @date 2024-04-22
|
||||
*/
|
||||
public interface IOmOrderAnalysisService
|
||||
{
|
||||
/**
|
||||
* 查询分析数据
|
||||
*
|
||||
* @return 分析数据
|
||||
*/
|
||||
public Map<String,Object> orderDataAnalysis();
|
||||
|
||||
/**
|
||||
* 数据报告下载
|
||||
*
|
||||
*/
|
||||
void downloadReport(HttpServletResponse response);
|
||||
|
||||
}
|
@ -0,0 +1,274 @@
|
||||
package com.inspur.order.service.impl;
|
||||
|
||||
import com.inspur.common.utils.SecurityUtils;
|
||||
import com.inspur.order.mapper.OmOrderAnalysisMapper;
|
||||
import com.inspur.order.service.IOmOrderAnalysisService;
|
||||
import com.inspur.order.utils.OmConstant;
|
||||
import org.apache.commons.math3.optim.InitialGuess;
|
||||
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||
import org.apache.poi.util.Units;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFRun;
|
||||
import org.jfree.chart.ChartFactory;
|
||||
import org.jfree.chart.ChartUtils;
|
||||
import org.jfree.chart.JFreeChart;
|
||||
import org.jfree.chart.StandardChartTheme;
|
||||
import org.jfree.chart.plot.PlotOrientation;
|
||||
import org.jfree.data.category.DefaultCategoryDataset;
|
||||
import org.jfree.data.general.DefaultPieDataset;
|
||||
import org.jfree.data.xy.XYSeries;
|
||||
import org.jfree.data.xy.XYSeriesCollection;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.*;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单收藏Service业务层处理
|
||||
*
|
||||
* @author inspur
|
||||
* @date 2024-04-22
|
||||
*/
|
||||
@Service
|
||||
public class OmOrderAnalysisServiceImpl implements IOmOrderAnalysisService {
|
||||
|
||||
@Autowired
|
||||
private OmOrderAnalysisMapper omOrderAnalysisMapper;
|
||||
|
||||
/**
|
||||
* 查询分析数据
|
||||
*
|
||||
* @return 分析数据
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> orderDataAnalysis() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
// 订单总数据
|
||||
Map<String, Object> orderMap = omOrderAnalysisMapper.selectCountAndAmount(SecurityUtils.getTenantId());
|
||||
map.put("orderMap", orderMap);
|
||||
// 分时间订单金额
|
||||
map.put("dateOrderMap", getDateData());
|
||||
// 分类订单数据
|
||||
List<Map<String, Object>> typeOrderMap = omOrderAnalysisMapper.selectCountAndAmountByType(SecurityUtils.getTenantId());
|
||||
map.put("typeOrderMap", typeOrderMap);
|
||||
return map;
|
||||
}
|
||||
|
||||
private Map<String, Object> getDateData() {
|
||||
Map<String, Object> typeOrderMap = new HashMap<>();
|
||||
List<Map<String, Object>> list = omOrderAnalysisMapper.selectCountAndAmountByDate(SecurityUtils.getTenantId());
|
||||
// 获取最近三年
|
||||
// 今年
|
||||
int thisYear = LocalDate.now().getYear();
|
||||
// 去年
|
||||
int lastYear = LocalDate.now().minusYears(1).getYear();
|
||||
// 前年
|
||||
int theYearBeafor = LocalDate.now().minusYears(2).getYear();
|
||||
// 初始化数据
|
||||
List<Object> numList1 = new ArrayList<>();
|
||||
List<Object> numList2 = new ArrayList<>();
|
||||
List<Object> numList3 = new ArrayList<>();
|
||||
List<Object> amountList1 = new ArrayList<>();
|
||||
List<Object> amountList2 = new ArrayList<>();
|
||||
List<Object> amountList3 = new ArrayList<>();
|
||||
// 进行初始化
|
||||
for (String month : OmConstant.MONTH_ARRAY) {
|
||||
numList1.add(0);
|
||||
numList2.add(0);
|
||||
numList3.add(0);
|
||||
amountList1.add(0.00);
|
||||
amountList2.add(0.00);
|
||||
amountList3.add(0.00);
|
||||
}
|
||||
// 数据变量处理
|
||||
for (Map<String, Object> map : list) {
|
||||
int year = Integer.parseInt(String.valueOf(map.get("date_year")));
|
||||
if (year == thisYear) {
|
||||
numList1.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("num"));
|
||||
amountList1.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("amount"));
|
||||
}
|
||||
if (year == lastYear) {
|
||||
numList2.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("num"));
|
||||
amountList2.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("amount"));
|
||||
}
|
||||
if (year == theYearBeafor) {
|
||||
numList3.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("num"));
|
||||
amountList3.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("amount"));
|
||||
}
|
||||
}
|
||||
Map<String, Object> numMap = new HashMap<>();
|
||||
Map<String, Object> amountMap = new HashMap<>();
|
||||
numMap.put(thisYear + "", numList1);
|
||||
numMap.put(lastYear + "", numList2);
|
||||
numMap.put(theYearBeafor + "", numList3);
|
||||
amountMap.put(thisYear + "", amountList1);
|
||||
amountMap.put(lastYear + "", amountList2);
|
||||
amountMap.put(theYearBeafor + "", amountList3);
|
||||
typeOrderMap.put("numMap", numMap);
|
||||
typeOrderMap.put("amountMap", amountMap);
|
||||
typeOrderMap.put("year", new int[]{theYearBeafor, lastYear, thisYear});
|
||||
typeOrderMap.put("month", OmConstant.MONTH_ARRAY);
|
||||
return typeOrderMap;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 数据报告下载
|
||||
*/
|
||||
@Override
|
||||
public void downloadReport(HttpServletResponse response) {
|
||||
Map<String, Object> map = orderDataAnalysis();
|
||||
// 创建图表
|
||||
JFreeChart dateNumChart = createLineChart((Map<String, Object>) map.get("dateOrderMap"), "近三年月订单数统计", "num");
|
||||
JFreeChart dateAmountChart = createLineChart((Map<String, Object>) map.get("dateOrderMap"), "近三年月订单金额统计", "amount");
|
||||
JFreeChart typeNumChart = createPieChart((List<Map<String, Object>>) map.get("typeOrderMap"), "年度订单数量业务类型分布", "num");
|
||||
JFreeChart typeAmountChart = createPieChart((List<Map<String, Object>>) map.get("typeOrderMap"), "年度订单金额业务类型分布", "amount");
|
||||
// 将图表渲染为BufferedImage
|
||||
BufferedImage dateNumChartImage = dateNumChart.createBufferedImage(800, 600);
|
||||
BufferedImage dateAmountChartImage = dateAmountChart.createBufferedImage(800, 600);
|
||||
BufferedImage typeNumChartImage = typeNumChart.createBufferedImage(800, 600);
|
||||
BufferedImage typeAmountChartImage = typeAmountChart.createBufferedImage(800, 600);
|
||||
// 插入图片到Word文档
|
||||
XWPFDocument doc = new XWPFDocument();
|
||||
XWPFParagraph p = doc.createParagraph();
|
||||
XWPFRun r = p.createRun();
|
||||
// 将BufferedImage转换为字节数组
|
||||
try {
|
||||
ByteArrayOutputStream dateNumChartBaos = new ByteArrayOutputStream();
|
||||
ImageIO.write(dateNumChartImage, "png", dateNumChartBaos);
|
||||
byte[] dateNumChartBytes = dateNumChartBaos.toByteArray();
|
||||
|
||||
ByteArrayOutputStream dateAmountChartBaos = new ByteArrayOutputStream();
|
||||
ImageIO.write(dateNumChartImage, "png", dateAmountChartBaos);
|
||||
byte[] dateAmountChartBytes = dateAmountChartBaos.toByteArray();
|
||||
|
||||
ByteArrayOutputStream typeNumChartBaos = new ByteArrayOutputStream();
|
||||
ImageIO.write(dateNumChartImage, "png", typeNumChartBaos);
|
||||
byte[] typeNumChartBytes = typeNumChartBaos.toByteArray();
|
||||
|
||||
ByteArrayOutputStream typeAmountChartBaos = new ByteArrayOutputStream();
|
||||
ImageIO.write(dateNumChartImage, "png", typeAmountChartBaos);
|
||||
byte[] typeAmountChartBytes = typeAmountChartBaos.toByteArray();
|
||||
|
||||
r.addPicture(new ByteArrayInputStream(dateNumChartBytes), XWPFDocument.PICTURE_TYPE_PNG, "dateNumChart", Units.toEMU(500), Units.toEMU(500)); // 设置图片大小和位置
|
||||
r.addPicture(new ByteArrayInputStream(dateAmountChartBytes), XWPFDocument.PICTURE_TYPE_PNG, "dateAmountChart", Units.toEMU(500), Units.toEMU(500)); // 设置图片大小和位置
|
||||
r.addPicture(new ByteArrayInputStream(typeNumChartBytes), XWPFDocument.PICTURE_TYPE_PNG,"typeNumChart", Units.toEMU(500), Units.toEMU(500)); // 设置图片大小和位置
|
||||
r.addPicture(new ByteArrayInputStream(typeAmountChartBytes), XWPFDocument.PICTURE_TYPE_PNG, "typeAmountChart", Units.toEMU(500), Units.toEMU(500)); // 设置图片大小和位置
|
||||
} catch (InvalidFormatException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// 文档下载
|
||||
//设置响应信息
|
||||
response.setContentType("application/octet-stream");
|
||||
// filename为文件下载后保存的文件名,可自行设置,但是注意文件名后缀,要和原来的保持一致
|
||||
response.setHeader("Content-Disposition", "attachment;");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
OutputStream out = null;
|
||||
try {
|
||||
out = response.getOutputStream();
|
||||
ByteArrayOutputStream docOut = new ByteArrayOutputStream();
|
||||
doc.write(docOut);
|
||||
byte[] bytes = docOut.toByteArray();
|
||||
// 输出到客户端
|
||||
if (bytes != null) {
|
||||
out.write(bytes);
|
||||
}
|
||||
// 清理资源
|
||||
doc.close();
|
||||
docOut.close();
|
||||
out.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private JFreeChart createLineChart(Map<String, Object> map, String title, String type) {
|
||||
XYSeriesCollection dataset = new XYSeriesCollection();
|
||||
String yLabel = "";
|
||||
int[] year = (int[]) map.get("year");
|
||||
for (int yearItem : year) {
|
||||
XYSeries series = new XYSeries(yearItem + "");
|
||||
Map<String, Object> dataMap = new HashMap<>();
|
||||
switch (type) {
|
||||
case "num":
|
||||
dataMap = (Map<String, Object>) map.get("numMap");
|
||||
yLabel = "数量";
|
||||
break;
|
||||
case "amount":
|
||||
dataMap = (Map<String, Object>) map.get("amountMap");
|
||||
yLabel = "金额";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
List<String> list = (List<String>) dataMap.get(yearItem + "");
|
||||
if (!list.isEmpty()) {
|
||||
for (int i = 0; i < 12; i++) {
|
||||
switch (type) {
|
||||
case "num":
|
||||
series.add(i + 1, Integer.parseInt(String.valueOf(list.get(i))));
|
||||
break;
|
||||
case "amount":
|
||||
series.add(i + 1, Double.parseDouble(String.valueOf(list.get(i))));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
dataset.addSeries(series);
|
||||
}
|
||||
StandardChartTheme sct = new StandardChartTheme("CN");
|
||||
sct.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));
|
||||
sct.setRegularFont(new Font("隶书", Font.BOLD, 20));
|
||||
sct.setLargeFont(new Font("隶书", Font.BOLD, 20));
|
||||
ChartFactory.setChartTheme(sct);
|
||||
return ChartFactory.createXYLineChart(
|
||||
title, // 图表标题
|
||||
"月份", // x轴标签
|
||||
yLabel, // y轴标签
|
||||
dataset, // 数据集
|
||||
PlotOrientation.VERTICAL, // 图表方向
|
||||
true, // 是否显示图例
|
||||
true, // 是否生成工具提示
|
||||
false // 是否生成URL链接
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
private JFreeChart createPieChart(List<Map<String, Object>> list, String title, String type) {
|
||||
StandardChartTheme sct = new StandardChartTheme("CN");
|
||||
sct.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));
|
||||
sct.setRegularFont(new Font("隶书", Font.BOLD, 20));
|
||||
sct.setLargeFont(new Font("隶书", Font.BOLD, 20));
|
||||
ChartFactory.setChartTheme(sct);
|
||||
DefaultPieDataset dataset = new DefaultPieDataset();
|
||||
for (Map<String, Object> map : list) {
|
||||
switch (type) {
|
||||
case "num":
|
||||
dataset.setValue(String.valueOf(map.get("type")), Integer.parseInt(String.valueOf(map.get("num"))));
|
||||
break;
|
||||
case "amount":
|
||||
dataset.setValue(String.valueOf(map.get("type")), Double.parseDouble(String.valueOf(map.get("amount"))));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ChartFactory.createPieChart(title, dataset,
|
||||
true, true, true);
|
||||
}
|
||||
}
|
@ -119,4 +119,8 @@ public class OmConstant {
|
||||
*/
|
||||
public static final String PLAN_STATUS_COMPLETE_OPERATION="4";
|
||||
|
||||
/**
|
||||
* 月份列表
|
||||
*/
|
||||
public static final String [] MONTH_ARRAY =new String[] {"1","2","3","4","5","6","7","8","9","10","11","12"};
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.inspur.order.mapper.OmOrderAnalysisMapper">
|
||||
|
||||
<select id="selectCountAndAmount" resultType="map" parameterType="string">
|
||||
SELECT COUNT(0) totalNum,
|
||||
IFNULL(ROUND(SUM(service_fees), 2), 0) totalAmount,
|
||||
(SELECT COUNT(0) FROM `sys_user` WHERE tenant_id = #{tenantId} AND del_flag = '0') totalPerson
|
||||
FROM `om_order_quotation`
|
||||
WHERE tenant_id = #{tenantId}
|
||||
</select>
|
||||
<select id="selectCountAndAmountByType" resultType="map" parameterType="string">
|
||||
SELECT d.dict_label type,
|
||||
IFNULL(s.num, 0) num,
|
||||
ROUND(IFNULL(s.amount, 0), 2) amount
|
||||
FROM (SELECT dict_label, dict_value FROM `sys_dict_data` WHERE dict_type = 'om_business_type') d
|
||||
LEFT JOIN (
|
||||
SELECT i.business_type,
|
||||
COUNT(0) num,
|
||||
SUM(q.service_fees) amount
|
||||
FROM (SELECT *
|
||||
FROM `om_order_quotation`
|
||||
WHERE tenant_id = #{tenantId} AND YEAR (create_time) = YEAR (SYSDATE())) q
|
||||
LEFT JOIN `om_order_info` i ON q.order_id = i.order_id
|
||||
GROUP BY i.business_type ) s
|
||||
ON d.dict_value = s.business_type
|
||||
</select>
|
||||
<select id="selectCountAndAmountByDate" resultType="map" parameterType="string">
|
||||
SELECT DATE_FORMAT(create_time, '%Y-%m') AS date_year_month,
|
||||
COUNT(0) num,
|
||||
(YEAR (create_time)) AS date_year,
|
||||
(MONTH (create_time)) AS date_month,
|
||||
ROUND(SUM(service_fees), 2) amount
|
||||
FROM `om_order_quotation`
|
||||
WHERE tenant_id = #{tenantId}
|
||||
AND (YEAR (create_time))
|
||||
> (YEAR (SYSDATE()) - 3)
|
||||
GROUP BY date_year_month
|
||||
</select>
|
||||
</mapper>
|
9
inspur-ui/src/api/order/analysis.js
Normal file
9
inspur-ui/src/api/order/analysis.js
Normal file
@ -0,0 +1,9 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
// 分析数据查询
|
||||
export function getData() {
|
||||
return request({
|
||||
url: "/order/analysis/orderDataAnalysis",
|
||||
method: "get",
|
||||
});
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -270,7 +270,7 @@
|
||||
<span>{{ parseTime(scope.row.serviceEndTime, '{y}-{m}-{d} {h}:{mi}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
<!-- <el-table-column
|
||||
show-overflow-tooltip
|
||||
label="状态"
|
||||
align="center"
|
||||
@ -282,7 +282,7 @@
|
||||
:value="scope.row.status"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
|
@ -102,7 +102,7 @@
|
||||
:gutter="10"
|
||||
class="mb8"
|
||||
>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@ -111,7 +111,7 @@
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['order:info:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
|
Loading…
Reference in New Issue
Block a user