投递清单画面

master
guochaojie 5 months ago
parent b2976d24f5
commit b3874c6f58

@ -0,0 +1,16 @@
package jnpf.mapper;
import jnpf.entity.RecycleDeliveryOrderEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
*
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-05-29
*/
public interface RecycleDeliveryOrderMapper extends BaseMapper<RecycleDeliveryOrderEntity> {
}

@ -0,0 +1,16 @@
package jnpf.mapper;
import jnpf.entity.RecycleDeliveryPhotoEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
*
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-05-29
*/
public interface RecycleDeliveryPhotoMapper extends BaseMapper<RecycleDeliveryPhotoEntity> {
}

@ -0,0 +1,37 @@
package jnpf.service;
import jnpf.model.recycledeliveryorder.*;
import jnpf.entity.*;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/**
*
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-05-29
*/
public interface RecycleDeliveryOrderService extends IService<RecycleDeliveryOrderEntity> {
List<RecycleDeliveryOrderEntity> getList(RecycleDeliveryOrderPagination recycleDeliveryOrderPagination);
List<RecycleDeliveryOrderEntity> getTypeList(RecycleDeliveryOrderPagination recycleDeliveryOrderPagination,String dataType);
RecycleDeliveryOrderEntity getInfo(String id);
void delete(RecycleDeliveryOrderEntity entity);
void create(RecycleDeliveryOrderEntity entity);
boolean update(String id, RecycleDeliveryOrderEntity entity);
//子表方法
//副表数据方法
RecycleDeliveryPhotoEntity getRecycleDeliveryPhoto(String id);
String checkForm(RecycleDeliveryOrderForm form,int i);
void saveOrUpdate(RecycleDeliveryOrderForm recycleDeliveryOrderForm,String id, boolean isSave) throws Exception;
}

@ -0,0 +1,18 @@
package jnpf.service;
import jnpf.model.recycledeliveryorder.*;
import jnpf.entity.*;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/**
*
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-05-29
*/
public interface RecycleDeliveryPhotoService extends IService<RecycleDeliveryPhotoEntity> {
QueryWrapper<RecycleDeliveryPhotoEntity> getChild(RecycleDeliveryOrderPagination pagination,QueryWrapper<RecycleDeliveryPhotoEntity> recycleDeliveryPhotoQueryWrapper);
}

@ -0,0 +1,445 @@
package jnpf.service.impl;
import jnpf.entity.*;
import jnpf.mapper.RecycleDeliveryOrderMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.recycledeliveryorder.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
*
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-05-29
*/
@Service
public class RecycleDeliveryOrderServiceImpl extends ServiceImpl<RecycleDeliveryOrderMapper, RecycleDeliveryOrderEntity> implements RecycleDeliveryOrderService{
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
@Autowired
private RecycleDeliveryPhotoService recycleDeliveryPhotoService;
@Override
public List<RecycleDeliveryOrderEntity> getList(RecycleDeliveryOrderPagination recycleDeliveryOrderPagination){
return getTypeList(recycleDeliveryOrderPagination,recycleDeliveryOrderPagination.getDataType());
}
/** 列表查询 */
@Override
public List<RecycleDeliveryOrderEntity> getTypeList(RecycleDeliveryOrderPagination recycleDeliveryOrderPagination,String dataType){
String userId=userProvider.get().getUserId();
List<String> AllIdList =new ArrayList();
List<List<String>> intersectionList =new ArrayList<>();
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String columnData = !isPc ? RecycleDeliveryOrderConstant.getAppColumnData() : RecycleDeliveryOrderConstant.getColumnData();
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
int total=0;
int recycleDeliveryOrderNum =0;
QueryWrapper<RecycleDeliveryOrderEntity> recycleDeliveryOrderQueryWrapper=new QueryWrapper<>();
int recycleDeliveryPhotoNum =0;
QueryWrapper<RecycleDeliveryPhotoEntity> recycleDeliveryPhotoQueryWrapper=new QueryWrapper<>();
long recycleDeliveryPhotocount = recycleDeliveryPhotoService.count();
List<String> allSuperIDlist = new ArrayList<>();
String superOp ="";
if (ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getSuperQueryJson())){
List<String> allSuperList = new ArrayList<>();
List<List<String>> intersectionSuperList = new ArrayList<>();
String queryJson = recycleDeliveryOrderPagination.getSuperQueryJson();
SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class);
int superNum = 0;
QueryWrapper<RecycleDeliveryOrderEntity> recycleDeliveryOrderSuperWrapper = new QueryWrapper<>();
recycleDeliveryOrderSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(recycleDeliveryOrderSuperWrapper,RecycleDeliveryOrderEntity.class,queryJson,"0"));
int recycleDeliveryOrderNum1 = recycleDeliveryOrderSuperWrapper.getExpression().getNormal().size();
if (recycleDeliveryOrderNum1>0){
List<String> recycleDeliveryOrderList =this.list(recycleDeliveryOrderSuperWrapper).stream().map(RecycleDeliveryOrderEntity::getId).collect(Collectors.toList());
allSuperList.addAll(recycleDeliveryOrderList);
intersectionSuperList.add(recycleDeliveryOrderList);
superNum++;
}
String RecycleDeliveryPhotoTable = "nx_recycle_delivery_photo";
boolean RecycleDeliveryPhotoHasSql = queryJson.contains(RecycleDeliveryPhotoTable);
List<String> recycleDeliveryPhotoList = generaterSwapUtil.selectIdsByChildCondition(RecycleDeliveryOrderConstant.getTableList(), RecycleDeliveryPhotoTable , queryJson, null);
if (RecycleDeliveryPhotoHasSql){
allSuperList.addAll(recycleDeliveryPhotoList);
intersectionSuperList.add(recycleDeliveryPhotoList);
superNum++;
}
superOp = superNum > 0 ? superJsonModel.getMatchLogic() : "";
//and or
if(superOp.equalsIgnoreCase("and")){
allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList);
}else{
allSuperIDlist = allSuperList;
}
}
List<String> allRuleIDlist = new ArrayList<>();
String ruleOp ="";
if (ObjectUtil.isNotEmpty(ruleJson)){
List<String> allRuleList = new ArrayList<>();
List<List<String>> intersectionRuleList = new ArrayList<>();
SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class);
int ruleNum = 0;
QueryWrapper<RecycleDeliveryOrderEntity> recycleDeliveryOrderSuperWrapper = new QueryWrapper<>();
recycleDeliveryOrderSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(recycleDeliveryOrderSuperWrapper,RecycleDeliveryOrderEntity.class,ruleJson,"0"));
int recycleDeliveryOrderNum1 = recycleDeliveryOrderSuperWrapper.getExpression().getNormal().size();
if (recycleDeliveryOrderNum1>0){
List<String> recycleDeliveryOrderList =this.list(recycleDeliveryOrderSuperWrapper).stream().map(RecycleDeliveryOrderEntity::getId).collect(Collectors.toList());
allRuleList.addAll(recycleDeliveryOrderList);
intersectionRuleList.add(recycleDeliveryOrderList);
ruleNum++;
}
String RecycleDeliveryPhotoTable = "nx_recycle_delivery_photo";
boolean RecycleDeliveryPhotoHasSql = ruleJson.contains(RecycleDeliveryPhotoTable);
List<String> recycleDeliveryPhotoList = generaterSwapUtil.selectIdsByChildCondition(RecycleDeliveryOrderConstant.getTableList(), RecycleDeliveryPhotoTable , ruleJson, null);
if (RecycleDeliveryPhotoHasSql){
allRuleList.addAll(recycleDeliveryPhotoList);
intersectionRuleList.add(recycleDeliveryPhotoList);
ruleNum++;
}
ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : "";
//and or
if(ruleOp.equalsIgnoreCase("and")){
allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList);
}else{
allRuleIDlist = allRuleList;
}
}
boolean pcPermission = false;
boolean appPermission = false;
if(isPc && pcPermission){
if (!userProvider.get().getIsAdministrator()){
Object recycleDeliveryOrderObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleDeliveryOrderQueryWrapper,RecycleDeliveryOrderEntity.class,recycleDeliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(recycleDeliveryOrderObj)){
return new ArrayList<>();
} else {
recycleDeliveryOrderQueryWrapper = (QueryWrapper<RecycleDeliveryOrderEntity>)recycleDeliveryOrderObj;
if( recycleDeliveryOrderQueryWrapper.getExpression().getNormal().size()>0){
recycleDeliveryOrderNum++;
}
}
Object recycleDeliveryPhotoObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleDeliveryPhotoQueryWrapper,RecycleDeliveryPhotoEntity.class,recycleDeliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(recycleDeliveryPhotoObj)){
return new ArrayList<>();
} else {
recycleDeliveryPhotoQueryWrapper = (QueryWrapper<RecycleDeliveryPhotoEntity>)recycleDeliveryPhotoObj;
if( recycleDeliveryPhotoQueryWrapper.getExpression().getNormal().size()>0){
recycleDeliveryPhotoNum++;
}
}
}
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object recycleDeliveryOrderObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleDeliveryOrderQueryWrapper,RecycleDeliveryOrderEntity.class,recycleDeliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(recycleDeliveryOrderObj)){
return new ArrayList<>();
} else {
recycleDeliveryOrderQueryWrapper = (QueryWrapper<RecycleDeliveryOrderEntity>)recycleDeliveryOrderObj;
if( recycleDeliveryOrderQueryWrapper.getExpression().getNormal().size()>0){
recycleDeliveryOrderNum++;
}
}
Object recycleDeliveryPhotoObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(recycleDeliveryPhotoQueryWrapper,RecycleDeliveryPhotoEntity.class,recycleDeliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(recycleDeliveryPhotoObj)){
return new ArrayList<>();
} else {
recycleDeliveryPhotoQueryWrapper = (QueryWrapper<RecycleDeliveryPhotoEntity>)recycleDeliveryPhotoObj;
if( recycleDeliveryPhotoQueryWrapper.getExpression().getNormal().size()>0){
recycleDeliveryPhotoNum++;
}
}
}
}
if(isPc){
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getOrderNo())){
recycleDeliveryOrderNum++;
String value = recycleDeliveryOrderPagination.getOrderNo() instanceof List ?
JsonUtil.getObjectToString(recycleDeliveryOrderPagination.getOrderNo()) :
String.valueOf(recycleDeliveryOrderPagination.getOrderNo());
recycleDeliveryOrderQueryWrapper.lambda().like(RecycleDeliveryOrderEntity::getOrderNo,value);
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getAdjustStatus())){
recycleDeliveryOrderNum++;
recycleDeliveryOrderQueryWrapper.lambda().eq(RecycleDeliveryOrderEntity::getAdjustStatus,recycleDeliveryOrderPagination.getAdjustStatus());
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getPhone())){
recycleDeliveryOrderNum++;
String value = recycleDeliveryOrderPagination.getPhone() instanceof List ?
JsonUtil.getObjectToString(recycleDeliveryOrderPagination.getPhone()) :
String.valueOf(recycleDeliveryOrderPagination.getPhone());
recycleDeliveryOrderQueryWrapper.lambda().like(RecycleDeliveryOrderEntity::getPhone,value);
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getDeviceCode())){
recycleDeliveryOrderNum++;
List<String> idList = new ArrayList<>();
try {
String[][] deviceCode = JsonUtil.getJsonToBean(recycleDeliveryOrderPagination.getDeviceCode(),String[][].class);
for(int i=0;i<deviceCode.length;i++){
if(deviceCode[i].length>0){
idList.add(JsonUtil.getObjectToString(Arrays.asList(deviceCode[i])));
}
}
}catch (Exception e1){
try {
List<String> deviceCode = JsonUtil.getJsonToList(recycleDeliveryOrderPagination.getDeviceCode(),String.class);
if(deviceCode.size()>0){
idList.addAll(deviceCode);
}
}catch (Exception e2){
idList.add(String.valueOf(recycleDeliveryOrderPagination.getDeviceCode()));
}
}
recycleDeliveryOrderQueryWrapper.lambda().and(t->{
idList.forEach(tt->{
t.like(RecycleDeliveryOrderEntity::getDeviceCode, tt).or();
});
});
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getDoorNum())){
recycleDeliveryOrderNum++;
recycleDeliveryOrderQueryWrapper.lambda().eq(RecycleDeliveryOrderEntity::getDoorNum,recycleDeliveryOrderPagination.getDoorNum());
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getBucketCode())){
recycleDeliveryOrderNum++;
String value = recycleDeliveryOrderPagination.getBucketCode() instanceof List ?
JsonUtil.getObjectToString(recycleDeliveryOrderPagination.getBucketCode()) :
String.valueOf(recycleDeliveryOrderPagination.getBucketCode());
recycleDeliveryOrderQueryWrapper.lambda().like(RecycleDeliveryOrderEntity::getBucketCode,value);
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getBagNo())){
recycleDeliveryOrderNum++;
String value = recycleDeliveryOrderPagination.getBagNo() instanceof List ?
JsonUtil.getObjectToString(recycleDeliveryOrderPagination.getBagNo()) :
String.valueOf(recycleDeliveryOrderPagination.getBagNo());
recycleDeliveryOrderQueryWrapper.lambda().like(RecycleDeliveryOrderEntity::getBagNo,value);
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getCleanerPhone())){
recycleDeliveryOrderNum++;
String value = recycleDeliveryOrderPagination.getCleanerPhone() instanceof List ?
JsonUtil.getObjectToString(recycleDeliveryOrderPagination.getCleanerPhone()) :
String.valueOf(recycleDeliveryOrderPagination.getCleanerPhone());
recycleDeliveryOrderQueryWrapper.lambda().like(RecycleDeliveryOrderEntity::getCleanerPhone,value);
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getCleanStatus())){
recycleDeliveryOrderNum++;
recycleDeliveryOrderQueryWrapper.lambda().eq(RecycleDeliveryOrderEntity::getCleanStatus,recycleDeliveryOrderPagination.getCleanStatus());
}
if(ObjectUtil.isNotEmpty(recycleDeliveryOrderPagination.getCleanNo())){
recycleDeliveryOrderNum++;
String value = recycleDeliveryOrderPagination.getCleanNo() instanceof List ?
JsonUtil.getObjectToString(recycleDeliveryOrderPagination.getCleanNo()) :
String.valueOf(recycleDeliveryOrderPagination.getCleanNo());
recycleDeliveryOrderQueryWrapper.lambda().like(RecycleDeliveryOrderEntity::getCleanNo,value);
}
}
if(recycleDeliveryPhotoNum>0){
List<String> recycleDeliveryPhotoIdList = recycleDeliveryPhotoService.list(recycleDeliveryPhotoQueryWrapper).stream().filter(t->StringUtil.isNotEmpty(t.getOrderNo())).map(t->t.getOrderNo()).collect(Collectors.toList());
long count = recycleDeliveryPhotoService.count();
if (count>0){
intersectionList.add(recycleDeliveryPhotoIdList);
}
AllIdList.addAll(recycleDeliveryPhotoIdList);
}
total+=recycleDeliveryPhotoNum;
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
if (total>0){
if (intersection.size()==0){
intersection.add("jnpfNullList");
}
recycleDeliveryOrderQueryWrapper.lambda().in(RecycleDeliveryOrderEntity::getId, intersection);
}
//是否有高级查询
if (StringUtil.isNotEmpty(superOp)){
if (allSuperIDlist.size()==0){
allSuperIDlist.add("jnpfNullList");
}
List<String> finalAllSuperIDlist = allSuperIDlist;
recycleDeliveryOrderQueryWrapper.lambda().and(t->t.in(RecycleDeliveryOrderEntity::getId, finalAllSuperIDlist));
}
//是否有数据过滤查询
if (StringUtil.isNotEmpty(ruleOp)){
if (allRuleIDlist.size()==0){
allRuleIDlist.add("jnpfNullList");
}
List<String> finalAllRuleIDlist = allRuleIDlist;
recycleDeliveryOrderQueryWrapper.lambda().and(t->t.in(RecycleDeliveryOrderEntity::getId, finalAllRuleIDlist));
}
//排序
if(StringUtil.isEmpty(recycleDeliveryOrderPagination.getSidx())){
recycleDeliveryOrderQueryWrapper.lambda().orderByDesc(RecycleDeliveryOrderEntity::getId);
}else{
try {
String sidx = recycleDeliveryOrderPagination.getSidx();
String[] strs= sidx.split("_name");
RecycleDeliveryOrderEntity recycleDeliveryOrderEntity = new RecycleDeliveryOrderEntity();
Field declaredField = recycleDeliveryOrderEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value();
recycleDeliveryOrderQueryWrapper="asc".equals(recycleDeliveryOrderPagination.getSort().toLowerCase())?recycleDeliveryOrderQueryWrapper.orderByAsc(value):recycleDeliveryOrderQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
if("0".equals(dataType)){
if((total>0 && AllIdList.size()>0) || total==0){
Page<RecycleDeliveryOrderEntity> page=new Page<>(recycleDeliveryOrderPagination.getCurrentPage(), recycleDeliveryOrderPagination.getPageSize());
IPage<RecycleDeliveryOrderEntity> userIPage=this.page(page, recycleDeliveryOrderQueryWrapper);
return recycleDeliveryOrderPagination.setData(userIPage.getRecords(),userIPage.getTotal());
}else{
List<RecycleDeliveryOrderEntity> list = new ArrayList();
return recycleDeliveryOrderPagination.setData(list, list.size());
}
}else{
return this.list(recycleDeliveryOrderQueryWrapper);
}
}
@Override
public RecycleDeliveryOrderEntity getInfo(String id){
QueryWrapper<RecycleDeliveryOrderEntity> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda().eq(RecycleDeliveryOrderEntity::getId,id);
return this.getOne(queryWrapper);
}
@Override
public void create(RecycleDeliveryOrderEntity entity){
this.save(entity);
}
@Override
public boolean update(String id, RecycleDeliveryOrderEntity entity){
return this.updateById(entity);
}
@Override
public void delete(RecycleDeliveryOrderEntity entity){
if(entity!=null){
this.removeById(entity.getId());
}
}
/** RecycleDeliveryPhoto副表方法 */
@Override
public RecycleDeliveryPhotoEntity getRecycleDeliveryPhoto(String id){
QueryWrapper<RecycleDeliveryPhotoEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(RecycleDeliveryPhotoEntity::getOrderNo, id);
return recycleDeliveryPhotoService.getOne(queryWrapper);
}
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
@Override
public String checkForm(RecycleDeliveryOrderForm form,int i) {
boolean isUp =StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
String id="";
String countRecover = "";
if (isUp){
id = form.getId();
}
//主表字段验证
//副表字段验证
return countRecover;
}
/**
* ()
* @param id
* @param recycleDeliveryOrderForm
* @return
*/
@Override
@Transactional
public void saveOrUpdate(RecycleDeliveryOrderForm recycleDeliveryOrderForm,String id, boolean isSave) throws Exception{
UserInfo userInfo=userProvider.get();
UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
recycleDeliveryOrderForm = JsonUtil.getJsonToBean(
generaterSwapUtil.swapDatetime(RecycleDeliveryOrderConstant.getFormData(),recycleDeliveryOrderForm),RecycleDeliveryOrderForm.class);
RecycleDeliveryOrderEntity entity = JsonUtil.getJsonToBean(recycleDeliveryOrderForm, RecycleDeliveryOrderEntity.class);
if(isSave){
String mainId = RandomUtil.uuId() ;
entity.setLastModifyUserId(null);
entity.setLastModifyTime(null);
entity.setId(mainId);
}else{
entity.setLastModifyUserId(null);
entity.setLastModifyTime(null);
}
this.saveOrUpdate(entity);
//nx_recycle_delivery_photo副表数据新增修改
Map<String, Object> RecycleDeliveryPhotoMap = generaterSwapUtil.getMastTabelData(recycleDeliveryOrderForm,"nx_recycle_delivery_photo");
RecycleDeliveryPhotoEntity nx_recycle_delivery_photoentity = JsonUtil.getJsonToBean(RecycleDeliveryPhotoMap,RecycleDeliveryPhotoEntity.class);
//自动生成的字段
if(isSave){
nx_recycle_delivery_photoentity.setOrderNo(entity.getOrderNo());
nx_recycle_delivery_photoentity.setId(RandomUtil.uuId());
}else{
QueryWrapper<RecycleDeliveryPhotoEntity> queryWrapperRecycleDeliveryPhoto =new QueryWrapper<>();
queryWrapperRecycleDeliveryPhoto.lambda().eq(RecycleDeliveryPhotoEntity::getOrderNo,entity.getOrderNo());
RecycleDeliveryPhotoEntity nx_recycle_delivery_photoOneEntity= recycleDeliveryPhotoService.getOne(queryWrapperRecycleDeliveryPhoto);
nx_recycle_delivery_photoentity.setId(nx_recycle_delivery_photoOneEntity.getId());
nx_recycle_delivery_photoentity.setOrderNo(entity.getOrderNo());
}
recycleDeliveryPhotoService.saveOrUpdate(nx_recycle_delivery_photoentity);
}
}

