Commit d4f53fd9 authored by yf's avatar yf

合并冲突

parents 24568544 ea53da41
...@@ -26,6 +26,9 @@ export default { ...@@ -26,6 +26,9 @@ export default {
text:{ text:{
default:"未知", default:"未知",
type:String type:String
},
customBack:{
type:Function,
} }
}, },
data() { data() {
...@@ -39,9 +42,13 @@ export default { ...@@ -39,9 +42,13 @@ export default {
methods: { methods: {
/* 左侧图标跳转方法 */ /* 左侧图标跳转方法 */
to(){ to(){
if(this.customBack){
this.customBack()
}else{
history.go(-1) history.go(-1)
} }
} }
}
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
import Vue from 'vue' import Vue from "vue";
import VueRouter from 'vue-router' import VueRouter from "vue-router";
Vue.use(VueRouter) Vue.use(VueRouter);
const routes = [{ const routes = [
path: '/', {
redirect: '/login' path: "/",
}, redirect: "/login"
// 登录页 },
{ // 登录页
path: '/login', {
name: 'login', path: "/login",
component: () => import('../views/login.vue'), name: "login",
}, component: () => import("../views/login.vue")
// 我的地盘页面 },
{ // 我的地盘页面
path: '/my', {
name: 'my', path: "/my",
component: () => import('../views/my'), name: "my",
}, component: () => import("../views/my")
{ },
path: '/my-role', {
name: 'my-role', path: "/my-role",
name: "my-role",
meta: { meta: {
title: '我的权限' title: "我的权限"
}, },
component: () => import('@/views/my/role') component: () => import("@/views/my/role")
}, },
{ {
path: '/my-reset-pas', path: "/my-reset-pas",
name: 'my-reset-pas', name: "my-reset-pas",
meta: { meta: {
title: '修改密码' title: "修改密码"
}, },
component: () => import('@/views/my/resetPas') component: () => import("@/views/my/resetPas")
}, },
// 安全工作台页面 // 安全工作台页面
{ {
path: '/save-workbench', path: "/save-workbench",
name: 'save-workbench', name: "save-workbench",
component: () => import('../views/saveWorkbench'), component: () => import("../views/saveWorkbench")
}, },
// 创建任务页面 // 创建任务页面
{ {
path: '/create-task', path: "/create-task",
name: 'create-task', name: "create-task",
component: () => import('../views/createTask'), component: () => import("../views/createTask")
}, },
// 选择任务类型 // 选择任务类型
{ {
path: '/task-type', path: "/task-type",
name: 'task-type', name: "task-type",
component: () => import('../views/createTask/taskSubPage/taskType.vue'), component: () => import("../views/createTask/taskSubPage/taskType.vue")
}, },
// 选择作业任务 // 选择作业任务
{ {
path: '/work-task', path: "/work-task",
name: 'work-task', name: "work-task",
component: () => import('../views/createTask/taskSubPage/workTask'), component: () => import("../views/createTask/taskSubPage/workTask")
}, },
// 选择作业综合班 // 选择作业综合班
{ {
path: '/work-class', path: "/work-class",
name: 'work-class', name: "work-class",
component: () => import('../views/createTask/taskSubPage/workClass'), component: () => import("../views/createTask/taskSubPage/workClass")
}, },
// 选择作业综合组 // 选择作业综合组
{ {
path: '/work-group', path: "/work-group",
name: 'work-group', name: "work-group",
component: () => import('../views/createTask/taskSubPage/workGroup'), component: () => import("../views/createTask/taskSubPage/workGroup")
}, },
// 选择作业负责人 // 选择作业负责人
{ {
path: '/work-leader', path: "/work-leader",
name: 'work-leader', name: "work-leader",
component: () => import('../views/createTask/taskSubPage/workLeader'), component: () => import("../views/createTask/taskSubPage/workLeader")
}, },
// 选择作业其他人员 // 选择作业其他人员
{ {
path: '/work-other-per', path: "/work-other-per",
name: 'work-other-per', name: "work-other-per",
component: () => import('../views/createTask/taskSubPage/workOtherPer'), component: () => import("../views/createTask/taskSubPage/workOtherPer")
}, },
// 选择微流域 // 选择微流域
{ {
path: '/micro-watersh', path: "/micro-watersh",
name: 'micro-watersh', name: "micro-watersh",
component: () => import('../views/createTask/taskSubPage/microWatersh'), component: () => import("../views/createTask/taskSubPage/microWatersh")
}, },
// 选择管段 // 选择管段
{ {
path: '/pipe-section', path: "/pipe-section",
name: 'pipe-section', name: "pipe-section",
component: () => import('../views/createTask/taskSubPage/pipeSection'), component: () => import("../views/createTask/taskSubPage/pipeSection")
}, },
// 选择车牌号 // 选择车牌号
{ {
path: '/license-plate', path: "/license-plate",
name: 'license-plate', name: "license-plate",
component: () => import('../views/createTask/taskSubPage/licensePlate'), component: () => import("../views/createTask/taskSubPage/licensePlate")
}, },
// 选择手杆爬行器 // 选择手杆爬行器
{ {
path: '/work-device', path: "/work-device",
name: 'work-device', name: "work-device",
component: () => import('../views/createTask/taskSubPage/workDevice'), component: () => import("../views/createTask/taskSubPage/workDevice")
}, },
//风险项目新增 //风险项目新增
{ {
path: '/riskAdd', path: "/riskAdd",
name: 'riskAdd', name: "riskAdd",
component: () => import('../views/riskProject/add'), component: () => import("../views/riskProject/add")
}, },
//风险项目管理 //风险项目管理
{ {
path: '/riskManage', path: "/riskManage",
name: 'riskManage', name: "riskManage",
component: () => import('../views/riskProject/manage'), component: () => import("../views/riskProject/manage")
}, },
//风险评估 //风险评估
{ {
path: '/riskAssess', path: "/riskAssess",
name: 'riskAssess', name: "riskAssess",
component: () => import('../views/riskProject/assess'), component: () => import("../views/riskProject/assess")
}, },
//风险审批 //风险审批
{ {
path: '/riskApprove', path: "/riskApprove",
name: 'riskApprove', name: "riskApprove",
component: () => import('../views/riskProject/approve'), component: () => import("../views/riskProject/approve")
}, },
//风险台账 //风险台账
{ {
path: '/riskLedger', path: "/riskLedger",
name: 'riskLedger', name: "riskLedger",
component: () => import('../views/riskProject/ledger'), component: () => import("../views/riskProject/ledger")
}, },
//任务单 //任务单
{ {
path: '/riskTaskList', path: "/riskTaskList",
name: 'riskTaskList', name: "riskTaskList",
component: () => import('../views/riskProject/add/taskList.vue'), component: () => import("../views/riskProject/add/taskList.vue")
}, },
//固有风险列表 //固有风险列表
{ {
path: '/riskInherent', path: "/riskInherent",
name: 'riskInherent', name: "riskInherent",
component: () => import('../views/riskProject/add/inherentRisks.vue'), component: () => import("../views/riskProject/add/inherentRisks.vue")
}, },
//新增固有风险 //新增固有风险
{ {
path: '/addInherent', path: "/addInherent",
name: 'addInherent', name: "addInherent",
component: () => import('../views/riskProject/add/addInherent.vue'), component: () => import("../views/riskProject/add/addInherent.vue")
}, },
{//编辑固有风险 {
path: '/addCurrent', //编辑固有风险
name: 'addCurrent', path: "/addCurrent",
component: () => import('../views/riskProject/add/addCurrent.vue'), name: "addCurrent",
}, component: () => import("../views/riskProject/add/addCurrent.vue")
{//新增现状风险 },
path: '/addPresent', {
name: 'addPresent', //新增现状风险
component: () => import('../views/riskProject/add/addPresent.vue'), path: "/addPresent",
}, name: "addPresent",
{//现状风险详情 component: () => import("../views/riskProject/add/addPresent.vue")
path: '/presentDetail', },
name: 'presentDetail', {
component: () => import('../views/riskProject/taskLedger/presentDetail.vue'), //现状风险详情
}, path: "/presentDetail",
{//风险评估列表详情页 name: "presentDetail",
path: '/riskBigDetail', component: () => import("../views/riskProject/taskLedger/presentDetail.vue")
name: 'riskBigDetail', },
component: () => import('../views/riskProject/assess/riskBigDetail.vue'), {
}, //风险评估列表详情页
{//执行情况管理 path: "/riskBigDetail",
path: '/riskExecution', name: "riskBigDetail",
name: 'riskExecution', component: () => import("../views/riskProject/assess/riskBigDetail.vue")
component: () => import('../views/riskProject/execution/index.vue'), },
}, {
{//四色图 //执行情况管理
path: '/riskView', path: "/riskExecution",
name: 'riskView', name: "riskExecution",
component: () => import('../views/drawCanvas/riskView.vue'), component: () => import("../views/riskProject/execution/index.vue")
}, },
{//任务台账 {
path: '/taskLedger', //四色图
name: 'taskLedger', path: "/riskView",
component: () => import('../views/riskProject/taskLedger/index.vue'), name: "riskView",
}, component: () => import("../views/drawCanvas/riskView.vue")
{//任务台账 },
path: '/taskDetail', {
name: 'taskDetail', //任务台账
component: () => import('../views/riskProject/taskLedger/taskDetail.vue'), path: "/taskLedger",
}, name: "taskLedger",
{//任务台账 component: () => import("../views/riskProject/taskLedger/index.vue")
path: '/resultPage', },
name: 'resultPage', {
component: () => import('../views/riskProject/add/resultPage.vue'), //任务台账
}, path: "/taskDetail",
{//任务台账 name: "taskDetail",
path: '/riskAppvoreText', component: () => import("../views/riskProject/taskLedger/taskDetail.vue")
name: 'riskAppvoreText', },
component: () => import('../views/riskProject/add/riskAppvoreText.vue'), {
} //任务台账
] path: "/resultPage",
name: "resultPage",
component: () => import("../views/riskProject/add/resultPage.vue")
},
{
//任务台账
path: "/riskAppvoreText",
name: "riskAppvoreText",
component: () => import("../views/riskProject/add/riskAppvoreText.vue")
}
];
const router = new VueRouter({ const router = new VueRouter({
mode: 'history', mode: "history",
base: process.env.BASE_URL, base: process.env.BASE_URL,
routes routes
}) });
export default router export default router;
import request from '@/utils/axios' import request from "@/utils/axios";
/*get请求*/ /*get请求*/
export function getFun(url,params) { export function getFun(url, params) {
return request({ return request({
url: url, url: url,
method: 'get', method: "get",
params params
}) });
} }
/* post请求 */ /* post请求 */
export function postFun(url,data) { export function postFun(url, data) {
return request({ return request({
url: url, url: url,
method: 'post', method: "post",
data data
}) });
}
/* delete请求 */
export function deleteFun(url, params, data) {
return request({
url: url,
method: "delete",
params,
data
});
}
export function putFun(url, data) {
return request({
url: url,
method: "put",
data
});
} }
/*文件下载get请求*/ /*文件下载get请求*/
export function fileDownFun(url,params) { export function fileDownFun(url, params) {
return request({ return request({
url:url, url: url,
method: 'GET', method: "GET",
params, params,
responseType: 'blob'/*下载文件必填项*/ responseType: "blob" /*下载文件必填项*/
}) });
} }
/*文件下载post请求*/ /*文件下载post请求*/
export function fileDownFuns(url,data) { export function fileDownFuns(url, data) {
return request({ return request({
url: url, url: url,
method: 'POST', method: "POST",
data, data,
responseType: 'blob'/*下载文件必填项*/ responseType: "blob" /*下载文件必填项*/
}) });
} }
...@@ -158,19 +158,15 @@ ...@@ -158,19 +158,15 @@
/> />
已采取的管控措施 已采取的管控措施
</div> </div>
<van-field label="技术措施">
<template #input>
<van-field <van-field
label="技术措施"
v-model="form.measuresProject" v-model="form.measuresProject"
name="measuresProject" name="measuresProject"
label=""
type="textarea" type="textarea"
rows="3" rows="3"
autosize autosize
placeholder="请输入" placeholder="请输入"
style="padding-left: 0;padding-top: 0;" >
/>
</template>
</van-field> </van-field>
<van-field name="measuresProjectFile[]" label="技术措施附件"> <van-field name="measuresProjectFile[]" label="技术措施附件">
<template #input> <template #input>
...@@ -205,19 +201,15 @@ ...@@ -205,19 +201,15 @@
</van-uploader> </van-uploader>
</template> </template>
</van-field> </van-field>
<van-field label="管理措施">
<template #input>
<van-field <van-field
label="管理措施"
v-model="form.measuresAdministration" v-model="form.measuresAdministration"
name="measuresAdministration" name="measuresAdministration"
label=""
type="textarea" type="textarea"
rows="3" rows="3"
autosize autosize
placeholder="请输入" placeholder="请输入"
style="padding-left: 0;padding-top: 0;" >
/>
</template>
</van-field> </van-field>
<van-field name="measuresAdministrationFile[]" label="管理措施附件"> <van-field name="measuresAdministrationFile[]" label="管理措施附件">
<template #input> <template #input>
...@@ -252,19 +244,15 @@ ...@@ -252,19 +244,15 @@
</van-uploader> </van-uploader>
</template> </template>
</van-field> </van-field>
<van-field label="应急措施">
<template #input>
<van-field <van-field
label="应急措施"
v-model="form.measuresEmergency" v-model="form.measuresEmergency"
name="measuresEmergency" name="measuresEmergency"
label=""
type="textarea" type="textarea"
rows="3" rows="3"
autosize autosize
placeholder="请输入" placeholder="请输入"
style="padding-left: 0;padding-top: 0;" >
/>
</template>
</van-field> </van-field>
<van-field name="measuresEmergencyFile[]" label="应急措施附件"> <van-field name="measuresEmergencyFile[]" label="应急措施附件">
<template #input> <template #input>
...@@ -580,19 +568,6 @@ export default { ...@@ -580,19 +568,6 @@ export default {
SelectList, SelectList,
selectFloor selectFloor
}, },
beforeRouteEnter(to, from, next) {
if (from.name == "addCurrent") {
sessionStorage.setItem("presentForm", "");
sessionStorage.setItem("level", "");
}
next();
},
beforeRouteLeave(to, from, next) {
if (to.name != "riskInherent") {
sessionStorage.setItem("presentForm", JSON.stringify(this.form));
}
next();
},
data() { data() {
return { return {
loadingStatus: false, loadingStatus: false,
...@@ -685,13 +660,14 @@ export default { ...@@ -685,13 +660,14 @@ export default {
this.existingId = this.$route.params.existingId; this.existingId = this.$route.params.existingId;
this.inherentId = this.form.inherentId = this.inherentId = this.form.inherentId =
this.$route.params.inherentId || sessionStorage.getItem("inherentId"); this.$route.params.inherentId || sessionStorage.getItem("inherentId");
this.postReturnEcho();
}, },
mounted() { mounted() {
if (sessionStorage.getItem("presentForm") != "") { if (sessionStorage.getItem("presentForm")) {
this.form = JSON.parse(sessionStorage.getItem("presentForm")); this.form = JSON.parse(sessionStorage.getItem("presentForm"));
this.form.level = sessionStorage.getItem("level"); this.form.level = sessionStorage.getItem("level");
sessionStorage.removeItem("presentForm");
} else {
this.postReturnEcho();
} }
}, },
methods: { methods: {
...@@ -704,7 +680,6 @@ export default { ...@@ -704,7 +680,6 @@ export default {
if (item.measuresUserName == e) if (item.measuresUserName == e)
this.form.measuresUserPhone = item.measuresUserPhone; this.form.measuresUserPhone = item.measuresUserPhone;
}); });
console.log(e, 1111);
}); });
}, },
measuresDeptNameChange(e) { measuresDeptNameChange(e) {
...@@ -778,12 +753,30 @@ export default { ...@@ -778,12 +753,30 @@ export default {
this.form.factor = res.data.factor; this.form.factor = res.data.factor;
this.form.type = res.data.type; this.form.type = res.data.type;
this.form.planId = res.data.planId; this.form.planId = res.data.planId;
this.form.measuresProject = res.data.measuresProject;
this.form.measuresAdministration = res.data.measuresAdministration; /* 下面这些值还要可以输入,用上面的方法赋值后没有办法输入新的值!还不知道为啥 */
this.form.measuresDeptName = res.data.measuresDeptName; const {
this.form.measuresUserName = res.data.measuresUserName; measuresProject,
this.form.measuresUserPhone = res.data.measuresUserPhone; measuresEmergency,
this.$forceUpdate(); measuresAdministration,
measuresDeptName,
measuresUserName,
measuresUserPhone,
presenceLocation
} = res.data;
const formValue = {
measuresProject,
measuresEmergency,
measuresAdministration,
measuresDeptName,
measuresUserName,
measuresUserPhone,
presenceLocation
};
this.form = {
...this.form,
...formValue
};
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -950,6 +943,7 @@ export default { ...@@ -950,6 +943,7 @@ export default {
}, },
//开始测评 //开始测评
goResultPage() { goResultPage() {
sessionStorage.setItem("presentForm", JSON.stringify(this.form));
this.$router.push({ this.$router.push({
name: "resultPage", name: "resultPage",
params: { params: {
......
<!-- 新建项目/新建楼宇-->
<template>
<div class="project-component">
<LHeader :text="initData[type].title" :customBack="pageDestory"></LHeader>
<van-form
@submit="onSubmit"
:scroll-to-error="true"
:show-error="false"
validate-trigger="onSubmit"
>
<template v-for="item in initData[type].columns">
<van-field
v-if="item.type === 'input'"
:name="item.name"
:label="item.label"
v-model="form[item.key]"
:key="item.name"
v-bind="item._config"
@click="fieldClick(item)"
/>
<van-field
v-if="item.type === 'select'"
:name="item.name"
:label="item.label"
:value="form[item.key]"
:key="item.name"
readonly
@click="choice.select(item)"
v-bind="item._config"
/>
</template>
<!-- 选择层 -->
<van-popup v-model="choice.visible" position="bottom">
<van-picker
show-toolbar
value-key="name"
:columns="choice.columns"
@confirm="choice.confirm"
@cancel="choice.cancel"
/>
</van-popup>
<div class="action-btns">
<van-button
class="confirm-btn"
:loading="loadingStatus"
:loading-text="loadingText"
round
block
type="info"
native-type="submit"
>
保存
</van-button>
<van-button class="cancel-btn" round block type="warning" @click="pageDestory">
取消
</van-button>
</div>
</van-form>
<!-- 选择项目小组 -->
<van-popup
v-model="dept.visible"
position="bottom"
:style="{ height: '100%' }"
>
<div
class="van-picker__toolbar"
style="position: absolute;width: 100%;top: 0;"
>
<button
type="button"
class="van-picker__cancel"
@click="dept.close"
>
取消</button
><button type="button" class="van-picker__confirm" @click="dept.confirm">
确认
</button>
</div>
<div style="display:flex;margin-top: 44px;">
<selectDept ref="selectDeptRef"></selectDept>
</div>
</van-popup>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import { postFun } from "@/service/table";
import selectDept from "@/components/selectDept/index.vue";
export default {
components: {
LHeader,
selectDept,
},
props: {
type: {
/* type:project,building */
type: String,
default: "building"
},
projectId:{
type:Number,
}
},
data() {
return {
loadingStatus: false,
loadingText: "保存中...",
form: {},
dept:{
visible:false,
select:this.deptSelect,
close:this.deptClose,
confirm:this.deptConfirm
},
choice: {
key: "",
visible: false,
columns: [],
confirm: this.choiceConfirm,
select: this.choiceSelect,
cancel: this.choiceCancal
},
initData: {
project: {
title: "新建项目",
fetchUrl: "/risk/plan/project",
columns: [
{
label: "项目名称",
key: "name",
type: "input",
_config: {
required: true,
placeholder: "请输入项目名称",
rules: [
{
required: true,
message: "项目名称不能为空"
}
]
}
},
{
label: "项目类型",
key: "type",
type: "select",
options: [
{
name: "地产"
},
{
name: "土地"
},
{
name: "其他"
}
],
_config: {
required: true,
placeholder: "请选择项目类型",
rules: [
{
required: true,
message: "项目类型不能为空"
}
]
}
},
{
label: "所属单位",
key: "deptName",
type: "input",
method:this.projectDeptEvent,
_config: {
required: true,
readonly:true,
placeholder: "请输入所属单位",
rules: [
{
required: true,
message: "所属单位不能为空"
}
]
},
},
{
label: "所在城市",
key: "city",
type: "input",
_config: {
required: true,
placeholder: "请输入所在城市",
rules: [
{
required: true,
message: "所在城市不能为空"
}
]
}
},
{
label: "详细地址",
key: "address",
type: "input",
_config: {
required: true,
placeholder: "请输入详细地址",
rules: [
{
required: true,
message: "详细地址不能为空"
}
]
}
}
]
},
building: {
title: "新建楼宇",
fetchUrl: "/risk/plan/building",
columns: [
{
label: "楼宇名称",
key: "name",
type: "input",
_config: {
rules: [{ required: true, message: "楼宇名称不能为空" }],
placeholder: "请输入楼宇名称",
required: true
}
},
{
label: "资产类型",
key: "type",
type: "select",
options: [
{ name: "地产" },{ name: "土地" },{ name: "其他" },
],
_config: {
rules: [{ required: true, message: "资产类型不能为空" }],
placeholder: "请选择资产类型",
required: true
}
},
{
label: "地上楼层几层",
key: "groundFloor",
type: "input",
_config: {
type: "number",
rules: [{ required: true, message: "地上楼层几层不能为空" }],
placeholder: "请输入地上楼层几层",
required: true
}
},
{
label: "地下楼层几层",
key: "undergroundFloor",
type: "input",
_config: {
type: "number",
rules: [{ required: true, message: "地下楼层几层不能为空" }],
placeholder: "请输入地下楼层几层",
required: true
}
},
{
label: "用途",
key: "useto",
type: "select",
options: [
{ name: "地产" },{ name: "土地" },{ name: "其他" },
],
_config: {
rules: [{ required: true, message: "用途不能为空" }],
placeholder: "请选择用途",
required: true
}
},
{
label: "所在城市",
key: "city",
type: "input",
_config: {
rules: [{ required: true, message: "所在城市不能为空" }],
placeholder: "请输入所在城市",
required: true
}
},
{
label: "详细地址",
key: "address",
type: "input",
_config: {
rules: [{ required: true, message: "详细地址不能为空" }],
placeholder: "请输入详细地址",
required: true
}
}
]
}
}
};
},
methods: {
/* 作为载体处理方法 */
fieldClick(item){
if(item.method){item.method()}
},
deptClose(){
this.dept.visible = false;
},
deptConfirm(){
const selectDeptRef = this.$refs.selectDeptRef;
this.form.deptId = selectDeptRef.result;
this.form.deptName = selectDeptRef.resultName;
this.dept.close()
},
choiceConfirm(val) {
this.form[this.choice.key] = val.name;
this.choice.cancel();
},
projectDeptEvent(){
this.dept.visible = true
},
choiceCancal() {
this.choice.visible = false;
this.choice.key = "";
this.choice.columns = [];
},
choiceSelect(item) {
this.choice.visible = true;
this.choice.key = item.key;
this.choice.columns = item.options;
},
/* 点击返回、点击取消 */
pageDestory(){
this.choiceCancal()
this.$emit('close')
},
onSubmit() {
this.loadingStatus = true;
if(this.type==='building'){
if(!this.projectId){
this.$toast("保存失败,未获取到项目Id");
return;
}
this.form.projectId = this.projectId;
}
postFun(this.initData[this.type].fetchUrl,this.form)
.then(() => {
setTimeout(() => {
this.loadingStatus = false;
this.$toast("保存成功");
this.$emit("confirm",this.form)
}, 2000);
}).catch(()=>{
this.loadingStatus = false;
this.$toast("保存失败");
})
}
}
};
</script>
<style lang="less" scoped>
.project-component {
position: fixed;
width: 100vw;
height: 100vh;
top: 0;
left: 0;
z-index: 100;
background: #fff;
.van-form{
height: calc(100vh - 1.6rem);
overflow: auto;
}
.action-btns {
margin-top: 1rem;
padding: 0 0.5rem;
.cancel-btn {
margin-top: 0.3rem;
}
}
}
</style>
...@@ -29,8 +29,8 @@ ...@@ -29,8 +29,8 @@
<van-field <van-field
readonly readonly
required required
name="deptName" name="createDeptName"
:value="form.deptName" :value="form.createDeptName"
label="创建单位" label="创建单位"
placeholder="请输入" placeholder="请输入"
:rules="[{ required: true, message: '创建单位不能为空' }]" :rules="[{ required: true, message: '创建单位不能为空' }]"
...@@ -44,8 +44,10 @@ ...@@ -44,8 +44,10 @@
:rules="[{ required: true, message: '任务名称不能为空' }]" :rules="[{ required: true, message: '任务名称不能为空' }]"
/> />
<div style="display: flex;">
<van-field <van-field
required required
readonly
name="projectName" name="projectName"
:value="form.projectName" :value="form.projectName"
label="关联项目" label="关联项目"
...@@ -53,6 +55,14 @@ ...@@ -53,6 +55,14 @@
@click="show = true" @click="show = true"
:rules="[{ required: true, message: '关联项目不能为空' }]" :rules="[{ required: true, message: '关联项目不能为空' }]"
/> />
<van-button
style="color: #cccc;background-color: #f0f1f5;"
icon="plus"
type="info"
native-type="button"
@click="createProject"
/>
</div>
<!-- <van-popup v-model="showSource" position="bottom"> <!-- <van-popup v-model="showSource" position="bottom">
<van-picker <van-picker
show-toolbar show-toolbar
...@@ -62,9 +72,10 @@ ...@@ -62,9 +72,10 @@
@cancel="showSource = false" @cancel="showSource = false"
/> />
</van-popup> --> </van-popup> -->
<div style="display: flex;">
<van-field <van-field
required required
readonly
name="buildingNames" name="buildingNames"
:value="form.buildingNames" :value="form.buildingNames"
label="评估楼栋" label="评估楼栋"
...@@ -72,6 +83,14 @@ ...@@ -72,6 +83,14 @@
@click="getRiskList()" @click="getRiskList()"
:rules="[{ required: true, message: '评估楼栋不能为空' }]" :rules="[{ required: true, message: '评估楼栋不能为空' }]"
/> />
<van-button
style="color: #cccc;background-color: #f0f1f5;"
icon="plus"
type="info"
native-type="button"
@click="createBuilding"
/>
</div>
<div <div
style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;" style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;"
> >
...@@ -84,6 +103,7 @@ ...@@ -84,6 +103,7 @@
</div> </div>
<van-field <van-field
required required
readonly
name="deptName" name="deptName"
:value="form.deptName" :value="form.deptName"
label="评估小组选择" label="评估小组选择"
...@@ -116,6 +136,7 @@ ...@@ -116,6 +136,7 @@
<van-field <van-field
:value="form.startTime" :value="form.startTime"
readonly
required required
name="startTime" name="startTime"
label="任务开始时间" label="任务开始时间"
...@@ -126,6 +147,7 @@ ...@@ -126,6 +147,7 @@
<van-field <van-field
:value="form.endTime" :value="form.endTime"
readonly
required required
name="endTime" name="endTime"
label="任务结束时间" label="任务结束时间"
...@@ -274,11 +296,19 @@ ...@@ -274,11 +296,19 @@
>取消</van-button >取消</van-button
> >
</div> </div>
<CreateComponent
v-if="createComponentData.visible"
@close="createComponentData.close"
@confirm="createComponentData.confirm"
:type="createComponentData.type"
:projectId="createComponentData.projectId"
/>
</div> </div>
</template> </template>
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import CreateComponent from "./addProject.vue";
import selectDept from "@/components/selectDept/index.vue"; import selectDept from "@/components/selectDept/index.vue";
import selectPeople from "@/views/riskProject/add/projectList.vue"; import selectPeople from "@/views/riskProject/add/projectList.vue";
import { timestampToTime, generateId } from "@/utils/format"; import { timestampToTime, generateId } from "@/utils/format";
...@@ -287,14 +317,15 @@ import { ...@@ -287,14 +317,15 @@ import {
getLocalUserInfo, getLocalUserInfo,
setLocalUserInfo setLocalUserInfo
} from "@/utils/userInfo"; } from "@/utils/userInfo";
import { getFun, postFun } from "@/service/table.js"; import { getFun, postFun, putFun } from "@/service/table.js";
export default { export default {
name: "risk-add", name: "risk-add",
components: { components: {
LHeader, LHeader,
selectPeople, selectPeople,
selectDept selectDept,
CreateComponent
}, },
beforeRouteLeave(to, from, next) { beforeRouteLeave(to, from, next) {
if (to.name != "matrix-grad") { if (to.name != "matrix-grad") {
...@@ -303,6 +334,12 @@ export default { ...@@ -303,6 +334,12 @@ export default {
}, },
data() { data() {
return { return {
createComponentData: {
visible: false,
type: "",
close: this.projectComponentClose,
confirm: this.projectComponentConfirm
},
loadingStatus: false, loadingStatus: false,
loadingText: "提交...", loadingText: "提交...",
taskId: "", taskId: "",
...@@ -364,18 +401,66 @@ export default { ...@@ -364,18 +401,66 @@ export default {
}; };
}, },
created() { created() {
if (this.$route.query.id) {
this.text = "编辑";
this.getDetail(this.$route.query.id);
} else {
var userInfo = getUserInfo(); var userInfo = getUserInfo();
this.form.userId = userInfo.userId; this.form.userId = userInfo.userId;
this.form.userName = userInfo.nickName; this.form.userName = userInfo.nickName;
this.form.deptId = userInfo.dept.deptId; this.form.deptId = userInfo.dept.deptId;
this.form.deptName = userInfo.dept.deptName; this.form.deptName = userInfo.dept.deptName;
this.form.createDeptName = userInfo.dept.deptName;
}
getFun(`/risk/plan/project/list`).then(res => { getFun(`/risk/plan/project/list`).then(res => {
this.columnsSource = res.data; this.columnsSource = res.data;
}); });
// this.getList();
}, },
methods: { methods: {
/* 创建项目 */
createProject() {
this.createComponentData.visible = true;
this.createComponentData.type = "project";
},
/* 创建 */
createBuilding() {
if (!this.form.projectId) {
this.$toast({
title: "提示",
message: "请选择关联项目!"
});
return false;
}
this.createComponentData.visible = true;
this.createComponentData.type = "building";
this.createComponentData.projectId = this.form.projectId;
},
projectComponentClose() {
this.createComponentData.visible = false;
this.createComponentData.type = "";
},
projectComponentConfirm(data) {
// this.createComponentData.visible = false;
// this.createComponentData.type = '';
},
getDetail(id) {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
getFun(`/risk/plan/details/${id}`)
.then(res => {
this.$toast.clear();
this.form = res.data.detailsDto;
this.form.userName = this.form.createUserName;
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
checkAll() { checkAll() {
this.$refs.checkboxGroup.toggleAll(true); this.$refs.checkboxGroup.toggleAll(true);
}, },
...@@ -520,7 +605,15 @@ export default { ...@@ -520,7 +605,15 @@ export default {
// }); // });
this.loadingStatus = true; this.loadingStatus = true;
let url = "/risk/plan"; let url = "/risk/plan";
postFun(url, this.form) const fetch = () => {
if (this.$route.query.id) {
return putFun(url, this.form);
} else {
delete this.form.createDeptName;
return postFun(url, this.form);
}
};
fetch()
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.$toast.success({ this.$toast.success({
...@@ -535,6 +628,7 @@ export default { ...@@ -535,6 +628,7 @@ export default {
this.$toast.fail("提交失败,请稍后再试"); this.$toast.fail("提交失败,请稍后再试");
this.loadingStatus = false; this.loadingStatus = false;
}); });
this.$toast.clear(); this.$toast.clear();
}, },
......
...@@ -158,9 +158,10 @@ ...@@ -158,9 +158,10 @@
<van-tab title="风险清单"> <van-tab title="风险清单">
<van-sticky> <van-sticky>
<van-dropdown-menu> <van-dropdown-menu>
<van-dropdown-item v-model="value1" :options="option1" /> <van-dropdown-item v-model="buildingFValue" :options="buildingFList" get-container="body" @change="changeNextList('GroundList','buildingF')"/> <!-- 楼栋 -->
<van-dropdown-item v-model="value2" :options="option2" /> <van-dropdown-item v-model="groundValue" :options="groundList" get-container="body" @change="changeNextList('FloorList','ground')"/> <!-- 地上地下 -->
<van-dropdown-item v-model="value3" :options="option3" /> <van-dropdown-item v-model="floorValue" :options="floorList" get-container="body" @change="changeNextList('RoomList','floor')"/> <!-- 楼层 -->
<van-dropdown-item v-model="roomValue" :options="roomList" get-container="body" @change="changeNextList('','room')"/> <!-- 房间 -->
</van-dropdown-menu> </van-dropdown-menu>
</van-sticky> </van-sticky>
<div style="overflow-y: auto;padding: 10px;"> <div style="overflow-y: auto;padding: 10px;">
...@@ -381,7 +382,7 @@ ...@@ -381,7 +382,7 @@
<div>任务完成</div> <div>任务完成</div>
</div> --> </div> -->
</div> </div>
<div <!-- <div
v-show="pathAuth == 'riskManage' && status == 0" v-show="pathAuth == 'riskManage' && status == 0"
style="display: flex; style="display: flex;
justify-content: space-around; justify-content: space-around;
...@@ -409,7 +410,7 @@ ...@@ -409,7 +410,7 @@
<div style="font-size: 22px;"><van-icon name="cross" /></div> <div style="font-size: 22px;"><van-icon name="cross" /></div>
<div>删除任务</div> <div>删除任务</div>
</div> </div>
</div> </div> -->
<div <div
v-show="pathAuth == 'riskApprove0' && status == 2" v-show="pathAuth == 'riskApprove0' && status == 2"
style="display: flex; style="display: flex;
...@@ -599,21 +600,22 @@ export default { ...@@ -599,21 +600,22 @@ export default {
form: {}, form: {},
tabs: [], tabs: [],
riskList: [], riskList: [],
value1: 0, floorValue: 0,
value2: "a", groundValue:0,
value3: "1", roomValue: 0,
option1: [ buildingFValue:0,
{ text: "楼栋", value: 0 }, buildingFList: [
{ text: "全部", value: 1 } { text: "全部", value: 0 }
],
groundList: [
{ text: "全部", value: 0,children:[]}
], ],
option2: [ floorList: [
{ text: "楼层", value: "a" }, { text: "全部", value: 0 }
{ text: "全部", value: "b" } ],
roomList: [
{ text: "全部", value: 0 }
], ],
option3: [
{ text: "房间", value: "1" },
{ text: "全部", value: "2" }
]
}; };
}, },
created() { created() {
...@@ -623,11 +625,71 @@ export default { ...@@ -623,11 +625,71 @@ export default {
this.pathAuth = sessionStorage.getItem("pathAuth"); this.pathAuth = sessionStorage.getItem("pathAuth");
this.postList(this.planId, buildingId); this.postList(this.planId, buildingId);
this.getRiskTaskList(this.planId, buildingId); this.getRiskTaskList(this.planId, buildingId);
this.getBuildingFList()
}, },
methods: { methods: {
timestampToTimes(time, type) { timestampToTimes(time, type) {
return timestampToTime(new Date(time), type, true); return timestampToTime(new Date(time), type, true);
}, },
/* swp add 风险清单筛选 */
changeData(arr) {
if(Array.isArray(arr)){
return arr.map(item=>({ text: item.name,value: item.id || item.name,...item}))
}
},
getBuildingFList(){
getFun(`/risk/plan/plan/building/list/${this.planId}`).then(res=>{
const data = res.data;
this.buildingFList = [{ text: "全部", value: 0 },...this.changeData(data)]
})
},
getGroundList(){
getFun(`/risk/plan/floor/list/${this.buildingFValue}`)
.then(res => {
const data = res.data;
this.groundList = [{ text: "全部", value: 0,children:[] },...this.changeData(data)]
})
.catch(() => {
this.$toast.fail("加载失败,请稍后再试");
});
},
getFloorList() {
const getfloors = this.groundList.find(x=>x.value===this.groundValue)
if(getfloors){
this.floorList = [{ text: "全部", value: 0 },...this.changeData(getfloors.children)]
}
},
getRoomList() {
getFun(`/risk/plan/room/list/${this.floorValue}`)
.then(res => {
const data = res.data;
this.roomList = [{ text: "全部", value: 0 },...this.changeData(data)]
}) .catch(() => {
this.$toast.fail("加载失败,请稍后再试");
});
},
/* 切换楼栋,楼层 */
changeNextList(needChange,from){
this.getRiskTaskList(this.planId,this.buildingFValue||'',{
floorId:this.floorValue||'',
roomId:this.roomValue||'',
})
/* 清空后面子项 start*/
const list = ['buildingF','ground','floor','room'];
const i = list.indexOf(from);
if(i>-1){
list.slice(i+1).forEach(val=>{
this[val+'Value'] = 0;
this[val+'List'] = [{ text: "全部", value: 0}];
})
}
/* 清空后面子项 end*/
needChange&&this['get'+needChange]()
},
/* swp end 风险清单筛选 */
//执行任务 //执行任务
performTasks() { performTasks() {
sessionStorage.setItem( sessionStorage.setItem(
...@@ -713,9 +775,9 @@ export default { ...@@ -713,9 +775,9 @@ export default {
}); });
}, },
//风险清单列表 //风险清单列表
getRiskTaskList(planId, buildingId) { getRiskTaskList(planId, buildingId,data) {
if (buildingId) { if (buildingId) {
getFun(`/risk/plan/inherent/list/${planId}/${buildingId}`).then(res => { getFun(`/risk/plan/inherent/list/${planId}/${buildingId}`,data).then(res => {
this.riskList = res.data; this.riskList = res.data;
}); });
} else { } else {
......
...@@ -73,6 +73,12 @@ ...@@ -73,6 +73,12 @@
<van-button round type="primary" @click="goDetail(item)" <van-button round type="primary" @click="goDetail(item)"
>详情</van-button >详情</van-button
> >
<van-button v-if="active==0" round type="info" @click="toEdit(item)"
>编辑</van-button
>
<van-button v-if="active==0" round type="danger" @click="toDelete(item)"
>删除</van-button
>
<!-- <van-button round type="info" @click="goConfirm(item)" v-show="active==0" <!-- <van-button round type="info" @click="goConfirm(item)" v-show="active==0"
>确认</van-button >确认</van-button
> --> > -->
...@@ -108,7 +114,8 @@ ...@@ -108,7 +114,8 @@
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { timestampToTime, generateId } from "@/utils/format"; import { timestampToTime, generateId } from "@/utils/format";
import { getFun, postFun } from "@/service/table.js"; import { getFun, postFun,deleteFun } from "@/service/table.js";
import { Toast ,Dialog} from 'vant';
// import { postriskConList } from "@/service/risk"; // import { postriskConList } from "@/service/risk";
export default { export default {
name: "risk-confirme", name: "risk-confirme",
...@@ -203,6 +210,31 @@ export default { ...@@ -203,6 +210,31 @@ export default {
sessionStorage.setItem("buildingId", ""); sessionStorage.setItem("buildingId", "");
this.showIndex = null; this.showIndex = null;
}, },
/* 编辑 */
toEdit(data){
this.$router.push({
name:'riskAdd',
query:{
id:data.id
}
})
},
/* 删除 */
toDelete(data){
Dialog.confirm({
title: '提示',
message: '是否确认删除?'
}).then(() => {
// on confirm
deleteFun('/risk/plan/'+data.id).then(res=>{
Toast.success('删除成功')
this.postList();
})
}).catch(() => {
// on cancel
Toast.fail('删除失败')
});
},
// 确认 // 确认
goConfirm(data) { goConfirm(data) {
this.$router.push({ this.$router.push({
......
...@@ -9,11 +9,12 @@ module.exports = { ...@@ -9,11 +9,12 @@ module.exports = {
proxy: { proxy: {
//配置跨域 //配置跨域
"/app-api": { "/app-api": {
// target: "http://192.168.4.232:8080/", //这里是后台的地址 target: "http://192.168.4.232:8080/", //这里是后台的地址
// target: "http://192.168.10.137:8080/", //这里是后台的地址
// target: 'http://192.168.15.124:8080/', //这里是杨帆的地址 // target: 'http://192.168.15.124:8080/', //这里是杨帆的地址
// target: 'http://192.168.10.137:8080/', //这里是昊哥的地址 // target: 'http://192.168.10.137:8080/', //这里是昊哥的地址
// target: 'http://192.168.10.36:8080/', //这里是昊哥的地址 // target: 'http://192.168.10.36:8080/', //这里是昊哥的地址
target: 'http://localhost:8081/', //这里是后台的地址 // target: 'http://localhost:8081/', //这里是后台的地址
ws: true, ws: true,
changOrigin: true //允许跨域 changOrigin: true //允许跨域
// logLevel: 'debug', // 显示代理调试信息 // logLevel: 'debug', // 显示代理调试信息
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment