Compare commits

...

2 Commits

Author SHA1 Message Date
vayne d88db60ec5 Merge branch 'master' of http://222.71.165.188:3000/yangshiqiang/NX-zhihui
3 months ago
vayne f17e1d3487 园区管理和区域修改
3 months ago

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jnpf.mapper.AreaMapper">
<select id="queryAreaList" resultType="jnpf.entity.AreaEntity">
SELECT
a.id,
a.code,
a.name,
a.pid,
a.description,
a.type,
a.space_num as spaceNum,
a.space_area as spaceArea,
a.space_type as spaceType,
a.state,
a.unit_price as unitPrice,
a.lease_start_time as leaseStartTime,
a.lease_end_ime as leaseEndIme,
a.sort,
a.remark,
a.f_creator_time as createTime,
a.f_creator_user_id as creatorUserId,
a.f_last_modify_time as laseModifyTime,
a.f_last_modify_user_id as lastModifyUserId,
a.f_delete_time as deleteTime,
a.f_delete_user_id as deleteUserId,
a.f_delete_mark as deleteMark,
a.f_tenant_id as tenantId,
a.company_id as companyId,
a.department_id as departmentId,
a.organize_json_id as organizeJsonId,
a.f_version as version,
a.f_flow_id as flowId,
b.name as parkName
FROM
yq_park_area_space a
LEFT JOIN yq_park_area_space b on a.pid = b.id and b.f_delete_mark is null
${ew.customSqlSegment}
<if test="areaPagination.sidx != null and areaPagination.sidx != ''">
ORDER BY ${areaPagination.sidx} ${areaPagination.sort}
</if>
</select>
</mapper>

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jnpf.mapper.RegionalMapper">
</mapper>

@ -1,8 +1,15 @@
package jnpf.mapper; package jnpf.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.entity.AreaEntity; import jnpf.entity.AreaEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import jnpf.model.area.AreaPagination;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* area * area
@ -13,4 +20,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface AreaMapper extends BaseMapper<AreaEntity> { public interface AreaMapper extends BaseMapper<AreaEntity> {
IPage<AreaEntity> queryAreaList(@Param("page") Page<AreaEntity> page, @Param("areaPagination") AreaPagination areaPagination, @Param("ew") QueryWrapper<AreaEntity> areaQueryWrapper);
} }

@ -18,6 +18,7 @@ import java.util.regex.Pattern;
import jnpf.model.QueryModel; import jnpf.model.QueryModel;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel; import jnpf.base.model.ColumnDataModel;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel; import jnpf.database.model.superQuery.SuperJsonModel;
@ -30,6 +31,9 @@ import jnpf.util.*;
import java.util.*; import java.util.*;
import jnpf.base.UserInfo; import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity; import jnpf.permission.entity.UserEntity;
import javax.annotation.Resource;
/** /**
* *
* area * area
@ -45,6 +49,8 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
@Autowired @Autowired
private UserProvider userProvider; private UserProvider userProvider;
@Resource
private AreaMapper areaMapper;
@Override @Override
public List<AreaEntity> getList(AreaPagination areaPagination){ public List<AreaEntity> getList(AreaPagination areaPagination){
@ -150,19 +156,37 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
String value = areaPagination.getName() instanceof List ? String value = areaPagination.getName() instanceof List ?
JsonUtil.getObjectToString(areaPagination.getName()) : JsonUtil.getObjectToString(areaPagination.getName()) :
String.valueOf(areaPagination.getName()); String.valueOf(areaPagination.getName());
areaQueryWrapper.lambda().like(AreaEntity::getName,value); areaQueryWrapper.like("a.name",value);
} }
if (StringUtils.isNotEmpty(areaPagination.getType())){
if (areaPagination.getType().equals("1")){
if(ObjectUtil.isNotEmpty(areaPagination.getPid())){ if(ObjectUtil.isNotEmpty(areaPagination.getPid())){
areaNum++; areaNum++;
String value = areaPagination.getPid() instanceof List ? String value = areaPagination.getPid() instanceof List ?
JsonUtil.getObjectToString(areaPagination.getPid()) : JsonUtil.getObjectToString(areaPagination.getPid()) :
String.valueOf(areaPagination.getPid()); String.valueOf(areaPagination.getPid());
areaQueryWrapper.lambda().like(AreaEntity::getPid,value); areaQueryWrapper.eq("a.pid",value);
} }
}else if (areaPagination.getType().equals("2")){
if(ObjectUtil.isNotEmpty(areaPagination.getPid())){
areaNum++;
String value = areaPagination.getPid() instanceof List ?
JsonUtil.getObjectToString(areaPagination.getPid()) :
String.valueOf(areaPagination.getPid());
areaQueryWrapper.eq("a.id",value);
}
}
}else {
areaNum++;
areaQueryWrapper.eq("a.type","2");
}
} }
if(!isPc){ if(!isPc){
@ -182,7 +206,7 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
if (intersection.size()==0){ if (intersection.size()==0){
intersection.add("jnpfNullList"); intersection.add("jnpfNullList");
} }
areaQueryWrapper.lambda().in(AreaEntity::getId, intersection); areaQueryWrapper.in("a.id", intersection);
} }
//是否有高级查询 //是否有高级查询
if (StringUtil.isNotEmpty(superOp)){ if (StringUtil.isNotEmpty(superOp)){
@ -190,7 +214,7 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
allSuperIDlist.add("jnpfNullList"); allSuperIDlist.add("jnpfNullList");
} }
List<String> finalAllSuperIDlist = allSuperIDlist; List<String> finalAllSuperIDlist = allSuperIDlist;
areaQueryWrapper.lambda().and(t->t.in(AreaEntity::getId, finalAllSuperIDlist)); areaQueryWrapper.and(t->t.in("a.id", finalAllSuperIDlist));
} }
//是否有数据过滤查询 //是否有数据过滤查询
if (StringUtil.isNotEmpty(ruleOp)){ if (StringUtil.isNotEmpty(ruleOp)){
@ -198,14 +222,14 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
allRuleIDlist.add("jnpfNullList"); allRuleIDlist.add("jnpfNullList");
} }
List<String> finalAllRuleIDlist = allRuleIDlist; List<String> finalAllRuleIDlist = allRuleIDlist;
areaQueryWrapper.lambda().and(t->t.in(AreaEntity::getId, finalAllRuleIDlist)); areaQueryWrapper.and(t->t.in("a.id", finalAllRuleIDlist));
} }
//假删除标志 //假删除标志
areaQueryWrapper.lambda().isNull(AreaEntity::getDeleteMark); areaQueryWrapper.isNull("a.f_delete_mark");
//排序 //排序
if(StringUtil.isEmpty(areaPagination.getSidx())){ if(StringUtil.isEmpty(areaPagination.getSidx())){
areaQueryWrapper.lambda().orderByDesc(AreaEntity::getId); areaQueryWrapper.orderByDesc("a.id");
}else{ }else{
try { try {
String sidx = areaPagination.getSidx(); String sidx = areaPagination.getSidx();
@ -214,7 +238,8 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
Field declaredField = areaEntity.getClass().getDeclaredField(strs[0]); Field declaredField = areaEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true); declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value(); String value = declaredField.getAnnotation(TableField.class).value();
areaQueryWrapper="asc".equals(areaPagination.getSort().toLowerCase())?areaQueryWrapper.orderByAsc(value):areaQueryWrapper.orderByDesc(value); // areaQueryWrapper="asc".equals(areaPagination.getSort().toLowerCase())?areaQueryWrapper.orderByAsc(value):areaQueryWrapper.orderByDesc(value);
areaPagination.setSidx("a."+value);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -223,7 +248,7 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
if("0".equals(dataType)){ if("0".equals(dataType)){
if((total>0 && AllIdList.size()>0) || total==0){ if((total>0 && AllIdList.size()>0) || total==0){
Page<AreaEntity> page=new Page<>(areaPagination.getCurrentPage(), areaPagination.getPageSize()); Page<AreaEntity> page=new Page<>(areaPagination.getCurrentPage(), areaPagination.getPageSize());
IPage<AreaEntity> userIPage=this.page(page, areaQueryWrapper); IPage<AreaEntity> userIPage=areaMapper.queryAreaList(page,areaPagination, areaQueryWrapper);
return areaPagination.setData(userIPage.getRecords(),userIPage.getTotal()); return areaPagination.setData(userIPage.getRecords(),userIPage.getTotal());
}else{ }else{
List<AreaEntity> list = new ArrayList(); List<AreaEntity> list = new ArrayList();

@ -3,6 +3,17 @@ package jnpf.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.annotation.TableField; 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 me.zhyd.oauth.utils.StringUtils;
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.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -159,8 +170,12 @@ public class ParkServiceImpl extends ServiceImpl<ParkMapper, ParkEntity> impleme
String.valueOf(parkPagination.getName()); String.valueOf(parkPagination.getName());
parkQueryWrapper.lambda().like(ParkEntity::getName, value); parkQueryWrapper.lambda().like(ParkEntity::getName, value);
}
}
if (StringUtils.isNotEmpty(parkPagination.getType())) {
parkNum++;
parkQueryWrapper.lambda().eq(ParkEntity::getType, parkPagination.getType());
}
} }
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList); List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
if (total > 0) { if (total > 0) {

@ -89,7 +89,7 @@ public class AreaRenameController {
realList.add(areaMap); realList.add(areaMap);
} }
//数据转换 //数据转换
realList = generaterSwapUtil.swapDataList(realList, AreaConstant.getFormData(), AreaConstant.getColumnData(), areaPagination.getModuleId(),false); // realList = generaterSwapUtil.swapDataList(realList, AreaConstant.getFormData(), AreaConstant.getColumnData(), areaPagination.getModuleId(),false);
//返回对象 //返回对象
PageListVO vo = new PageListVO(); PageListVO vo = new PageListVO();

@ -73,4 +73,7 @@ public class AreaEntity {
private Integer version; private Integer version;
@TableField("F_FLOW_ID") @TableField("F_FLOW_ID")
private String flowId; private String flowId;
@TableField(exist = false)
private String parkName;
} }

@ -33,4 +33,7 @@ public class AreaPagination extends Pagination {
/** tree */ /** tree */
@JsonProperty("pid") @JsonProperty("pid")
private Object pid; private Object pid;
/** type */
@JsonProperty("type")
private String type;
} }

@ -30,4 +30,7 @@ public class ParkPagination extends Pagination {
/** 园区名称 */ /** 园区名称 */
@JsonProperty("name") @JsonProperty("name")
private Object name; private Object name;
/** 类型 */
@JsonProperty("type")
private String type;
} }

@ -1,71 +1,76 @@
<template> <template>
<transition name="el-zoom-in-center"> <el-dialog
<div class="JNPF-preview-main"> title="详情"
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" /> :close-on-click-modal="false"
<div class="JNPF-common-page-header"> append-to-body
<el-page-header @back="goBack" :visible.sync="visible"
content="详情"/> class="JNPF-dialog JNPF-dialog_center"
<div class="options"> lock-scroll
<el-button @click="goBack"> </el-button> width="1000px"
</div> >
</div> <el-row :gutter="15" class="">
<el-row :gutter="15" class=" main" :style="{margin: '0 auto',width: '100%'}"> <el-form
<el-form ref="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" > ref="formRef"
:model="dataForm"
size="small"
label-width="100px"
label-position="right"
>
<template v-if="!loading"> <template v-if="!loading">
<el-col :span="24" > <el-col :span="24">
<jnpf-form-tip-item label="园区名称" <jnpf-form-tip-item label="园区名称" prop="pid">
prop="pid" > <p>{{ dataForm.pid }}</p>
<p>{{dataForm.pid}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<jnpf-form-tip-item label="区域编码" <jnpf-form-tip-item label="区域编码" prop="code">
prop="code" > <p>{{ dataForm.code }}</p>
<p>{{dataForm.code}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<jnpf-form-tip-item label="空间数量" <jnpf-form-tip-item label="空间数量" prop="spaceNum">
prop="spaceNum" > <JnpfNumber
<JnpfNumber v-model="dataForm.spaceNum" v-model="dataForm.spaceNum"
placeholder="数字文本" disabled placeholder="数字文本"
:step="1" > disabled
:step="1"
>
</JnpfNumber> </JnpfNumber>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<jnpf-form-tip-item label="区域名称" <jnpf-form-tip-item label="区域名称" prop="name">
prop="name" > <p>{{ dataForm.name }}</p>
<p>{{dataForm.name}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<jnpf-form-tip-item label="区域描述" <jnpf-form-tip-item label="区域描述" prop="description">
prop="description" > <p>{{ dataForm.description }}</p>
<p>{{dataForm.description}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<jnpf-form-tip-item label="备注" <jnpf-form-tip-item label="备注" prop="remark">
prop="remark" > <p>{{ dataForm.remark }}</p>
<p>{{dataForm.remark}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
</template> </template>
</el-form> </el-form>
</el-row> </el-row>
</div> <span slot="footer" class="dialog-footer">
</transition> <el-button @click="visible = false"> </el-button>
</span>
<Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" />
</el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from "@/utils/request";
import { getConfigData } from '@/api/onlineDev/visualDev' import { getConfigData } from "@/api/onlineDev/visualDev";
import jnpf from '@/utils/jnpf' import jnpf from "@/utils/jnpf";
import Detail from '@/views/basic/dynamicModel/list/detail' import Detail from "@/views/basic/dynamicModel/list/detail";
import { thousandsFormat } from "@/components/Generator/utils/index" import { thousandsFormat } from "@/components/Generator/utils/index";
export default { export default {
components: { Detail}, components: { Detail },
props: [], props: [],
data() { data() {
return { return {
@ -74,62 +79,54 @@
loading: false, loading: false,
dataForm: { dataForm: {
id :'', id: "",
pid : '', pid: "",
code : '', code: "",
spaceNum : '', spaceNum: "",
name : '', name: "",
description : '', description: "",
remark : '', remark: ""
},
} }
};
}, },
computed: {}, computed: {},
watch: {}, watch: {},
created() { created() {},
},
mounted() {}, mounted() {},
methods: { methods: {
toDetail(defaultValue, modelId) { toDetail(defaultValue, modelId) {
if (!defaultValue) return if (!defaultValue) return;
getConfigData(modelId).then(res => { getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return if (!res.data || !res.data.formData) return;
let formData = JSON.parse(res.data.formData) let formData = JSON.parse(res.data.formData);
formData.popupType = 'general' formData.popupType = "general";
this.detailVisible = true this.detailVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.Detail.init(formData, modelId, defaultValue) this.$refs.Detail.init(formData, modelId, defaultValue);
}) });
}) });
}, },
dataInfo(dataAll){ dataInfo(dataAll) {
let _dataAll =dataAll let _dataAll = dataAll;
this.dataForm = _dataAll this.dataForm = _dataAll;
}, },
goBack() {
this.$emit('refresh')
},
init(id) { init(id) {
this.dataForm.id = id || 0; this.dataForm.id = id || 0;
this.visible = true; this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
if(this.dataForm.id){ if (this.dataForm.id) {
this.loading = true this.loading = true;
request({ request({
url: '/api/example/Area/detail/'+this.dataForm.id, url: "/api/example/Area/detail/" + this.dataForm.id,
method: 'get' method: "get"
}).then(res => { }).then(res => {
this.dataInfo(res.data) this.dataInfo(res.data);
this.loading = false this.loading = false;
}) });
} }
});
})
},
},
} }
}
};
</script> </script>

@ -1,109 +1,148 @@
<template>
<el-dialog
:title="!dataForm.id ? '新建' : '编辑'"
<template> :close-on-click-modal="false"
<transition name="el-zoom-in-center"> append-to-body
<div class="JNPF-preview-main"> :visible.sync="visible"
<div class="JNPF-common-page-header"> class="JNPF-dialog JNPF-dialog_center"
<el-page-header @back="goBack" lock-scroll
:content="!dataForm.id ? '新建':'编辑'"/> width="1000px"
<div class="options"> >
<el-dropdown class="dropdown" placement="bottom"> <el-row :gutter="15" class="">
<el-button style="width:70px"> <el-form
<i class="el-icon-arrow-down el-icon--right"></i> ref="formRef"
</el-button> :model="dataForm"
<el-dropdown-menu slot="dropdown"> :rules="dataRule"
<template v-if="dataForm.id"> size="small"
<el-dropdown-item @click.native="prev" :disabled='prevDis'> label-width="100px"
{{'上一条'}} label-position="right"
</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="100px" label-position="right" >
<template v-if="!loading"> <template v-if="!loading">
<!-- 具体表单 --> <!-- 具体表单 -->
<el-col :span="24" > <el-col :span="24">
<jnpf-form-tip-item <jnpf-form-tip-item label="园区名称" prop="pid">
label="园区名称" prop="pid" > <JnpfInput
<JnpfInput v-model="dataForm.pid" @change="changeData('pid',-1)" v-model="dataForm.pid"
placeholder="请输入" clearable :style='{"width":"100%"}'> @change="changeData('pid', -1)"
placeholder="请输入"
clearable
:style="{ width: '100%' }"
>
</JnpfInput> </JnpfInput>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<jnpf-form-tip-item <jnpf-form-tip-item label="区域编码" prop="code">
label="区域编码" prop="code" > <JnpfInput
<JnpfInput v-model="dataForm.code" @change="changeData('code',-1)" v-model="dataForm.code"
placeholder="请输入" clearable :style='{"width":"100%"}'> @change="changeData('code', -1)"
placeholder="请输入"
clearable
:style="{ width: '100%' }"
>
</JnpfInput> </JnpfInput>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<jnpf-form-tip-item <jnpf-form-tip-item label="空间数量" prop="spaceNum">
label="空间数量" prop="spaceNum" > <JnpfInputNumber
<JnpfInputNumber v-model="dataForm.spaceNum" @change="changeData('spaceNum',-1)" v-model="dataForm.spaceNum"
placeholder="数字文本" :step="1" > @change="changeData('spaceNum', -1)"
placeholder="数字文本"
:step="1"
>
</JnpfInputNumber> </JnpfInputNumber>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12">
<jnpf-form-tip-item <jnpf-form-tip-item label="区域名称" prop="name">
label="区域名称" prop="name" > <JnpfInput
<JnpfInput v-model="dataForm.name" @change="changeData('name',-1)" v-model="dataForm.name"
placeholder="请输入" clearable :style='{"width":"100%"}'> @change="changeData('name', -1)"
placeholder="请输入"
clearable
:style="{ width: '100%' }"
>
</JnpfInput> </JnpfInput>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<jnpf-form-tip-item <jnpf-form-tip-item label="区域描述" prop="description">
label="区域描述" prop="description" > <JnpfInput
<JnpfInput v-model="dataForm.description" @change="changeData('description',-1)" v-model="dataForm.description"
placeholder="请输入" clearable :style='{"width":"100%"}'> @change="changeData('description', -1)"
placeholder="请输入"
clearable
:style="{ width: '100%' }"
>
</JnpfInput> </JnpfInput>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24">
<jnpf-form-tip-item <jnpf-form-tip-item label="备注" prop="remark">
label="备注" prop="remark" > <JnpfInput
<JnpfInput v-model="dataForm.remark" @change="changeData('remark',-1)" v-model="dataForm.remark"
placeholder="请输入" clearable :style='{"width":"100%"}'> @change="changeData('remark', -1)"
placeholder="请输入"
clearable
:style="{ width: '100%' }"
>
</JnpfInput> </JnpfInput>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<!-- 表单结束 --> <!-- 表单结束 -->
</template> </template>
</el-form> </el-form>
<SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm" <SelectDialog
ref="selectDialog" @select="addForSelect" @close="selectDialogVisible=false"/> v-if="selectDialogVisible"
:config="currTableConf"
:formData="dataForm"
ref="selectDialog"
@select="addForSelect"
@close="selectDialogVisible = false"
/>
</el-row> </el-row>
<span slot="footer" class="dialog-footer">
<div class="upAndDown-button" v-if="dataForm.id">
<el-button @click="prev" :disabled="prevDis">
{{ "上一条" }}
</el-button>
<el-button @click="next" :disabled="nextDis">
{{ "下一条" }}
</el-button>
</div> </div>
</transition> <el-button
</template> type="primary"
@click="dataFormSubmit(2)"
:loading="continueBtnLoading"
>
{{ !dataForm.id ? "确定并新增" : "确定并继续" }}</el-button
>
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" :loading="btnLoading">
</el-button
>
</span>
</el-dialog>
</template>
<script> <script>
import request from '@/utils/request' import request from "@/utils/request";
import {mapGetters} from "vuex"; import { mapGetters } from "vuex";
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import { getDataInterfaceRes } from "@/api/systemData/dataInterface";
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
import { getDefaultCurrentValueUserId } from '@/api/permission/user' import { getDefaultCurrentValueUserId } from "@/api/permission/user";
import { getDefaultCurrentValueDepartmentId } from '@/api/permission/organize' import { getDefaultCurrentValueDepartmentId } from "@/api/permission/organize";
import { getDateDay, getLaterData, getBeforeData, getBeforeTime, getLaterTime } from '@/components/Generator/utils/index.js' import {
import { thousandsFormat } from "@/components/Generator/utils/index" getDateDay,
export default { getLaterData,
components: { }, getBeforeData,
getBeforeTime,
getLaterTime
} from "@/components/Generator/utils/index.js";
import { thousandsFormat } from "@/components/Generator/utils/index";
export default {
components: {},
props: [], props: [],
data() { data() {
return { return {
@ -116,127 +155,123 @@
visible: false, visible: false,
loading: false, loading: false,
btnLoading: false, btnLoading: false,
formRef: 'formRef', formRef: "formRef",
setting:{}, setting: {},
eventType: '', eventType: "",
userBoxVisible:false, userBoxVisible: false,
selectDialogVisible: false, selectDialogVisible: false,
currTableConf:{}, currTableConf: {},
dataValueAll:{}, dataValueAll: {},
addTableConf:{ addTableConf: {},
},
// //
ableAll:{ ableAll: {},
}, tableRows: {},
tableRows:{ Vmodel: "",
}, currVmodel: "",
Vmodel:"",
currVmodel:"",
dataForm: { dataForm: {
pid : undefined, pid: undefined,
code : undefined, code: undefined,
spaceNum : undefined, spaceNum: undefined,
name : undefined, name: undefined,
description : undefined, description: undefined,
remark : undefined, remark: undefined,
version: 0, version: 0
}, },
tableRequiredData: {}, tableRequiredData: {},
dataRule: dataRule: {
{
pid: [ pid: [
{ {
required: true, required: true,
message: '请输入', message: "请输入",
trigger: 'blur' trigger: "blur"
}, }
], ],
code: [ code: [
{ {
required: true, required: true,
message: '请输入', message: "请输入",
trigger: 'blur' trigger: "blur"
}, }
], ],
spaceNum: [ spaceNum: [
{ {
required: true, required: true,
message: '数字文本', message: "数字文本",
trigger: ["blur","change"] trigger: ["blur", "change"]
}, }
], ],
name: [ name: [
{ {
required: true, required: true,
message: '请输入', message: "请输入",
trigger: 'blur' trigger: "blur"
}, }
], ]
}, },
childIndex:-1, childIndex: -1,
isEdit:false, isEdit: false,
interfaceRes: { interfaceRes: {
pid:[] , pid: [],
code:[] , code: [],
spaceNum:[] , spaceNum: [],
name:[] , name: [],
description:[] , description: [],
remark:[] , remark: []
},
} }
};
}, },
computed: { computed: {
...mapGetters(['userInfo']) ...mapGetters(["userInfo"])
}, },
watch: {}, watch: {},
created() { created() {
this.dataAll() this.dataAll();
this.initDefaultData() this.initDefaultData();
this.dataValueAll = JSON.parse(JSON.stringify(this.dataForm)) this.dataValueAll = JSON.parse(JSON.stringify(this.dataForm));
}, },
mounted() {}, mounted() {},
methods: { methods: {
prev() { prev() {
this.index-- this.index--;
if (this.index === 0) { if (this.index === 0) {
this.prevDis = true this.prevDis = true;
} }
this.nextDis = false this.nextDis = false;
for (let index = 0; index < this.allList.length; index++) { for (let index = 0; index < this.allList.length; index++) {
const element = this.allList[index]; const element = this.allList[index];
if (this.index == index) { if (this.index == index) {
this.getInfo(element.id) this.getInfo(element.id);
} }
} }
}, },
next() { next() {
this.index++ this.index++;
if (this.index === this.allList.length - 1) { if (this.index === this.allList.length - 1) {
this.nextDis = true this.nextDis = true;
} }
this.prevDis = false this.prevDis = false;
for (let index = 0; index < this.allList.length; index++) { for (let index = 0; index < this.allList.length; index++) {
const element = this.allList[index]; const element = this.allList[index];
if (this.index == index) { if (this.index == index) {
this.getInfo(element.id) this.getInfo(element.id);
} }
} }
}, },
getInfo(id) { getInfo(id) {
request({ request({
url: '/api/example/Area/'+ id, url: "/api/example/Area/" + id,
method: 'get' method: "get"
}).then(res => { }).then(res => {
this.dataInfo(res.data) this.dataInfo(res.data);
}); });
}, },
goBack() { goBack() {
this.visible = false this.visible = false;
this.$emit('refreshDataList', true) this.$emit("refreshDataList", true);
}, },
changeData(model, index) { changeData(model, index) {
this.isEdit = false this.isEdit = false;
this.childIndex = index this.childIndex = index;
let modelAll = model.split("-"); let modelAll = model.split("-");
let faceMode = ""; let faceMode = "";
for (let i = 0; i < modelAll.length; i++) { for (let i = 0; i < modelAll.length; i++) {
@ -244,239 +279,237 @@
} }
for (let key in this.interfaceRes) { for (let key in this.interfaceRes) {
if (key != faceMode) { if (key != faceMode) {
let faceReList = this.interfaceRes[key] let faceReList = this.interfaceRes[key];
for (let i = 0; i < faceReList.length; i++) { for (let i = 0; i < faceReList.length; i++) {
if (faceReList[i].relationField == model) { if (faceReList[i].relationField == model) {
let options = 'get' + key + 'Options'; let options = "get" + key + "Options";
if(this[options]){ if (this[options]) {
this[options]() this[options]();
} }
this.changeData(key, index) this.changeData(key, index);
} }
} }
} }
} }
}, },
changeDataFormData(type, data, model,index,defaultValue) { changeDataFormData(type, data, model, index, defaultValue) {
if(!this.isEdit) { if (!this.isEdit) {
if (type == 2) { if (type == 2) {
for (let i = 0; i < this.dataForm[data].length; i++) { for (let i = 0; i < this.dataForm[data].length; i++) {
if (index == -1) { if (index == -1) {
this.dataForm[data][i][model] = defaultValue this.dataForm[data][i][model] = defaultValue;
} else if (index == i) { } else if (index == i) {
this.dataForm[data][i][model] = defaultValue this.dataForm[data][i][model] = defaultValue;
} }
} }
} else { } else {
this.dataForm[data] = defaultValue this.dataForm[data] = defaultValue;
} }
} }
}, },
dataAll(){ dataAll() {},
clearData() {
this.dataForm = JSON.parse(JSON.stringify(this.dataValueAll));
}, },
goBack() { init(id, isDetail, allList) {
this.$emit('refresh') this.prevDis = false;
}, this.nextDis = false;
clearData(){ this.allList = allList || [];
this.dataForm = JSON.parse(JSON.stringify(this.dataValueAll))
},
init(id,isDetail,allList) {
this.prevDis = false
this.nextDis = false
this.allList = allList || []
if (allList.length) { if (allList.length) {
this.index = this.allList.findIndex(item => item.id === id) this.index = this.allList.findIndex(item => item.id === id);
if (this.index == 0) { if (this.index == 0) {
this.prevDis = true this.prevDis = true;
} }
if (this.index == this.allList.length - 1) { if (this.index == this.allList.length - 1) {
this.nextDis = true this.nextDis = true;
} }
} else { } else {
this.prevDis = true this.prevDis = true;
this.nextDis = true this.nextDis = true;
} }
this.dataForm.id = id || 0; this.dataForm.id = id || 0;
this.visible = true; this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
if(this.dataForm.id){ if (this.dataForm.id) {
this.loading = true this.loading = true;
request({ request({
url: '/api/example/Area/'+this.dataForm.id, url: "/api/example/Area/" + this.dataForm.id,
method: 'get' method: "get"
}).then(res => { }).then(res => {
this.dataInfo(res.data) this.dataInfo(res.data);
this.loading = false this.loading = false;
}); });
}else{ } else {
this.clearData() this.clearData();
this.initDefaultData() this.initDefaultData();
} }
}); });
this.$store.commit('generator/UPDATE_RELATION_DATA', {}) this.$store.commit("generator/UPDATE_RELATION_DATA", {});
}, },
// //
initDefaultData() { initDefaultData() {},
},
// //
dataFormSubmit(type) { dataFormSubmit(type) {
this.dataFormSubmitType = type ? type : 0 this.dataFormSubmitType = type ? type : 0;
this.$refs['formRef'].validate((valid) => { this.$refs["formRef"].validate(valid => {
if (valid) { if (valid) {
this.request() this.request();
} }
}) });
}, },
request() { request() {
let _data =this.dataList() let _data = this.dataList();
if (this.dataFormSubmitType == 2) { if (this.dataFormSubmitType == 2) {
this.continueBtnLoading = true this.continueBtnLoading = true;
} else { } else {
this.btnLoading = true this.btnLoading = true;
} }
if (!this.dataForm.id) { if (!this.dataForm.id) {
request({ request({
url: '/api/example/Area', url: "/api/example/Area",
method: 'post', method: "post",
data: _data data: _data
}).then((res) => { })
.then(res => {
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: 'success', type: "success",
duration: 1000, duration: 1000,
onClose: () => { onClose: () => {
if (this.dataFormSubmitType == 2) { if (this.dataFormSubmitType == 2) {
this.$nextTick(() => { this.$nextTick(() => {
this.clearData() this.clearData();
this.initDefaultData() this.initDefaultData();
}) });
this.continueBtnLoading = false this.continueBtnLoading = false;
return return;
} }
this.visible = false this.visible = false;
this.btnLoading = false this.btnLoading = false;
this.$emit('refresh', true) this.$emit("refresh", true);
} }
});
}) })
}).catch(()=>{ .catch(() => {
this.btnLoading = false this.btnLoading = false;
this.continueBtnLoading = false this.continueBtnLoading = false;
}) });
}else{ } else {
request({ request({
url: '/api/example/Area/'+this.dataForm.id, url: "/api/example/Area/" + this.dataForm.id,
method: 'PUT', method: "PUT",
data: _data data: _data
}).then((res) => { })
.then(res => {
this.$message({ this.$message({
message: res.msg, message: res.msg,
type: 'success', type: "success",
duration: 1000, duration: 1000,
onClose: () => { onClose: () => {
if (this.dataFormSubmitType == 2) return this.continueBtnLoading = false if (this.dataFormSubmitType == 2)
this.visible = false return (this.continueBtnLoading = false);
this.btnLoading = false this.visible = false;
this.$emit('refresh', true) this.btnLoading = false;
this.$emit("refresh", true);
} }
});
}) })
}).catch(()=>{ .catch(() => {
this.btnLoading = false this.btnLoading = false;
this.continueBtnLoading = false this.continueBtnLoading = false;
}) });
} }
}, },
openSelectDialog(key) { openSelectDialog(key) {
this.currTableConf=this.addTableConf[key] this.currTableConf = this.addTableConf[key];
this.currVmodel=key this.currVmodel = key;
this.selectDialogVisible = true this.selectDialogVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.selectDialog.init() this.$refs.selectDialog.init();
}) });
}, },
addForSelect(data) { addForSelect(data) {
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
let t = data[i] let t = data[i];
if(this['get'+this.currVmodel]){ if (this["get" + this.currVmodel]) {
this['get'+this.currVmodel](t) this["get" + this.currVmodel](t);
} }
} }
}, },
dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) { dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
let timeDataValue = null; let timeDataValue = null;
let timeValue = Number(timeValueData) let timeValue = Number(timeValueData);
if (timeRule) { if (timeRule) {
if (timeType == 1) { if (timeType == 1) {
timeDataValue = timeValue timeDataValue = timeValue;
} else if (timeType == 2) { } else if (timeType == 2) {
timeDataValue = dataValue timeDataValue = dataValue;
} else if (timeType == 3) { } else if (timeType == 3) {
timeDataValue = new Date().getTime() timeDataValue = new Date().getTime();
} else if (timeType == 4) { } else if (timeType == 4) {
let previousDate = ''; let previousDate = "";
if (timeTarget == 1 || timeTarget == 2) { if (timeTarget == 1 || timeTarget == 2) {
previousDate = getDateDay(timeTarget, timeType, timeValue) previousDate = getDateDay(timeTarget, timeType, timeValue);
timeDataValue = new Date(previousDate).getTime() timeDataValue = new Date(previousDate).getTime();
} else if (timeTarget == 3) { } else if (timeTarget == 3) {
previousDate = getBeforeData(timeValue) previousDate = getBeforeData(timeValue);
timeDataValue = new Date(previousDate).getTime() timeDataValue = new Date(previousDate).getTime();
} else { } else {
timeDataValue = getBeforeTime(timeTarget, timeValue).getTime() timeDataValue = getBeforeTime(timeTarget, timeValue).getTime();
} }
} else if (timeType == 5) { } else if (timeType == 5) {
let previousDate = ''; let previousDate = "";
if (timeTarget == 1 || timeTarget == 2) { if (timeTarget == 1 || timeTarget == 2) {
previousDate = getDateDay(timeTarget, timeType, timeValue) previousDate = getDateDay(timeTarget, timeType, timeValue);
timeDataValue = new Date(previousDate).getTime() timeDataValue = new Date(previousDate).getTime();
} else if (timeTarget == 3) { } else if (timeTarget == 3) {
previousDate = getLaterData(timeValue) previousDate = getLaterData(timeValue);
timeDataValue = new Date(previousDate).getTime() timeDataValue = new Date(previousDate).getTime();
} else { } else {
timeDataValue = getLaterTime(timeTarget, timeValue).getTime() timeDataValue = getLaterTime(timeTarget, timeValue).getTime();
} }
} }
} }
return timeDataValue; return timeDataValue;
}, },
time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) { time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) {
let format = formatType == 'HH:mm' ? 'HH:mm:00' : formatType let format = formatType == "HH:mm" ? "HH:mm:00" : formatType;
let timeDataValue = null let timeDataValue = null;
if (timeRule) { if (timeRule) {
if (timeType == 1) { if (timeType == 1) {
timeDataValue = timeValue || '00:00:00' timeDataValue = timeValue || "00:00:00";
if (timeDataValue.split(':').length == 3) { if (timeDataValue.split(":").length == 3) {
timeDataValue = timeDataValue timeDataValue = timeDataValue;
} else { } else {
timeDataValue = timeDataValue + ':00' timeDataValue = timeDataValue + ":00";
} }
} else if (timeType == 2) { } else if (timeType == 2) {
timeDataValue = dataValue timeDataValue = dataValue;
} else if (timeType == 3) { } else if (timeType == 3) {
timeDataValue = this.jnpf.toDate(new Date(), format) timeDataValue = this.jnpf.toDate(new Date(), format);
} else if (timeType == 4) { } else if (timeType == 4) {
let previousDate = ''; let previousDate = "";
previousDate = getBeforeTime(timeTarget, timeValue) previousDate = getBeforeTime(timeTarget, timeValue);
timeDataValue = this.jnpf.toDate(previousDate, format) timeDataValue = this.jnpf.toDate(previousDate, format);
} else if (timeType == 5) { } else if (timeType == 5) {
let previousDate = ''; let previousDate = "";
previousDate = getLaterTime(timeTarget, timeValue) previousDate = getLaterTime(timeTarget, timeValue);
timeDataValue = this.jnpf.toDate(previousDate, format) timeDataValue = this.jnpf.toDate(previousDate, format);
} }
} }
return timeDataValue; return timeDataValue;
}, },
dataList(){ dataList() {
var _data = this.dataForm; var _data = this.dataForm;
return _data; return _data;
}, },
dataInfo(dataAll){ dataInfo(dataAll) {
let _dataAll =dataAll let _dataAll = dataAll;
this.dataForm = _dataAll this.dataForm = _dataAll;
this.isEdit = true this.isEdit = true;
this.dataAll() this.dataAll();
this.childIndex=-1 this.childIndex = -1;
},
},
} }
}
};
</script> </script>

