闭环 抄送

pull/85/head
lukeyan 1 year ago
parent edd3dda6fd
commit 3b6ce2e413

@ -16,3 +16,11 @@ export function get_my_course_record(data) {
data
})
}
// 待办任务查询
export function get_backlog(data) {
return request({
url: '/workflow/external/todoList',
method: 'post',
data
})
}

@ -80,6 +80,7 @@
</div>
</template>
<script>
import { get_backlog } from "@/api/closeLoopDispose";
export default {
name: "Backlog",
data() {
@ -131,22 +132,41 @@ export default {
pageSize: this.pageSize,
page: this.pageNum,
startTime:
this.search.course_time == null
this.search.backlog_time == null
? ""
: this.dateConversion(this.search.course_time[0]),
: this.dateConversion(this.search.backlog_time[0]),
endTime:
this.search.course_time == null
this.search.backlog_time == null
? ""
: this.dateConversion(this.search.course_time[1]),
: this.dateConversion(this.search.backlog_time[1]),
searchKey: this.search.word,
};
console.log(param);
get_backlog(param).then((res) => {
this.table_data = res.rows;
this.total = res.total;
})
},
reset() {
this.search.course_status = "";
this.search.course_time = [this.get_today(), this.get_tomorrow()];
this.search.backlog_time = [this.get_today(), this.get_tomorrow()];
this.search.word = "";
},
//
dateConversion(value) {
let date = new Date(value);
let y = date.getFullYear();
let m = date.getMonth() + 1;
m = m < 10 ? "0" + m : m;
let d = date.getDate();
d = d < 10 ? "0" + d : d;
let h = date.getHours();
h = h < 10 ? "0" + h : h;
let M = date.getMinutes();
M = M < 10 ? "0" + M : M;
let s = date.getSeconds();
s = s < 10 ? "0" + s : s;
let dateTime = y + "-" + m + "-" + d + " " + h + ":" + M + ":" + s;
return dateTime;
},
//
get_today() {
let date = new Date();
@ -202,10 +222,12 @@ export default {
console.log(`每页 ${val}`);
this.pageNum = 1;
this.pageSize = val;
this.search_data()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.pageNum = val;
this.search_data()
},
},
};

@ -31,15 +31,56 @@
<!-- 此列为数据展示 -->
<div class="basic_message_value_two">
<div class="basic_message_value_tag">
{{ this.basic_message.companyName }}
<div class="basic_message_value_company">
{{ this.basic_message.companyName }}
</div>
<div class="basic_message_value_list">
<div
:class="{
shewei: val == '剧毒' || val == '易制毒',
zhongdian: val == '消防重点' || val == '所管消防',
zhibao: val == '放射源' || val == '易制爆',
zhian:
val == '治安重点' || val == '创安单位' || val == '外资合资',
}"
v-for="(val, index) in this.basic_message.companyTypeList"
:key="index"
>
{{ val }}
</div>
</div>
</div>
<div class="basic_message_value">
{{ this.process_status }}
</div>
<div class="basic_message_value"></div>
<div class="basic_message_value">
{{ this.basic_message.alarmName }}
</div>
</div>
</div>
</div>
<!-- 处置信息 -->
<div class="dispose">
<div class="dispose_title">处置信息</div>
<div class="dispose_form">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="处置意见">
<el-input type="textarea" v-model="form.suggest"></el-input>
</el-form-item>
<el-form-item label="抄送部门">
<el-input
v-model="form.section"
>
<i slot="suffix" class="el-input__icon el-icon-date" @click="handle_click()"></i>
</el-input>
</el-form-item>
<el-form-item>
<el-button>处置完成</el-button>
<el-button class="dispose_lose">处置失败</el-button>
</el-form-item>
</el-form>
</div>
</div>
<div class="backlog_idea">
<div class="backlog_idea_title">流转意见</div>
<div class="backlog_idea_body">
@ -89,7 +130,7 @@
</div>
</template>
<script>
// import { get_my_backlog_record } from "@/api/closeLoopDispose";
import { get_my_course_record } from "@/api/closeLoopDispose";
export default {
name: "BacklogDetailForm",
props: {
@ -99,6 +140,10 @@ export default {
return {
attachment_show: true, //
basic_message: {},
form: {
suggest: "",
section: "",
},
backlog_list: [
{
id: "1",
@ -139,6 +184,13 @@ export default {
backlog_time: "2022-11-13 12:10:08",
},
],
status_list: [
{ label: "待审核", value: "1" },
{ label: "通过", value: "2" },
{ label: "驳回", value: "3" },
{ label: "处置中", value: "4" },
],
process_status: "", //
};
},
created() {
@ -149,17 +201,23 @@ export default {
procInsId: this.backlog_detail.procInsId,
taskId: this.backlog_detail.taskId,
};
console.log(param);
// get_my_backlog_record(param).then((res) => {
// this.basic_message = res.data;
// });
get_my_course_record(param).then((res) => {
this.basic_message = res.data;
this.process_status = this.status_list.find(
(item) => item.value == this.basic_message.alarmStatus
).label;
});
},
methods: {
handle_click() {
console.log('11111');
},
},
methods: {},
};
</script>
<style lang="less" scoped>
.tab_body {
height: 100%;
height: 70vh;
overflow-y: auto;
}
.tab_body::-webkit-scrollbar {
@ -235,7 +293,86 @@ export default {
width: 52vw;
height: 4vh;
line-height: 4vh;
color: #409eff;
display: flex;
.basic_message_value_company {
color: #409eff;
}
.basic_message_value_list {
display: flex;
.shewei {
height: 26px;
line-height: 26px;
width: 60px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991.png") no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #b5ebff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhongdian {
height: 26px;
line-height: 26px;
width: 80px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11222221.png") no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhibao {
height: 26px;
line-height: 26px;
width: 60px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991备份 10.png")
no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhian {
height: 26px;
line-height: 26px;
width: 80px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991备份 21.png")
no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
}
}
.basic_message_value {
width: 52vw;
@ -247,6 +384,28 @@ export default {
}
}
}
.dispose {
width: 95.9vw;
height: 30vh;
margin-top: 2vh;
border: 0.1px solid #3f5564;
.dispose_title {
width: 94vw;
height: 4vh;
margin-left: 1vw;
border-bottom: 0.1px solid #3f5564;
line-height: 4vh;
color: #fff;
text-shadow: 0 0 9px #ff8b4e;
}
.dispose_form {
width: 94vw;
margin-left: 1vw;
margin-top: 1vh;
height: 24vh;
// border: 0.1px solid #3f5564;
}
}
.backlog_idea {
width: 95.9vw;
height: 47vh;
@ -360,4 +519,82 @@ export default {
}
}
}
/deep/.el-form {
margin-top: 1vh;
.el-form-item {
.el-form-item__label {
text-align: center;
color: #fff;
}
}
.el-form-item__content {
width: 25vw;
.el-input__inner {
width: 25vw;
border-radius: 0px;
border: 0.1px solid #3f5564;
background: #3c4b4a;
color: #fff;
}
.el-input__icon.el-icon-search {
cursor: pointer;
}
// .el-input__icon.el-icon-search:focus,
// .el-input__icon.el-icon-search:hover {
// border-color: #1b3736;
// }
/* 查询框点击颜色变化 */
.el-input__inner:focus,
.el-input__inner:hover {
border-color: #1b3736;
}
}
.el-textarea {
.el-textarea__inner {
height: 10vh;
max-height: 10vh;
width: 90.2vw;
border-radius: 0px;
background: #3c4b4a;
border: 0.1px solid #3f5564;
color: #fff;
}
.el-textarea__inner:focus,
.el-textarea__inner:hover {
border-color: #1b3736;
}
}
.el-button {
width: 100px;
height: 3.7vh !important;
border: 1px solid #4a6072;
text-align: center;
color: #fff;
border-radius: 0px !important;
background: #323f43;
}
.el-button:focus,
.el-button:hover {
text-align: center;
// color: #34e1b3;
border: 2px solid #137868;
background: url("~@/assets/companyFile/2121.png") no-repeat !important;
background-size: 100% 100% !important;
}
.el-button.dispose_lose {
width: 100px;
height: 3.7vh !important;
color: #e55b5b;
border: 1px solid #e55b5b;
background: #323f43;
}
.el-button.dispose_lose:focus,
.el-button.dispose_lose:hover {
text-align: center;
border: 1px solid #e55b5b;
text-shadow: 0 0 9px #ff8b4e;
background: #323f43 !important;
}
}
</style>

@ -0,0 +1,89 @@
<template>
<!-- 抄送我的详情 -->
<div>
<el-tabs v-model="activeName">
<el-tab-pane label="表单信息" name="first">
<CopyDetailForm
ref="CopyDetailForm"
:copy_detail="copy_detail"
></CopyDetailForm>
</el-tab-pane>
<el-tab-pane label="流程图" name="second">
<CopyDetailPicture ref="copyDetailPicture"></CopyDetailPicture>
</el-tab-pane>
<el-tab-pane label="流转记录" name="third">
<CopyDetailRecords
ref="copyDetailRecords"
:copy_detail="copy_detail"
></CopyDetailRecords>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import CopyDetailForm from "./copyDetailForm";
import CopyDetailPicture from "./copyDetailPicture";
import CopyDetailRecords from "./copyDetailRecords";
export default {
name: "copyDetail",
components: {
CopyDetailForm,
CopyDetailPicture,
CopyDetailRecords,
},
props: {
copy_detail: {}, // -> copy
},
data() {
return {
activeName: "first",
};
},
};
</script>
<style lang="less" scoped>
/deep/.el-tabs__active-bar.is-top {
display: none;
background: #33cccc;
}
/deep/.el-tabs__nav-wrap::after {
height: 1px;
background: #5b748c;
}
/deep/.el-tabs__item.is-top {
color: #fff;
font-size: 17px;
padding-left: 20px !important;
padding-right: 20px;
// margin-right: 20px;
}
/deep/.el-tabs__item.is-top.is-active {
padding-left: 20px;
padding-right: 20px;
color: #fff;
font-size: 17px;
border-bottom: 4px solid #33cccc;
text-shadow: 0 0 9px rgba(21, 255, 198, 0.64);
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0),
#3a5856,
#3b746c
) !important;
}
/deep/.el-tabs__item.is-top:focus,
.el-tabs__item.is-top:hover {
padding-left: 20px;
padding-right: 20px;
color: #fff;
font-size: 17px;
border-bottom: 4px solid #33cccc;
text-shadow: 0 0 9px rgba(21, 255, 198, 0.64);
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0),
#3a5856,
#3b746c
) !important;
}
</style>

@ -0,0 +1,419 @@
<template>
<!-- 处置详情的表单信息 -->
<div>
<div class="basic_message">
<div class="basic_message_title">基本信息</div>
<div class="basic_message_body">
<div class="basic_message_text_one">
<div class="basic_message_text">流程名称:</div>
<div class="basic_message_text">流程类型:</div>
<div class="basic_message_text">预警时间:</div>
<div class="basic_message_text">预警等级:</div>
</div>
<!-- 此列为数据展示 -->
<div class="basic_message_value_one">
<div class="basic_message_value">
{{ this.basic_message.processName }}
</div>
<div class="basic_message_value">
{{ this.basic_message.processType }}
</div>
<div class="basic_message_value">
{{ this.basic_message.alarmTime }}
</div>
<div class="basic_message_value">
{{ this.basic_message.alarmLevel }}
</div>
</div>
<div class="basic_message_text_two">
<div class="basic_message_text">企业名称:</div>
<div class="basic_message_text">流程状态:</div>
<div class="basic_message_text">预警指标:</div>
</div>
<!-- 此列为数据展示 -->
<div class="basic_message_value_two">
<div class="basic_message_value_tag">
<div class="basic_message_value_company">
{{ this.basic_message.companyName }}
</div>
<div class="basic_message_value_list">
<div
:class="{
shewei: val == '剧毒' || val == '易制毒',
zhongdian: val == '消防重点' || val == '所管消防',
zhibao: val == '放射源' || val == '易制爆',
zhian:
val == '治安重点' || val == '创安单位' || val == '外资合资',
}"
v-for="(val, index) in this.basic_message.companyTypeList"
:key="index"
>
{{ val }}
</div>
</div>
</div>
<div class="basic_message_value">
{{ this.process_status }}
</div>
<div class="basic_message_value">
{{ this.basic_message.alarmName }}
</div>
</div>
</div>
</div>
<div class="course_idea">
<div class="course_idea_title">流转意见</div>
<div class="course_idea_body">
<!-- 遍历展示人员信息 -->
<div
v-for="item in opinion_list"
:key="item.taskDefKey"
class="course_idea_person"
>
<div class="course_idea_person_img">
<el-image :src="item.personUrl">
<div slot="error" class="image-slot">
<img src="../../../assets/companyFile/avatar.png" alt="" />
</div>
</el-image>
<div class="course_idea_person_information">
<div class="course_idea_person_name">{{ item.assigneeName }}</div>
<div class="course_idea_person_team">{{ item.candidate }}</div>
</div>
</div>
<div class="course_idea_person_text">
<!-- 第一行处理意见 -->
<div class="dispose_idea">
<div class="course_text">处理意见:</div>
<div class="course_value">{{ item.comment }}</div>
</div>
<!-- 第二行附件 按需显示或者隐藏 -->
<!-- <div v-if="attachment_show" class="attachment"> -->
<!-- <div class="course_text">附件:</div> -->
<!-- 此处后面会改为下载图片链接 -->
<!-- <div class="course_value">{{ item.attachment_value }}</div> -->
<!-- </div> -->
<!-- 第三行抄送人 -->
<div class="copy_person">
<div class="course_text">抄送人:</div>
<div class="course_value">{{ item.assigneeName }}</div>
</div>
<!-- 第四行时间 -->
<div class="course_time">
<div class="course_text">时间:</div>
<div class="course_value">{{ item.createTime }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { get_my_course_record } from "@/api/closeLoopDispose";
export default {
name: "CopyDetailForm",
props: {
copy_detail: {},
},
data() {
return {
attachment_show: true, //
basic_message: {},
status_list: [
{ label: "待审核", value: "1" },
{ label: "通过", value: "2" },
{ label: "驳回", value: "3" },
{ label: "处置中", value: "4" },
],
process_status: "", //
opinion_list: [], //
};
},
created() {
console.log("copy_detail11", this.copy_detail); // -> copy
let param = {
definitionId: this.copy_detail.procDefId,
deployId: this.copy_detail.deployId,
procInsId: this.copy_detail.procInsId,
taskId: this.copy_detail.taskId,
};
get_my_course_record(param).then((res) => {
this.basic_message = res.data;
this.process_status = this.status_list.find(
(item) => item.value == this.basic_message.alarmStatus
).label;
this.opinion_list = res.data.doneTaskVoList; //
});
},
methods: {},
};
</script>
<style lang="less" scoped>
.basic_message {
width: 95.9vw;
height: 22vh;
border: 0.1px solid #3f5564;
// background: url("~@/assets/companyFile/course_01.png") no-repeat !important;
// background-size: 100% 100% !important;
.basic_message_title {
width: 94vw;
height: 4vh;
margin-left: 1vw;
border-bottom: 0.1px solid #3f5564;
line-height: 4vh;
color: #fff;
text-shadow: 0 0 9px #ff8b4e;
}
.basic_message_body {
width: 94vw;
height: 16vh;
margin-top: 0.5vh;
margin-left: 1vw;
// border: 0.1px solid #3f5564;
display: flex;
.basic_message_text_one,
.basic_message_text_two {
width: 5vw;
height: 16vh;
// background: #ff8b4e;
display: flex;
flex-direction: column;
.basic_message_text {
width: 5vw;
height: 4vh;
line-height: 4vh;
color: rgb(230, 207, 207);
text-align: right;
}
}
.basic_message_value_one {
width: 30vw;
height: 16vh;
// background: #ff8b4e;
display: flex;
flex-direction: column;
.basic_message_value {
width: 30vw;
height: 4vh;
line-height: 4vh;
color: #fff;
text-align: left;
}
}
.basic_message_value_two {
width: 52vw;
height: 16vh;
// background: #ff8b4e;
display: flex;
flex-direction: column;
.basic_message_value_tag {
// background: #ff8b4e;
width: 52vw;
height: 4vh;
line-height: 4vh;
display: flex;
.basic_message_value_company {
color: #409eff;
}
.basic_message_value_list {
display: flex;
.shewei {
height: 26px;
line-height: 26px;
width: 60px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991.png") no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #b5ebff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhongdian {
height: 26px;
line-height: 26px;
width: 80px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11222221.png") no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhibao {
height: 26px;
line-height: 26px;
width: 60px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991备份 10.png")
no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhian {
height: 26px;
line-height: 26px;
width: 80px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991备份 21.png")
no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
}
}
.basic_message_value {
width: 52vw;
height: 4vh;
line-height: 4vh;
color: #fff;
text-align: left;
}
}
}
}
.course_idea {
width: 95.9vw;
height: 47vh;
margin-top: 2vh;
border: 0.1px solid #3f5564;
.course_idea_title {
width: 94vw;
height: 4vh;
margin-left: 1vw;
border-bottom: 0.1px solid #3f5564;
line-height: 4vh;
color: #fff;
text-shadow: 0 0 9px #ff8b4e;
}
}
.course_idea_body {
width: 95.9vw;
height: 42vh;
overflow-y: scroll;
}
.course_idea_body::-webkit-scrollbar {
display: none;
width: 6px;
background-color: #5e666a;
border-radius: 4px;
}
.course_idea_body::-webkit-scrollbar-thumb {
display: none;
width: 5px;
background-color: #3c4b4a;
border-radius: 4px;
}
/deep/.el-descriptions__header {
margin-bottom: 0px;
text-shadow: 0 0 9px #ff8b4e;
height: 6vh;
line-height: 6vh;
color: #fff;
}
/deep/.el-descriptions__title {
margin-left: 10px;
}
/deep/.el-descriptions__body {
color: #fff;
background: rgba(0, 0, 0, 0);
}
/deep/.el-descriptions-item.el-descriptions-item__cell {
width: 50%;
}
/* 个人信息不固定高度,给个人信息自由展示空间 */
.course_idea_person {
width: 94vw;
border: 0.1px solid #3f5564;
background: rgba(209, 199, 199, 0.1);
margin-top: 1vh;
margin-left: 1vw;
display: flex;
.course_idea_person_img {
width: 10vw;
height: 7vh;
margin-left: 1.5vw;
// border: 0.1px solid #3f5564;
display: flex;
.el-image {
margin-top: 0.5vh;
width: 2.7vw;
height: 5vh;
img {
width: 2.7vw;
height: 5vh;
}
}
.course_idea_person_information {
margin-left: 1vw;
display: flex;
flex-direction: column;
.course_idea_person_name {
// color: rgb(230, 207, 207);
color: #fff;
font-weight: 600;
height: 3vh;
line-height: 3vh;
}
.course_idea_person_team {
color: rgb(230, 207, 207);
font-size: 14px;
height: 3vh;
line-height: 3vh;
}
}
}
.course_idea_person_text {
width: 75vw;
margin-left: 1vw;
// border: 0.1px solid #3f5564;
.dispose_idea,
.attachment,
.copy_person,
.course_time {
display: flex;
}
.course_text {
width: 4vw;
color: rgb(230, 207, 207);
}
.course_value {
width: 65vw;
color: #fff;
text-align: left;
}
}
}
</style>

@ -0,0 +1,130 @@
<template>
<!-- 抄送我的流程图 -->
<div class="picture_body">
<!-- 流程图示例 -->
<div class="picture_title">
<div class="picture_area">
<div class="picture_icon_one"></div>
<div class="picture_text_one">已经过的节点</div>
</div>
<div class="picture_area">
<div class="picture_icon_two"></div>
<div class="picture_text_two">未经过的节点</div>
</div>
<div class="picture_area">
<div class="picture_icon_three"></div>
<div class="picture_text_three">当前节点</div>
</div>
<div class="picture_area">
<div class="picture_icon_four"></div>
<div class="picture_text_four">已经过的出口</div>
</div>
<div class="picture_area">
<div class="picture_icon_five"></div>
<div class="picture_text_five">未经过的出口</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "CopyDetailPicture",
data() {
return {};
},
};
</script>
<style lang="less" scoped>
.picture_body {
width: 95.9vw;
height: 70vh;
// border: 0.1px solid #3f5564;
background: url("~@/assets/companyFile/09091.png") no-repeat !important;
background-size: 100% 100% !important;
.picture_title {
width: 94vw;
height: 6vh;
margin-left: 1vw;
border-bottom: 0.1px solid #3f5564;
display: flex;
.picture_area {
width: 8vw;
height: 4vh;
margin-top: 1vh;
margin-left: 1vw;
// border: 0.1px solid #3f5564;
display: flex;
.picture_icon_one {
width: 18px;
height: 18px;
// border: 0.1px solid #fff;
border-radius: 50%;
background: #41ffc4;
margin-top: 0.9vh;
}
.picture_text_one {
color: #fff;
margin-left: 1vw;
height: 4vh;
line-height: 4vh;
}
.picture_icon_two {
width: 18px;
height: 18px;
// border: 0.1px solid #fff;
border-radius: 50%;
background: #c8c8c8;
margin-top: 0.9vh;
}
.picture_text_two {
color: #fff;
margin-left: 1vw;
height: 4vh;
line-height: 4vh;
}
.picture_icon_three {
width: 18px;
height: 18px;
// border: 0.1px solid #fff;
border-radius: 50%;
background: #2fe7ff;
margin-top: 0.9vh;
}
.picture_text_three {
color: #fff;
margin-left: 1vw;
height: 4vh;
line-height: 4vh;
}
.picture_icon_four {
width: 18px;
height: 18px;
// border: 0.1px solid #fff;
background: url("~@/assets/companyFile/rightarrow.png") no-repeat !important;
background-size: 100% 100% !important;
margin-top: 0.9vh;
}
.picture_text_four {
color: #fff;
margin-left: 1vw;
height: 4vh;
line-height: 4vh;
}
.picture_icon_five {
width: 18px;
height: 18px;
// border: 0.1px solid #fff;
background: url("~@/assets/companyFile/rightarrow02.png") no-repeat !important;
background-size: 100% 100% !important;
margin-top: 0.9vh;
}
.picture_text_five {
color: #fff;
margin-left: 1vw;
height: 4vh;
line-height: 4vh;
}
}
}
}
</style>

@ -0,0 +1,303 @@
<template>
<!-- 流程记录 -->
<div class="record_body">
<div class="all_step">
<div class="record_step" v-for="item in record_list" :key="item.taskId">
<!-- 侧边进度图标 -->
<div class="step">
<div class="step_icon">
<!-- assigneeId为空的时候为待选图标,为数值的时候为确定图标 -->
<i v-if="item.assigneeId != ''" class="el-icon-success"></i>
<i v-else class="el-icon-time"></i>
</div>
<!-- 进度线 -->
<div class="step_line"></div>
</div>
<div class="step_table">
<div class="step_table_top">
<div class="step_table_top_name">{{ item.taskName }}</div>
<div class="step_table_top_opeartion">
<div class="opeartion_num">
<div class="opeartion_num_text">操作者总计:</div>
<div class="opeartion_num_val">{{ item.doTotal }}</div>
</div>
<div class="opeartion_num">
<div class="opeartion_num_text">已操作:</div>
<div class="opeartion_num_val">
{{ item.finishTotal }}
</div>
</div>
<div class="opeartion_num">
<div class="opeartion_num_text">未操作:</div>
<div class="not_opeartion_num_val">
{{ item.todoTotal }}
</div>
</div>
</div>
</div>
<el-table
height="250"
:data="item.historyTaskList"
:header-cell-style="table_header"
:cell-style="{ background: 'revert', 'text-align': 'center' }"
>
<el-table-column prop="assigneeName" label="实际办理" width="280">
</el-table-column>
<el-table-column prop="candidate" label="候选办理" width="280">
</el-table-column>
<el-table-column prop="type" label="操作状态" width="280">
</el-table-column>
<el-table-column prop="finishTime" label="接收时间" width="280">
</el-table-column>
<el-table-column
prop="createTime"
label="操作时间"
width="280"
>
</el-table-column>
<el-table-column prop="duration" label="耗时"> </el-table-column>
</el-table>
</div>
</div>
</div>
</div>
</template>
<script>
import { get_my_course_record } from "@/api/closeLoopDispose";
export default {
name: "CopyDetailRecords",
props: {
copy_detail: {},
},
data() {
return {
record_list: [
// {
// id: "1",
// name: "",
// opeartion_num: "2",
// have_opeartion_num: "1",
// not_opeartion_num: "1",
// table_list: [
// {
// change: "",
// under_change: "",
// type: "",
// load_time: "2023-06-06 12:53:30",
// time: "2023-06-06 12:53:30",
// use_time: "2",
// },
// ],
// },
// {
// id: "2",
// },
// {
// id: "3",
// name: "",
// },
],
src: require("../../../assets/companyFile/loadtrue.png"),
icon_show: true, //
step_line_show: true,
};
},
created() {
console.log("copy_detail2", this.copy_detail);
let param = {
definitionId: this.copy_detail.procDefId,
deployId: this.copy_detail.deployId,
procInsId: this.copy_detail.procInsId,
taskId: this.copy_detail.taskId,
};
get_my_course_record(param).then((res) => {
this.record_list = res.data.wfDetailVo.recordList;
console.log("this.record_list", this.record_list);
// for(let i = 0; i < this.record_list.length;i++) {
// if ( i + 1 == this.record_list.length ) {
// this.step_line_show = false
// } else {
// this.step_line_show = true
// }
// console.log('i + 1', i + 1);
// console.log('this.record_list', this.record_list.length);
// }
});
},
methods: {
//
table_header({ row, rowIndex }) {
console.log(row);
console.log(rowIndex);
return {
"text-align": "center", //
color: "#fff",
border: "0.1px solid #3b4f5c",
};
},
},
};
</script>
<style lang='less' scoped>
.record_body {
width: 95.9vw;
height: 70vh;
background: url("~@/assets/companyFile/09091.png") no-repeat !important;
background-size: 100% 100% !important;
overflow-y: scroll;
}
.record_body::-webkit-scrollbar {
display: none;
width: 6px;
background-color: #5e666a;
border-radius: 4px;
}
.record_body::-webkit-scrollbar-thumb {
display: none;
width: 5px;
background-color: #3c4b4a;
border-radius: 4px;
}
.all_step {
margin-top: 1vh;
}
/* 不固定高度,给自由展示空间 */
.record_step {
width: 94vw;
height: 31vh;
margin-left: 1vw;
// border: 0.1px solid #3f5564;
display: flex;
.step {
width: 30px;
// margin-top: 10%;
margin-left: 1vw;
height: 100%;
// border: 0.1px solid #fff;
display: flex;
flex-direction: column;
.step_icon {
width: 30px;
height: 30px;
// border: 0.1px solid #fff;
border-radius: 50%;
.el-icon-success {
font-size: 30px;
color: #41ffc4;
}
.el-icon-time {
font-size: 30px;
color: #38eafc;
}
}
.step_line {
flex-grow: 1;
width: 2px;
background: #56808f;
margin: auto;
}
}
.step_table {
margin-left: 1vw;
// border: 0.1px solid #fff;
width: 90vw;
// height: 30vh;
.step_table_top {
// border: 0.1px solid #fff;
width: 90vw;
height: 5vh;
display: flex;
justify-content: space-between;
.step_table_top_name {
width: 10vw;
color: #fff;
text-align: left;
font-size: 19px;
line-height: 3.5vh;
height: 5vh;
text-shadow: 0 0 9px rgba(21, 255, 198, 0.64);
}
.step_table_top_opeartion {
width: 21vw;
height: 5vh;
// border: 0.1px solid #fff;
display: flex;
.opeartion_num {
width: 7vw;
height: 5vh;
display: flex;
.opeartion_num_text {
width: 4vw;
height: 5vh;
color: #fff;
font-size: 16px;
line-height: 5vh;
text-align: center;
}
.opeartion_num_val {
width: 3vw;
height: 5vh;
color: #fff;
font-size: 16px;
line-height: 5vh;
text-align: center;
}
.not_opeartion_num_val {
width: 3vw;
height: 5vh;
color: #e75c5d;
font-size: 16px;
line-height: 5vh;
text-align: center;
}
}
}
}
}
}
/deep/.el-table {
// width: 96vw;
height: 25vh;
background: rgba(0, 0, 0, 0);
border: 0.1px solid #3f5564;
thead {
color: #fff;
font-weight: 500;
border: 0.1px solid #3f5564;
background: linear-gradient(
to right,
#284f49,
#2f6363 5%,
#233b38 80%
) !important;
& th {
background-color: transparent;
}
& tr {
background-color: transparent;
}
}
tr {
color: #fff;
background: rgba(0, 0, 0, 0);
}
}
/deep/ .el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
border: 0.1px solid #3f5564;
}
/deep/.el-table__body-wrapper::-webkit-scrollbar {
width: 6px;
background-color: #5e666a;
border-radius: 4px;
}
/deep/.el-table__body-wrapper::-webkit-scrollbar-thumb {
width: 5px;
background-color: #3c4b4a;
border-radius: 4px;
}
</style>

@ -260,10 +260,12 @@ export default {
console.log(`每页 ${val}`);
this.pageNum = 1;
this.pageSize = val;
this.search_data()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.pageNum = val;
this.search_data()
},
},
};

@ -33,7 +33,24 @@
<!-- 此列为数据展示 -->
<div class="basic_message_value_two">
<div class="basic_message_value_tag">
{{ this.basic_message.companyName }}
<div class="basic_message_value_company">
{{ this.basic_message.companyName }}
</div>
<div class="basic_message_value_list">
<div
:class="{
shewei: val == '剧毒' || val == '易制毒',
zhongdian: val == '消防重点' || val == '所管消防',
zhibao: val == '放射源' || val == '易制爆',
zhian:
val == '治安重点' || val == '创安单位' || val == '外资合资',
}"
v-for="(val, index) in this.basic_message.companyTypeList"
:key="index"
>
{{ val }}
</div>
</div>
</div>
<div class="basic_message_value">
{{ this.process_status }}
@ -49,8 +66,8 @@
<div class="course_idea_body">
<!-- 遍历展示人员信息 -->
<div
v-for="item in course_list"
:key="item.id"
v-for="item in opinion_list"
:key="item.taskDefKey"
class="course_idea_person"
>
<div class="course_idea_person_img">
@ -60,31 +77,31 @@
</div>
</el-image>
<div class="course_idea_person_information">
<div class="course_idea_person_name">{{ item.name }}</div>
<div class="course_idea_person_team">{{ item.team }}</div>
<div class="course_idea_person_name">{{ item.assigneeName }}</div>
<div class="course_idea_person_team">{{ item.candidate }}</div>
</div>
</div>
<div class="course_idea_person_text">
<!-- 第一行处理意见 -->
<div class="dispose_idea">
<div class="course_text">处理意见:</div>
<div class="course_value">{{ item.course_value }}</div>
<div class="course_value">{{ item.comment }}</div>
</div>
<!-- 第二行附件 按需显示或者隐藏 -->
<div v-if="attachment_show" class="attachment">
<div class="course_text">附件:</div>
<!-- 此处后面会改为下载图片链接 -->
<div class="course_value">{{ item.attachment_value }}</div>
</div>
<!-- <div v-if="attachment_show" class="attachment"> -->
<!-- <div class="course_text">附件:</div> -->
<!-- 此处后面会改为下载图片链接 -->
<!-- <div class="course_value">{{ item.attachment_value }}</div> -->
<!-- </div> -->
<!-- 第三行抄送人 -->
<div class="send_person">
<div class="course_text">抄送人:</div>
<div class="course_value">{{ item.send_person }}</div>
<div class="course_value">{{ item.assigneeName }}</div>
</div>
<!-- 第四行时间 -->
<div class="course_time">
<div class="course_text">时间:</div>
<div class="course_value">{{ item.course_time }}</div>
<div class="course_value">{{ item.createTime }}</div>
</div>
</div>
</div>
@ -149,7 +166,8 @@ export default {
{ label: "驳回", value: "3" },
{ label: "处置中", value: "4" },
],
process_status:'', //
process_status: "", //
opinion_list: [], //
};
},
created() {
@ -162,7 +180,10 @@ export default {
};
get_my_course_record(param).then((res) => {
this.basic_message = res.data;
this.process_status = this.status_list.find(item=>item.value === this.basic_message.alarmStatus).label
this.process_status = this.status_list.find(
(item) => item.value == this.basic_message.alarmStatus
).label;
this.opinion_list = res.data.doneTaskVoList; //
});
},
methods: {},
@ -231,7 +252,86 @@ export default {
width: 52vw;
height: 4vh;
line-height: 4vh;
color: #409eff;
display: flex;
.basic_message_value_company {
color: #409eff;
}
.basic_message_value_list {
display: flex;
.shewei {
height: 26px;
line-height: 26px;
width: 60px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991.png") no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #b5ebff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhongdian {
height: 26px;
line-height: 26px;
width: 80px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11222221.png") no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhibao {
height: 26px;
line-height: 26px;
width: 60px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991备份 10.png")
no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
.zhian {
height: 26px;
line-height: 26px;
width: 80px;
margin-top: 9px;
margin-left: 5px;
background: url("~@/assets/companyFile/编组 11991备份 21.png")
no-repeat;
padding: 1px 5px;
font-size: 14px;
color: #e3deff;
letter-spacing: 0.44px;
font-weight: 400;
background-size: 100% 100%;
margin-right: 5px;
margin-bottom: 5px;
text-align: center;
}
}
}
.basic_message_value {
width: 52vw;

@ -53,6 +53,12 @@
ref="completeDetail"
v-else-if="is_flag === '3'"
></CompleteDetail>
<!-- 抄送我的详情tab页 -->
<CopyDetail
:copy_detail="copy_detail"
ref="copyDetail"
v-else-if="is_flag === '4'"
></CopyDetail>
</el-card>
</template>
<script>
@ -62,7 +68,8 @@ import Backlog from "./components/backlog";
import BacklogDetail from "./components/backlogDetail";
import Complete from "./components/complete";
import CompleteDetail from "./components/completeDetail";
import Copy from './components/copy'
import Copy from "./components/copy";
import CopyDetail from "./components/copyDetail";
export default {
name: "CloseLoopDispose",
components: {
@ -73,6 +80,7 @@ export default {
Complete,
CompleteDetail,
Copy,
CopyDetail,
},
data() {
return {
@ -81,7 +89,7 @@ export default {
send_detail: {},
backlog_detail: {},
complete_detail: {},
copy_detail:{},
copy_detail: {},
};
},
methods: {
@ -99,8 +107,8 @@ export default {
this.complete_detail = val; // -> completeDetailForm
},
change_copy_detail(val) {
this.is_flag = '4'
this.copy_detail = val // -> copyDetailForm
this.is_flag = "4";
this.copy_detail = val; // -> copyDetailForm
},
//
back_home_page() {

Loading…
Cancel
Save