修改订单,添加假删字段
This commit is contained in:
@ -84,8 +84,8 @@ public class SysOrderController extends OrderBaseController {
|
||||
order.setPhone(StringUtils.hiddenPhoneNumber(order.getPhone()));
|
||||
}
|
||||
//根据服务时长、赠送天数计算服务天数
|
||||
int month = order.getServeTimeId() != null ? order.getServeTimeId().intValue()/30 : 0;
|
||||
if(order.getStartTime() != null && order.getServerEndTime() != null && order.getServeTimeId() != null && month > 0){
|
||||
int month = order.getServeTimeId() != null ? order.getServeTimeId().intValue() / 30 : 0;
|
||||
if (order.getStartTime() != null && order.getServerEndTime() != null && order.getServeTimeId() != null && month > 0) {
|
||||
long serverDay = ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(order.getStartTime()), DateUtils.dateToLocalDate(order.getStartTime()).plusMonths(month).plusDays(order.getGiveServeDay() == null ? 0 : order.getGiveServeDay())) + 1;
|
||||
order.setServerDay(Integer.parseInt(serverDay + ""));
|
||||
}
|
||||
@ -155,9 +155,9 @@ public class SysOrderController extends OrderBaseController {
|
||||
@GetMapping(value = "/getInfoDetail")
|
||||
public AjaxResult getInfoDetail(@RequestParam("orderId") Long orderId) {
|
||||
SysOrder order = sysOrderService.selectSysOrderById(orderId);
|
||||
if(order != null){
|
||||
if (order != null) {
|
||||
List<SysUser> userList = userService.selectAllUser();
|
||||
for(SysUser user : userList){
|
||||
for (SysUser user : userList) {
|
||||
if (user.getUserId().equals(order.getPreSaleId())) {
|
||||
order.setPreSale(user.getNickName());
|
||||
}
|
||||
@ -212,9 +212,9 @@ public class SysOrderController extends OrderBaseController {
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('custom:order:remove')")
|
||||
@Log(title = "销售订单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{orderIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] orderIds) {
|
||||
return toAjax(sysOrderService.deleteSysOrderByIds(orderIds));
|
||||
@DeleteMapping("/{orderId}")
|
||||
public AjaxResult remove(@PathVariable Long orderId) {
|
||||
return toAjax(sysOrderService.deleteSysOrderById(orderId));
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.stdiet.custom.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.stdiet.custom.domain.SysOrder;
|
||||
import com.stdiet.custom.domain.SysRecipesPlan;
|
||||
import org.springframework.core.annotation.Order;
|
||||
|
||||
@ -87,4 +89,6 @@ public interface ISysRecipesPlanService
|
||||
* @return
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan);
|
||||
|
||||
public void myGenerateRecipesPlan(SysOrder sysOrder);
|
||||
}
|
@ -1,22 +1,22 @@
|
||||
package com.stdiet.custom.service.impl;
|
||||
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.custom.domain.SysOrder;
|
||||
import com.stdiet.custom.mapper.SysOrderMapper;
|
||||
import com.stdiet.custom.service.ISysCommissionDayService;
|
||||
import com.stdiet.custom.service.ISysOrderPauseService;
|
||||
import com.stdiet.custom.service.ISysOrderService;
|
||||
import com.stdiet.custom.service.ISysRecipesPlanService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.custom.service.ISysCommissionDayService;
|
||||
import com.stdiet.custom.service.ISysOrderPauseService;
|
||||
import com.stdiet.custom.service.ISysRecipesPlanService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.stdiet.custom.mapper.SysOrderMapper;
|
||||
import com.stdiet.custom.domain.SysOrder;
|
||||
import com.stdiet.custom.service.ISysOrderService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 销售订单Service业务层处理
|
||||
*
|
||||
@ -75,10 +75,10 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
setOrderServerEndDate(sysOrder);
|
||||
sysOrder.setOrderId(Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, orderTime)));
|
||||
int row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
if(row > 0){
|
||||
//异步生成食谱计划
|
||||
sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
}
|
||||
// if (row > 0) {
|
||||
// //异步生成食谱计划
|
||||
// sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
// }
|
||||
return row;
|
||||
}
|
||||
|
||||
@ -97,9 +97,10 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
sysOrder.setUpdateTime(DateUtils.getNowDate());
|
||||
//更新订单
|
||||
int row = sysOrderMapper.updateSysOrder(sysOrder);
|
||||
if(row > 0){
|
||||
// 审核后的订单才生成食谱
|
||||
if (row > 0 && oldSysOrder.getReviewStatus().equals("no") && sysOrder.getReviewStatus().equals("yes")) {
|
||||
//异步更新食谱计划
|
||||
if(isNeedRegenerateRecipesPlan(oldSysOrder, sysOrder)){
|
||||
if (isNeedRegenerateRecipesPlan(oldSysOrder, sysOrder)) {
|
||||
sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
}
|
||||
}
|
||||
@ -108,19 +109,20 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
|
||||
/**
|
||||
* 判断是否需要重新生成食谱计划
|
||||
*
|
||||
* @param oldSysOrder
|
||||
* @param newSysOrder
|
||||
* @return
|
||||
*/
|
||||
private boolean isNeedRegenerateRecipesPlan(SysOrder oldSysOrder, SysOrder newSysOrder){
|
||||
if(oldSysOrder.getServeTimeId() != null && newSysOrder.getServeTimeId() != null && oldSysOrder.getServeTimeId().intValue() != newSysOrder.getServeTimeId().intValue()){
|
||||
private boolean isNeedRegenerateRecipesPlan(SysOrder oldSysOrder, SysOrder newSysOrder) {
|
||||
if (oldSysOrder.getServeTimeId() != null && newSysOrder.getServeTimeId() != null && oldSysOrder.getServeTimeId().intValue() != newSysOrder.getServeTimeId().intValue()) {
|
||||
return true;
|
||||
}
|
||||
if(newSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay().intValue() != newSysOrder.getGiveServeDay().intValue()){
|
||||
if (newSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay().intValue() != newSysOrder.getGiveServeDay().intValue()) {
|
||||
return true;
|
||||
}
|
||||
if(oldSysOrder.getStartTime() != null && newSysOrder.getStartTime() != null
|
||||
&& ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(oldSysOrder.getStartTime()), DateUtils.dateToLocalDate(newSysOrder.getStartTime())) != 0){
|
||||
if (oldSysOrder.getStartTime() != null && newSysOrder.getStartTime() != null
|
||||
&& ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(oldSysOrder.getStartTime()), DateUtils.dateToLocalDate(newSysOrder.getStartTime())) != 0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -135,7 +137,7 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
@Override
|
||||
public int deleteSysOrderByIds(Long[] orderIds) {
|
||||
int row = sysOrderMapper.deleteSysOrderByIds(orderIds);
|
||||
if(row > 0){
|
||||
if (row > 0) {
|
||||
deletePauseAndPlan(orderIds);
|
||||
}
|
||||
return row;
|
||||
@ -150,7 +152,7 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
@Override
|
||||
public int deleteSysOrderById(Long orderId) {
|
||||
int row = sysOrderMapper.deleteSysOrderById(orderId);
|
||||
if(row > 0){
|
||||
if (row > 0) {
|
||||
Long[] orderIdArray = new Long[1];
|
||||
orderIdArray[0] = orderId;
|
||||
deletePauseAndPlan(orderIdArray);
|
||||
@ -160,6 +162,7 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
|
||||
/**
|
||||
* 计算所有订单总额
|
||||
*
|
||||
* @param sysOrder
|
||||
* @return
|
||||
*/
|
||||
@ -170,21 +173,22 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
|
||||
/**
|
||||
* 根据订单ID更新该订单的服务到期时间,异步更新食谱计划
|
||||
*
|
||||
* @param orderId 订单ID
|
||||
* @param updatePlan 是否更新食谱
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int updateOrderServerEndDate(Long orderId, boolean updatePlan){
|
||||
public int updateOrderServerEndDate(Long orderId, boolean updatePlan) {
|
||||
int row = 0;
|
||||
//更新订单服务到期时间
|
||||
SysOrder sysOrder = selectSysOrderById(orderId);
|
||||
if(sysOrder != null){
|
||||
if (sysOrder != null) {
|
||||
//设置服务到期时间
|
||||
setOrderServerEndDate(sysOrder);
|
||||
sysOrder.setUpdateTime(new Date());
|
||||
row = updateSysOrder(sysOrder);
|
||||
if(row > 0){
|
||||
if (row > 0) {
|
||||
//异步更新食谱计划
|
||||
sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
}
|
||||
@ -194,18 +198,20 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
|
||||
/**
|
||||
* 给对象SysOrder对象设置服务到期时间
|
||||
*
|
||||
* @param sysOrder
|
||||
*/
|
||||
private void setOrderServerEndDate(SysOrder sysOrder){
|
||||
private void setOrderServerEndDate(SysOrder sysOrder) {
|
||||
LocalDate serverEndDate = sysCommissionDayService.getServerEndDate(sysOrder);
|
||||
sysOrder.setServerEndTime(serverEndDate != null ? DateUtils.localDateToDate(serverEndDate) : null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除订单的同时删除暂停记录、食谱计划安排
|
||||
*
|
||||
* @param orderIds 订单ID集合
|
||||
*/
|
||||
private void deletePauseAndPlan(Long[] orderIds){
|
||||
private void deletePauseAndPlan(Long[] orderIds) {
|
||||
//删除暂停记录
|
||||
sysOrderPauseService.deletePauseByOrderId(orderIds);
|
||||
//删除食谱计划
|
||||
|
@ -109,6 +109,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
|
||||
return sysRecipesPlanMapper.deleteSysRecipesPlanById(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 异步方法,根据订单ID生成对应的食谱计划,退款订单不生成食谱计划
|
||||
*
|
||||
@ -122,8 +124,9 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
|
||||
return;
|
||||
}
|
||||
SysOrder sysOrder = sysOrderService.selectSysOrderById(orderId);
|
||||
//订单为空、金额小于0不进行食谱生成、更新,只对2021年开始的订单进行食谱计划生成
|
||||
if (sysOrder == null && DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear() < 2021) {
|
||||
//订单为空、金额小于0不进行食谱生成、更新,只对2021年开始的订单进行食谱计划生成,判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划
|
||||
if (sysOrder == null && DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear() < 2021
|
||||
|| sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null) {
|
||||
return;
|
||||
}
|
||||
// System.out.println(DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear());
|
||||
@ -140,10 +143,10 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
|
||||
//删除该订单对于食谱
|
||||
delRecipesPlanByOrderId(orderIdArray);
|
||||
}
|
||||
//判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划
|
||||
if (sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null) {
|
||||
return;
|
||||
}
|
||||
// //判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划
|
||||
// if (sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null) {
|
||||
// return;
|
||||
// }
|
||||
SysOrderPause pauseParam = new SysOrderPause();
|
||||
pauseParam.setOrderId(sysOrder.getOrderId());
|
||||
//暂停记录列表
|
||||
@ -288,4 +291,9 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
|
||||
public List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan) {
|
||||
return sysRecipesPlanMapper.selectPlanListByOrderId(sysRecipesPlan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void myGenerateRecipesPlan(SysOrder sysOrder) {
|
||||
|
||||
}
|
||||
}
|
@ -31,7 +31,7 @@
|
||||
<sql id="groupAmountVo">
|
||||
SELECT ${column} AS user_id, ${postId} AS post_id, SUM(amount) AS amount
|
||||
FROM sys_order
|
||||
WHERE ${column} IS NOT NULL AND ${column} <> 0
|
||||
WHERE ${column} IS NOT NULL AND ${column} <> 0 AND del_flag = 0
|
||||
AND review_status = 'yes'
|
||||
<if test="beginTime != null and beginTime != ''">AND date_format(order_time,'%y%m%d') >=
|
||||
date_format(${beginTime},'%y%m%d')
|
||||
|
@ -90,6 +90,7 @@
|
||||
and 0 > amount
|
||||
</if>
|
||||
</if>
|
||||
<if test="true">and del_flag = 0</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -126,6 +127,7 @@
|
||||
and 0 > amount
|
||||
</if>
|
||||
</if>
|
||||
<if test="true">and del_flag = 0</if>
|
||||
</where>
|
||||
order by order_time desc
|
||||
</select>
|
||||
@ -246,14 +248,14 @@
|
||||
</update>
|
||||
|
||||
<delete id="deleteSysOrderById" parameterType="Long">
|
||||
delete from sys_order where order_id = #{orderId}
|
||||
update sys_order set del_flag = 1 where order_id = #{orderId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteSysOrderByIds" parameterType="String">
|
||||
delete from sys_order where order_id in
|
||||
<foreach item="orderId" collection="array" open="(" separator="," close=")">
|
||||
#{orderId}
|
||||
</foreach>
|
||||
<!-- delete from sys_order where order_id in-->
|
||||
<!-- <foreach item="orderId" collection="array" open="(" separator="," close=")">-->
|
||||
<!-- #{orderId}-->
|
||||
<!-- </foreach>-->
|
||||
</delete>
|
||||
|
||||
<resultMap type="SysOrder" id="SysOrderResultExtended">
|
||||
@ -323,7 +325,7 @@
|
||||
from sys_order o
|
||||
left join sys_user su_sale on su_sale.user_id = o.after_sale_id and su_sale.del_flag = 0
|
||||
left join sys_user su_nutritionist on su_nutritionist.user_id = o.nutritionist_id and su_nutritionist.del_flag = 0
|
||||
where review_status = 'yes' and o.order_time >= '2021-01-01'
|
||||
where review_status = 'yes' and o.order_time >= '2021-01-01' and del_flag = 0
|
||||
<if test="userId != null">
|
||||
and (su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId})
|
||||
</if>
|
||||
|
@ -31,12 +31,13 @@
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSysRecipesPlanVo">
|
||||
select id, order_id, start_date, end_date, recipes_id, send_flag, send_time, create_time, create_by, update_time, update_by, del_flag from sys_recipes_plan
|
||||
select id, order_id, cus_id, start_date, end_date, recipes_id, send_flag, send_time, create_time, create_by, update_time, update_by, del_flag from sys_recipes_plan
|
||||
</sql>
|
||||
|
||||
<select id="selectSysRecipesPlanList" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult">
|
||||
<include refid="selectSysRecipesPlanVo"/> where del_flag = 0
|
||||
<if test="orderId != null "> and order_id = #{orderId}</if>
|
||||
<if test="cusId != null "> and cus_id = #{cusId}</if>
|
||||
<if test="startDate != null "> and start_date = #{startDate}</if>
|
||||
<if test="endDate != null "> and end_date = #{endDate}</if>
|
||||
<if test="recipesId != null "> and recipes_id = #{recipesId}</if>
|
||||
@ -53,6 +54,7 @@
|
||||
insert into sys_recipes_plan
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="orderId != null">order_id,</if>
|
||||
<if test="cusId != null">cus_id,</if>
|
||||
<if test="startDate != null">start_date,</if>
|
||||
<if test="endDate != null">end_date,</if>
|
||||
<if test="recipesId != null">recipes_id,</if>
|
||||
@ -66,6 +68,7 @@
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="orderId != null">#{orderId},</if>
|
||||
<if test="cusId != null">#{cusId},</if>
|
||||
<if test="startDate != null">#{startDate},</if>
|
||||
<if test="endDate != null">#{endDate},</if>
|
||||
<if test="recipesId != null">#{recipesId},</if>
|
||||
@ -83,6 +86,7 @@
|
||||
update sys_recipes_plan
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="orderId != null">order_id = #{orderId},</if>
|
||||
<if test="cusId != null">cus_id = #{cusId},</if>
|
||||
<if test="startDate != null">start_date = #{startDate},</if>
|
||||
<if test="endDate != null">end_date = #{endDate},</if>
|
||||
<if test="recipesId != null">recipes_id = #{recipesId},</if>
|
||||
@ -111,10 +115,10 @@
|
||||
<!-- 批量插入食谱计划 -->
|
||||
<insert id="insertBatch">
|
||||
INSERT INTO sys_recipes_plan
|
||||
(order_id, start_date, end_date, send_flag, send_time, recipes_id)
|
||||
(order_id, cus_id, start_date, end_date, send_flag, send_time, recipes_id)
|
||||
VALUES
|
||||
<foreach collection ="list" item="plan" separator =",">
|
||||
(#{plan.orderId}, #{plan.startDate}, #{plan.endDate}, #{plan.sendFlag}, #{plan.sendTime}, #{plan.recipesId})
|
||||
(#{plan.orderId}, #{plan.cusId}, #{plan.startDate}, #{plan.endDate}, #{plan.sendFlag}, #{plan.sendTime}, #{plan.recipesId})
|
||||
</foreach >
|
||||
</insert>
|
||||
|
||||
|
@ -71,18 +71,28 @@
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="scope.row.orderType === 'main'"
|
||||
v-if="
|
||||
scope.row.orderType === 'main' &&
|
||||
(checkPermi(['custom:order:review']) ||
|
||||
(checkPermi(['custom:order:edit']) &&
|
||||
userId === scope.row.preSaleId &&
|
||||
scope.row.reviewStatus === 'no'))
|
||||
"
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleOnEditClick(scope.row)"
|
||||
v-hasPermi="['custom:order:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="scope.row.orderType === 'main'"
|
||||
size="mini"
|
||||
type="text"
|
||||
v-hasPermi="['custom:order:remove']"
|
||||
v-if="
|
||||
scope.row.orderType === 'main' &&
|
||||
(checkPermi(['custom:order:review']) ||
|
||||
(checkPermi(['custom:order:remove']) &&
|
||||
userId === scope.row.preSaleId &&
|
||||
scope.row.reviewStatus === 'no'))
|
||||
"
|
||||
@click="handleOnDeleteClick(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
@ -103,8 +113,10 @@
|
||||
<script>
|
||||
import { listOrder, delOrder } from "@/api/custom/order";
|
||||
import OrderEdit from "@/components/OrderEdit";
|
||||
import OrderAdd from "@/components/OrderAdd";
|
||||
// import OrderAdd from "@/components/OrderAdd";
|
||||
import OrderDetail from "@/components/OrderDetail";
|
||||
import { mapGetters } from "vuex";
|
||||
import { checkPermi } from "@/utils/permission";
|
||||
|
||||
export default {
|
||||
name: "CustomerOrderDrawer",
|
||||
@ -121,7 +133,11 @@ export default {
|
||||
orderList: [],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["userId"]),
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
showDrawer(data) {
|
||||
// console.log(data);
|
||||
this.data = data;
|
||||
@ -150,6 +166,7 @@ export default {
|
||||
}
|
||||
return arr;
|
||||
}, []);
|
||||
console.log(this.orderList);
|
||||
|
||||
this.visible = true;
|
||||
});
|
||||
|
@ -74,6 +74,7 @@ const mutations = {
|
||||
|
||||
const actions = {
|
||||
async init({ commit, dispatch }, payload) {
|
||||
return new Promise((res, rej) => {
|
||||
// console.log(payload);
|
||||
//
|
||||
commit("updateStateData", payload);
|
||||
@ -93,13 +94,14 @@ const actions = {
|
||||
|
||||
// 健康数据
|
||||
if (payload.cusId) {
|
||||
dispatch("getHealthyData", payload);
|
||||
dispatch("getHealthyData", payload).catch(err => rej(err));
|
||||
}
|
||||
|
||||
// 食谱数据
|
||||
if (payload.recipesId) {
|
||||
dispatch("getRecipesInfo", payload);
|
||||
dispatch("getRecipesInfo", payload).catch(err => rej(err));
|
||||
}
|
||||
});
|
||||
},
|
||||
async getHealthyData({ commit }, payload) {
|
||||
commit("updateStateData", { healthDataLoading: true });
|
||||
|
@ -1,4 +1,4 @@
|
||||
import store from '@/store'
|
||||
import store from "@/store";
|
||||
|
||||
/**
|
||||
* 字符权限校验
|
||||
@ -7,20 +7,26 @@ import store from '@/store'
|
||||
*/
|
||||
export function checkPermi(value) {
|
||||
if (value && value instanceof Array && value.length > 0) {
|
||||
const permissions = store.getters && store.getters.permissions
|
||||
const permissionDatas = value
|
||||
const permissions = store.getters && store.getters.permissions;
|
||||
const permissionDatas = value;
|
||||
|
||||
if (permissions.includes("*:*:*")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const hasPermission = permissions.some(permission => {
|
||||
return permissionDatas.includes(permission)
|
||||
})
|
||||
return permissionDatas.includes(permission);
|
||||
});
|
||||
|
||||
if (!hasPermission) {
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
return true
|
||||
return true;
|
||||
} else {
|
||||
console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
|
||||
return false
|
||||
console.error(
|
||||
`need roles! Like checkPermi="['system:user:add','system:user:edit']"`
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,19 +37,19 @@ export function checkPermi(value) {
|
||||
*/
|
||||
export function checkRole(value) {
|
||||
if (value && value instanceof Array && value.length > 0) {
|
||||
const roles = store.getters && store.getters.roles
|
||||
const permissionRoles = value
|
||||
const roles = store.getters && store.getters.roles;
|
||||
const permissionRoles = value;
|
||||
|
||||
const hasRole = roles.some(role => {
|
||||
return permissionRoles.includes(role)
|
||||
})
|
||||
return permissionRoles.includes(role);
|
||||
});
|
||||
|
||||
if (!hasRole) {
|
||||
return false
|
||||
return false;
|
||||
}
|
||||
return true
|
||||
return true;
|
||||
} else {
|
||||
console.error(`need roles! Like checkRole="['admin','editor']"`)
|
||||
return false
|
||||
console.error(`need roles! Like checkRole="['admin','editor']"`);
|
||||
return false;
|
||||
}
|
||||
}
|
@ -222,6 +222,7 @@
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
fixed="right"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
|
@ -213,6 +213,7 @@
|
||||
<div v-if="showWxFlag">
|
||||
<div
|
||||
v-for="(item, index) in wxList"
|
||||
:key="item.wxAccount"
|
||||
style="margin: 10px auto auto 40px"
|
||||
>
|
||||
<span>{{ item.wxAccount }}</span
|
||||
|
@ -379,27 +379,37 @@
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="
|
||||
checkPermi(['custom:order:review']) ||
|
||||
(checkPermi(['custom:order:edit']) &&
|
||||
userId === scope.row.preSaleId &&
|
||||
scope.row.reviewStatus === 'no')
|
||||
"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['custom:order:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-s-data"
|
||||
@click="orderPauseManage(scope.row)"
|
||||
v-hasPermi="['orderPause:pause:query']"
|
||||
>暂停记录管理
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
<el-button
|
||||
size="mini"
|
||||
v-if="
|
||||
checkPermi(['custom:order:review']) ||
|
||||
(checkPermi(['custom:order:remove']) &&
|
||||
userId === scope.row.preSaleId &&
|
||||
scope.row.reviewStatus === 'no')
|
||||
"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['custom:order:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
@ -443,12 +453,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
delOrder,
|
||||
exportOrder,
|
||||
getOptions,
|
||||
listOrder,
|
||||
} from "@/api/custom/order";
|
||||
import { delOrder, exportOrder, listOrder } from "@/api/custom/order";
|
||||
import dayjs from "dayjs";
|
||||
import orderPause from "./orderPause";
|
||||
|
||||
@ -456,6 +461,7 @@ import OrderDetail from "@/components/OrderDetail";
|
||||
import OrderEdit from "@/components/OrderEdit";
|
||||
import AutoHideMessage from "@/components/AutoHideMessage";
|
||||
import { mapGetters } from "vuex";
|
||||
import { checkPermi } from "@/utils/permission";
|
||||
|
||||
const beginTime = dayjs().startOf("month").format("YYYY-MM-DD");
|
||||
const endTime = dayjs().format("YYYY-MM-DD");
|
||||
@ -542,6 +548,8 @@ export default {
|
||||
"operatorIdOptions",
|
||||
// 运营助理字典
|
||||
"operatorAssisIdOptions",
|
||||
//
|
||||
"userId",
|
||||
]),
|
||||
},
|
||||
created() {
|
||||
@ -563,6 +571,7 @@ export default {
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
/** 查询销售订单列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
@ -650,7 +659,6 @@ export default {
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const orderIds = row.orderId || this.ids;
|
||||
this.$confirm(
|
||||
'是否确认删除销售订单编号为"' + orderIds + '"的数据项?',
|
||||
"警告",
|
||||
@ -661,7 +669,7 @@ export default {
|
||||
}
|
||||
)
|
||||
.then(function () {
|
||||
return delOrder(orderIds);
|
||||
return delOrder(row.orderId);
|
||||
})
|
||||
.then(() => {
|
||||
this.getList();
|
||||
|
@ -4,46 +4,101 @@
|
||||
<!--部门数据-->
|
||||
<el-col :span="4" :xs="24">
|
||||
<div class="head-container">
|
||||
<el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
|
||||
style="margin-bottom: 20px"/>
|
||||
<el-input
|
||||
v-model="deptName"
|
||||
placeholder="请输入部门名称"
|
||||
clearable
|
||||
size="small"
|
||||
prefix-icon="el-icon-search"
|
||||
style="margin-bottom: 20px"
|
||||
/>
|
||||
</div>
|
||||
<div class="head-container">
|
||||
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
|
||||
:filter-node-method="filterNode" ref="tree" default-expand-all @node-click="handleNodeClick"/>
|
||||
<el-tree
|
||||
:data="deptOptions"
|
||||
:props="defaultProps"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
default-expand-all
|
||||
@node-click="handleNodeClick"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<!--用户数据-->
|
||||
<el-col :span="20" :xs="24">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="用户账号" prop="userName">
|
||||
<el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable size="small" style="width: 240px"
|
||||
@keyup.enter.native="handleQuery"/>
|
||||
<el-input
|
||||
v-model="queryParams.userName"
|
||||
placeholder="请输入用户名称"
|
||||
clearable
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="手机号码" prop="phonenumber">-->
|
||||
<!-- <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable size="small"-->
|
||||
<!-- style="width: 240px" @keyup.enter.native="handleQuery"/>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="用户状态" clearable size="small" style="width: 240px">
|
||||
<el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel"
|
||||
:value="dict.dictValue"/>
|
||||
<el-select
|
||||
v-model="queryParams.status"
|
||||
placeholder="用户状态"
|
||||
clearable
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in statusOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker v-model="dateRange" size="small" style="width: 240px" value-format="yyyy-MM-dd"
|
||||
type="daterange" range-separator="-" start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"></el-date-picker>
|
||||
<el-date-picker
|
||||
v-model="dateRange"
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="cyan"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['system:user:add']">新增
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:user:add']"
|
||||
>新增
|
||||
</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
@ -53,53 +108,120 @@
|
||||
<!-- <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">删除</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="info" icon="el-icon-upload2" size="mini" @click="handleImport"
|
||||
v-hasPermi="['system:user:import']">导入
|
||||
<el-button
|
||||
type="info"
|
||||
icon="el-icon-upload2"
|
||||
size="mini"
|
||||
@click="handleImport"
|
||||
v-hasPermi="['system:user:import']"
|
||||
>导入
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['system:user:export']">导出
|
||||
<el-button
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['system:user:export']"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
<right-toolbar
|
||||
:showSearch.sync="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="userList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<!-- <el-table-column type="selection" width="50" align="center" />-->
|
||||
<el-table-column label="用户编号" align="center" prop="userId"/>
|
||||
<el-table-column label="用户账号" align="center" prop="userName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="用户名称" align="center" prop="nickName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="岗位" align="center" prop="postName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="用户编号" align="center" prop="userId" />
|
||||
<el-table-column
|
||||
label="用户账号"
|
||||
align="center"
|
||||
prop="userName"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="用户名称"
|
||||
align="center"
|
||||
prop="nickName"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="岗位"
|
||||
align="center"
|
||||
prop="postName"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<!-- <el-table-column label="手机号码" align="center" prop="phonenumber" width="120"/>-->
|
||||
<el-table-column label="状态" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
|
||||
@change="handleStatusChange(scope.row)"></el-switch>
|
||||
<el-switch
|
||||
v-model="scope.row.status"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
@change="handleStatusChange(scope.row)"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="170">
|
||||
<el-table-column
|
||||
label="创建时间"
|
||||
align="center"
|
||||
prop="createTime"
|
||||
width="170"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
width="160"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:user:edit']">修改
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:user:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.userId !== 1" size="mini" type="text" icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']">删除
|
||||
<el-button
|
||||
v-if="scope.row.userId !== 1"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:user:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-key" @click="handleResetPwd(scope.row)"
|
||||
v-hasPermi="['system:user:resetPwd']">重置
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-key"
|
||||
@click="handleResetPwd(scope.row)"
|
||||
v-hasPermi="['system:user:resetPwd']"
|
||||
>重置
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"/>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
@ -109,12 +231,17 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="用户名称" prop="nickName">
|
||||
<el-input v-model="form.nickName" placeholder="请输入用户名称"/>
|
||||
<el-input v-model="form.nickName" placeholder="请输入用户名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="归属部门" prop="deptId">
|
||||
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
|
||||
<treeselect
|
||||
v-model="form.deptId"
|
||||
:options="deptOptions"
|
||||
:show-count="true"
|
||||
placeholder="请选择归属部门"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -132,13 +259,25 @@
|
||||
<!-- </el-row>-->
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item v-if="form.userId == undefined" label="用户账号" prop="userName">
|
||||
<el-input v-model="form.userName" placeholder="请输入用户账号"/>
|
||||
<el-form-item
|
||||
v-if="form.userId == undefined"
|
||||
label="用户账号"
|
||||
prop="userName"
|
||||
>
|
||||
<el-input v-model="form.userName" placeholder="请输入用户账号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
|
||||
<el-input v-model="form.password" placeholder="请输入用户密码" type="password"/>
|
||||
<el-form-item
|
||||
v-if="form.userId == undefined"
|
||||
label="用户密码"
|
||||
prop="password"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.password"
|
||||
placeholder="请输入用户密码"
|
||||
type="password"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -146,16 +285,24 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="用户性别">
|
||||
<el-select v-model="form.sex" placeholder="请选择">
|
||||
<el-option v-for="dict in sexOptions" :key="dict.dictValue" :label="dict.dictLabel"
|
||||
:value="dict.dictValue"/>
|
||||
<el-option
|
||||
v-for="dict in sexOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="状态">
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">
|
||||
{{dict.dictLabel}}
|
||||
<el-radio
|
||||
v-for="dict in statusOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictValue"
|
||||
>
|
||||
{{ dict.dictLabel }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
@ -163,24 +310,28 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="岗位">
|
||||
<el-form-item label="岗位" prop="postIds">
|
||||
<el-select v-model="form.postIds" multiple placeholder="请选择">
|
||||
<el-option v-for="item in postOptions"
|
||||
<el-option
|
||||
v-for="item in postOptions"
|
||||
:key="item.postId"
|
||||
:label="item.postName"
|
||||
:value="parseInt(item.postId)"
|
||||
:disabled="item.status == 1"/>
|
||||
:disabled="item.status == 1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="角色">
|
||||
<el-form-item label="角色" prop="roleIds">
|
||||
<el-select v-model="form.roleId" placeholder="请选择">
|
||||
<el-option v-for="item in roleOptions"
|
||||
<el-option
|
||||
v-for="item in roleOptions"
|
||||
:key="item.roleId"
|
||||
:label="item.roleName"
|
||||
:value="parseInt(item.roleId)"
|
||||
:disabled="item.status == 1"/>
|
||||
:disabled="item.status == 1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -188,7 +339,11 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
|
||||
<el-input
|
||||
v-model="form.remark"
|
||||
type="textarea"
|
||||
placeholder="请输入内容"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -200,21 +355,39 @@
|
||||
</el-dialog>
|
||||
|
||||
<!-- 用户导入对话框 -->
|
||||
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||||
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
|
||||
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
||||
<el-dialog
|
||||
:title="upload.title"
|
||||
:visible.sync="upload.open"
|
||||
width="400px"
|
||||
append-to-body
|
||||
>
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:limit="1"
|
||||
accept=".xlsx, .xls"
|
||||
:headers="upload.headers"
|
||||
:action="upload.url + '?updateSupport=' + upload.updateSupport"
|
||||
:disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress"
|
||||
:on-success="handleFileSuccess"
|
||||
:auto-upload="false"
|
||||
drag
|
||||
>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">
|
||||
将文件拖到此处,或
|
||||
<em>点击上传</em>
|
||||
</div>
|
||||
<div class="el-upload__tip" slot="tip">
|
||||
<el-checkbox v-model="upload.updateSupport"/>
|
||||
<el-checkbox v-model="upload.updateSupport" />
|
||||
是否更新已经存在的用户数据
|
||||
<el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
|
||||
<el-link type="info" style="font-size: 12px" @click="importTemplate"
|
||||
>下载模板</el-link
|
||||
>
|
||||
</div>
|
||||
<div class="el-upload__tip" style="color: red" slot="tip">
|
||||
提示:仅允许导入“xls”或“xlsx”格式文件!
|
||||
</div>
|
||||
<div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
|
||||
</el-upload>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||||
@ -225,7 +398,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
import {
|
||||
listUser,
|
||||
getUser,
|
||||
delUser,
|
||||
@ -235,15 +408,15 @@
|
||||
resetUserPwd,
|
||||
changeUserStatus,
|
||||
importTemplate,
|
||||
} from "@/api/system/user";
|
||||
import {getToken} from "@/utils/auth";
|
||||
import {treeselect} from "@/api/system/dept";
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||
} from "@/api/system/user";
|
||||
import { getToken } from "@/utils/auth";
|
||||
import { treeselect } from "@/api/system/dept";
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||
|
||||
export default {
|
||||
export default {
|
||||
name: "User",
|
||||
components: {Treeselect},
|
||||
components: { Treeselect },
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
@ -297,7 +470,7 @@
|
||||
// 是否更新已经存在的用户数据
|
||||
updateSupport: 0,
|
||||
// 设置上传的请求头部
|
||||
headers: {Authorization: "Bearer " + getToken()},
|
||||
headers: { Authorization: "Bearer " + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + "/system/user/importData",
|
||||
},
|
||||
@ -313,19 +486,25 @@
|
||||
// 表单校验
|
||||
rules: {
|
||||
userName: [
|
||||
{required: true, message: "用户名称不能为空", trigger: "blur"},
|
||||
{ required: true, message: "用户名称不能为空", trigger: "blur" },
|
||||
],
|
||||
nickName: [
|
||||
{required: true, message: "用户昵称不能为空", trigger: "blur"},
|
||||
{ required: true, message: "用户昵称不能为空", trigger: "blur" },
|
||||
],
|
||||
deptId: [
|
||||
{required: true, message: "归属部门不能为空", trigger: "blur"},
|
||||
{ required: true, message: "归属部门不能为空", trigger: "blur" },
|
||||
],
|
||||
password: [
|
||||
{required: true, message: "用户密码不能为空", trigger: "blur"},
|
||||
{ required: true, message: "用户密码不能为空", trigger: "blur" },
|
||||
],
|
||||
postIds: [
|
||||
{ required: true, message: "用户岗位不能为空", trigger: "blur" },
|
||||
],
|
||||
roleIds: [
|
||||
{ required: true, message: "用户角色不能为空", trigger: "blur" },
|
||||
],
|
||||
email: [
|
||||
{required: true, message: "邮箱地址不能为空", trigger: "blur"},
|
||||
{ required: true, message: "邮箱地址不能为空", trigger: "blur" },
|
||||
{
|
||||
type: "email",
|
||||
message: "'请输入正确的邮箱地址",
|
||||
@ -433,7 +612,7 @@
|
||||
postIds: [],
|
||||
roleIds: [],
|
||||
postId: undefined,
|
||||
roleId: undefined
|
||||
roleId: undefined,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
@ -460,10 +639,14 @@
|
||||
this.getTreeselect();
|
||||
getUser().then((response) => {
|
||||
this.postOptions = response.posts;
|
||||
const defPost = this.postOptions.find(opt => opt.remark === 'default');
|
||||
const defPost = this.postOptions.find(
|
||||
(opt) => opt.remark === "default"
|
||||
);
|
||||
this.form.postId = defPost ? defPost.postId : undefined;
|
||||
this.roleOptions = response.roles;
|
||||
const defRole = this.roleOptions.find(opt => opt.remark === 'default');
|
||||
const defRole = this.roleOptions.find(
|
||||
(opt) => opt.remark === "default"
|
||||
);
|
||||
this.form.roleId = defRole ? defRole.roleId : undefined;
|
||||
this.open = true;
|
||||
this.title = "添加用户";
|
||||
@ -478,7 +661,7 @@
|
||||
getUser(userId).then((response) => {
|
||||
this.form = {
|
||||
...response.data,
|
||||
roleId: response.data.roles[0].roleId
|
||||
roleId: response.data.roles[0].roleId,
|
||||
};
|
||||
this.postOptions = response.posts;
|
||||
this.roleOptions = response.roles;
|
||||
@ -495,15 +678,14 @@
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
})
|
||||
.then(({value}) => {
|
||||
.then(({ value }) => {
|
||||
resetUserPwd(row.userId, value).then((response) => {
|
||||
if (response.code === 200) {
|
||||
this.msgSuccess("修改成功,新密码是:" + value);
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
.catch(() => {});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm: function () {
|
||||
@ -551,8 +733,7 @@
|
||||
this.getList();
|
||||
this.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(function () {
|
||||
});
|
||||
.catch(function () {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
@ -568,8 +749,7 @@
|
||||
.then((response) => {
|
||||
this.download(response.msg);
|
||||
})
|
||||
.catch(function () {
|
||||
});
|
||||
.catch(function () {});
|
||||
},
|
||||
/** 导入按钮操作 */
|
||||
handleImport() {
|
||||
@ -591,7 +771,7 @@
|
||||
this.upload.open = false;
|
||||
this.upload.isUploading = false;
|
||||
this.$refs.upload.clearFiles();
|
||||
this.$alert(response.msg, "导入结果", {dangerouslyUseHTMLString: true});
|
||||
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
|
||||
this.getList();
|
||||
},
|
||||
// 提交上传文件
|
||||
@ -599,5 +779,5 @@
|
||||
this.$refs.upload.submit();
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
Reference in New Issue
Block a user