@ -1,38 +1,45 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-left"> <div class="JNPF-common-layout-left">
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2>左侧标题</h2> <h2>{{ this.title }}</h2>
<el-dropdown> <el-dropdown>
<el-link icon="icon-ym icon-ym-mpMenu" :underline="false" /> <el-link icon="icon-ym icon-ym-mpMenu" :underline="false" />
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="toggleTreeExpand(true)">展开全部</el-dropdown-item> <el-dropdown-item @click.native="toggleTreeExpand(true)"
<el-dropdown-item @click.native="toggleTreeExpand(false)">折叠全部</el-dropdown-item> >展开全部</el-dropdown-item
>
<el-dropdown-item @click.native="toggleTreeExpand(false)"
>折叠全部</el-dropdown-item
>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
<div class="JNPF-common-tree-search-box"> <div class="JNPF-common-tree-search-box">
<el-input placeholder="输入关键字" v-model="keyword" suffix-icon="el-icon-search" clearable /> <el-input
placeholder="输入关键字"
v-model="keyword"
suffix-icon="el-icon-search"
clearable
/>
</div> </div>
<el-tree :data="treeData" <el-tree
class="JNPF-common-el-tree" highlight-current :data="treeData"
ref="treeBox" :expand-on-click-node="false" @node-click="handleNodeClick" class="JNPF-common-el-tree"
highlight-current
ref="treeBox"
:expand-on-click-node="false"
@node-click="handleNodeClick"
node-key="id" node-key="id"
:props="treeProps" :props="treeProps"
:default-expand-all="expandsTree" :default-expand-all="expandsTree"
:filter-node-method="filterNode" :filter-node-method="filterNode"
:lazy="false" :lazy="false"
v-if="refreshTree"> v-if="refreshTree"
>
<span class="custom-tree-node" slot-scope="{ node, data }"> <span class="custom-tree-node" slot-scope="{ node, data }">
<i :class="data.icon"></i> <i :class="data.icon"></i>
<span class="text">{{node.label}}</span> <span class="text">{{ node.label }}</span>
</span> </span>
</el-tree> </el-tree>
</div> </div>
@ -41,13 +48,18 @@
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="区域名称"> <el-form-item label="区域名称">
<el-input v-model="query.name" placeholder="请输入" clearable> </el-input> <el-input v-model="query.name" placeholder="请输入" clearable>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> >查询</el-button
>
<el-button icon="el-icon-refresh-right" @click="reset()"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
@ -55,129 +67,159 @@
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="icon-ym icon-ym-btn-add" @click="addOrUpdateHandle()"> <el-button
type="primary"
icon="icon-ym icon-ym-btn-add"
@click="addOrUpdateHandle()"
>新增
</el-button> </el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-download" @click="exportData()" >导出 <el-button
type="text"
icon="icon-ym icon-ym-btn-download"
@click="exportData()"
>导出
</el-button> </el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-upload" @click="handelUpload()" >导入 <el-button
type="text"
icon="icon-ym icon-ym-btn-upload"
@click="handelUpload()"
>导入
</el-button> </el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-clearn" @click="handleBatchRemoveDel()" >批量删除 <el-button
type="text"
icon="icon-ym icon-ym-btn-clearn"
@click="handleBatchRemoveDel()"
>批量删除
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip content="高级查询" placement="top" v-if="true"> <el-tooltip content="高级查询" placement="top" v-if="true">
<el-link icon="icon-ym icon-ym-filter JNPF-common-head-icon" :underline="false" <el-link
@click="openSuperQuery()" /> icon="icon-ym icon-ym-filter JNPF-common-head-icon"
:underline="false"
@click="openSuperQuery()"
/>
</el-tooltip> </el-tooltip>
<el-tooltip effect="dark" :content="$t('common.refresh')" placement="top"> <el-tooltip
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" effect="dark"
@click="initData()" /> :content="$t('common.refresh')"
placement="top"
>
<el-link
icon="icon-ym icon-ym-Refresh JNPF-common-head-icon"
:underline="false"
@click="initData()"
/>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange" <JNPF-table
v-loading="listLoading"
:data="list"
@sort-change="sortChange"
has-c
@selection-change="handleSelectionChange"
:span-method="arraySpanMethod" :span-method="arraySpanMethod"
>
<el-table-column
prop="pid"
label="园区名称" align="left"
> >
<el-table-column prop="parkName" label="园区名称" align="left">
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="code" label="区域编码" align="left">
prop="code"
label="区域编码" align="left"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="spaceNum" label="空间数量" align="left">
prop="spaceNum" <template slot-scope="scope" v-if="scope.row.spaceNum">
label="空间数量" align="left" <JnpfNumber v-model="scope.row.spaceNum" :thousands="false" />
>
<template slot-scope="scope" v-if="scope.row.spaceNum" >
<JnpfNumber v-model="scope.row.spaceNum" :thousands="false"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="name" label="区域名称" align="left">
prop="name"
label="区域名称" align="left"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="description" label="区域描述" align="left">
prop="description"
label="区域描述" align="left"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="remark" label="备注" align="left">
prop="remark"
label="备注" align="left"
>
</el-table-column> </el-table-column>
<el-table-column label="操作" <el-table-column label="操作" fixed="right" width="150">
fixed="right" width="150" > <template slot-scope="scope">
<template slot-scope="scope" > <el-button type="text" @click="addOrUpdateHandle(scope.row)"
<el-button type="text" >编辑
@click="addOrUpdateHandle(scope.row)" >编辑
</el-button> </el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> <el-button
type="text"
class="JNPF-table-delBtn"
@click="handleDel(scope.row.id)"
>删除
</el-button> </el-button>
<el-button type="text" <el-button type="text" @click="goDetail(scope.row.id)"
@click="goDetail(scope.row.id)">详情 >详情
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</JNPF-table> </JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/> <pagination
:total="total"
:page.sync="listQuery.currentPage"
:limit.sync="listQuery.pageSize"
@pagination="initData"
/>
</div> </div>
</div> </div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" /> <ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" />
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/> <Detail
<ToFormDetail v-if="toFormDetailVisible" ref="toFormDetail" @close="toFormDetailVisible = false" /> v-if="detailVisible"
<SuperQuery v-if="superQueryVisible" ref="SuperQuery" :columnOptions="superQueryJson" ref="Detail"
@superQuery="superQuery" /> @refresh="detailVisible = false"
/>
<ToFormDetail
v-if="toFormDetailVisible"
ref="toFormDetail"
@close="toFormDetailVisible = false"
/>
<SuperQuery
v-if="superQueryVisible"
ref="SuperQuery"
:columnOptions="superQueryJson"
@superQuery="superQuery"
/>
</div> </div>
</template> </template>
<script> <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";
import request from '@/utils/request' export default {
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: { components: {
JNPFForm, JNPFForm,
Detail, Detail,
ExportBox,ToFormDetail , SuperQuery ExportBox,
ToFormDetail,
SuperQuery
}, },
data() { data() {
return { return {
title: "",
keyword:'', keyword: "",
expandsTree: true, expandsTree: true,
refreshTree: true, refreshTree: true,
toFormDetailVisible:false, toFormDetailVisible: false,
expandObj:{}, expandObj: {},
columnOptions: [], columnOptions: [],
mergeList: [], mergeList: [],
exportList:[], exportList: [],
columnList, columnList,
superQueryVisible: false, superQueryVisible: false,
@ -185,24 +227,26 @@
uploadBoxVisible: false, uploadBoxVisible: false,
detailVisible: false, detailVisible: false,
query: { query: {
name:undefined, name: undefined,
type: undefined
}, },
treeProps: { treeProps: {
children: 'children', children: "children",
label: 'name', label: "name",
value: 'id', value: "id",
isLeaf: 'isLeaf' isLeaf: "isLeaf"
}, },
list: [], list: [],
listLoading: true, listLoading: true,
multipleSelection: [], total: 0, multipleSelection: [],
total: 0,
queryData: {}, queryData: {},
listQuery: { listQuery: {
superQueryJson: '', superQueryJson: "",
currentPage: 1, currentPage: 1,
pageSize: 20, pageSize: 20,
sort: "desc", sort: "desc",
sidx: "", sidx: ""
}, },
formVisible: false, formVisible: false,
flowVisible: false, flowVisible: false,
@ -210,224 +254,223 @@
flowList: [], flowList: [],
exportBoxVisible: false, exportBoxVisible: false,
treeData: [], treeData: [],
treeActiveId: '', treeActiveId: "",
interfaceRes: { interfaceRes: {}
}, };
}
}, },
watch: { watch: {
keyword(val) { keyword(val) {
this.$refs.treeBox.filter(val) this.$refs.treeBox.filter(val);
} }
}, },
computed: { computed: {
...mapGetters(['userInfo']), ...mapGetters(["userInfo"]),
menuId() { menuId() {
return this.$route.meta.modelId || '' return this.$route.meta.modelId || "";
} }
}, },
created() { created() {
this.getColumnList(), this.getColumnList(), this.getTreeView();
this.getTreeView(); this.queryData = JSON.parse(JSON.stringify(this.query));
this.queryData = JSON.parse(JSON.stringify(this.query))
}, },
methods: { methods: {
toDetail(defaultValue, modelId) { toDetail(defaultValue, modelId) {
if (!defaultValue) return if (!defaultValue) return;
getConfigData(modelId).then(res => { getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return if (!res.data || !res.data.formData) return;
let formData = JSON.parse(res.data.formData) let formData = JSON.parse(res.data.formData);
formData.popupType = 'general' formData.popupType = "general";
this.toFormDetailVisible = true this.toFormDetailVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.toFormDetail.init(formData, modelId, defaultValue) this.$refs.toFormDetail.init(formData, modelId, defaultValue);
}) });
}) });
}, },
toggleTreeExpand(expands) { toggleTreeExpand(expands) {
this.refreshTree = false this.refreshTree = false;
this.expandsTree = expands this.expandsTree = expands;
this.$nextTick(() => { this.$nextTick(() => {
this.refreshTree = true this.refreshTree = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.treeBox.setCurrentKey(null) this.$refs.treeBox.setCurrentKey(null);
}) });
}) });
}, },
filterNode(value, data) { filterNode(value, data) {
if (!value) return true; if (!value) return true;
return data[this.treeProps.label].indexOf(value) !== -1; return data[this.treeProps.label].indexOf(value) !== -1;
}, },
loadNode(node, resolve) { loadNode(node, resolve) {
const nodeData = node.data const nodeData = node.data;
const config ={ const config = {
treeInterfaceId:"", treeInterfaceId: "",
treeTemplateJson:[] treeTemplateJson: []
} };
if (config.treeInterfaceId) { if (config.treeInterfaceId) {
// //
if (config.treeTemplateJson && config.treeTemplateJson.length) { if (config.treeTemplateJson && config.treeTemplateJson.length) {
for (let i = 0; i < config.treeTemplateJson.length; i++) { for (let i = 0; i < config.treeTemplateJson.length; i++) {
const element = config.treeTemplateJson[i]; const element = config.treeTemplateJson[i];
element.defaultValue = nodeData[element.relationField] || '' element.defaultValue = nodeData[element.relationField] || "";
} }
} }
// //
let query = { let query = {
paramList: config.treeTemplateJson || [], paramList: config.treeTemplateJson || []
} };
// //
getDataInterfaceRes(config.treeInterfaceId, query).then(res => { getDataInterfaceRes(config.treeInterfaceId, query).then(res => {
let data = res.data let data = res.data;
if (Array.isArray(data)) { if (Array.isArray(data)) {
resolve(data); resolve(data);
} else { } else {
resolve([]); resolve([]);
} }
}) });
} }
}, },
getColumnList() { getColumnList() {
// //
this.columnOptions = this.transformColumnList(this.columnList) this.columnOptions = this.transformColumnList(this.columnList);
}, },
transformColumnList(columnList) { transformColumnList(columnList) {
let list = [] let list = [];
for (let i = 0; i < columnList.length; i++) { for (let i = 0; i < columnList.length; i++) {
const e = columnList[i]; const e = columnList[i];
if (!e.prop.includes('-')) { if (!e.prop.includes("-")) {
list.push(e) list.push(e);
} else { } else {
let prop = e.prop.split('-')[0] let prop = e.prop.split("-")[0];
let label = e.label.split('-')[0] let label = e.label.split("-")[0];
let vModel = e.prop.split('-')[1] let vModel = e.prop.split("-")[1];
let newItem = { let newItem = {
align: "center", align: "center",
jnpfKey: "table", jnpfKey: "table",
prop, prop,
label, label,
children: [] children: []
} };
e.vModel = vModel e.vModel = vModel;
if (!this.expandObj.hasOwnProperty(`${prop}Expand`)) this.$set(this.expandObj, `${prop}Expand`, false) if (!this.expandObj.hasOwnProperty(`${prop}Expand`))
if (!list.some(o => o.prop === prop)) list.push(newItem) 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++) { for (let i = 0; i < list.length; i++) {
if (list[i].prop === prop) { if (list[i].prop === prop) {
list[i].children.push(e) list[i].children.push(e);
break break;
} }
} }
} }
} }
this.getMergeList(list) this.getMergeList(list);
this.getExportList(list) this.getExportList(list);
return list return list;
}, },
arraySpanMethod({ column }) { arraySpanMethod({ column }) {
for (let i = 0; i < this.mergeList.length; i++) { for (let i = 0; i < this.mergeList.length; i++) {
if (column.property == this.mergeList[i].prop) { if (column.property == this.mergeList[i].prop) {
return [this.mergeList[i].rowspan, this.mergeList[i].colspan] return [this.mergeList[i].rowspan, this.mergeList[i].colspan];
} }
} }
}, },
getMergeList(list) { getMergeList(list) {
let newList = JSON.parse(JSON.stringify(list)) let newList = JSON.parse(JSON.stringify(list));
newList.forEach(item => { newList.forEach(item => {
if (item.children && item.children.length) { if (item.children && item.children.length) {
let child = { let child = {
prop: item.prop + '-child-first' prop: item.prop + "-child-first"
} };
item.children.unshift(child) item.children.unshift(child);
} }
}) });
newList.forEach(item => { newList.forEach(item => {
if (item.children && item.children.length ) { if (item.children && item.children.length) {
item.children.forEach((child, index) => { item.children.forEach((child, index) => {
if (index == 0) { if (index == 0) {
this.mergeList.push({ this.mergeList.push({
prop: child.prop, prop: child.prop,
rowspan: 1, rowspan: 1,
colspan: item.children.length colspan: item.children.length
}) });
} else { } else {
this.mergeList.push({ this.mergeList.push({
prop: child.prop, prop: child.prop,
rowspan: 0, rowspan: 0,
colspan: 0 colspan: 0
}) });
} }
}) });
} else { } else {
this.mergeList.push({ this.mergeList.push({
prop: item.prop, prop: item.prop,
rowspan: 1, rowspan: 1,
colspan: 1 colspan: 1
}) });
} }
}) });
}, },
getExportList(list) { getExportList(list) {
let exportList = [] let exportList = [];
for (let i = 0; i < list.length; i++) { for (let i = 0; i < list.length; i++) {
if (list[i].jnpfKey === 'table') { if (list[i].jnpfKey === "table") {
for (let j = 0; j < list[i].children.length; j++) { for (let j = 0; j < list[i].children.length; j++) {
exportList.push(list[i].children[j]) exportList.push(list[i].children[j]);
} }
} else { } else {
exportList.push(list[i]) exportList.push(list[i]);
} }
} }
this.exportList = exportList this.exportList = exportList;
}, },
goDetail(id){ goDetail(id) {
this.detailVisible = true this.detailVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.Detail.init(id) this.$refs.Detail.init(id);
}) });
}, },
sortChange({column, prop, order}) { sortChange({ column, prop, order }) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' this.listQuery.sort = order == "ascending" ? "asc" : "desc";
this.listQuery.sidx = !order ? '' : prop this.listQuery.sidx = !order ? "" : prop;
this.initData() this.initData();
}, },
getTreeView() { getTreeView() {
getDataInterfaceRes('582550261134787397').then(res => { getDataInterfaceRes("582550261134787397").then(res => {
let data = res.data let data = res.data;
this.treeData = data this.treeData = data;
this.initSearchDataAndListData() this.initSearchDataAndListData();
}) });
}, },
getNodePath(node) { getNodePath(node) {
let fullPath = [] let fullPath = [];
const loop = (node) => { const loop = node => {
if (node.level) fullPath.unshift(node.data) if (node.level) fullPath.unshift(node.data);
if (node.parent) loop(node.parent) if (node.parent) loop(node.parent);
} };
loop(node) loop(node);
return fullPath return fullPath;
}, },
handleNodeClick(data,node) { handleNodeClick(data, node) {
this.treeActiveId = data.id this.title = data.name;
for(let key in this.query) this.treeActiveId = data.id;
{ for (let key in this.query) {
this.query[key] = undefined this.query[key] = undefined;
} }
this.query.pid = data.id this.query.pid = data.id;
this.query.type = data.type;
this.listQuery = { this.listQuery = {
currentPage: 1, currentPage: 1,
pageSize: 20, pageSize: 20,
sort: "desc", sort: "desc",
sidx: "", sidx: ""
} };
this.initData() this.initData();
}, },
async initSearchDataAndListData() { async initSearchDataAndListData() {
await this.initSearchData() await this.initSearchData();
this.initData() this.initData();
}, },
// //
async initSearchData() { async initSearchData() {},
},
initData() { initData() {
this.listLoading = true; this.listLoading = true;
let _query = { let _query = {
@ -435,138 +478,144 @@
...this.query, ...this.query,
keyword: this.keyword, keyword: this.keyword,
dataType: 0, dataType: 0,
menuId:this.menuId, menuId: this.menuId,
moduleId:'582494130148475397', moduleId: "582494130148475397"
type:2,
}; };
request({ request({
url: `/api/example/Area/getList`, url: `/api/example/Area/getList`,
method: 'post', method: "post",
data: _query data: _query
}).then(res => { }).then(res => {
var _list =res.data.list; var _list = res.data.list;
this.list = _list.map(o => ({ this.list = _list.map(o => ({
...o, ...o,
...this.expandObj, ...this.expandObj
})) }));
this.total = res.data.pagination.total this.total = res.data.pagination.total;
this.listLoading = false this.listLoading = false;
}) });
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
type: 'warning' type: "warning"
}).then(() => { })
.then(() => {
request({ request({
url: `/api/example/Area/${id}`, url: `/api/example/Area/${id}`,
method: 'DELETE' method: "DELETE"
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: "success",
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData();
} }
}); });
})
}).catch(() => {
}); });
})
.catch(() => {});
}, },
handelUpload(){ handelUpload() {
this.uploadBoxVisible = true this.uploadBoxVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.UploadBox.init("","example/Area") this.$refs.UploadBox.init("", "example/Area");
}) });
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
const res = val.map(item => item.id) const res = val.map(item => item.id);
this.multipleSelection = res this.multipleSelection = res;
}, },
handleBatchRemoveDel() { handleBatchRemoveDel() {
if (!this.multipleSelection.length) { if (!this.multipleSelection.length) {
this.$message({ this.$message({
type: 'error', type: "error",
message: '请选择一条数据', message: "请选择一条数据",
duration: 1500, duration: 1500
}) });
return return;
} }
const ids = this.multipleSelection const ids = this.multipleSelection;
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { this.$confirm("您确定要删除这些数据吗, 是否继续?", "提示", {
type: 'warning' type: "warning"
}).then(() => { })
.then(() => {
request({ request({
url: `/api/example/Area/batchRemove`, url: `/api/example/Area/batchRemove`,
data: ids, data: ids,
method: 'DELETE' method: "DELETE"
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: "success",
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData();
} }
}); });
});
}) })
}).catch(() => { .catch(() => {});
})
}, },
openSuperQuery() { openSuperQuery() {
this.superQueryVisible = true this.superQueryVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.SuperQuery.init() this.$refs.SuperQuery.init();
}) });
}, },
superQuery(queryJson) { superQuery(queryJson) {
this.listQuery.superQueryJson = queryJson this.listQuery.superQueryJson = queryJson;
this.listQuery.currentPage = 1 this.listQuery.currentPage = 1;
this.initData() this.initData();
}, },
addOrUpdateHandle(row, isDetail) { addOrUpdateHandle(row, isDetail) {
let id = row?row.id:"" let id = row ? row.id : "";
this.formVisible = true this.formVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.JNPFForm.init(id, isDetail,this.list) this.$refs.JNPFForm.init(id, isDetail, this.list);
}) });
}, },
exportData() { exportData() {
this.exportBoxVisible = true this.exportBoxVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.ExportBox.init(this.exportList) this.$refs.ExportBox.init(this.exportList);
}) });
}, },
download(data) { download(data) {
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} let query = {
...data,
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({ request({
url: `/api/example/Area/Actions/Export`, url: `/api/example/Area/Actions/Export`,
method: 'post', method: "post",
data: query data: query
}).then(res => { }).then(res => {
if (!res.data.url) return if (!res.data.url) return;
this.jnpf.downloadFile(res.data.url) this.jnpf.downloadFile(res.data.url);
this.$refs.ExportBox.visible = false this.$refs.ExportBox.visible = false;
this.exportBoxVisible = false this.exportBoxVisible = false;
}) });
}, },
search() { search() {
this.listQuery.currentPage=1 this.listQuery.currentPage = 1;
this.listQuery.pageSize=20 this.listQuery.pageSize = 20;
this.listQuery.sort="desc" this.listQuery.sort = "desc";
this.listQuery.sidx="" this.listQuery.sidx = "";
this.initData() this.initData();
}, },
refresh(isrRefresh) { refresh(isrRefresh) {
this.formVisible = false this.formVisible = false;
if (isrRefresh) this.reset() if (isrRefresh) this.reset();
}, },
reset() { reset() {
this.query = JSON.parse(JSON.stringify(this.queryData)) this.query = JSON.parse(JSON.stringify(this.queryData));
this.search() this.search();
}, },
colseFlow(isrRefresh) { colseFlow(isrRefresh) {
this.flowVisible = false this.flowVisible = false;
if (isrRefresh) this.reset() if (isrRefresh) this.reset();
},
} }
} }
};
</script> </script>