@ -0,0 +1,59 @@
package jnpf.service.impl;
import jnpf.entity.*;
import jnpf.mapper.RecycleDeliveryPhotoMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.recycledeliveryorder.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
*
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-05-29
*/
@Service
public class RecycleDeliveryPhotoServiceImpl extends ServiceImpl<RecycleDeliveryPhotoMapper, RecycleDeliveryPhotoEntity> implements RecycleDeliveryPhotoService{
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
//子表过滤方法
@Override
public QueryWrapper<RecycleDeliveryPhotoEntity> getChild(RecycleDeliveryOrderPagination pagination, QueryWrapper<RecycleDeliveryPhotoEntity> recycleDeliveryPhotoQueryWrapper){
boolean pcPermission = false;
boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String ruleQueryJson = isPc?RecycleDeliveryOrderConstant.getColumnData():RecycleDeliveryOrderConstant.getAppColumnData();
ColumnDataModel dataModel = JsonUtil.getJsonToBean(ruleQueryJson,ColumnDataModel.class);
String ruleJson = isPc?JsonUtil.getObjectToString(dataModel.getRuleList()):JsonUtil.getObjectToString(dataModel.getRuleListApp());
if(isPc){
}
return recycleDeliveryPhotoQueryWrapper;
}
}

@ -0,0 +1,217 @@
package jnpf.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jnpf.base.ActionResult;
import jnpf.base.UserInfo;
import jnpf.exception.DataException;
import jnpf.permission.entity.UserEntity;
import jnpf.service.*;
import jnpf.entity.*;
import jnpf.util.*;
import jnpf.model.recycledeliveryorder.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.*;
import jnpf.annotation.JnpfField;
import jnpf.base.vo.PageListVO;
import jnpf.base.vo.PaginationVO;
import jnpf.base.vo.DownloadVO;
import jnpf.config.ConfigValueUtil;
import jnpf.base.entity.ProvinceEntity;
import java.io.IOException;
import java.util.stream.Collectors;
import jnpf.engine.entity.FlowTaskEntity;
import jnpf.exception.WorkFlowException;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-05-29
*/
@Slf4j
@RestController
@Tag(name = "投递清单" , description = "scm")
@RequestMapping("/api/scm/RecycleDeliveryOrder")
public class RecycleDeliveryOrderController {
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
@Autowired
private RecycleDeliveryOrderService recycleDeliveryOrderService;
@Autowired
private RecycleDeliveryPhotoService recycleDeliveryPhotoService;
/**
*
*
* @param recycleDeliveryOrderPagination
* @return
*/
@Operation(summary = "获取列表")
@PostMapping("/getList")
public ActionResult list(@RequestBody RecycleDeliveryOrderPagination recycleDeliveryOrderPagination)throws IOException{
List<RecycleDeliveryOrderEntity> list= recycleDeliveryOrderService.getList(recycleDeliveryOrderPagination);
List<Map<String, Object>> realList=new ArrayList<>();
for (RecycleDeliveryOrderEntity entity : list) {
Map<String, Object> recycleDeliveryOrderMap=JsonUtil.entityToMap(entity);
recycleDeliveryOrderMap.put("id", recycleDeliveryOrderMap.get("id"));
//副表数据
RecycleDeliveryPhotoEntity recycleDeliveryPhotoEntity = recycleDeliveryOrderService.getRecycleDeliveryPhoto(entity.getId());
if(ObjectUtil.isNotEmpty(recycleDeliveryPhotoEntity)){
Map<String, Object> recycleDeliveryPhotoMap=JsonUtil.entityToMap(recycleDeliveryPhotoEntity);
for(String key:recycleDeliveryPhotoMap.keySet()){
recycleDeliveryOrderMap.put("jnpf_nx_recycle_delivery_photo_jnpf_"+key,recycleDeliveryPhotoMap.get(key));
}
}
//子表数据
realList.add(recycleDeliveryOrderMap);
}
//数据转换
realList = generaterSwapUtil.swapDataList(realList, RecycleDeliveryOrderConstant.getFormData(), RecycleDeliveryOrderConstant.getColumnData(), recycleDeliveryOrderPagination.getModuleId(),false);
//返回对象
PageListVO vo = new PageListVO();
vo.setList(realList);
PaginationVO page = JsonUtil.getJsonToBean(recycleDeliveryOrderPagination, PaginationVO.class);
vo.setPagination(page);
return ActionResult.success(vo);
}
/**
*
*
* @param recycleDeliveryOrderForm
* @return
*/
@PostMapping()
@Operation(summary = "创建")
public ActionResult create(@RequestBody @Valid RecycleDeliveryOrderForm recycleDeliveryOrderForm) {
String b = recycleDeliveryOrderService.checkForm(recycleDeliveryOrderForm,0);
if (StringUtil.isNotEmpty(b)){
return ActionResult.fail(b );
}
try{
recycleDeliveryOrderService.saveOrUpdate(recycleDeliveryOrderForm, null ,true);
}catch(Exception e){
return ActionResult.fail("新增数据失败");
}
return ActionResult.success("创建成功");
}
/**
*
* @param id
* @param recycleDeliveryOrderForm
* @return
*/
@PutMapping("/{id}")
@Operation(summary = "更新")
public ActionResult update(@PathVariable("id") String id,@RequestBody @Valid RecycleDeliveryOrderForm recycleDeliveryOrderForm,
@RequestParam(value = "isImport", required = false) boolean isImport){
recycleDeliveryOrderForm.setId(id);
if (!isImport) {
String b = recycleDeliveryOrderService.checkForm(recycleDeliveryOrderForm,1);
if (StringUtil.isNotEmpty(b)){
return ActionResult.fail(b );
}
}
RecycleDeliveryOrderEntity entity= recycleDeliveryOrderService.getInfo(id);
if(entity!=null){
try{
recycleDeliveryOrderService.saveOrUpdate(recycleDeliveryOrderForm,id,false);
}catch(Exception e){
return ActionResult.fail("修改数据失败");
}
return ActionResult.success("更新成功");
}else{
return ActionResult.fail("更新失败,数据不存在");
}
}
/**
*
* @param id
* @return
*/
@Operation(summary = "删除")
@DeleteMapping("/{id}")
@Transactional
public ActionResult delete(@PathVariable("id") String id){
RecycleDeliveryOrderEntity entity= recycleDeliveryOrderService.getInfo(id);
if(entity!=null){
//主表数据删除
recycleDeliveryOrderService.delete(entity);
QueryWrapper<RecycleDeliveryPhotoEntity> queryWrapperRecycleDeliveryPhoto=new QueryWrapper<>();
queryWrapperRecycleDeliveryPhoto.lambda().eq(RecycleDeliveryPhotoEntity::getOrderNo,entity.getOrderNo());
//副表数据删除
recycleDeliveryPhotoService.remove(queryWrapperRecycleDeliveryPhoto);
}
return ActionResult.success("删除成功");
}
/**
* ()
* 使-
* @param id
* @return
*/
@Operation(summary = "表单信息(详情页)")
@GetMapping("/detail/{id}")
public ActionResult detailInfo(@PathVariable("id") String id){
RecycleDeliveryOrderEntity entity= recycleDeliveryOrderService.getInfo(id);
if(entity==null){
return ActionResult.fail("表单数据不存在!");
}
Map<String, Object> recycleDeliveryOrderMap=JsonUtil.entityToMap(entity);
recycleDeliveryOrderMap.put("id", recycleDeliveryOrderMap.get("id"));
//副表数据
RecycleDeliveryPhotoEntity recycleDeliveryPhotoEntity = recycleDeliveryOrderService.getRecycleDeliveryPhoto(entity.getId());
if(ObjectUtil.isNotEmpty(recycleDeliveryPhotoEntity)){
Map<String, Object> recycleDeliveryPhotoMap=JsonUtil.entityToMap(recycleDeliveryPhotoEntity);
for(String key:recycleDeliveryPhotoMap.keySet()){
recycleDeliveryOrderMap.put("jnpf_nx_recycle_delivery_photo_jnpf_"+key,recycleDeliveryPhotoMap.get(key));
}
}
//子表数据
recycleDeliveryOrderMap = generaterSwapUtil.swapDataDetail(recycleDeliveryOrderMap,RecycleDeliveryOrderConstant.getFormData(),"565540808741097605",false);
return ActionResult.success(recycleDeliveryOrderMap);
}
/**
* ()
* 使-
* @param id
* @return
*/
@Operation(summary = "信息")
@GetMapping("/{id}")
public ActionResult info(@PathVariable("id") String id){
RecycleDeliveryOrderEntity entity= recycleDeliveryOrderService.getInfo(id);
if(entity==null){
return ActionResult.fail("表单数据不存在!");
}
Map<String, Object> recycleDeliveryOrderMap=JsonUtil.entityToMap(entity);
recycleDeliveryOrderMap.put("id", recycleDeliveryOrderMap.get("id"));
//副表数据
RecycleDeliveryPhotoEntity recycleDeliveryPhotoEntity = recycleDeliveryOrderService.getRecycleDeliveryPhoto(entity.getId());
if(ObjectUtil.isNotEmpty(recycleDeliveryPhotoEntity)){
Map<String, Object> recycleDeliveryPhotoMap=JsonUtil.entityToMap(recycleDeliveryPhotoEntity);
for(String key:recycleDeliveryPhotoMap.keySet()){
recycleDeliveryOrderMap.put("jnpf_nx_recycle_delivery_photo_jnpf_"+key,recycleDeliveryPhotoMap.get(key));
}
}
//子表数据
recycleDeliveryOrderMap = generaterSwapUtil.swapDataForm(recycleDeliveryOrderMap,RecycleDeliveryOrderConstant.getFormData(),RecycleDeliveryOrderConstant.TABLEFIELDKEY,RecycleDeliveryOrderConstant.TABLERENAMES);
return ActionResult.success(recycleDeliveryOrderMap);
}
}

