园区管理和区域修改

master
vayne 3 months ago
parent 6cedb8e83d
commit f17e1d3487

@ -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;
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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import jnpf.model.area.AreaPagination;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* area
@ -13,4 +20,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
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 java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
@ -30,6 +31,9 @@ import jnpf.util.*;
import java.util.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
import javax.annotation.Resource;
/**
*
* area
@ -45,6 +49,8 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
@Autowired
private UserProvider userProvider;
@Resource
private AreaMapper areaMapper;
@Override
public List<AreaEntity> getList(AreaPagination areaPagination){
@ -150,19 +156,37 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
String value = areaPagination.getName() instanceof List ?
JsonUtil.getObjectToString(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())){
areaNum++;
String value = areaPagination.getPid() instanceof List ?
JsonUtil.getObjectToString(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){
@ -182,7 +206,7 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
if (intersection.size()==0){
intersection.add("jnpfNullList");
}
areaQueryWrapper.lambda().in(AreaEntity::getId, intersection);
areaQueryWrapper.in("a.id", intersection);
}
//是否有高级查询
if (StringUtil.isNotEmpty(superOp)){
@ -190,7 +214,7 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
allSuperIDlist.add("jnpfNullList");
}
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)){
@ -198,14 +222,14 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
allRuleIDlist.add("jnpfNullList");
}
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())){
areaQueryWrapper.lambda().orderByDesc(AreaEntity::getId);
areaQueryWrapper.orderByDesc("a.id");
}else{
try {
String sidx = areaPagination.getSidx();
@ -214,7 +238,8 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
Field declaredField = areaEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true);
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) {
e.printStackTrace();
}
@ -223,7 +248,7 @@ public class AreaServiceImpl extends ServiceImpl<AreaMapper, AreaEntity> impleme
if("0".equals(dataType)){
if((total>0 && AllIdList.size()>0) || total==0){
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());
}else{
List<AreaEntity> list = new ArrayList();

@ -18,6 +18,7 @@ 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;
@ -152,8 +153,12 @@ public class ParkServiceImpl extends ServiceImpl<ParkMapper, ParkEntity> impleme
String.valueOf(parkPagination.getName());
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);
if (total>0){

@ -89,7 +89,7 @@ public class AreaRenameController {
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();

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

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

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

@ -1,71 +1,76 @@
<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="100px" label-position="right" >
<el-dialog
title="详情"
:close-on-click-modal="false"
append-to-body
:visible.sync="visible"
class="JNPF-dialog JNPF-dialog_center"
lock-scroll
width="1000px"
>
<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="pid" >
<p>{{dataForm.pid}}</p>
<el-col :span="24">
<jnpf-form-tip-item label="园区名称" prop="pid">
<p>{{ dataForm.pid }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="区域编码"
prop="code" >
<p>{{dataForm.code}}</p>
<el-col :span="12">
<jnpf-form-tip-item label="区域编码" prop="code">
<p>{{ dataForm.code }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="空间数量"
prop="spaceNum" >
<JnpfNumber v-model="dataForm.spaceNum"
placeholder="数字文本" disabled
:step="1" >
<el-col :span="12">
<jnpf-form-tip-item label="空间数量" prop="spaceNum">
<JnpfNumber
v-model="dataForm.spaceNum"
placeholder="数字文本"
disabled
:step="1"
>
</JnpfNumber>
</jnpf-form-tip-item>
</el-col>
<el-col :span="12" >
<jnpf-form-tip-item label="区域名称"
prop="name" >
<p>{{dataForm.name}}</p>
<el-col :span="12">
<jnpf-form-tip-item label="区域名称" prop="name">
<p>{{ dataForm.name }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="区域描述"
prop="description" >
<p>{{dataForm.description}}</p>
<el-col :span="24">
<jnpf-form-tip-item label="区域描述" prop="description">
<p>{{ dataForm.description }}</p>
</jnpf-form-tip-item>
</el-col>
<el-col :span="24" >
<jnpf-form-tip-item label="备注"
prop="remark" >
<p>{{dataForm.remark}}</p>
<el-col :span="24">
<jnpf-form-tip-item label="备注" prop="remark">
<p>{{ dataForm.remark }}</p>
</jnpf-form-tip-item>
</el-col>
</template>
</el-form>
</el-form>
</el-row>
</div>
</transition>
<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>
</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},
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 {
@ -74,62 +79,54 @@
loading: false,
dataForm: {
id :'',
pid : '',
code : '',
spaceNum : '',
name : '',
description : '',
remark : '',
},
id: "",
pid: "",
code: "",
spaceNum: "",
name: "",
description: "",
remark: ""
}
};
},
computed: {},
watch: {},
created() {
},
created() {},
mounted() {},
methods: {
toDetail(defaultValue, modelId) {
if (!defaultValue) return
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
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)
})
})
this.$refs.Detail.init(formData, modelId, defaultValue);
});
});
},
dataInfo(dataAll){
let _dataAll =dataAll
this.dataForm = _dataAll
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
if (this.dataForm.id) {
this.loading = true;
request({
url: '/api/example/Area/detail/'+this.dataForm.id,
method: 'get'
url: "/api/example/Area/detail/" + this.dataForm.id,
method: "get"
}).then(res => {
this.dataInfo(res.data)
this.loading = false
})
this.dataInfo(res.data);
this.loading = false;
});
}
})
},
},
});
}
}
};
</script>

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

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

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

Loading…
Cancel
Save