Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
闫晓茹 2024-06-21 09:22:58 +08:00
commit 05644c486d
3 changed files with 266 additions and 201 deletions

View File

@ -1,9 +1,9 @@
<template>
<div style="background-color: #f1f3f5">
<div slot="footer" class="topfooter">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tabs v-model="activeNametab" @tab-click="handleClick">
<el-tab-pane label="画像审核" name="portrait"></el-tab-pane>
<el-tab-pane label="路径审核" name="route"></el-tab-pane>
<el-tab-pane label="路径审核" name="route"></el-tab-pane>
</el-tabs>
<div class="right">
<el-button size="mini" @click="cancel"> </el-button>
@ -13,7 +13,8 @@
<el-button size="mini" type="info" @click="ignore">忽略</el-button>
</div>
</div>
<div class="card">
<!-- 画像审核 -->
<div class="card" v-if="activeNametab=='portrait'">
<div class="cardleft">
<div class="title">
<div style="display: flex; align-items: center">
@ -124,170 +125,13 @@
</el-collapse-item>
</el-collapse>
</div>
<!-- 画像编辑右侧 -->
<div class="cardright">
<div class="text" style="font-size: 20px">任务:</div>
<div
v-for="item in nodelist"
:key="item.manageRouteId"
style="margin: 0 auto 30px"
>
<div class="texts">
<div class="text">任务名称: {{ item.routeName }}</div>
<div class="text">
适用范围: {{ item.suitRange == "IN_THE_HOSPITAL" ? "在院" : "" }}
{{ item.suitRange == "DISCHARGE" ? "出院" : "" }}
{{ item.suitRange == "OUTPATIENT_SERVICE" ? "门诊" : "" }}
{{
item.suitRange == "OUTPATIENT_SERVICE_DISCHARGE"
? "门诊+出院"
: ""
}}
</div>
</div>
<div v-for="uitem in item.nodeList" :key="uitem.id">
<div class="texts">
<div class="text" style="font-size: 14px; font-weight: 400">
任务内容{{
uitem.taskType == "PHONE_OUTBOUND" ? "电话外呼" : ""
}}
{{ uitem.taskType == "QUESTIONNAIRE_SCALE" ? "问卷量表" : "" }}
{{ uitem.taskType == "PROPAGANDA_ARTICLE" ? "宣教文案" : "" }}
{{ uitem.taskType == "TEXT_REMIND" ? "文字提醒" : "" }}
{{ uitem.taskType == "ARTIFICIAL_FOLLOW_UP" ? "人工随访" : "" }}
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'PHONE_OUTBOUND'"
>
话术模板{{ uitem.phoneTemplateName }}
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'"
>
问卷模板{{ uitem.questionnaireName }}
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'"
>
问卷有效期{{ uitem.questionExpirationDate }}
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'PROPAGANDA_ARTICLE'"
>
宣教模板{{ uitem.propagandaTitle }}
</div>
<div class="textarea" v-if="uitem.taskType == 'TEXT_REMIND'">
提醒内容{{ uitem.textRemindContent }}
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
人工随访模板{{ uitem.questionnaireName }}
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
人工随访详情<el-button
@click="lookquestion(uitem)"
style="padding: 6px 10px"
>预览</el-button
>
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'"
>
问卷模板详情<el-button
@click="lookquestion(uitem)"
style="padding: 6px 10px"
>预览</el-button
>
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'PROPAGANDA_ARTICLE'"
>
宣教模板详情<el-button
@click="lookpropaganda(uitem)"
style="padding: 6px 10px"
>预览</el-button
>
</div>
<div
class="text"
style="font-size: 14px; font-weight: 400"
v-if="uitem.taskType == 'PHONE_OUTBOUND'"
>
话术模板详情<el-button
@click="lookphone(uitem)"
style="padding: 6px 10px"
>预览</el-button
>
</div>
</div>
</div>
</div>
<portrait @portraitlist="portraitlist"></portrait>
</div>
</div>
<!-- 话术预览弹框 -->
<el-dialog
title="话术预览"
:visible.sync="phoneopen"
width="30%"
:before-close="openfalse"
>
<img style="width: 200px" :src="baseUrl + lookitem.scriptFilePath" />
<span slot="footer" class="dialog-footer">
<el-button @click="phoneopen = false"> </el-button>
</span>
</el-dialog>
<!-- 宣教预览弹框 -->
<el-dialog
title="宣教预览"
:visible.sync="propagandaopen"
width="30%"
:before-close="openfalse"
>
<div class="titletop">文章模板:{{ lookitem.propagandaTitle }}</div>
<div class="bodytop">
<div class="titledata">{{ lookitem.propagandaTitle }}</div>
<div>
<img :src="baseUrl + lookitem.propagandaCoverPath" alt="" />
<div class="know">知识卡片</div>
<div class="knowlist">
<Editorxj v-model="lookitem.propagandaContent" :min-height="192" />
</div>
</div>
</div>
</el-dialog>
<!-- 问卷预览弹框 -->
<questionopen ref="question" :lookitem="lookitem"></questionopen>
<!-- <el-dialog title="问卷预览" :visible.sync="questionopen" width="30%" :before-close="openfalse">
<div class="titletop">文章模板:{{ lookitem.propagandaTitle }}</div>
<div class="bodytop">
<div class="titledata">{{ lookitem.propagandaTitle }}</div>
<div>
<img :src="baseUrl + lookitem.propagandaCoverPath" alt="" />
<div class="know">知识卡片</div>
<div class="knowlist">
{{ lookitem.propagandaContent }}
</div>
</div>
</div>
</el-dialog> -->
<div class="card" v-else>
</div>
</div>
</template>
@ -298,53 +142,31 @@ import {
audit
} from '@/api/manage/Auditing.js'
import { getAge } from "@/utils/age";
import questionopen from '../components/questionopen.vue';
import Editorxj from "../../system/Editorxj/index.vue";
import portrait from '../components/portrait.vue'
export default {
components: {
questionopen,
Editorxj
portrait
},
name: "Auditing",
data() {
return {
activeName: 'portrait',
activeNametab: 'portrait',//
baseUrl: process.env.VUE_APP_BASE_API,
activeNames: ['-1', '-2', '-3'],
list: {},
nodelist: [],
lookitem: {},
phoneopen: false,
propagandaopen: false,
};
},
created() {
this.info();
},
methods: {
portraitlist(val) {
console.log(val, '999999999')
},
handleClick(tab, event) {
console.log(tab, event,this.activeName);
},
//
lookpropaganda(item) {
this.lookitem = item.detailInfo
this.propagandaopen = true
},
//
lookphone(item) {
this.lookitem = item.detailInfo
this.phoneopen = true
},
//
lookquestion(item) {
this.lookitem = item.detailInfo
this.$refs.question.questionopentrue()
},
//
openfalse() {
this.phoneopen = false
this.propagandaopen = false
this.lookitem = {}
console.log(tab, event, this.activeNametab);
},
//
ignore() {
@ -395,6 +217,8 @@ export default {
routeCheckStatus: 'AGREE',
manageRouteNodeIds: manageRouteNodeIds
}
console.log(obj)
// return
audit(obj).then(res => {
this.$notify({
type: 'success',
@ -432,10 +256,10 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .el-tabs__nav{
::v-deep .el-tabs__nav {
padding-left: 15px;
}
::v-deep .el-tabs__active-bar{
::v-deep .el-tabs__active-bar {
left: 15px;
}
@ -449,12 +273,12 @@ export default {
}
.topfooter {
background: #fff;
width: 98%;
margin: 0 auto;
padding: 20px 0;
width: 98%;
margin: 0 auto;
padding: 20px 0;
.right {
/* float: right; */
padding: 10px 10px 0 0;
/* float: right; */
padding: 10px 10px 0 0;
height: 35px;
position: absolute;
right: 15px;

View File

@ -1007,7 +1007,7 @@ export default {
text-align: right;
}
.texts {
overflow-y: scroll;
// overflow-y: scroll;
overflow-x: hidden;
width: 72%;
height: calc(100vh - 30px);
@ -1015,6 +1015,8 @@ export default {
.topform {
width: 100%;
position: relative;
height: calc(100% - 177px);
overflow-y: auto;
padding: 15px 70px 30px 15px;
.box-card {
// width:calc(100% - 149px);

View File

@ -0,0 +1,239 @@
<template>
<!-- <div class="texts"> -->
<div class="topform">
<div v-if="getParamslistData" style="margin-bottom: 20px;">
<el-card>
<div class="toptitle">健康档案</div>
<div
v-for="(item, index) in form.items"
:key="index"
style="display: flex"
>
<el-card class="box-card">
<el-form
ref="form"
:inline="true"
:model="form"
class="form"
label-width="100px"
:rules="rules"
>
<el-form-item
v-for="(subItem, subIndex) in item.subItems"
:key="subIndex"
label="活动名称"
>
<!-- <span style="font-size:12px">{{subItem.name}}</span> -->
<el-input v-model="subItem.name"></el-input>
</el-form-item>
</el-form>
</el-card>
<div class="icon">
<i
class="el-icon-delete"
@click="delitem(index)"
v-if="index != 0"
></i>
<i
v-if="index == 0"
class="el-icon-circle-plus-outline"
@click="additem(index)"
></i>
</div>
</div>
</el-card>
</div>
<div>
<el-card>
<div class="toptitle">诊断信息</div>
<div
v-for="(item, index) in form.items"
:key="index"
style="display: flex"
>
<el-card class="box-card">
<el-form
ref="form"
:inline="true"
:model="form"
class="form"
label-width="100px"
:rules="rules"
>
<el-form-item
v-for="(subItem, subIndex) in item.subItems"
:key="subIndex"
label="活动名称"
>
<!-- <span style="font-size:12px">{{subItem.name}}</span> -->
<el-input v-model="subItem.name"></el-input>
</el-form-item>
</el-form>
</el-card>
<div class="icon">
<i
class="el-icon-delete"
@click="delitem(index)"
v-if="index != 0"
></i>
<i
v-if="index == 0"
class="el-icon-circle-plus-outline"
@click="additem(index)"
></i>
</div>
</div>
</el-card>
</div>
</div>
<!-- </div> -->
</template>
<script>
export default {
data() {
return {
rules: {
routeCheckStatus: [
{ required: true, message: '请选择节点审核状态', trigger: 'change' }
],
},
form: {
items: [
{
subItems: [{ name: '123' }, { name: '345' }],
},
],
},
moban: [],
getParamslistData: [
[{
paramName: "ceshi",
paramValue: ''
},
{
paramName: "ceshi222",
paramValue: ''
}
]
],
}
},
watch: {
"form": {
handler(newValue, oldValue) {
console.log(newValue, "2222221111122");
this.$emit("portraitlist", newValue);
},
deep: true,
},
},
created() {
this.$emit("portraitlist", this.form);
},
mounted() { },
methods: {
additem(index) {
const newDiv = {
subItems: [{ name: '' }, { name: '' }],
};
this.form.items.push(newDiv);
// this.getParamslistData.push(
// {
// paramName: "ceshi",
// paramValue: ''
// },
// {
// paramName: "ceshi2",
// paramValue: ''
// },
// )
console.log(this.getParamslistData)
// this.moban[0].forEach(e => {
// e.paramValue = ""
// e.id = ""
// })
// const newVal = JSON.parse(JSON.stringify(this.moban[0]))
// newVal.forEach(i => {
// i.sn = this.getParamslistData[this.getParamslistData.length - 1][0].sn + 1
// })
// this.getParamslistData.push(newVal)
},
delitem(index, item) {
this.form.items.splice(index, 1)
// this.getParamslistData.splice(index, 1)
},
},
}
</script>
<style scoped lang="scss">
// .texts {
// // overflow-y: scroll;
// overflow-x: hidden;
// width: 72%;
// height: calc(100vh - 30px);
// background-color: #fff;
.topform {
width: 100%;
position: relative;
height: calc(100% - 177px);
// overflow-y: auto;
padding: 15px 70px 30px 15px;
.toptitle {
font-weight: 500;
padding: 20px;
font-size: 18px;
}
.box-card {
// width:calc(100% - 149px);
width: 97%;
margin-left: 20px;
padding-top: 25px;
margin-bottom: 20px;
.textarea {
display: flex;
// width: 500px;
// width: 100%;
}
}
.icon {
width: 45px;
right: -20px;
top: 40px;
position: relative;
}
.form {
width: 100%;
::v-deep .el-form-item {
display: flex;
}
::v-deep .el-form-item__content {
flex: 1;
}
::v-deep .el-input__inner {
height: 30px !important;
line-height: 30px !important;
}
::v-deep .el-form-item__label {
font-size: 12px !important;
}
}
}
// }
</style>