@ -0,0 +1,97 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
/**
*
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-05-29
*/
@Data
@TableName("nx_recycle_delivery_order")
public class RecycleDeliveryOrderEntity {
@TableId(value ="ID" )
private String id;
@TableField(value = "ORDER_NO" , updateStrategy = FieldStrategy.IGNORED)
private String orderNo;
@TableField(value = "DEVICE_ORDER_NO" , updateStrategy = FieldStrategy.IGNORED)
private Integer deviceOrderNo;
@TableField(value = "DEVICE_CODE" , updateStrategy = FieldStrategy.IGNORED)
private String deviceCode;
@TableField(value = "BUCKET_CODE" , updateStrategy = FieldStrategy.IGNORED)
private String bucketCode;
@TableField(value = "DOOR_NUM" , updateStrategy = FieldStrategy.IGNORED)
private Integer doorNum;
@TableField(value = "BAG_NO" , updateStrategy = FieldStrategy.IGNORED)
private Integer bagNo;
@TableField(value = "ORIGINAL_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal originalWeight;
@TableField(value = "REPORT_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal reportWeight;
@TableField(value = "ADJUST_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal adjustWeight;
@TableField(value = "PRODUCT_CODE" , updateStrategy = FieldStrategy.IGNORED)
private String productCode;
@TableField(value = "PRODUCT_SUB_CODE" , updateStrategy = FieldStrategy.IGNORED)
private String productSubCode;
@TableField(value = "PRICE" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal price;
@TableField(value = "TOTAL_PRICE" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal totalPrice;
@TableField(value = "ADJUST_PRICE" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal adjustPrice;
@TableField(value = "ADJUST_SET" , updateStrategy = FieldStrategy.IGNORED)
private Integer adjustSet;
@TableField(value = "ADJUST_STATUS" , updateStrategy = FieldStrategy.IGNORED)
private Integer adjustStatus;
@TableField(value = "ADJUST_COMM" , updateStrategy = FieldStrategy.IGNORED)
private String adjustComm;
@TableField(value = "DELIVER_ID" , updateStrategy = FieldStrategy.IGNORED)
private String deliverId;
@TableField(value = "PHONE" , updateStrategy = FieldStrategy.IGNORED)
private String phone;
@TableField(value = "CLEAN_STATUS" , updateStrategy = FieldStrategy.IGNORED)
private Integer cleanStatus;
@TableField(value = "CLEAN_NO" , updateStrategy = FieldStrategy.IGNORED)
private String cleanNo;
@TableField(value = "CLEANER_PHONE" , updateStrategy = FieldStrategy.IGNORED)
private String cleanerPhone;
@TableField(value = "LOGIN_TYPE" , updateStrategy = FieldStrategy.IGNORED)
private Integer loginType;
@TableField("F_FLOW_ID")
private String flowId;
@TableField("F_CREATOR_TIME")
private Date creatorTime;
@TableField("F_CREATOR_USER_ID")
private String creatorUserId;
@TableField("F_LAST_MODIFY_TIME")
private Date lastModifyTime;
@TableField("F_LAST_MODIFY_USER_ID")
private String lastModifyUserId;
@TableField("F_DELETE_TIME")
private Date deleteTime;
@TableField("F_DELETE_USER_ID")
private String deleteUserId;
@TableField("F_DELETE_MARK")
private String deleteMark;
@TableField("F_TENANT_ID")
private String tenantId;
@TableField("COMPANY_ID")
private String companyId;
@TableField("DEPARTMENT_ID")
private String departmentId;
@TableField("ORGANIZE_JSON_ID")
private String organizeJsonId;
@TableField("F_VERSION")
private Integer version;
}

@ -0,0 +1,39 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
/**
*
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-05-29
*/
@Data
@TableName("nx_recycle_delivery_photo")
public class RecycleDeliveryPhotoEntity {
@TableId(value ="ID" )
private String id;
@TableField("ORDER_NO")
private String orderNo;
@TableField("POSTION")
private Integer postion;
@TableField(value = "FILE_URL" , updateStrategy = FieldStrategy.IGNORED)
private String fileUrl;
@TableField("TAKE_TIME")
private Date takeTime;
@TableField("F_CREATOR_TIME")
private Date creatorTime;
@TableField("F_CREATOR_USER_ID")
private String creatorUserId;
@TableField("F_LAST_MODIFY_TIME")
private Date lastModifyTime;
@TableField("F_LAST_MODIFY_USER_ID")
private String lastModifyUserId;
@TableField("COMPANY_ID")
private String companyId;
@TableField("ORGANIZE_JSON_ID")
private String organizeJsonId;
}

@ -0,0 +1,98 @@
package jnpf.model.recycledeliveryorder;
import lombok.Data;
import java.util.List;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-05-29
*/
@Data
public class RecycleDeliveryOrderForm {
/** 主键 */
private String id;
/** 用户手机号 **/
@JsonProperty("phone")
private String phone;
/** 登录方式 **/
@JsonProperty("loginType")
private String loginType;
/** 投递单号 **/
@JsonProperty("orderNo")
private String orderNo;
/** 机柜投递单号 **/
@JsonProperty("deviceOrderNo")
private String deviceOrderNo;
/** 机柜编码 **/
@JsonProperty("deviceCode")
private Object deviceCode;
/** 门号 **/
@JsonProperty("doorNum")
private String doorNum;
/** 垃圾袋编号 **/
@JsonProperty("bagNo")
private String bagNo;
/** 桶编号 **/
@JsonProperty("bucketCode")
private String bucketCode;
/** 投递员id **/
@JsonProperty("deliverId")
private String deliverId;
/** 回收品大类 **/
@JsonProperty("productCode")
private String productCode;
/** 回收品子类 **/
@JsonProperty("productSubCode")
private String productSubCode;
/** 上报重量 **/
@JsonProperty("reportWeight")
private String reportWeight;
/** 桶内原重 **/
@JsonProperty("originalWeight")
private String originalWeight;
/** 单价 **/
@JsonProperty("price")
private BigDecimal price;
/** 审核后重量 **/
@JsonProperty("adjustWeight")
private String adjustWeight;
/** 总价 **/
@JsonProperty("totalPrice")
private BigDecimal totalPrice;
/** 审核总价 **/
@JsonProperty("adjustPrice")
private BigDecimal adjustPrice;
/** 审核设置 **/
@JsonProperty("adjustSet")
private String adjustSet;
/** 审核状态 **/
@JsonProperty("adjustStatus")
private String adjustStatus;
/** 图片地址 **/
@JsonProperty("jnpf_nx_recycle_delivery_photo_jnpf_fileUrl")
private String jnpf_nx_recycle_delivery_photo_jnpf_fileUrl;
/** 审核说明 **/
@JsonProperty("adjustComm")
private String adjustComm;
/** 清运员手机号 **/
@JsonProperty("cleanerPhone")
private String cleanerPhone;
/** 清运状态 **/
@JsonProperty("cleanStatus")
private String cleanStatus;
/** 清运单号 **/
@JsonProperty("cleanNo")
private String cleanNo;
/** 修改用户 **/
@JsonProperty("lastModifyUserId")
private String lastModifyUserId;
/** 修改时间 **/
@JsonProperty("lastModifyTime")
private String lastModifyTime;
}

@ -0,0 +1,60 @@
package jnpf.model.recycledeliveryorder;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import jnpf.base.Pagination;
import java.util.List;
/**
*
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-05-29
*/
@Data
public class RecycleDeliveryOrderPagination extends Pagination {
/** 查询key */
private String[] selectKey;
/** json */
private String json;
/** 数据类型 0-当前页1-全部数据 */
private String dataType;
/** 高级查询 */
private String superQueryJson;
/** 功能id */
private String moduleId;
/** 菜单id */
private String menuId;
/** 投递单号 */
@JsonProperty("orderNo")
private Object orderNo;
/** 审核状态 */
@JsonProperty("adjustStatus")
private Object adjustStatus;
/** 投递员手机号 */
@JsonProperty("phone")
private Object phone;
/** 机柜编码 */
@JsonProperty("deviceCode")
private Object deviceCode;
/** 门号 */
@JsonProperty("doorNum")
private Object doorNum;
/** 桶编号 */
@JsonProperty("bucketCode")
private Object bucketCode;
/** 垃圾袋编号 */
@JsonProperty("bagNo")
private Object bagNo;
/** 清运员手机号 */
@JsonProperty("cleanerPhone")
private Object cleanerPhone;
/** 清运状态 */
@JsonProperty("cleanStatus")
private Object cleanStatus;
/** 清运单号 */
@JsonProperty("cleanNo")
private Object cleanNo;
}

@ -0,0 +1,24 @@
package jnpf.model.recycledeliveryorder;
import lombok.Data;
import java.util.List;
import java.util.Date;
import java.math.BigDecimal;
import com.alibaba.fastjson.annotation.JSONField;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
*
*
* V3.5
* : https://www.jnpfsoft.com
* JNPF
* 2024-05-29
*/
@Data
public class RecycleDeliveryPhotoModel {
/** 图片地址 **/
@JSONField(name = "fileUrl")
private String fileUrl;
}

@ -0,0 +1,284 @@
<template>
<transition name="el-zoom-in-center">
<div class="JNPF-preview-main">
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" />
<div class="JNPF-common-page-header">
<el-page-header @back="goBack"
content="详情"/>
<div class="options">
<el-button @click="goBack"> </el-button>
</div>
</div>
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}">
<el-form ref="formRef" :model="dataForm" size="small" label-width="150px" label-position="right" >
<template v-if="!loading">
<el-col :span="12" >
<jnpf-form-tip-item label="用户手机号"
prop="phone" >
<p>{{dataForm.phone}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="登录方式"
prop="loginType" >
<p>{{ dataForm.loginType }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="投递单号"
prop="orderNo" >
<p>{{dataForm.orderNo}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="机柜编码"
prop="deviceCode" >
<p>{{dataForm.deviceCode}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="门号"
prop="doorNum" >
<p>{{dataForm.doorNum}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="垃圾袋编号"
prop="bagNo" >
<p>{{dataForm.bagNo}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<JnpfDivider contentPosition="center" >
审核重量金额 </JnpfDivider>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="回收品大类"
prop="productCode" >
<p>{{dataForm.productCode}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="回收品子类"
prop="productSubCode" >
<p>{{dataForm.productSubCode}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="上报重量"
prop="reportWeight" >
<p>{{dataForm.reportWeight}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="桶内原重"
prop="originalWeight" >
<p>{{dataForm.originalWeight}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="单价"
prop="price" >
<JnpfNumber v-model="dataForm.price"
placeholder="数字文本" disabled
:step="1" isAmountChinese >
</JnpfNumber>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="审核后重量"
prop="adjustWeight" >
<p>{{dataForm.adjustWeight}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="总价"
prop="totalPrice" >
<JnpfNumber v-model="dataForm.totalPrice"
placeholder="数字文本" disabled
:step="1" isAmountChinese >
</JnpfNumber>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="审核总价"
prop="adjustPrice" >
<JnpfNumber v-model="dataForm.adjustPrice"
placeholder="数字文本" disabled
:step="1" >
</JnpfNumber>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="审核设置"
prop="adjustSet" >
<p>{{ dataForm.adjustSet }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="审核状态 "
prop="adjustStatus" >
<p>{{ dataForm.adjustStatus }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="图片地址"
prop="jnpf_nx_recycle_delivery_photo_jnpf_fileUrl" >
<p>{{dataForm.jnpf_nx_recycle_delivery_photo_jnpf_fileUrl}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="审核说明"
prop="adjustComm" >
<p>{{dataForm.adjustComm}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<JnpfDivider contentPosition="center" >
清运信息 </JnpfDivider>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="清运员手机号"
prop="cleanerPhone" >
<p>{{dataForm.cleanerPhone}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="清运状态"
prop="cleanStatus" >
<p>{{ dataForm.cleanStatus }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="清运单号"
prop="cleanNo" >
<p>{{dataForm.cleanNo}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="修改用户"
prop="lastModifyUserId" >
<p>{{dataForm.lastModifyUserId}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="修改时间"
prop="lastModifyTime" >
<p>{{dataForm.lastModifyTime}}</p>
</jnpf-form-tip-item>
</el-col>
</template>
</el-form>
</el-row>
</div>
</transition>
</template>
<script>
import request from '@/utils/request'
import { getConfigData } from '@/api/onlineDev/visualDev'
import jnpf from '@/utils/jnpf'
import Detail from '@/views/basic/dynamicModel/list/detail'
import { thousandsFormat } from "@/components/Generator/utils/index"
export default {
components: { Detail},
props: [],
data() {
return {
visible: false,
detailVisible: false,
loading: false,
dataForm: {
id :'',
phone : '',
loginType : "1",
orderNo : '',
deviceOrderNo : '',
deviceCode : "",
doorNum : '',
bagNo : '',
bucketCode : '',
deliverId : '',
productCode : '',
productSubCode : '',
reportWeight : '',
originalWeight : '',
price : '',
adjustWeight : '',
totalPrice : '',
adjustPrice : '',
adjustSet : "1",
adjustStatus : "0",
adjustComm : '',
cleanerPhone : '',
cleanStatus : "0",
cleanNo : '',
lastModifyUserId : "",
lastModifyTime : "",
nx_recycle_delivery_photo:
{
fileUrl:'',
},
jnpf_nx_recycle_delivery_photo_jnpf_fileUrl:'',
},
loginTypeOptions:[{"fullName":"扫码","id":"1"},{"fullName":"手机号","id":"2"}],
loginTypeProps:{"label":"fullName","value":"id" },
deviceCodeProps:{"label":"device_name","value":"device_code" },
adjustSetOptions:[{"fullName":"即时自动","id":"0"},{"fullName":"24H自动","id":"1"},{"fullName":"48H自动","id":"2"}],
adjustSetProps:{"label":"fullName","value":"id" },
adjustStatusOptions:[{"fullName":"待审核","id":"0"},{"fullName":"通过","id":"1"},{"fullName":"调整通过","id":"2"},{"fullName":"拒绝","id":"3"}],
adjustStatusProps:{"label":"fullName","value":"id" },
cleanStatusOptions:[{"fullName":"未清运","id":"0"},{"fullName":"已清运","id":"1"}],
cleanStatusProps:{"label":"fullName","value":"id" },
}
},
computed: {},
watch: {},
created() {
},
mounted() {},
methods: {
toDetail(defaultValue, modelId) {
if (!defaultValue) return
getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return
let formData = JSON.parse(res.data.formData)
formData.popupType = 'general'
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(formData, modelId, defaultValue)
})
})
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
},
goBack() {
this.$emit('refresh')
},
init(id) {
this.dataForm.id = id || 0;
this.visible = true;
this.$nextTick(() => {
if(this.dataForm.id){
this.loading = true
request({
url: '/api/scm/RecycleDeliveryOrder/detail/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
})
}
})
},
},
}
</script>

File diff suppressed because one or more lines are too long

@ -0,0 +1,683 @@
<template>
<transition name="el-zoom-in-center">
<div class="JNPF-preview-main">
<div class="JNPF-common-page-header">
<el-page-header @back="goBack"
:content="!dataForm.id ? '新建':'编辑'"/>
<div class="options">
<el-dropdown class="dropdown" placement="bottom">
<el-button style="width:70px">
<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<template v-if="dataForm.id">
<el-dropdown-item @click.native="prev" :disabled='prevDis'>
{{'上一条'}}
</el-dropdown-item>
<el-dropdown-item @click.native="next" :disabled='nextDis'>
{{'下一条'}}
</el-dropdown-item>
</template>
<el-dropdown-item type="primary" @click.native="dataFormSubmit(2)"
:loading="continueBtnLoading" :disabled='btnLoading'>
{{!dataForm.id ?'确定并新增':'确定并继续'}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button type="primary" @click="dataFormSubmit()" :loading="btnLoading" :disabled='continueBtnLoading'> </el-button>
<el-button @click="goBack"> </el-button>
</div>
</div>
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}">
<el-form ref="formRef" :model="dataForm" :rules="dataRule" size="small" label-width="150px" label-position="right" >
<template v-if="!loading">
<!-- 具体表单 -->
<el-col :span="12" >
<jnpf-form-tip-item
label="用户手机号" prop="phone" >
<JnpfInput v-model="dataForm.phone" @change="changeData('phone',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="登录方式" prop="loginType" >
<JnpfRadio v-model="dataForm.loginType" @change="changeData('loginType',-1)"
optionType="button" direction="horizontal" size="small" :options="loginTypeOptions" :props="loginTypeProps" >
</JnpfRadio>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="投递单号" prop="orderNo" >
<JnpfInput v-model="dataForm.orderNo" @change="changeData('orderNo',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="机柜编码" prop="deviceCode" >
<JnpfSelect v-model="dataForm.deviceCode" @change="changeData('deviceCode',-1)"
placeholder="请选择" clearable :style='{"width":"100%"}' :options="deviceCodeOptions" :props="deviceCodeProps" >
</JnpfSelect>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="门号" prop="doorNum" >
<JnpfInput v-model="dataForm.doorNum" @change="changeData('doorNum',-1)"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="垃圾袋编号" prop="bagNo" >
<JnpfInput v-model="dataForm.bagNo" @change="changeData('bagNo',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item>
<JnpfDivider
content="审核重量金额" contentPosition="center" >
</JnpfDivider>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="回收品大类" prop="productCode" >
<JnpfInput v-model="dataForm.productCode" @change="changeData('productCode',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="回收品子类" prop="productSubCode" >
<JnpfInput v-model="dataForm.productSubCode" @change="changeData('productSubCode',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="上报重量" prop="reportWeight" >
<JnpfInput v-model="dataForm.reportWeight" @change="changeData('reportWeight',-1)"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="桶内原重" prop="originalWeight" >
<JnpfInput v-model="dataForm.originalWeight" @change="changeData('originalWeight',-1)"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="单价" prop="price" >
<JnpfInputNumber v-model="dataForm.price" @change="changeData('price',-1)"
placeholder="数字文本" disabled isAmountChinese :step="1" >
</JnpfInputNumber>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="审核后重量" prop="adjustWeight" >
<JnpfInput v-model="dataForm.adjustWeight" @change="changeData('adjustWeight',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="总价" prop="totalPrice" >
<JnpfInputNumber v-model="dataForm.totalPrice" @change="changeData('totalPrice',-1)"
placeholder="数字文本" disabled isAmountChinese :step="1" >
</JnpfInputNumber>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="审核总价" prop="adjustPrice" >
<JnpfInputNumber v-model="dataForm.adjustPrice" @change="changeData('adjustPrice',-1)"
placeholder="数字文本" :step="1" >
</JnpfInputNumber>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="审核设置" prop="adjustSet" >
<JnpfRadio v-model="dataForm.adjustSet" @change="changeData('adjustSet',-1)"
optionType="button" direction="horizontal" size="small" :options="adjustSetOptions" :props="adjustSetProps" >
</JnpfRadio>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="审核状态 " prop="adjustStatus" >
<JnpfRadio v-model="dataForm.adjustStatus" @change="changeData('adjustStatus',-1)"
optionType="button" direction="horizontal" size="small" :options="adjustStatusOptions" :props="adjustStatusProps" >
</JnpfRadio>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item
label="图片地址" prop="jnpf_nx_recycle_delivery_photo_jnpf_fileUrl" >
<JnpfInput v-model="dataForm.jnpf_nx_recycle_delivery_photo_jnpf_fileUrl" @change="changeData('jnpf_nx_recycle_delivery_photo_jnpf_fileUrl',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item
label="审核说明" prop="adjustComm" >
<JnpfTextarea v-model="dataForm.adjustComm" @change="changeData('adjustComm',-1)"
placeholder="请输入" :style='{"width":"100%"}' true type="textarea" :autosize='{"minRows":4,"maxRows":4}' >
</JnpfTextarea>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item>
<JnpfDivider
content="清运信息" contentPosition="center" >
</JnpfDivider>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="清运员手机号" prop="cleanerPhone" >
<JnpfInput v-model="dataForm.cleanerPhone" @change="changeData('cleanerPhone',-1)"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="清运状态" prop="cleanStatus" >
<JnpfRadio v-model="dataForm.cleanStatus" @change="changeData('cleanStatus',-1)"
optionType="button" direction="horizontal" size="small" :options="cleanStatusOptions" :props="cleanStatusProps" >
</JnpfRadio>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="清运单号" prop="cleanNo" >
<JnpfInput v-model="dataForm.cleanNo" @change="changeData('cleanNo',-1)"
placeholder="请输入" readonly clearable :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="修改用户" prop="lastModifyUserId" >
<JnpfInput v-model="dataForm.lastModifyUserId" @change="changeData('lastModifyUserId',-1)"
placeholder="系统自动生成" readonly :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item
label="修改时间" prop="lastModifyTime" >
<JnpfInput v-model="dataForm.lastModifyTime" @change="changeData('lastModifyTime',-1)"
placeholder="系统自动生成" readonly :style='{"width":"100%"}'>
</JnpfInput>
</jnpf-form-tip-item>
</el-col>
<!-- 表单结束 -->
</template>
</el-form>
<SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm"
ref="selectDialog" @select="addForSelect" @close="selectDialogVisible=false"/>
</el-row>
</div>
</transition>
</template>
<script>
import request from '@/utils/request'
import {mapGetters} from "vuex";
import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
import { getDefaultCurrentValueUserId } from '@/api/permission/user'
import { getDefaultCurrentValueDepartmentId } from '@/api/permission/organize'
import { getDateDay, getLaterData, getBeforeData, getBeforeTime, getLaterTime } from '@/components/Generator/utils/index.js'
import { thousandsFormat } from "@/components/Generator/utils/index"
export default {
components: { },
props: [],
data() {
return {
dataFormSubmitType: 0,
continueBtnLoading: false,
index: 0,
prevDis: false,
nextDis: false,
allList: [],
visible: false,
loading: false,
btnLoading: false,
formRef: 'formRef',
setting:{},
eventType: '',
userBoxVisible:false,
selectDialogVisible: false,
currTableConf:{},
dataValueAll:{},
addTableConf:{
},
//
ableAll:{
},
tableRows:{
},
Vmodel:"",
currVmodel:"",
dataForm: {
phone : undefined,
loginType : "1",
orderNo : undefined,
deviceOrderNo : undefined,
deviceCode : undefined,
doorNum : undefined,
bagNo : undefined,
bucketCode : undefined,
deliverId : undefined,
productCode : undefined,
productSubCode : undefined,
reportWeight : undefined,
originalWeight : undefined,
price : undefined,
adjustWeight : undefined,
totalPrice : undefined,
adjustPrice : undefined,
adjustSet : "1",
adjustStatus : "0",
adjustComm : undefined,
cleanerPhone : undefined,
cleanStatus : "0",
cleanNo : undefined,
lastModifyUserId : undefined,
lastModifyTime : undefined,
nx_recycle_delivery_photo:
{
fileUrl:'',
},
jnpf_nx_recycle_delivery_photo_jnpf_fileUrl : '',
},
tableRequiredData: {},
dataRule:
{
},
loginTypeOptions:[{"fullName":"扫码","id":"1"},{"fullName":"手机号","id":"2"}],
loginTypeProps:{"label":"fullName","value":"id" },
deviceCodeOptions:[],
deviceCodeProps:{"label":"device_name","value":"device_code" },
adjustSetOptions:[{"fullName":"即时自动","id":"0"},{"fullName":"24H自动","id":"1"},{"fullName":"48H自动","id":"2"}],
adjustSetProps:{"label":"fullName","value":"id" },
adjustStatusOptions:[{"fullName":"待审核","id":"0"},{"fullName":"通过","id":"1"},{"fullName":"调整通过","id":"2"},{"fullName":"拒绝","id":"3"}],
adjustStatusProps:{"label":"fullName","value":"id" },
cleanStatusOptions:[{"fullName":"未清运","id":"0"},{"fullName":"已清运","id":"1"}],
cleanStatusProps:{"label":"fullName","value":"id" },
childIndex:-1,
isEdit:false,
interfaceRes: {
phone:[] ,
loginType:[] ,
orderNo:[] ,
deviceOrderNo:[] ,
deviceCode:[] ,
doorNum:[] ,
bagNo:[] ,
bucketCode:[] ,
deliverId:[] ,
productCode:[] ,
productSubCode:[] ,
reportWeight:[] ,
originalWeight:[] ,
price:[] ,
adjustWeight:[] ,
totalPrice:[] ,
adjustPrice:[] ,
adjustSet:[] ,
adjustStatus:[] ,
adjustComm:[] ,
cleanerPhone:[] ,
cleanStatus:[] ,
cleanNo:[] ,
lastModifyUserId:[] ,
lastModifyTime:[] ,
jnpf_nx_recycle_delivery_photo_jnpf_fileUrl:[] ,
},
}
},
computed: {
...mapGetters(['userInfo'])
},
watch: {},
created() {
this.dataAll()
this.initDefaultData()
this.dataValueAll = JSON.parse(JSON.stringify(this.dataForm))
},
mounted() {},
methods: {
prev() {
this.index--
if (this.index === 0) {
this.prevDis = true
}
this.nextDis = false
for (let index = 0; index < this.allList.length; index++) {
const element = this.allList[index];
if (this.index == index) {
this.getInfo(element.id)
}
}
},
next() {
this.index++
if (this.index === this.allList.length - 1) {
this.nextDis = true
}
this.prevDis = false
for (let index = 0; index < this.allList.length; index++) {
const element = this.allList[index];
if (this.index == index) {
this.getInfo(element.id)
}
}
},
getInfo(id) {
request({
url: '/api/scm/RecycleDeliveryOrder/'+ id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
});
},
goBack() {
this.visible = false
this.$emit('refreshDataList', true)
},
changeData(model, index) {
this.isEdit = false
this.childIndex = index
let modelAll = model.split("-");
let faceMode = "";
for (let i = 0; i < modelAll.length; i++) {
faceMode += modelAll[i];
}
for (let key in this.interfaceRes) {
if (key != faceMode) {
let faceReList = this.interfaceRes[key]
for (let i = 0; i < faceReList.length; i++) {
if (faceReList[i].relationField == model) {
let options = 'get' + key + 'Options';
if(this[options]){
this[options]()
}
this.changeData(key, index)
}
}
}
}
},
changeDataFormData(type, data, model,index,defaultValue) {
if(!this.isEdit) {
if (type == 2) {
for (let i = 0; i < this.dataForm[data].length; i++) {
if (index == -1) {
this.dataForm[data][i][model] = defaultValue
} else if (index == i) {
this.dataForm[data][i][model] = defaultValue
}
}
} else {
this.dataForm[data] = defaultValue
}
}
},
dataAll(){
this.getdeviceCodeOptions();
},
getdeviceCodeOptions() {
const index = this.childIndex
let templateJsonList = JSON.parse(JSON.stringify(this.interfaceRes.deviceCode))
for (let i = 0; i < templateJsonList.length; i++) {
let json = templateJsonList[i];
if(json.relationField){
let relationFieldAll = json.relationField.split("-");
let val = json.defaultValue;
if(relationFieldAll.length>1 && index>-1){
val = this.dataForm[relationFieldAll[0]+'List']&&this.dataForm[relationFieldAll[0]+'List'].length?this.dataForm[relationFieldAll[0]+'List'][index][relationFieldAll[1]]:''
}else {
val = this.dataForm[relationFieldAll]
}
json.defaultValue = val
}
}
let template ={
paramList:templateJsonList
}
getDataInterfaceRes('564713894723988869',template).then(res => {
let data = res.data
this.deviceCodeOptions = data
this.changeDataFormData(1,'deviceCode','deviceCode',index,'')
})
},
goBack() {
this.$emit('refresh')
},
clearData(){
this.dataForm = JSON.parse(JSON.stringify(this.dataValueAll))
},
init(id,isDetail,allList) {
this.prevDis = false
this.nextDis = false
this.allList = allList || []
if (allList.length) {
this.index = this.allList.findIndex(item => item.id === id)
if (this.index == 0) {
this.prevDis = true
}
if (this.index == this.allList.length - 1) {
this.nextDis = true
}
} else {
this.prevDis = true
this.nextDis = true
}
this.dataForm.id = id || 0;
this.visible = true;
this.$nextTick(() => {
if(this.dataForm.id){
this.loading = true
request({
url: '/api/scm/RecycleDeliveryOrder/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
}else{
this.clearData()
this.initDefaultData()
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
},
//
initDefaultData() {
},
//
dataFormSubmit(type) {
this.dataFormSubmitType = type ? type : 0
this.$refs['formRef'].validate((valid) => {
if (valid) {
this.request()
}
})
},
request() {
let _data =this.dataList()
if (this.dataFormSubmitType == 2) {
this.continueBtnLoading = true
} else {
this.btnLoading = true
}
if (!this.dataForm.id) {
request({
url: '/api/scm/RecycleDeliveryOrder',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
if (this.dataFormSubmitType == 2) {
this.$nextTick(() => {
this.clearData()
this.initDefaultData()
})
this.continueBtnLoading = false
return
}
this.visible = false
this.btnLoading = false
this.$emit('refresh', true)
}
})
}).catch(()=>{
this.btnLoading = false
this.continueBtnLoading = false
})
}else{
request({
url: '/api/scm/RecycleDeliveryOrder/'+this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
if (this.dataFormSubmitType == 2) return this.continueBtnLoading = false
this.visible = false
this.btnLoading = false
this.$emit('refresh', true)
}
})
}).catch(()=>{
this.btnLoading = false
this.continueBtnLoading = false
})
}
},
openSelectDialog(key) {
this.currTableConf=this.addTableConf[key]
this.currVmodel=key
this.selectDialogVisible = true
this.$nextTick(() => {
this.$refs.selectDialog.init()
})
},
addForSelect(data) {
for (let i = 0; i < data.length; i++) {
let t = data[i]
if(this['get'+this.currVmodel]){
this['get'+this.currVmodel](t)
}
}
},
dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
let timeDataValue = null;
let timeValue = Number(timeValueData)
if (timeRule) {
if (timeType == 1) {
timeDataValue = timeValue
} else if (timeType == 2) {
timeDataValue = dataValue
} else if (timeType == 3) {
timeDataValue = new Date().getTime()
} else if (timeType == 4) {
let previousDate = '';
if (timeTarget == 1 || timeTarget == 2) {
previousDate = getDateDay(timeTarget, timeType, timeValue)
timeDataValue = new Date(previousDate).getTime()
} else if (timeTarget == 3) {
previousDate = getBeforeData(timeValue)
timeDataValue = new Date(previousDate).getTime()
} else {
timeDataValue = getBeforeTime(timeTarget, timeValue).getTime()
}
} else if (timeType == 5) {
let previousDate = '';
if (timeTarget == 1 || timeTarget == 2) {
previousDate = getDateDay(timeTarget, timeType, timeValue)
timeDataValue = new Date(previousDate).getTime()
} else if (timeTarget == 3) {
previousDate = getLaterData(timeValue)
timeDataValue = new Date(previousDate).getTime()
} else {
timeDataValue = getLaterTime(timeTarget, timeValue).getTime()
}
}
}
return timeDataValue;
},
time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) {
let format = formatType == 'HH:mm' ? 'HH:mm:00' : formatType
let timeDataValue = null
if (timeRule) {
if (timeType == 1) {
timeDataValue = timeValue || '00:00:00'
if (timeDataValue.split(':').length == 3) {
timeDataValue = timeDataValue
} else {
timeDataValue = timeDataValue + ':00'
}
} else if (timeType == 2) {
timeDataValue = dataValue
} else if (timeType == 3) {
timeDataValue = this.jnpf.toDate(new Date(), format)
} else if (timeType == 4) {
let previousDate = '';
previousDate = getBeforeTime(timeTarget, timeValue)
timeDataValue = this.jnpf.toDate(previousDate, format)
} else if (timeType == 5) {
let previousDate = '';
previousDate = getLaterTime(timeTarget, timeValue)
timeDataValue = this.jnpf.toDate(previousDate, format)
}
}
return timeDataValue;
},
dataList(){
var _data = this.dataForm;
return _data;
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
this.isEdit = true
this.dataAll()
this.childIndex=-1
},
},
}
</script>

@ -0,0 +1,649 @@
<template>
<div class="JNPF-common-layout">
<div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent>
<el-col :span="6">
<el-form-item label="投递单号">
<el-input v-model="query.orderNo" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="审核状态 ">
<JnpfSelect v-model="query.adjustStatus" placeholder="请选择" clearable
:options="adjustStatusOptions"
:props="adjustStatusProps" >
</JnpfSelect>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="投递员手机号">
<el-input v-model="query.phone" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
<template v-if="showAll">
<el-col :span="6">
<el-form-item label="机柜编码">
<JnpfSelect v-model="query.deviceCode" placeholder="请选择" clearable
:options="deviceCodeOptions"
:props="deviceCodeProps" multiple >
</JnpfSelect>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="门号">
<el-input v-model="query.doorNum" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="桶编号">
<el-input v-model="query.bucketCode" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="垃圾袋编号">
<el-input v-model="query.bagNo" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="清运员手机号">
<el-input v-model="query.cleanerPhone" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="清运状态">
<JnpfSelect v-model="query.cleanStatus" placeholder="请选择" clearable
:options="cleanStatusOptions"
:props="cleanStatusProps" >
</JnpfSelect>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="清运单号">
<el-input v-model="query.cleanNo" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
</template>
<el-col :span="6">
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
<el-button type="text" icon="el-icon-arrow-down" @click="showAll=true" v-if="!showAll">
展开
</el-button>
<el-button type="text" icon="el-icon-arrow-up" @click="showAll=false" v-else>
收起
</el-button>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head">
<div>
<el-button type="primary" icon="icon-ym icon-ym-btn-add" @click="addOrUpdateHandle()">
</el-button>
</div>
<div class="JNPF-common-head-right">
<el-tooltip content="高级查询" placement="top" v-if="true">
<el-link icon="icon-ym icon-ym-filter JNPF-common-head-icon" :underline="false"
@click="openSuperQuery()" />
</el-tooltip>
<el-tooltip effect="dark" :content="$t('common.refresh')" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="initData()" />
</el-tooltip>
</div>
</div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange'
:span-method="arraySpanMethod"
>
<el-table-column
prop="orderNo"
label="投递单号" align="left"
>
</el-table-column>
<el-table-column
prop="phone"
label="用户手机号" align="left"
>
</el-table-column>
<el-table-column
prop="deviceCode"
label="机柜编码" align="left"
>
</el-table-column>
<el-table-column
prop="bucketCode"
label="桶编号" align="left"
>
</el-table-column>
<el-table-column
prop="doorNum"
label="门号" align="left"
>
</el-table-column>
<el-table-column
prop="bagNo"
label="垃圾袋编号" align="left"
>
</el-table-column>
<el-table-column
prop="originalWeight"
label="桶内原重" align="left"
>
</el-table-column>
<el-table-column
prop="reportWeight"
label="上报重量" align="left"
>
</el-table-column>
<el-table-column
prop="adjustWeight"
label="审核后重量" align="left"
>
</el-table-column>
<el-table-column
prop="price"
label="单价" align="left"
>
<template slot-scope="scope" v-if="scope.row.price" >
<JnpfNumber v-model="scope.row.price" :thousands="false"/>
</template>
</el-table-column>
<el-table-column
prop="adjustPrice"
label="审核总价" align="left"
>
<template slot-scope="scope" v-if="scope.row.adjustPrice" >
<JnpfNumber v-model="scope.row.adjustPrice" :thousands="false"/>
</template>
</el-table-column>
<el-table-column
prop="totalPrice"
label="总价" align="left"
>
<template slot-scope="scope" v-if="scope.row.totalPrice" >
<JnpfNumber v-model="scope.row.totalPrice" :thousands="false"/>
</template>
</el-table-column>
<el-table-column label="审核状态 " prop="adjustStatus" algin="left"
>
<template slot-scope="scope">
{{ scope.row.adjustStatus}}
</template>
</el-table-column>
<el-table-column
prop="productCode"
label="回收品大类" align="left"
>
</el-table-column>
<el-table-column
prop="productSubCode"
label="回收品子类" align="left"
>
</el-table-column>
<el-table-column
prop="adjustComm"
label="审核说明" align="left"
>
</el-table-column>
<el-table-column label="登录方式" prop="loginType" algin="left"
>
<template slot-scope="scope">
{{ scope.row.loginType}}
</template>
</el-table-column>
<el-table-column label="清运状态" prop="cleanStatus" algin="left"
>
<template slot-scope="scope">
{{ scope.row.cleanStatus}}
</template>
</el-table-column>
<el-table-column
prop="cleanNo"
label="清运单号" align="left"
>
</el-table-column>
<el-table-column
prop="cleanerPhone"
label="清运员手机号" align="left"
>
</el-table-column>
<el-table-column
prop="lastModifyUserId"
label="修改用户" align="left"
>
</el-table-column>
<el-table-column
prop="lastModifyTime"
label="修改时间" align="left"
>
</el-table-column>
<el-table-column
prop="jnpf_nx_recycle_delivery_photo_jnpf_fileUrl"
label="图片地址" align="left"
>
</el-table-column>
<el-table-column label="操作"
fixed="right" width="150" >
<template slot-scope="scope" >
<el-button type="text"
@click="addOrUpdateHandle(scope.row)" >编辑
</el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button>
<el-button type="text"
@click="goDetail(scope.row.id)">详情
</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" />
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
<ToFormDetail v-if="toFormDetailVisible" ref="toFormDetail" @close="toFormDetailVisible = false" />
<SuperQuery v-if="superQueryVisible" ref="SuperQuery" :columnOptions="superQueryJson"
@superQuery="superQuery" />
</div>
</template>
<script>
import request from '@/utils/request'
import {mapGetters} from "vuex";
import {getDictionaryDataSelector} from '@/api/systemData/dictionary'
import JNPFForm from './form'
import Detail from './Detail'
import ExportBox from '@/components/ExportBox'
import ToFormDetail from '@/views/basic/dynamicModel/list/detail'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface'
import { getConfigData } from '@/api/onlineDev/visualDev'
import { getDefaultCurrentValueUserIdAsync } from '@/api/permission/user'
import { getDefaultCurrentValueDepartmentIdAsync } from '@/api/permission/organize'
import columnList from './columnList'
import { thousandsFormat } from "@/components/Generator/utils/index"
import SuperQuery from '@/components/SuperQuery'
import superQueryJson from './superQueryJson'
export default {
components: {
JNPFForm,
Detail,
ExportBox,ToFormDetail , SuperQuery
},
data() {
return {
keyword:'',
expandsTree: true,
refreshTree: true,
toFormDetailVisible:false,
expandObj:{},
columnOptions: [],
mergeList: [],
exportList:[],
columnList,
showAll: false,
superQueryVisible: false,
superQueryJson,
uploadBoxVisible: false,
detailVisible: false,
query: {
orderNo:undefined,
adjustStatus:undefined,
phone:undefined,
deviceCode:undefined,
doorNum:undefined,
bucketCode:undefined,
bagNo:undefined,
cleanerPhone:undefined,
cleanStatus:undefined,
cleanNo:undefined,
},
treeProps: {
children: 'children',
label: 'fullName',
value: 'id',
isLeaf: 'isLeaf'
},
list: [],
listLoading: true,
total: 0,
queryData: {},
listQuery: {
superQueryJson: '',
currentPage: 1,
pageSize: 20,
sort: "desc",
sidx: "",
},
formVisible: false,
flowVisible: false,
flowListVisible: false,
flowList: [],
exportBoxVisible: false,
loginTypeOptions:[{"fullName":"扫码","id":"1"},{"fullName":"手机号","id":"2"}],
loginTypeProps:{"label":"fullName","value":"id" },
deviceCodeOptions:[],
deviceCodeProps:{"label":"device_name","value":"device_code" },
adjustSetOptions:[{"fullName":"即时自动","id":"0"},{"fullName":"24H自动","id":"1"},{"fullName":"48H自动","id":"2"}],
adjustSetProps:{"label":"fullName","value":"id" },
adjustStatusOptions:[{"fullName":"待审核","id":"0"},{"fullName":"通过","id":"1"},{"fullName":"调整通过","id":"2"},{"fullName":"拒绝","id":"3"}],
adjustStatusProps:{"label":"fullName","value":"id" },
cleanStatusOptions:[{"fullName":"未清运","id":"0"},{"fullName":"已清运","id":"1"}],
cleanStatusProps:{"label":"fullName","value":"id" },
interfaceRes: {
},
}
},
computed: {
...mapGetters(['userInfo']),
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
this.getColumnList(),
this.initSearchDataAndListData()
this.getdeviceCodeOptions();
this.queryData = JSON.parse(JSON.stringify(this.query))
},
methods: {
toDetail(defaultValue, modelId) {
if (!defaultValue) return
getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return
let formData = JSON.parse(res.data.formData)
formData.popupType = 'general'
this.toFormDetailVisible = true
this.$nextTick(() => {
this.$refs.toFormDetail.init(formData, modelId, defaultValue)
})
})
},
toggleTreeExpand(expands) {
this.refreshTree = false
this.expandsTree = expands
this.$nextTick(() => {
this.refreshTree = true
this.$nextTick(() => {
this.$refs.treeBox.setCurrentKey(null)
})
})
},
filterNode(value, data) {
if (!value) return true;
return data[this.treeProps.label].indexOf(value) !== -1;
},
loadNode(node, resolve) {
const nodeData = node.data
const config ={
treeInterfaceId:"",
treeTemplateJson:[]
}
if (config.treeInterfaceId) {
//
if (config.treeTemplateJson && config.treeTemplateJson.length) {
for (let i = 0; i < config.treeTemplateJson.length; i++) {
const element = config.treeTemplateJson[i];
element.defaultValue = nodeData[element.relationField] || ''
}
}
//
let query = {
paramList: config.treeTemplateJson || [],
}
//
getDataInterfaceRes(config.treeInterfaceId, query).then(res => {
let data = res.data
if (Array.isArray(data)) {
resolve(data);
} else {
resolve([]);
}
})
}
},
getColumnList() {
//
this.columnOptions = this.transformColumnList(this.columnList)
},
transformColumnList(columnList) {
let list = []
for (let i = 0; i < columnList.length; i++) {
const e = columnList[i];
if (!e.prop.includes('-')) {
list.push(e)
} else {
let prop = e.prop.split('-')[0]
let label = e.label.split('-')[0]
let vModel = e.prop.split('-')[1]
let newItem = {
align: "center",
jnpfKey: "table",
prop,
label,
children: []
}
e.vModel = vModel
if (!this.expandObj.hasOwnProperty(`${prop}Expand`)) this.$set(this.expandObj, `${prop}Expand`, false)
if (!list.some(o => o.prop === prop)) list.push(newItem)
for (let i = 0; i < list.length; i++) {
if (list[i].prop === prop) {
list[i].children.push(e)
break
}
}
}
}
this.getMergeList(list)
this.getExportList(list)
return list
},
arraySpanMethod({ column }) {
for (let i = 0; i < this.mergeList.length; i++) {
if (column.property == this.mergeList[i].prop) {
return [this.mergeList[i].rowspan, this.mergeList[i].colspan]
}
}
},
getMergeList(list) {
let newList = JSON.parse(JSON.stringify(list))
newList.forEach(item => {
if (item.children && item.children.length) {
let child = {
prop: item.prop + '-child-first'
}
item.children.unshift(child)
}
})
newList.forEach(item => {
if (item.children && item.children.length ) {
item.children.forEach((child, index) => {
if (index == 0) {
this.mergeList.push({
prop: child.prop,
rowspan: 1,
colspan: item.children.length
})
} else {
this.mergeList.push({
prop: child.prop,
rowspan: 0,
colspan: 0
})
}
})
} else {
this.mergeList.push({
prop: item.prop,
rowspan: 1,
colspan: 1
})
}
})
},
getExportList(list) {
let exportList = []
for (let i = 0; i < list.length; i++) {
if (list[i].jnpfKey === 'table') {
for (let j = 0; j < list[i].children.length; j++) {
exportList.push(list[i].children[j])
}
} else {
exportList.push(list[i])
}
}
this.exportList = exportList
},
getdeviceCodeOptions() {
getDataInterfaceRes('564713894723988869').then(res => {
let data = res.data
this.deviceCodeOptions = data
})
},
goDetail(id){
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({column, prop, order}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
async initSearchDataAndListData() {
await this.initSearchData()
this.initData()
},
//
async initSearchData() {
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
keyword: this.keyword,
dataType: 0,
menuId:this.menuId,
moduleId:'565540808741097605',
type:1,
};
request({
url: `/api/scm/RecycleDeliveryOrder/getList`,
method: 'post',
data: _query
}).then(res => {
var _list =res.data.list;
this.list = _list.map(o => ({
...o,
...this.expandObj,
}))
this.total = res.data.pagination.total
this.listLoading = false
})
},
handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning'
}).then(() => {
request({
url: `/api/scm/RecycleDeliveryOrder/${id}`,
method: 'DELETE'
}).then(res => {
this.$message({
type: 'success',
message: res.msg,
onClose: () => {
this.initData()
}
});
})
}).catch(() => {
});
},
handelUpload(){
this.uploadBoxVisible = true
this.$nextTick(() => {
this.$refs.UploadBox.init("","scm/RecycleDeliveryOrder")
})
},
openSuperQuery() {
this.superQueryVisible = true
this.$nextTick(() => {
this.$refs.SuperQuery.init()
})
},
superQuery(queryJson) {
this.listQuery.superQueryJson = queryJson
this.listQuery.currentPage = 1
this.initData()
},
addOrUpdateHandle(row, isDetail) {
let id = row?row.id:""
this.formVisible = true
this.$nextTick(() => {
this.$refs.JNPFForm.init(id, isDetail,this.list)
})
},
exportData() {
this.exportBoxVisible = true
this.$nextTick(() => {
this.$refs.ExportBox.init(this.exportList)
})
},
download(data) {
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId}
request({
url: `/api/scm/RecycleDeliveryOrder/Actions/Export`,
method: 'post',
data: query
}).then(res => {
if (!res.data.url) return
this.jnpf.downloadFile(res.data.url)
this.$refs.ExportBox.visible = false
this.exportBoxVisible = false
})
},
search() {
this.listQuery.currentPage=1
this.listQuery.pageSize=20
this.listQuery.sort="desc"
this.listQuery.sidx=""
this.initData()
},
refresh(isrRefresh) {
this.formVisible = false
if (isrRefresh) this.reset()
},
reset() {
this.query = JSON.parse(JSON.stringify(this.queryData))
this.search()
},
colseFlow(isrRefresh) {
this.flowVisible = false
if (isrRefresh) this.reset()
},
}
}
</script>

File diff suppressed because one or more lines are too long

@ -1,175 +1,180 @@
<template>
<el-dialog title="详情"
:close-on-click-modal="false" append-to-body
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
width="600px">
<el-row :gutter="15" class="">
<el-form ref="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" >
<template v-if="!loading">
<el-col :span="24" >
<jnpf-form-tip-item label="设备编码"
prop="deviceCode" >
<p>{{dataForm.deviceCode}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="设备名称"
prop="deviceName" tip-label="设备名称" >
<p>{{dataForm.deviceName}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="所在城市"
prop="city" >
<p>{{dataForm.city}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="地址"
prop="address" >
<p>{{dataForm.address}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="投用状态"
prop="useStatus" >
<p>{{ dataForm.useStatus }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="设备状态"
prop="status" >
<p>{{ dataForm.status }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="分配商户"
prop="beLongCompanyId" tip-label="绑定商户" >
<p>{{dataForm.beLongCompanyId}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="分配回收站"
prop="beLongStationCode" tip-label="绑定回收站" >
<p>{{dataForm.beLongStationCode}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="设备总重"
prop="boxWeight" >
<p>{{dataForm.boxWeight}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="修改用户"
prop="lastModifyUserId" >
<p>{{dataForm.lastModifyUserId}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="修改时间"
prop="lastModifyTime" >
<p>{{dataForm.lastModifyTime}}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="所属组织"
prop="organizeJsonId" >
<p>{{dataForm.organizeJsonId}}</p>
</jnpf-form-tip-item>
</el-col>
</template>
</el-form>
<el-dialog title="详情"
:close-on-click-modal="false" append-to-body
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
width="600px">
<el-row :gutter="15" class="">
<el-form ref="formRef" :model="dataForm" size="small" label-width="100px" label-position="right">
<template v-if="!loading">
<el-col :span="24">
<jnpf-form-tip-item label="设备编码"
prop="deviceCode">
<p>{{ dataForm.deviceCode }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="设备名称"
prop="deviceName" tip-label="设备名称">
<p>{{ dataForm.deviceName }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="所在城市"
prop="city">
<p>{{ dataForm.city }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="地址"
prop="address">
<p>{{ dataForm.address }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="投用状态"
prop="useStatus">
<p>{{ dataForm.useStatus }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="设备状态"
prop="status">
<p>{{ dataForm.status }} </p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="分配商户"
prop="beLongCompanyId" tip-label="绑定商户">
<p>{{ dataForm.beLongCompanyId }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="分配回收站"
prop="beLongStationCode" tip-label="绑定回收站">
<p>{{ dataForm.beLongStationCode }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="设备总重"
prop="boxWeight">
<p>{{ dataForm.boxWeight }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="修改用户"
prop="lastModifyUserId">
<p>{{ dataForm.lastModifyUserId }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="修改时间"
prop="lastModifyTime">
<p>{{ dataForm.lastModifyTime }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24">
<jnpf-form-tip-item label="所属组织"
prop="organizeJsonId">
<p>{{ dataForm.organizeJsonId }}</p>
</jnpf-form-tip-item>
</el-col>
</template>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
</span>
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" />
</el-dialog>
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false"/>
</el-dialog>
</template>
<script>
import request from '@/utils/request'
import request from '@/utils/request'
import { getConfigData } from '@/api/onlineDev/visualDev'
import jnpf from '@/utils/jnpf'
import Detail from '@/views/basic/dynamicModel/list/detail'
import { thousandsFormat } from "@/components/Generator/utils/index"
export default {
components: { Detail},
props: [],
data() {
return {
visible: false,
detailVisible: false,
loading: false,
import {getConfigData} from '@/api/onlineDev/visualDev'
import jnpf from '@/utils/jnpf'
import Detail from '@/views/basic/dynamicModel/list/detail'
import {thousandsFormat} from "@/components/Generator/utils/index"
dataForm: {
id :'',
deviceCode : '',
deviceName : '',
city : [],
address : '',
useStatus : "1",
status : "1",
beLongCompanyId : "",
beLongStationCode : "",
ipAddress : '',
boxWeight : '',
latitude : '',
longitude : '',
lastModifyUserId : "",
lastModifyTime : "",
organizeJsonId : "",
},
useStatusOptions:[{"fullName":"启用","id":"1"},{"fullName":"暂停服务","id":"2"},{"fullName":"关闭","id":"0"}],
useStatusProps:{"label":"fullName","value":"id" },
statusOptions:[{"fullName":"离线","id":"0"},{"fullName":"在线","id":"1"}],
statusProps:{"label":"fullName","value":"id" },
export default {
components: {Detail},
props: [],
data() {
return {
visible: false,
detailVisible: false,
loading: false,
}
},
computed: {},
watch: {},
created() {
dataForm: {
id: '',
deviceCode: '',
deviceName: '',
city: [],
address: '',
useStatus: "1",
status: "1",
beLongCompanyId: "",
beLongStationCode: "",
ipAddress: '',
boxWeight: '',
latitude: '',
longitude: '',
lastModifyUserId: "",
lastModifyTime: "",
organizeJsonId: "",
},
useStatusOptions: [{"fullName": "启用", "id": "1"}, {"fullName": "暂停服务", "id": "2"}, {
"fullName": "关闭",
"id": "0"
}],
useStatusProps: {"label": "fullName", "value": "id"},
statusOptions: [{"fullName": "离线", "id": "0"}, {"fullName": "在线", "id": "1"}],
statusProps: {"label": "fullName", "value": "id"},
},
mounted() {},
methods: {
toDetail(defaultValue, modelId) {
if (!defaultValue) return
getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return
let formData = JSON.parse(res.data.formData)
formData.popupType = 'general'
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(formData, modelId, defaultValue)
})
})
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
},
}
},
computed: {},
watch: {},
created() {
init(id) {
this.dataForm.id = id || 0;
this.visible = true;
this.$nextTick(() => {
if(this.dataForm.id){
this.loading = true
request({
url: '/api/scm/RecycleDevice/detail/'+this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
})
}
},
mounted() {
},
methods: {
toDetail(defaultValue, modelId) {
if (!defaultValue) return
getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return
let formData = JSON.parse(res.data.formData)
formData.popupType = 'general'
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(formData, modelId, defaultValue)
})
})
},
dataInfo(dataAll) {
let _dataAll = dataAll
this.dataForm = _dataAll
},
})
},
},
}
init(id) {
this.dataForm.id = id || 0;
this.visible = true;
this.$nextTick(() => {
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/scm/RecycleDevice/detail/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
})
}
})
},
},
}
</script>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save