大屏菜单定制化
parent
0eb7aa4516
commit
749aaa7b28
|
@ -14,7 +14,15 @@ const getProjectInfo=id=>{
|
|||
});
|
||||
}
|
||||
|
||||
const bigScreenGetMenuByProjectId=id=>{
|
||||
return request({
|
||||
url: "/manage/api/project/bigscreenMenu/bigScreenGetMenuByProjectId?projectId="+id,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
findMyProjectList,
|
||||
getProjectInfo
|
||||
getProjectInfo,
|
||||
bigScreenGetMenuByProjectId
|
||||
};
|
||||
|
|
|
@ -7,73 +7,71 @@
|
|||
<div :class="nav == 2 ? 'head-nav active' : 'head-nav'" @click="doNav(2)" v-if="1 == 2">项目详情</div>
|
||||
<div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doNav(7)" v-if="1 == 2">劳务管理</div>
|
||||
|
||||
<div :class="(nav >= 100 && nav < 200) || nav == 1 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div v-if="showMenusNavIds.includes('1')" :class="(nav >= 100 && nav < 200) || nav == 1 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div>项目概况</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button type="button" :class="nav == 101 ? 'active' : ''" class="sub-btn" @click="doNav(101)">项目详情</button>
|
||||
<button type="button" :class="nav == 102 ? 'active' : ''" class="sub-btn" @click="doNav(102)">劳务管理</button>
|
||||
<button v-if="showMenusNavIds.includes('101')" type="button" :class="nav == 101 ? 'active' : ''" class="sub-btn" @click="doNav(101)">项目详情</button>
|
||||
<button v-if="showMenusNavIds.includes('102')" type="button" :class="nav == 102 ? 'active' : ''" class="sub-btn" @click="doNav(102)">劳务管理</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div v-if="showMenusNavIds.includes('3')" :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div>安全管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button type="button" :class="nav == 301 ? 'active' : ''" class="sub-btn" @click="doNav(301)">安全隐患排查</button>
|
||||
<!-- <button type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn" @click="doNav(302)">教育培训</button> -->
|
||||
<button type="button" :class="nav == 303 ? 'active' : ''" class="sub-btn" @click="doNav(303)">基坑监测</button>
|
||||
<button type="button" :class="nav == 304 ? 'active' : ''" class="sub-btn" @click="doNav(304)">塔机监测</button>
|
||||
<button v-if="showMenusNavIds.includes('301')" type="button" :class="nav == 301 ? 'active' : ''" class="sub-btn" @click="doNav(301)">安全隐患排查</button>
|
||||
<button v-if="showMenusNavIds.includes('302')" type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn" @click="doNav(302)">教育培训</button>
|
||||
<button v-if="showMenusNavIds.includes('303')" type="button" :class="nav == 303 ? 'active' : ''" class="sub-btn" @click="doNav(303)">基坑监测</button>
|
||||
<button v-if="showMenusNavIds.includes('304')" type="button" :class="nav == 304 ? 'active' : ''" class="sub-btn" @click="doNav(304)">塔机监测</button>
|
||||
</div>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<!-- <button type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn" @click="doNav(305)">高支模监测</button> -->
|
||||
<button type="button" :class="nav == 306 ? 'active' : ''" class="sub-btn" @click="doNav(306)">配电箱监测</button>
|
||||
<!-- <button type="button" :class="nav == 307 ? 'active' : ''" class="sub-btn" @click="doNav(307)">爬架监测</button>
|
||||
<button type="button" :class="nav == 308 ? 'active' : ''" class="sub-btn" @click="doNav(308)">升降机监测</button>-->
|
||||
<button v-if="showMenusNavIds.includes('305')" type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn" @click="doNav(305)">高支模监测</button>
|
||||
<button v-if="showMenusNavIds.includes('306')" type="button" :class="nav == 306 ? 'active' : ''" class="sub-btn" @click="doNav(306)">配电箱监测</button>
|
||||
<button v-if="showMenusNavIds.includes('307')" type="button" :class="nav == 307 ? 'active' : ''" class="sub-btn" @click="doNav(307)">爬架监测</button>
|
||||
<button v-if="showMenusNavIds.includes('308')" type="button" :class="nav == 308 ? 'active' : ''" class="sub-btn" @click="doNav(308)">升降机监测</button>
|
||||
</div>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button type="button" :class="nav == 309 ? 'active' : ''" class="sub-btn" @click="doNav(309)">视频监控</button>
|
||||
<button type="button" :class="nav == 310 ? 'active' : ''" class="sub-btn" @click="doNav(310)">AI预警</button>
|
||||
<!-- <button type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn" @click="doNav(311)">标准化管理</button> -->
|
||||
<button v-if="showMenusNavIds.includes('309')" type="button" :class="nav == 309 ? 'active' : ''" class="sub-btn" @click="doNav(309)">视频监控</button>
|
||||
<button v-if="showMenusNavIds.includes('310')" type="button" :class="nav == 310 ? 'active' : ''" class="sub-btn" @click="doNav(310)">AI预警</button>
|
||||
<button v-if="showMenusNavIds.includes('311')" type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn" @click="doNav(311)">标准化管理</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div v-if="showMenusNavIds.includes('4')" :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div>质量管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button type="button" :class="nav == 401 ? 'active' : ''" class="sub-btn" @click="doNav(401)">质量隐患排查</button>
|
||||
<!--
|
||||
<button type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn" @click="doNav(402)">材料取样复试</button>
|
||||
<button type="button" :class="nav == 403 ? 'active' : ''" class="sub-btn" @click="doNav(403)">举牌验收</button>
|
||||
<button type="button" :class="nav == 404 ? 'active' : ''" class="sub-btn" @click="doNav(404)">标养室监测</button>-->
|
||||
<button v-if="showMenusNavIds.includes('401')" type="button" :class="nav == 401 ? 'active' : ''" class="sub-btn" @click="doNav(401)">质量隐患排查</button>
|
||||
<button v-if="showMenusNavIds.includes('402')" type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn" @click="doNav(402)">材料取样复试</button>
|
||||
<button v-if="showMenusNavIds.includes('403')" type="button" :class="nav == 403 ? 'active' : ''" class="sub-btn" @click="doNav(403)">举牌验收</button>
|
||||
<button v-if="showMenusNavIds.includes('404')" type="button" :class="nav == 404 ? 'active' : ''" class="sub-btn" @click="doNav(404)">标养室监测</button>
|
||||
</div>
|
||||
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button v-if="showMenusNavIds.includes('405')" type="button" :class="nav == 405 ? 'active' : ''" class="sub-btn" @click="doNav(405)">标准化管理</button>
|
||||
<button v-if="showMenusNavIds.includes('406')" type="button" :class="nav == 406 ? 'active' : ''" class="sub-btn" @click="doNav(406)">混泥土监测</button>
|
||||
</div>
|
||||
<!--
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
|
||||
<button type="button" :class="nav == 405 ? 'active' : ''" class="sub-btn" @click="doNav(405)">标准化管理</button>
|
||||
<button type="button" :class="nav == 406 ? 'active' : ''" class="sub-btn" @click="doNav(406)">混泥土监测</button>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div v-if="showMenusNavIds.includes('5')" :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div>进度管理</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button type="button" :class="nav == 502 ? 'active' : ''" class="sub-btn" @click="doNav(502)">进度管理</button>
|
||||
<button type="button" :class="nav == 501 ? 'active' : ''" class="sub-btn" @click="doNav(501)">延时摄影</button>
|
||||
<button v-if="showMenusNavIds.includes('502')" type="button" :class="nav == 502 ? 'active' : ''" class="sub-btn" @click="doNav(502)">进度管理</button>
|
||||
<button v-if="showMenusNavIds.includes('501')" type="button" :class="nav == 501 ? 'active' : ''" class="sub-btn" @click="doNav(501)">延时摄影</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -86,22 +84,22 @@
|
|||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div class="head-title-tab" style="display: inline-flex">
|
||||
<div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿碳中心</div>
|
||||
<div :class="(nav >= 700 && nav < 800) || nav == 7 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div v-if="showMenusNavIds.includes('6')" :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿碳中心</div>
|
||||
<div v-if="showMenusNavIds.includes('7')" :class="(nav >= 700 && nav < 800) || nav == 7 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu">
|
||||
<div>数字孪生</div>
|
||||
<div class="header-btn-list">
|
||||
<div class="header-btn-list-arrow"></div>
|
||||
<div class="header-btn-list-item" style>
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button type="button" :class="nav == 701 ? 'active' : ''" class="sub-btn" @click="doNav(701)">项目沙盘</button>
|
||||
<button v-if="showMenusNavIds.includes('701')" type="button" :class="nav == 701 ? 'active' : ''" class="sub-btn" @click="doNav(701)">项目沙盘</button>
|
||||
|
||||
<button type="button" :class="nav == 702 ? 'active' : ''" class="sub-btn" @click="doNav(702)">项目漫游</button>
|
||||
<button type="button" :class="nav == 703 ? 'active' : ''" class="sub-btn" @click="doNav(703)">BIM应用</button>
|
||||
<button v-if="showMenusNavIds.includes('702')" type="button" :class="nav == 702 ? 'active' : ''" class="sub-btn" @click="doNav(702)">项目漫游</button>
|
||||
<button v-if="showMenusNavIds.includes('703')" type="button" :class="nav == 703 ? 'active' : ''" class="sub-btn" @click="doNav(703)">BIM应用</button>
|
||||
</div>
|
||||
|
||||
<div class="header-btn-list-padding menu-row1" style="text-align: left">
|
||||
<button type="button" :class="nav == 704 ? 'active' : ''" class="sub-btn" @click="doNav(704)">BIM交底</button>
|
||||
<button type="button" :class="nav == 705 ? 'active' : ''" class="sub-btn" @click="doNav(705)">4D模拟</button>
|
||||
<button v-if="showMenusNavIds.includes('704')" type="button" :class="nav == 704 ? 'active' : ''" class="sub-btn" @click="doNav(704)">BIM交底</button>
|
||||
<button v-if="showMenusNavIds.includes('705')" type="button" :class="nav == 705 ? 'active' : ''" class="sub-btn" @click="doNav(705)">4D模拟</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -143,6 +141,8 @@ export default {
|
|||
selProjectId: "",
|
||||
projects: [],
|
||||
isFullScreen: false,
|
||||
showMenus: [],
|
||||
showMenusNavIds: [],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -159,6 +159,17 @@ export default {
|
|||
},
|
||||
},
|
||||
mounted() {
|
||||
this.showMenus = [
|
||||
{
|
||||
id: 1,
|
||||
navId: "1",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
navId: "101",
|
||||
},
|
||||
];
|
||||
this.showMenusNavIds = this.showMenus.map((d) => d.navId);
|
||||
if (location.href.includes("#/detail?prjId=")) {
|
||||
const urlParams = new URLSearchParams(location.href.split("?")[1]);
|
||||
const prjId = urlParams.get("prjId");
|
||||
|
@ -188,6 +199,7 @@ export default {
|
|||
}, 400);
|
||||
},
|
||||
doProjectSelect() {
|
||||
this.loadMenu();
|
||||
let tmps = this.projects.filter((d) => d.id == this.selProjectId);
|
||||
if (tmps.length > 0) {
|
||||
this.$store.dispatch("SetSelProject", tmps[0]);
|
||||
|
@ -202,6 +214,27 @@ export default {
|
|||
localStorage.setItem("selProj", this.selProjectId);
|
||||
localStorage.setItem("prj_title", document.title);
|
||||
},
|
||||
loadMenu() {
|
||||
this.$api.project.bigScreenGetMenuByProjectId(this.selProjectId).then((d) => {
|
||||
|
||||
let objs = d.data || [];
|
||||
if (objs.length == 0) {
|
||||
objs = [
|
||||
{
|
||||
id: 1,
|
||||
navId: "1",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
navId: "101",
|
||||
},
|
||||
];
|
||||
}
|
||||
this.showMenus = objs;
|
||||
this.showMenusNavIds = this.showMenus.map((d) => d.navId);
|
||||
console.log(this.showMenusNavIds);
|
||||
});
|
||||
},
|
||||
doNav(n) {
|
||||
if (this.nav == n) {
|
||||
return;
|
||||
|
@ -243,7 +276,7 @@ export default {
|
|||
break;
|
||||
case 6:
|
||||
this.$router.push("/greenCarbon");
|
||||
break;
|
||||
break;
|
||||
case 702:
|
||||
this.$router.push("/bimRoaming");
|
||||
break;
|
||||
|
|
|
@ -109,7 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="projectPersonPhone != null and projectPersonPhone != ''"> and pi.project_person_phone = #{projectPersonPhone}</if>
|
||||
<if test="projectStatus != null and projectStatus != ''"> and pi.project_status = #{projectStatus}</if>
|
||||
<if test="isDel != null "> and pi.is_del = #{isDel}</if>
|
||||
and pi.is_del !=2
|
||||
and pi.is_del not in (1,2)
|
||||
</where>
|
||||
<if test="currentUserId == null "> order by pi.project_sort, pi.id desc</if>
|
||||
<if test="currentUserId != null "> order by psu.sort_by, pi.id desc</if>
|
||||
|
@ -423,7 +423,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="projectPersonPhone != null and projectPersonPhone != ''"> and pi.project_person_phone = #{projectPersonPhone}</if>
|
||||
<if test="projectStatus != null and projectStatus != ''"> and pi.project_status = #{projectStatus}</if>
|
||||
<if test="isDel != null "> and pi.is_del = #{isDel}</if>
|
||||
and pi.is_del!= 2
|
||||
and pi.is_del=0
|
||||
</where>
|
||||
<if test="currentUserId == null "> order by pi.project_sort, pi.id desc</if>
|
||||
<if test="currentUserId != null "> order by psu.sort_by, pi.id desc</if>
|
||||
|
|
|
@ -71,7 +71,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
select d.dept_id
|
||||
from sys_dept d
|
||||
left join sys_role_dept rd on d.dept_id = rd.dept_id
|
||||
where rd.role_id = #{roleId}
|
||||
where d.del_flag = '0' and
|
||||
rd.role_id = #{roleId}
|
||||
<if test="deptCheckStrictly">
|
||||
and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId})
|
||||
</if>
|
||||
|
@ -80,7 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
|
||||
<include refid="selectDeptVo"/>
|
||||
where dept_id = #{deptId}
|
||||
where del_flag = '0' and dept_id = #{deptId}
|
||||
</select>
|
||||
|
||||
<select id="checkDeptExistUser" parameterType="Long" resultType="int">
|
||||
|
@ -93,7 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</select>
|
||||
|
||||
<select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
|
||||
select * from sys_dept where find_in_set(#{deptId}, ancestors)
|
||||
select * from sys_dept where find_in_set(#{deptId}, ancestors) and del_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
|
||||
|
|
|
@ -13,6 +13,7 @@ import com.yanzhu.common.security.annotation.RequiresPermissions;
|
|||
import com.yanzhu.common.security.utils.SecurityUtils;
|
||||
import com.yanzhu.manage.domain.ProProjectInfo;
|
||||
import com.yanzhu.manage.service.IProProjectInfoService;
|
||||
import com.yanzhu.system.api.domain.SysDept;
|
||||
import com.yanzhu.system.api.model.LoginUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
|
@ -19,7 +19,9 @@ import java.sql.PreparedStatement;
|
|||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@RestController
|
||||
|
@ -32,6 +34,18 @@ public class BimModelController {
|
|||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@GetMapping("/clearCache/{key}")
|
||||
public AjaxResult clearCache(@PathVariable("key") String key){
|
||||
// 依据前缀获取所有匹配的键
|
||||
Collection<String> keys = redisService.keys(key + "*");
|
||||
if (!keys.isEmpty()) {
|
||||
// 删除所有匹配的键
|
||||
redisService.deleteObject(keys);
|
||||
return AjaxResult.success("缓存清除成功");
|
||||
}
|
||||
return AjaxResult.success("未找到匹配的缓存");
|
||||
}
|
||||
|
||||
/**
|
||||
* 带子节点的model_tree查询
|
||||
* @param name
|
||||
|
|
|
@ -33,14 +33,14 @@ public class HasorModule implements SpringModule {
|
|||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
private boolean isCache(ApiInfo apiInfo) {
|
||||
private String getKey(ApiInfo apiInfo){
|
||||
Map<FieldDef, String> map = apiInfo.getObj();
|
||||
if (map == null) {
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
String header = map.get(FieldDef.REQ_HEADER_SAMPLE);
|
||||
if (StringUtils.isBlank(header)) {
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
try {
|
||||
JSONArray jsonObject = JSON.parseArray(header);
|
||||
|
@ -48,7 +48,7 @@ public class HasorModule implements SpringModule {
|
|||
JSONObject obj = jsonObject.getJSONObject(i);
|
||||
if ("cache".equals(obj.getString("name"))) {
|
||||
String value = obj.getString("value");
|
||||
return "1".equals(value) || "true".equals(value);
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,11 +56,19 @@ public class HasorModule implements SpringModule {
|
|||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
private boolean isCache(ApiInfo apiInfo) {
|
||||
String key=getKey(apiInfo);
|
||||
if(StringUtils.isBlank(key)){
|
||||
return false;
|
||||
}
|
||||
String keyLower=key.toLowerCase();
|
||||
return !"0".equals(keyLower) && !"false".equals(keyLower);
|
||||
}
|
||||
|
||||
public String getCacheKey(ApiInfo apiInfo) {
|
||||
return "hasor-" + apiInfo.getApiPath() + JSON.toJSONString(apiInfo.getParameterMap());
|
||||
return getKey(apiInfo)+"."+ apiInfo.getApiPath() + JSON.toJSONString(apiInfo.getParameterMap());
|
||||
}
|
||||
|
||||
public void loadModule(ApiBinder apiBinder) throws Throwable {
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
import request from '@/utils/request'
|
||||
export function getMenuByProjectId(query) {
|
||||
return request({
|
||||
url: '/manage/api/project/bigscreenMenu/getMenuByProjectId',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addMenus(data) {
|
||||
return request({
|
||||
url: '/manage/api/project/bigscreenMenu/addMenus',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateMenus(data) {
|
||||
return request({
|
||||
url: '/manage/api/project/bigscreenMenu/updateMenus',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function clearCache(key) {
|
||||
return request({
|
||||
url: "/manage/bim/modelInfo/clearCache/" +key,
|
||||
method: "get",
|
||||
});
|
||||
}
|
|
@ -392,6 +392,7 @@
|
|||
<script setup name="ProProjectInfo">
|
||||
import { deptTreeSelect } from "@/api/system/user";
|
||||
import { listProProjectInfo, getProProjectInfo, delProProjectInfo, addProProjectInfo, updateProProjectInfo, resetProQrCode } from "@/api/manage/proProjectInfo";
|
||||
import {delDept} from '@/api/system/dept';
|
||||
import BaiduMap from "@/components/BaiduMap/Map.vue";
|
||||
import useUserStore from '@/store/modules/user'
|
||||
import costOutputDrawer from "../costOutput/costOutputDrawer.vue";
|
||||
|
@ -708,6 +709,7 @@ function submitForm() {
|
|||
let postData = {
|
||||
...form.value
|
||||
}
|
||||
postData.comId=postData.disDeptId
|
||||
if (form.value.id != null) {
|
||||
updateProProjectInfo(postData).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
|
@ -745,7 +747,13 @@ function setProjectSort(row, val) {
|
|||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除项目信息编号为"' + _ids + '"的数据项?').then(function () {
|
||||
return delProProjectInfo(_ids);
|
||||
let ajaxs=[
|
||||
delProProjectInfo(_ids)
|
||||
];
|
||||
if(Array.isArray(_ids)){
|
||||
ajaxs=ajaxs.concat(_ids.map(id=>delDept(id)));
|
||||
}
|
||||
return Promise.all(ajaxs);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
<template>
|
||||
<div class="bigscreen-menu app-container">
|
||||
<el-button type="primary" @click="handleCheckDefault">默认</el-button>
|
||||
<el-button type="success" @click="handleCheckSave">保存</el-button>
|
||||
<el-button type="danger" @click="handleClearCache">清除缓存</el-button>
|
||||
<el-tree ref="treeRef" :data="dataSource" show-checkbox :props="defaultProps" node-key="id" default-expand-all :expand-on-click-node="false"> </el-tree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import useUserStore from "@/store/modules/user";
|
||||
import { getMenuByProjectId,addMenus,updateMenus,clearCache } from "@/api/system/bigscreenMenu";
|
||||
export default {
|
||||
name: "BigscreenMenu",
|
||||
data() {
|
||||
return {
|
||||
dataSource: [],
|
||||
userStore: {},
|
||||
currentPrjId: null,
|
||||
currentComId: null,
|
||||
treeData: [],
|
||||
defaultProps: {
|
||||
children: "children",
|
||||
label: "name",
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
console.log("--1--");
|
||||
this.userStore = useUserStore();
|
||||
this.currentPrjId = this.userStore.currentPrjId;
|
||||
this.currentComId = this.userStore.currentComId;
|
||||
|
||||
getMenuByProjectId({ projectId: this.currentPrjId }).then((res) => {
|
||||
let tmps = res.data || [];
|
||||
this.treeData = tmps;
|
||||
let makeTree = (nodes) => {
|
||||
nodes.forEach((it) => {
|
||||
it.checked = it.enabled == 1;
|
||||
it.label = it.name;
|
||||
it.children = tmps.filter((item) => item.pid == it.id);
|
||||
if (it.children.length > 0) {
|
||||
makeTree(it.children);
|
||||
}
|
||||
});
|
||||
return nodes;
|
||||
};
|
||||
this.dataSource = makeTree(tmps.filter((it) => it.pid == 0));
|
||||
this.$nextTick(()=>{
|
||||
let ids=this.treeData.filter(it=>it.enabled==1).map(it=>it.id);
|
||||
this.$refs.treeRef.setCheckedKeys(ids, false);
|
||||
});
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
handleCheckDefault() {
|
||||
let ids = this.treeData.filter((it) => [101, 102, 301, 303, 304, 306, 309, 310, 401, 501, 502, 6, 701, 702, 703, 704, 705].includes(+it.navId)).map((it) => it.id);
|
||||
this.$refs.treeRef.setCheckedKeys(ids, false);
|
||||
},
|
||||
handleCheckSave(){
|
||||
this.$confirm("确定要保存吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
}).then(() => {
|
||||
this.doSave();
|
||||
});
|
||||
},
|
||||
doSave(){
|
||||
let checked=this.$refs.treeRef.getCheckedKeys(false);
|
||||
let addData=this.treeData.filter(it=>!it.pmid).map(it=>{
|
||||
return {
|
||||
menuId:it.id,
|
||||
projectId:this.currentPrjId,
|
||||
enabled:checked.includes(it.id)?1:0,
|
||||
currentUser:this.userStore.name,
|
||||
}
|
||||
});
|
||||
let updateData=this.treeData.filter(it=>it.pmid).map(it=>{
|
||||
return {
|
||||
id:it.pmid,
|
||||
enabled:checked.includes(it.id)?1:0
|
||||
}
|
||||
});
|
||||
let ajaxs=[];
|
||||
if(addData.length>0){
|
||||
ajaxs.push(addMenus({items:addData}));
|
||||
}
|
||||
if(updateData.length>0){
|
||||
ajaxs.push(updateMenus({items:updateData}));
|
||||
}
|
||||
if(ajaxs.length>0){
|
||||
Promise.all(ajaxs).then(()=>{
|
||||
this.$message({type:'success',message:'保存成功'})
|
||||
})
|
||||
}
|
||||
},
|
||||
handleClearCache(){
|
||||
clearCache("big_screen_menu_cache").then(()=>{
|
||||
this.$message({type:'success',message:'清除缓存成功'})
|
||||
})
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.bigscreen-menu {
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue