Commit e4100747 authored by wei's avatar wei

Merge branch 'develop' into dev-lv

parents 51d45675 4ceac299
This diff is collapsed.
......@@ -3,199 +3,204 @@ import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [{
path: '/',
redirect: '/login'
},
// 登录页
{
path: '/login',
name: 'login',
component: () => import('../views/login.vue'),
},
// 我的地盘页面
{
path: '/my',
name: 'my',
component: () => import('../views/my'),
},
{
path: '/my-role',
name: 'my-role',
meta: {
title: '我的权限'
},
component: () => import('@/views/my/role')
},
{
path: '/my-reset-pas',
name: 'my-reset-pas',
meta: {
title: '修改密码'
},
component: () => import('@/views/my/resetPas')
},
// 安全工作台页面
{
path: '/save-workbench',
name: 'save-workbench',
component: () => import('../views/saveWorkbench'),
},
// 创建任务页面
{
path: '/create-task',
name: 'create-task',
component: () => import('../views/createTask'),
},
// 选择任务类型
{
path: '/task-type',
name: 'task-type',
component: () => import('../views/createTask/taskSubPage/taskType.vue'),
},
// 选择作业任务
{
path: '/work-task',
name: 'work-task',
component: () => import('../views/createTask/taskSubPage/workTask'),
},
// 选择作业综合班
{
path: '/work-class',
name: 'work-class',
component: () => import('../views/createTask/taskSubPage/workClass'),
},
// 选择作业综合组
{
path: '/work-group',
name: 'work-group',
component: () => import('../views/createTask/taskSubPage/workGroup'),
},
// 选择作业负责人
{
path: '/work-leader',
name: 'work-leader',
component: () => import('../views/createTask/taskSubPage/workLeader'),
},
// 选择作业其他人员
{
path: '/work-other-per',
name: 'work-other-per',
component: () => import('../views/createTask/taskSubPage/workOtherPer'),
},
// 选择微流域
{
path: '/micro-watersh',
name: 'micro-watersh',
component: () => import('../views/createTask/taskSubPage/microWatersh'),
},
// 选择管段
{
path: '/pipe-section',
name: 'pipe-section',
component: () => import('../views/createTask/taskSubPage/pipeSection'),
},
// 选择车牌号
{
path: '/license-plate',
name: 'license-plate',
component: () => import('../views/createTask/taskSubPage/licensePlate'),
},
// 选择手杆爬行器
{
path: '/work-device',
name: 'work-device',
component: () => import('../views/createTask/taskSubPage/workDevice'),
},
path: '/',
redirect: '/login'
},
// 登录页
{
path: '/login',
name: 'login',
component: () => import('../views/login.vue'),
},
// 我的地盘页面
{
path: '/my',
name: 'my',
component: () => import('../views/my'),
},
{
path: '/my-role',
name: 'my-role',
meta: {
title: '我的权限'
},
component: () => import('@/views/my/role')
},
{
path: '/my-reset-pas',
name: 'my-reset-pas',
meta: {
title: '修改密码'
},
component: () => import('@/views/my/resetPas')
},
// 安全工作台页面
{
path: '/save-workbench',
name: 'save-workbench',
component: () => import('../views/saveWorkbench'),
},
// 创建任务页面
{
path: '/create-task',
name: 'create-task',
component: () => import('../views/createTask'),
},
// 选择任务类型
{
path: '/task-type',
name: 'task-type',
component: () => import('../views/createTask/taskSubPage/taskType.vue'),
},
// 选择作业任务
{
path: '/work-task',
name: 'work-task',
component: () => import('../views/createTask/taskSubPage/workTask'),
},
// 选择作业综合班
{
path: '/work-class',
name: 'work-class',
component: () => import('../views/createTask/taskSubPage/workClass'),
},
// 选择作业综合组
{
path: '/work-group',
name: 'work-group',
component: () => import('../views/createTask/taskSubPage/workGroup'),
},
// 选择作业负责人
{
path: '/work-leader',
name: 'work-leader',
component: () => import('../views/createTask/taskSubPage/workLeader'),
},
// 选择作业其他人员
{
path: '/work-other-per',
name: 'work-other-per',
component: () => import('../views/createTask/taskSubPage/workOtherPer'),
},
// 选择微流域
{
path: '/micro-watersh',
name: 'micro-watersh',
component: () => import('../views/createTask/taskSubPage/microWatersh'),
},
// 选择管段
{
path: '/pipe-section',
name: 'pipe-section',
component: () => import('../views/createTask/taskSubPage/pipeSection'),
},
// 选择车牌号
{
path: '/license-plate',
name: 'license-plate',
component: () => import('../views/createTask/taskSubPage/licensePlate'),
},
// 选择手杆爬行器
{
path: '/work-device',
name: 'work-device',
component: () => import('../views/createTask/taskSubPage/workDevice'),
},
//风险项目新增
{
path: '/riskAdd',
name: 'riskAdd',
component: () => import('../views/riskProject/add'),
},
//风险项目管理
{
path: '/riskManage',
name: 'riskManage',
component: () => import('../views/riskProject/manage'),
},
//风险评估
{
path: '/riskAssess',
name: 'riskAssess',
component: () => import('../views/riskProject/assess'),
},
//风险审批
{
path: '/riskApprove',
name: 'riskApprove',
component: () => import('../views/riskProject/approve'),
},
//风险台账
{
path: '/riskLedger',
name: 'riskLedger',
component: () => import('../views/riskProject/ledger'),
},
//任务单
{
path: '/riskTaskList',
name: 'riskTaskList',
component: () => import('../views/riskProject/add/taskList.vue'),
},
//固有风险列表
{
path: '/riskInherent',
name: 'riskInherent',
component: () => import('../views/riskProject/add/inherentRisks.vue'),
},
//新增固有风险
{
path: '/addInherent',
name: 'addInherent',
component: () => import('../views/riskProject/add/addInherent.vue'),
},
{//编辑固有风险
path: '/addCurrent',
name: 'addCurrent',
component: () => import('../views/riskProject/add/addCurrent.vue'),
},
{//新增现状风险
path: '/addPresent ',
name: 'addPresent',
component: () => import('../views/riskProject/add/addPresent.vue'),
},
{//风险评估列表详情页
path: '/riskBigDetail',
name: 'riskBigDetail',
component: () => import('../views/riskProject/assess/riskBigDetail.vue'),
},
{//执行情况管理
path: '/riskExecution',
name: 'riskExecution',
component: () => import('../views/riskProject/execution/index.vue'),
},
{//四色图
path: '/riskView',
name: 'riskView',
component: () => import('../views/drawCanvas/riskView.vue'),
},
{//任务台账
path: '/taskLedger',
name: 'taskLedger',
component: () => import('../views/riskProject/taskLedger/index.vue'),
},
{//任务台账
path: '/taskDetail',
name: 'taskDetail',
component: () => import('../views/riskProject/taskLedger/taskDetail.vue'),
},
{//任务台账
path: '/resultPage',
name: 'resultPage',
component: () => import('../views/riskProject/add/resultPage.vue'),
},
//风险项目新增
{
path: '/riskAdd',
name: 'riskAdd',
component: () => import('../views/riskProject/add'),
},
//风险项目管理
{
path: '/riskManage',
name: 'riskManage',
component: () => import('../views/riskProject/manage'),
},
//风险评估
{
path: '/riskAssess',
name: 'riskAssess',
component: () => import('../views/riskProject/assess'),
},
//风险审批
{
path: '/riskApprove',
name: 'riskApprove',
component: () => import('../views/riskProject/approve'),
},
//风险台账
{
path: '/riskLedger',
name: 'riskLedger',
component: () => import('../views/riskProject/ledger'),
},
//任务单
{
path: '/riskTaskList',
name: 'riskTaskList',
component: () => import('../views/riskProject/add/taskList.vue'),
},
//固有风险列表
{
path: '/riskInherent',
name: 'riskInherent',
component: () => import('../views/riskProject/add/inherentRisks.vue'),
},
//新增固有风险
{
path: '/addInherent',
name: 'addInherent',
component: () => import('../views/riskProject/add/addInherent.vue'),
},
{//编辑固有风险
path: '/addCurrent',
name: 'addCurrent',
component: () => import('../views/riskProject/add/addCurrent.vue'),
},
{//新增现状风险
path: '/addPresent ',
name: 'addPresent',
component: () => import('../views/riskProject/add/addPresent.vue'),
},
{//风险评估列表详情页
path: '/riskBigDetail',
name: 'riskBigDetail',
component: () => import('../views/riskProject/assess/riskBigDetail.vue'),
},
{//执行情况管理
path: '/riskExecution',
name: 'riskExecution',
component: () => import('../views/riskProject/execution/index.vue'),
},
{//四色图
path: '/riskView',
name: 'riskView',
component: () => import('../views/drawCanvas/riskView.vue'),
},
{//任务台账
path: '/taskLedger',
name: 'taskLedger',
component: () => import('../views/riskProject/taskLedger/index.vue'),
},
{//任务台账
path: '/taskDetail',
name: 'taskDetail',
component: () => import('../views/riskProject/taskLedger/taskDetail.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({
......
......@@ -300,14 +300,7 @@ export default {
factor: "", //风险因素
showFactor: false,
columnsFactor: [],
messageList: [
{
title: '回显风险源名称',
time: '2022-12-12',
name: 'Mr.周',
state: 1
}
],
messageList: [],
source: "", //风险源
userPrefix: "", //风险源
showSource: false,
......
......@@ -190,8 +190,8 @@
</van-collapse-item>
</van-collapse>
<van-row type="flex" justify="center" style="margin-top:10px">
<van-col span="6"><van-button size="small" plain type="info" @click="showGradeDialog = false">取消</van-button></van-col>
<van-col span="6"><van-button size="small" type="info" @click="goResultPage">开始测评</van-button></van-col>
<van-col span="6"><van-button size="small" plain native-type="button" type="info" @click="showGradeDialog = false">取消</van-button></van-col>
<van-col span="6"><van-button size="small" type="info" native-type="button" @click="goResultPage">开始测评</van-button></van-col>
</van-row>
</div>
</van-dialog>
......
......@@ -14,7 +14,7 @@
<div class="con-list">
<van-cell-group inset v-for="(item, index) in messageList" :key="index" @click="touchstart(index, item)">
<div style="font-size: 0.45rem;padding: 5px 0;">
{{ item.title }}
{{ item.name }}
</div>
<van-row gutter="">
<van-col span="17">
......@@ -223,7 +223,7 @@ export default {
async getRiskList(id) {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
forbidClick: true,
loadingType: "spinner",
duration: 0
});
......
<template>
<div>
<LHeader text="备注"></LHeader>
<van-field
v-model="messageText"
rows="10"
autosize
label="备注信息"
type="textarea"
maxlength="500"
placeholder="请输入备注信息"
show-word-limit
/>
<div
style="display: flex;
justify-content: space-around;
background-color: #fff;
border-top: 1px solid #e3e3e3;
height: 1.5rem;
width: 100%;
text-align: center;
position: fixed;
bottom: 0;"
>
<div
@click="appvore"
style="color: #4bced0;font-size: 14px;font-weight: 600;"
>
<div style="font-size: 22px;"><van-icon name="success" /></div>
<div>保存</div>
</div>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
export default {
name: "risk-appvore-text",
components: {
LHeader
},
data() {
return {
messageText: null,
result: null,
buildingIds: [],
planId: 0
};
},
created() {
this.result = this.$route.params.result;
this.buildingIds = this.$route.params.buildingIds;
this.planId = this.$route.params.planId;
},
methods: {
//审批
appvore() {
var buildingDtos = [];
for (let i = 0; i < this.buildingIds.length; i++) {
var buildingDto = {
buildingId: this.buildingIds[0],
taskResult: this.result,
taskOpinion: this.messageText
};
buildingDtos[i] = buildingDto;
}
console.log(buildingDtos);
var params = {
id: this.planId,
taskResult: this.result,
taskOpinion: this.messageText,
buildingDtos: buildingDtos
};
postFun("/risk/plan/approve", params)
.then(res => {
console.log(res);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
this.$router.replace({
name: "riskApprove",
params: {}
});
}
},
watch: {}
};
</script>
......@@ -44,12 +44,7 @@
<van-step>评估审核</van-step>
<van-step>项目完成</van-step>
</van-steps>
<van-tabs
v-model="active"
color="#2980f7"
animated
offset-top="2.93rem"
>
<van-tabs v-model="active" color="#2980f7" animated offset-top="2.93rem">
<van-tab title="任务详情">
<van-form
:scroll-to-error="true"
......@@ -356,7 +351,7 @@
bottom: 0;"
>
<div
@click="approveTask"
@click="approveTask(1)"
style="color: #4bced0;font-size: 14px;font-weight: 600;"
>
<div style="font-size: 22px;">
......@@ -372,6 +367,132 @@
<div>审批否决</div>
</div>
</div>
<!-- 否决弹出层 -->
<van-popup
v-model="isShowAppvoreList"
closeable
round
position="right"
:style="{ width: '90%', height: '100%' }"
>
<van-cell-group title="审批否决">
<!-- 内容列表 -->
<div class="con-list">
<van-checkbox-group v-model="checkValue">
<van-cell-group
inset
v-for="(item, index) in buildingList"
:key="index"
>
<van-row gutter="">
<van-col span="2">
<van-checkbox :name="item.buildingId" />
</van-col>
<van-col span="14">{{ item.buildingName }}</van-col>
<van-col
span="8"
:style="{
color:
item.status == 'wait'
? '#F79648'
: item.status == 'finish'
? '#03B615'
: '#FF041D'
}"
>{{
item.status == "wait"
? "待评估"
: item.status == "finish"
? "已完成"
: "已退回"
}}</van-col
>
</van-row>
<van-row>
<van-col span="18">
<van-row gutter="">
<van-col span="8">创 建 人:</van-col>
<van-col span="16">{{ item.createUserName }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="8">处理人员:</van-col>
<van-col span="16">{{ item.workUserNames }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="8">发起时间:</van-col>
<van-col span="16"
>{{ timestampToTimes(item.startTime) }}
</van-col>
</van-row>
</van-col>
<van-col span="6">
<van-row>
<van-button
type="info"
size="mini"
@click="
{
checkValue = [item.buildingId];
approveTask(0);
}
"
>审批否决</van-button
>
</van-row></van-col
>
</van-row>
</van-cell-group>
</van-checkbox-group>
<div
style="display: flex;
justify-content: space-around;
background-color: #fff;
border-top: 1px solid #e3e3e3;
height: 1.5rem;
width: 100%;
text-align: center;
position: fixed;
bottom: 0;"
>
<div
@click="
{
checkValue = [];
isShowAppvoreList = false;
}
"
style="color: #FB6260;font-size: 14px;font-weight: 600;"
>
<div style="font-size: 22px;"><van-icon name="cross" /></div>
<div>返回</div>
</div>
<div
@click="approveTask(0)"
style="color: #4bced0;font-size: 14px;font-weight: 600;"
>
<div style="font-size: 22px;"><van-icon name="success" /></div>
<div>确认</div>
</div>
</div>
<div
style="
width: 100%;
text-align: center;
font-size: 0.48rem;
position: fixed;
top: 30%;
"
v-if="buildingList['length'] == 0"
>
暂无数据
</div>
</div>
</van-cell-group>
</van-popup>
</div>
</template>
......@@ -388,11 +509,18 @@ export default {
return {
text: "任务单",
searchValue: "",
messageText: "",
checkValue: [],
isAll: false,
plan: 0,
showIndex: false,
isShowAppvoreList: false,
isShowText: false,
isHaveNews: false,
messageList: [],
riskLogList: [],
buildingList: [],
Loop: "", // 定时器
showIndex: null, // 是否显示遮罩层,
active: 0,
status: 0,
pathAuth: "",
......@@ -417,12 +545,12 @@ export default {
};
},
created() {
var planId = this.$route.params.id || sessionStorage.getItem("planId");
this.planId = this.$route.params.id || sessionStorage.getItem("planId");
var buildingId =
this.$route.params.buildingId || sessionStorage.getItem("buildingId");
this.pathAuth = sessionStorage.getItem("pathAuth");
this.postList(planId, buildingId);
this.getRiskTaskList(planId, buildingId);
this.postList(this.planId, buildingId);
this.getRiskTaskList(this.planId, buildingId);
},
methods: {
timestampToTimes(time) {
......@@ -460,15 +588,43 @@ export default {
console.log("删除任务");
},
//审批通过
approveTask() {
approveTask(result) {
//TODO 审批通过
this.$router.push({
name: "riskAppvoreText",
params: {
planId: this.planId,
buildingIds: this.checkValue,
result: result
}
});
console.log("审批通过");
},
//审批否决
unApproveTask() {
if (this.isAll) {
this.approveTask(0);
} else {
this.lookdetail(this.planId);
}
//TODO 审批否决
console.log("审批否决");
},
//否决楼栋列表
lookdetail(id) {
this.isShowAppvoreList = true;
getFun("/risk/plan/allocation/building/list/" + id)
.then(res => {
console.log(res);
this.buildingList = res.data;
this.checkValue = this.buildingList.map(item => item.buildingId);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
handadd() {
this.$router.push({
name: "riskAdd",
......@@ -502,25 +658,33 @@ export default {
this.messageList = res.data || res.rows;
console.log(this.messageList);
this.form = this.messageList.detailsDto;
this.checkValue = this.messageList.riskBuildingListDtos.map(
item => item.buildingId
);
this.riskLogList = this.messageList.approveListDtos;
console.log(this.messageList.statusKey, 111);
switch (this.messageList.statusKey) {
case "CREATE_TASK":
case "WAIT_START":
case "WAIT_RETURN":
this.status = 0;
break;
case "CREATE_TASK":
case "WAIT_LEADER_RETURN":
case "PROJECT_REPORT":
case "RUNNING":
case "WAIT_RETURN":
this.status = 1;
break;
case "WAIT_LEADER_APPROVE":
case "WAIT_LEADER_RETURN":
this.status = 2;
this.isAll = false;
break;
case "WAIT_APPROVE":
case "FINISH":
this.status = 2;
this.isAll = true;
break;
case "REVOKE":
case "FINISH":
case "PROJECT_REPORT":
this.status = 3;
break;
default:
......
......@@ -277,6 +277,7 @@ export default {
buildingId: item.buildingId
}
});
sessionStorage.setItem("pathAuth", "riskExecution");
sessionStorage.setItem("planId", item.id);
sessionStorage.setItem("buildingId", item.buildingId);
this.showIndex = false;
......
......@@ -11,34 +11,29 @@
>
<van-tab title="排序">
<template #title> 排序 <van-icon name="down" /></template>
<div
class="con-list"
>
<van-cell-group
inset
@click="touchstart(0)"
>
<div style="font-size: 0.45rem;padding: 5px 0;">项目评估任务单1</div>
<div class="con-list" >
<van-cell-group v-for="(item,index) in taskList" :key="index" inset @click="touchstart(index, item)" >
<div style="font-size: 0.45rem;padding: 5px 0;">{{item.name}}</div>
<van-row gutter="">
<van-col span="17">
<van-row gutter="">
<van-col span="9">发起时间:</van-col>
<van-col span="15">2023-07-05</van-col>
<van-col span="15">{{ timestampToTimes(item.startTime) }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="9">处理人员:</van-col>
<van-col span="15">孔德龙</van-col>
<van-col span="15">{{item.leaderUserName}}</van-col>
</van-row>
</van-col>
<van-col span="7" :style="{'color':'#03b615'}">
发起
{{item.state}}
</van-col>
</van-row>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == 0">
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null">
<van-button round type="primary" @click="goDetail()"
<van-button round type="primary" @click="goDetail(item)"
>详情</van-button
>
</div>
......@@ -55,7 +50,8 @@
<script type="text/ecmascript-6">
import LHeader from "@/components/header.vue";
import { timestampToTime, generateId } from "@/utils/format";
import { getFun, postFun } from "@/service/table.js";
export default {
name:'taskLedger',//任务台账
data() {
......@@ -63,15 +59,25 @@ export default {
text:'任务台账',
active: 0,
showIndex: null, // 是否显示遮罩层,
taskList: [], // 是否显示遮罩层,
}
},
components: {
LHeader,
},
mounted() {
this.getList()
},
methods: {
timestampToTimes(time) {
return timestampToTime(new Date(time), "DT2", true);
},
getList(){
getFun('/risk/plan/details/list').then(res=>{
console.log('%c [ res ]-77', 'font-size:13px; background:pink; color:#bf2c9f;', res)
this.taskList=res.data
})
},
//点击列表
touchstart(index, item) {
if (this.showIndex != null) {
......@@ -81,11 +87,11 @@ export default {
this.showIndex = index;
},
// 详情
goDetail(){
goDetail(item){
this.$router.push({
name: "taskDetail",
name: "riskTaskList",
params: {
id:'',
id:item.id,
},
});
}
......
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