@ -1,10 +1,3 @@
<template> <template>
<div class="JNPF-common-layout"> <div class="JNPF-common-layout">
<div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-center">
@ -12,13 +5,18 @@
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="园区名称"> <el-form-item label="园区名称">
<el-input v-model="query.name" placeholder="请输入" clearable> </el-input> <el-input v-model="query.name" placeholder="请输入" clearable>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button> <el-button type="primary" icon="el-icon-search" @click="search()"
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button> >查询</el-button
>
<el-button icon="el-icon-refresh-right" @click="reset()"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
@ -26,116 +24,151 @@
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="icon-ym icon-ym-btn-add" @click="addOrUpdateHandle()"> <el-button
type="primary"
icon="icon-ym icon-ym-btn-add"
@click="addOrUpdateHandle()"
>新增
</el-button> </el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-download" @click="exportData()" >导出 <el-button
type="text"
icon="icon-ym icon-ym-btn-download"
@click="exportData()"
>导出
</el-button> </el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-upload" @click="handelUpload()" >导入 <el-button
type="text"
icon="icon-ym icon-ym-btn-upload"
@click="handelUpload()"
>导入
</el-button> </el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-clearn" @click="handleBatchRemoveDel()" >批量删除 <el-button
type="text"
icon="icon-ym icon-ym-btn-clearn"
@click="handleBatchRemoveDel()"
>批量删除
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip content="高级查询" placement="top" v-if="true"> <el-tooltip content="高级查询" placement="top" v-if="true">
<el-link icon="icon-ym icon-ym-filter JNPF-common-head-icon" :underline="false" <el-link
@click="openSuperQuery()" /> icon="icon-ym icon-ym-filter JNPF-common-head-icon"
:underline="false"
@click="openSuperQuery()"
/>
</el-tooltip> </el-tooltip>
<el-tooltip effect="dark" :content="$t('common.refresh')" placement="top"> <el-tooltip
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" effect="dark"
@click="initData()" /> :content="$t('common.refresh')"
placement="top"
>
<el-link
icon="icon-ym icon-ym-Refresh JNPF-common-head-icon"
:underline="false"
@click="initData()"
/>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange" <JNPF-table
v-loading="listLoading"
:data="list"
@sort-change="sortChange"
has-c
@selection-change="handleSelectionChange"
:span-method="arraySpanMethod" :span-method="arraySpanMethod"
>
<el-table-column
prop="code"
label="园区编码" align="left"
> >
<el-table-column prop="code" label="园区编码" align="left">
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="name" label="园区名称" align="left">
prop="name"
label="园区名称" align="left"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="description" label="园区描述" align="left">
prop="description"
label="园区描述" align="left"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="remark" label="备注" align="left">
prop="remark"
label="备注" align="left"
>
</el-table-column> </el-table-column>
<el-table-column label="操作" <el-table-column label="操作" fixed="right" width="150">
fixed="right" width="150" > <template slot-scope="scope">
<template slot-scope="scope" > <el-button type="text" @click="addOrUpdateHandle(scope.row)"
<el-button type="text" >编辑
@click="addOrUpdateHandle(scope.row)" >编辑
</el-button> </el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> <el-button
type="text"
class="JNPF-table-delBtn"
@click="handleDel(scope.row.id)"
>删除
</el-button> </el-button>
<el-button type="text" <el-button type="text" @click="goDetail(scope.row.id)"
@click="goDetail(scope.row.id)">详情 >详情
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</JNPF-table> </JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/> <pagination
:total="total"
:page.sync="listQuery.currentPage"
:limit.sync="listQuery.pageSize"
@pagination="initData"
/>
</div> </div>
</div> </div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh" />
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
<ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" /> <ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" />
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/> <Detail
<ToFormDetail v-if="toFormDetailVisible" ref="toFormDetail" @close="toFormDetailVisible = false" /> v-if="detailVisible"
<SuperQuery v-if="superQueryVisible" ref="SuperQuery" :columnOptions="superQueryJson" ref="Detail"
@superQuery="superQuery" /> @refresh="detailVisible = false"
/>
<ToFormDetail
v-if="toFormDetailVisible"
ref="toFormDetail"
@close="toFormDetailVisible = false"
/>
<SuperQuery
v-if="superQueryVisible"
ref="SuperQuery"
:columnOptions="superQueryJson"
@superQuery="superQuery"
/>
</div> </div>
</template> </template>
<script> <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";
import request from '@/utils/request' export default {
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: { components: {
JNPFForm, JNPFForm,
Detail, Detail,
ExportBox,ToFormDetail , SuperQuery ExportBox,
ToFormDetail,
SuperQuery
}, },
data() { data() {
return { return {
keyword: "",
keyword:'',
expandsTree: true, expandsTree: true,
refreshTree: true, refreshTree: true,
toFormDetailVisible:false, toFormDetailVisible: false,
expandObj:{}, expandObj: {},
columnOptions: [], columnOptions: [],
mergeList: [], mergeList: [],
exportList:[], exportList: [],
columnList, columnList,
superQueryVisible: false, superQueryVisible: false,
@ -143,213 +176,217 @@
uploadBoxVisible: false, uploadBoxVisible: false,
detailVisible: false, detailVisible: false,
query: { query: {
name:undefined, name: undefined,
type: "1"
}, },
treeProps: { treeProps: {
children: 'children', children: "children",
label: 'fullName', label: "fullName",
value: 'id', value: "id",
isLeaf: 'isLeaf' isLeaf: "isLeaf"
}, },
list: [], list: [],
listLoading: true, listLoading: true,
multipleSelection: [], total: 0, multipleSelection: [],
total: 0,
queryData: {}, queryData: {},
listQuery: { listQuery: {
superQueryJson: '', superQueryJson: "",
currentPage: 1, currentPage: 1,
pageSize: 20, pageSize: 20,
sort: "desc", sort: "desc",
sidx: "", sidx: ""
}, },
formVisible: false, formVisible: false,
flowVisible: false, flowVisible: false,
flowListVisible: false, flowListVisible: false,
flowList: [], flowList: [],
exportBoxVisible: false, exportBoxVisible: false,
typeOptions:[{"fullName":"园区","id":"1"},{"fullName":"区域","id":"2"},{"fullName":"空间","id":"3"}], typeOptions: [
typeProps:{"label":"fullName","value":"id" }, { fullName: "园区", id: "1" },
interfaceRes: { { fullName: "区域", id: "2" },
}, { fullName: "空间", id: "3" }
} ],
typeProps: { label: "fullName", value: "id" },
interfaceRes: {}
};
}, },
computed: { computed: {
...mapGetters(['userInfo']), ...mapGetters(["userInfo"]),
menuId() { menuId() {
return this.$route.meta.modelId || '' return this.$route.meta.modelId || "";
} }
}, },
created() { created() {
this.getColumnList(), this.getColumnList(), this.initSearchDataAndListData();
this.initSearchDataAndListData() this.queryData = JSON.parse(JSON.stringify(this.query));
this.queryData = JSON.parse(JSON.stringify(this.query))
}, },
methods: { methods: {
toDetail(defaultValue, modelId) { toDetail(defaultValue, modelId) {
if (!defaultValue) return if (!defaultValue) return;
getConfigData(modelId).then(res => { getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return if (!res.data || !res.data.formData) return;
let formData = JSON.parse(res.data.formData) let formData = JSON.parse(res.data.formData);
formData.popupType = 'general' formData.popupType = "general";
this.toFormDetailVisible = true this.toFormDetailVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.toFormDetail.init(formData, modelId, defaultValue) this.$refs.toFormDetail.init(formData, modelId, defaultValue);
}) });
}) });
}, },
toggleTreeExpand(expands) { toggleTreeExpand(expands) {
this.refreshTree = false this.refreshTree = false;
this.expandsTree = expands this.expandsTree = expands;
this.$nextTick(() => { this.$nextTick(() => {
this.refreshTree = true this.refreshTree = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.treeBox.setCurrentKey(null) this.$refs.treeBox.setCurrentKey(null);
}) });
}) });
}, },
filterNode(value, data) { filterNode(value, data) {
if (!value) return true; if (!value) return true;
return data[this.treeProps.label].indexOf(value) !== -1; return data[this.treeProps.label].indexOf(value) !== -1;
}, },
loadNode(node, resolve) { loadNode(node, resolve) {
const nodeData = node.data const nodeData = node.data;
const config ={ const config = {
treeInterfaceId:"", treeInterfaceId: "",
treeTemplateJson:[] treeTemplateJson: []
} };
if (config.treeInterfaceId) { if (config.treeInterfaceId) {
// //
if (config.treeTemplateJson && config.treeTemplateJson.length) { if (config.treeTemplateJson && config.treeTemplateJson.length) {
for (let i = 0; i < config.treeTemplateJson.length; i++) { for (let i = 0; i < config.treeTemplateJson.length; i++) {
const element = config.treeTemplateJson[i]; const element = config.treeTemplateJson[i];
element.defaultValue = nodeData[element.relationField] || '' element.defaultValue = nodeData[element.relationField] || "";
} }
} }
// //
let query = { let query = {
paramList: config.treeTemplateJson || [], paramList: config.treeTemplateJson || []
} };
// //
getDataInterfaceRes(config.treeInterfaceId, query).then(res => { getDataInterfaceRes(config.treeInterfaceId, query).then(res => {
let data = res.data let data = res.data;
if (Array.isArray(data)) { if (Array.isArray(data)) {
resolve(data); resolve(data);
} else { } else {
resolve([]); resolve([]);
} }
}) });
} }
}, },
getColumnList() { getColumnList() {
// //
this.columnOptions = this.transformColumnList(this.columnList) this.columnOptions = this.transformColumnList(this.columnList);
}, },
transformColumnList(columnList) { transformColumnList(columnList) {
let list = [] let list = [];
for (let i = 0; i < columnList.length; i++) { for (let i = 0; i < columnList.length; i++) {
const e = columnList[i]; const e = columnList[i];
if (!e.prop.includes('-')) { if (!e.prop.includes("-")) {
list.push(e) list.push(e);
} else { } else {
let prop = e.prop.split('-')[0] let prop = e.prop.split("-")[0];
let label = e.label.split('-')[0] let label = e.label.split("-")[0];
let vModel = e.prop.split('-')[1] let vModel = e.prop.split("-")[1];
let newItem = { let newItem = {
align: "center", align: "center",
jnpfKey: "table", jnpfKey: "table",
prop, prop,
label, label,
children: [] children: []
} };
e.vModel = vModel e.vModel = vModel;
if (!this.expandObj.hasOwnProperty(`${prop}Expand`)) this.$set(this.expandObj, `${prop}Expand`, false) if (!this.expandObj.hasOwnProperty(`${prop}Expand`))
if (!list.some(o => o.prop === prop)) list.push(newItem) 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++) { for (let i = 0; i < list.length; i++) {
if (list[i].prop === prop) { if (list[i].prop === prop) {
list[i].children.push(e) list[i].children.push(e);
break break;
} }
} }
} }
} }
this.getMergeList(list) this.getMergeList(list);
this.getExportList(list) this.getExportList(list);
return list return list;
}, },
arraySpanMethod({ column }) { arraySpanMethod({ column }) {
for (let i = 0; i < this.mergeList.length; i++) { for (let i = 0; i < this.mergeList.length; i++) {
if (column.property == this.mergeList[i].prop) { if (column.property == this.mergeList[i].prop) {
return [this.mergeList[i].rowspan, this.mergeList[i].colspan] return [this.mergeList[i].rowspan, this.mergeList[i].colspan];
} }
} }
}, },
getMergeList(list) { getMergeList(list) {
let newList = JSON.parse(JSON.stringify(list)) let newList = JSON.parse(JSON.stringify(list));
newList.forEach(item => { newList.forEach(item => {
if (item.children && item.children.length) { if (item.children && item.children.length) {
let child = { let child = {
prop: item.prop + '-child-first' prop: item.prop + "-child-first"
} };
item.children.unshift(child) item.children.unshift(child);
} }
}) });
newList.forEach(item => { newList.forEach(item => {
if (item.children && item.children.length ) { if (item.children && item.children.length) {
item.children.forEach((child, index) => { item.children.forEach((child, index) => {
if (index == 0) { if (index == 0) {
this.mergeList.push({ this.mergeList.push({
prop: child.prop, prop: child.prop,
rowspan: 1, rowspan: 1,
colspan: item.children.length colspan: item.children.length
}) });
} else { } else {
this.mergeList.push({ this.mergeList.push({
prop: child.prop, prop: child.prop,
rowspan: 0, rowspan: 0,
colspan: 0 colspan: 0
}) });
} }
}) });
} else { } else {
this.mergeList.push({ this.mergeList.push({
prop: item.prop, prop: item.prop,
rowspan: 1, rowspan: 1,
colspan: 1 colspan: 1
}) });
} }
}) });
}, },
getExportList(list) { getExportList(list) {
let exportList = [] let exportList = [];
for (let i = 0; i < list.length; i++) { for (let i = 0; i < list.length; i++) {
if (list[i].jnpfKey === 'table') { if (list[i].jnpfKey === "table") {
for (let j = 0; j < list[i].children.length; j++) { for (let j = 0; j < list[i].children.length; j++) {
exportList.push(list[i].children[j]) exportList.push(list[i].children[j]);
} }
} else { } else {
exportList.push(list[i]) exportList.push(list[i]);
} }
} }
this.exportList = exportList this.exportList = exportList;
}, },
goDetail(id){ goDetail(id) {
this.detailVisible = true this.detailVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.Detail.init(id) this.$refs.Detail.init(id);
}) });
}, },
sortChange({column, prop, order}) { sortChange({ column, prop, order }) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc' this.listQuery.sort = order == "ascending" ? "asc" : "desc";
this.listQuery.sidx = !order ? '' : prop this.listQuery.sidx = !order ? "" : prop;
this.initData() this.initData();
}, },
async initSearchDataAndListData() { async initSearchDataAndListData() {
await this.initSearchData() await this.initSearchData();
this.initData() this.initData();
}, },
// //
async initSearchData() { async initSearchData() {},
},
initData() { initData() {
this.listLoading = true; this.listLoading = true;
let _query = { let _query = {
@ -357,138 +394,145 @@
...this.query, ...this.query,
keyword: this.keyword, keyword: this.keyword,
dataType: 0, dataType: 0,
menuId:this.menuId, menuId: this.menuId,
moduleId:'581462239718932549', moduleId: "581462239718932549",
type:1, type: 1
}; };
request({ request({
url: `/api/example/Park/getList`, url: `/api/example/Park/getList`,
method: 'post', method: "post",
data: _query data: _query
}).then(res => { }).then(res => {
var _list =res.data.list; var _list = res.data.list;
this.list = _list.map(o => ({ this.list = _list.map(o => ({
...o, ...o,
...this.expandObj, ...this.expandObj
})) }));
this.total = res.data.pagination.total this.total = res.data.pagination.total;
this.listLoading = false this.listLoading = false;
}) });
}, },
handleDel(id) { handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
type: 'warning' type: "warning"
}).then(() => { })
.then(() => {
request({ request({
url: `/api/example/Park/${id}`, url: `/api/example/Park/${id}`,
method: 'DELETE' method: "DELETE"
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: "success",
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData();
} }
}); });
})
}).catch(() => {
}); });
})
.catch(() => {});
}, },
handelUpload(){ handelUpload() {
this.uploadBoxVisible = true this.uploadBoxVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.UploadBox.init("","example/Park") this.$refs.UploadBox.init("", "example/Park");
}) });
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
const res = val.map(item => item.id) const res = val.map(item => item.id);
this.multipleSelection = res this.multipleSelection = res;
}, },
handleBatchRemoveDel() { handleBatchRemoveDel() {
if (!this.multipleSelection.length) { if (!this.multipleSelection.length) {
this.$message({ this.$message({
type: 'error', type: "error",
message: '请选择一条数据', message: "请选择一条数据",
duration: 1500, duration: 1500
}) });
return return;
} }
const ids = this.multipleSelection const ids = this.multipleSelection;
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { this.$confirm("您确定要删除这些数据吗, 是否继续?", "提示", {
type: 'warning' type: "warning"
}).then(() => { })
.then(() => {
request({ request({
url: `/api/example/Park/batchRemove`, url: `/api/example/Park/batchRemove`,
data: ids, data: ids,
method: 'DELETE' method: "DELETE"
}).then(res => { }).then(res => {
this.$message({ this.$message({
type: 'success', type: "success",
message: res.msg, message: res.msg,
onClose: () => { onClose: () => {
this.initData() this.initData();
} }
}); });
});
}) })
}).catch(() => { .catch(() => {});
})
}, },
openSuperQuery() { openSuperQuery() {
this.superQueryVisible = true this.superQueryVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.SuperQuery.init() this.$refs.SuperQuery.init();
}) });
}, },
superQuery(queryJson) { superQuery(queryJson) {
this.listQuery.superQueryJson = queryJson this.listQuery.superQueryJson = queryJson;
this.listQuery.currentPage = 1 this.listQuery.currentPage = 1;
this.initData() this.initData();
}, },
addOrUpdateHandle(row, isDetail) { addOrUpdateHandle(row, isDetail) {
let id = row?row.id:"" let id = row ? row.id : "";
this.formVisible = true this.formVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.JNPFForm.init(id, isDetail,this.list) this.$refs.JNPFForm.init(id, isDetail, this.list);
}) });
}, },
exportData() { exportData() {
this.exportBoxVisible = true this.exportBoxVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.ExportBox.init(this.exportList) this.$refs.ExportBox.init(this.exportList);
}) });
}, },
download(data) { download(data) {
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId} let query = {
...data,
...this.listQuery,
...this.query,
menuId: this.menuId
};
request({ request({
url: `/api/example/Park/Actions/Export`, url: `/api/example/Park/Actions/Export`,
method: 'post', method: "post",
data: query data: query
}).then(res => { }).then(res => {
if (!res.data.url) return if (!res.data.url) return;
this.jnpf.downloadFile(res.data.url) this.jnpf.downloadFile(res.data.url);
this.$refs.ExportBox.visible = false this.$refs.ExportBox.visible = false;
this.exportBoxVisible = false this.exportBoxVisible = false;
}) });
}, },
search() { search() {
this.listQuery.currentPage=1 this.listQuery.currentPage = 1;
this.listQuery.pageSize=20 this.listQuery.pageSize = 20;
this.listQuery.sort="desc" this.listQuery.sort = "desc";
this.listQuery.sidx="" this.listQuery.sidx = "";
this.initData() this.initData();
}, },
refresh(isrRefresh) { refresh(isrRefresh) {
this.formVisible = false this.formVisible = false;
if (isrRefresh) this.reset() if (isrRefresh) this.reset();
}, },
reset() { reset() {
this.query = JSON.parse(JSON.stringify(this.queryData)) this.query = JSON.parse(JSON.stringify(this.queryData));
this.search() this.search();
}, },
colseFlow(isrRefresh) { colseFlow(isrRefresh) {
this.flowVisible = false this.flowVisible = false;
if (isrRefresh) this.reset() if (isrRefresh) this.reset();
},
} }
} }
};
</script> </script>

Loading…
Cancel
Save