Commit 7c67e700 authored by miaojiale's avatar miaojiale

Merge branch 'dev_lyj' into dev_Miaojiale

parents f517ea87 0605e72c
......@@ -12,11 +12,43 @@ export function getFollowSurvey(params = {}) {
params,
});
}
//审核质控 随访
///////////////审核质控/////////////////////
//随访已审核列表
export function getFollowCheck(params = {}) {
return request({
url: "/disease-data/follow/check/patientFrom",
url: "/disease-data/dataCheck/follow/check",
method: "get",
params,
});
}
//随访待审核列表
export function getFollowUncheck(params = {}) {
return request({
url: "/disease-data/dataCheck/follow/unCheck",
method: "get",
params,
});
}
//随访病例待审核(详情数据)
export function getFollowUnCheckDetail(id) {
return request({
url: `/disease-data/dataCheck/follow/unCheck/detail/${id}`,
method: "get",
});
}
//随访病例审核
export function putFollowCheck(data = {}) {
return request({
url: "/disease-data/dataCheck/follow/check",
method: "put",
data,
})
}
//修改随访审核意见
export function putFollowCheckAdvice(data = {}) {
return request({
url: "/disease-data/dataCheck/follow/check/advice",
method: "put",
data,
})
}
\ No newline at end of file
......@@ -34,16 +34,9 @@
</template>
<!-- 表内容插槽 -->
<template slot-scope="scope">
<!-- 转化文字 -->
<span
:style="{ fontSize: fontSize + 'px' }"
v-if="column.transList"
>{{column.transList[scope.row[String(column.value)]]|| "--"}}</span>
<!-- 一般情况 -->
<span
:style="{ fontSize: fontSize + 'px' }"
v-else
>{{ scope.row[column.value] || "--" }}</span>
<span :style="{ fontSize: fontSize + 'px' }">
<span>{{scope.row[column.value]|| "--"}}</span>
</span>
</template>
</el-table-column>
</template>
......
......@@ -49,9 +49,11 @@
>
<template slot="title">
{{ g.label }}
<span v-if="g.label == '二、排除标准'" class="noCol">{{
<span v-if="g.label == '二、排除标准'" class="noCol">
{{
errorText
}}</span>
}}
</span>
</template>
<form-content
v-if="collapseNames.includes(g.prop)"
......@@ -312,6 +314,7 @@ export default {
// 绑定部分值(此时表单已渲染)
initfields(obj) {
for (let k in obj) {
console.log("通用表单",k,obj)
// if (this.form.hasOwnProperty(k)) {
this.form[k] = obj[k]
// }
......
......@@ -36,8 +36,7 @@
:label="tabLabel"
:selectable="selecTable"
:index="tabIndex"
>
</el-table-column>
></el-table-column>
<template v-for="(column, index) in columns">
<template v-if="!column.hidden">
......@@ -101,9 +100,7 @@
"
>
<template v-for="(op, opIndex) in col2.operations">
<template
v-if="!op.isHidden || !op.isHidden(scope.row)"
>
<template v-if="!op.isHidden || !op.isHidden(scope.row)">
<el-button
:key="opIndex"
:disabled="
......@@ -121,11 +118,11 @@
@click="op.func(scope.row, scope.$index)"
>
{{
op.formatter
? op.formatter(scope.row).label
: op.label
? op.label
: scope.row[col2.value]
op.formatter
? op.formatter(scope.row).label
: op.label
? op.label
: scope.row[col2.value]
}}
</el-button>
</template>
......@@ -169,9 +166,11 @@
: {}
"
/>
<span v-else class="tableSpan">{{
<span v-else class="tableSpan">
{{
scope.row[col2.value]
}}</span>
}}
</span>
</template>
<template v-else>
<el-input
......@@ -203,9 +202,11 @@
: {}
"
/>
<span v-else class="tableSpan">{{
<span v-else class="tableSpan">
{{
scope.row[col2.value]
}}</span>
}}
</span>
</template>
</template>
......@@ -292,7 +293,10 @@
>
<el-button type="primary" :size="size">
{{ op.title || "更多操作"
}}<i class="el-icon-arrow-down el-icon--right"></i>
}}
<i
class="el-icon-arrow-down el-icon--right"
></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
......@@ -319,9 +323,9 @@
"
>
{{
child.formatter
? child.formatter(scope.row).label
: child.label
child.formatter
? child.formatter(scope.row).label
: child.label
}}
</el-dropdown-item>
</el-dropdown-menu>
......@@ -341,8 +345,7 @@
v-model="scope.row[column.value]"
:active-value="op.activeValue"
:inactive-value="op.inactiveValue"
>
</el-switch>
></el-switch>
</div>
<el-button
v-else
......@@ -363,11 +366,11 @@
@click="op.func(scope.row, scope.$index)"
>
{{
op.formatter
? op.formatter(scope.row).label
: op.label
? op.label
: scope.row[column.value]
op.formatter
? op.formatter(scope.row).label
: op.label
? op.label
: scope.row[column.value]
}}
</el-button>
</template>
......@@ -379,9 +382,7 @@
? column.operations.formatter(scope.row)
: column.operations"
>
<template
v-if="!operate.isHidden || !operate.isHidden(scope.row)"
>
<template v-if="!operate.isHidden || !operate.isHidden(scope.row)">
<el-tooltip
v-if="operate.tips"
:key="operIndex + Date.parse(new Date())"
......@@ -453,9 +454,11 @@
: {}
"
/>
<span v-else class="tableSpan">{{
<span v-else class="tableSpan">
{{
scope.row[column.value]
}}</span>
}}
</span>
</template>
<template v-else>
<el-input
......@@ -487,9 +490,11 @@
: {}
"
/>
<span v-else class="tableSpan">{{
<span v-else class="tableSpan">
{{
scope.row[column.value]
}}</span>
}}
</span>
</template>
</template>
......@@ -506,9 +511,11 @@
:value-format="column.valueFormat"
:size="column.size"
></el-date-picker>
<span v-else class="tableSpan">{{
<span v-else class="tableSpan">
{{
scope.row[column.value]
}}</span>
}}
</span>
</template>
<template v-if="column.operType === 'textarea'">
......@@ -558,9 +565,7 @@
</template>
<template v-if="column.operType === 'checkbox'">
<el-checkbox
v-model="scope.row[column.value]"
></el-checkbox>
<el-checkbox v-model="scope.row[column.value]"></el-checkbox>
</template>
<!-- 模糊查询输入 -->
......@@ -616,7 +621,7 @@
<template v-else-if="column.operType === 'label'">
<span>{{scope.row[column.value]}}</span>
</template> -->
</template>-->
<template v-else-if="column.operType === 'upload'">
<el-button
......@@ -624,8 +629,7 @@
style="float: left"
type="primary"
@click="column.func(scope.$index)"
>上传</el-button
>
>上传</el-button>
<span
v-if="scope.row.imgUrl"
style="
......@@ -636,15 +640,13 @@
color: #409eff;
"
@click="column.enlargeFunc(scope.row.imgUrl)"
>{{ scope.row.imgUrl }}</span
>
>{{ scope.row.imgUrl }}</span>
<el-button
v-if="scope.row.imgUrl"
style="float: left; margin-left: 5px"
type="primary"
@click="column.delFunc(scope.row, scope.$index)"
>删除</el-button
>
>删除</el-button>
</template>
<!-- 图片 -->
<template v-if="column.operType === 'img'">
......@@ -662,27 +664,16 @@
<!-- 消息 -->
<template v-if="column.operType === 'txt'">
<div :style="column.style1">
{{ scope.row[column.value1] }}
</div>
<div :style="column.style2">
{{ scope.row[column.value2] }}
</div>
<div :style="column.style1">{{ scope.row[column.value1] }}</div>
<div :style="column.style2">{{ scope.row[column.value2] }}</div>
</template>
<!-- html -->
<template v-if="column.type === 'html'">
<div
class="highlight"
v-html="scope.row[column.value]"
></div>
<div class="highlight" v-html="scope.row[column.value]"></div>
</template>
<!-- 展开列表 -->
<template v-if="column.tabType === 'expand'">
<el-form
label-position="right"
class="demo-table-expand"
label-width="130px"
>
<el-form label-position="right" class="demo-table-expand" label-width="130px">
<template v-for="(expand, index) in column.expandColumns">
<el-form-item
v-if="!expand.hidden"
......@@ -713,6 +704,7 @@
<div v-if="pageSize && totalCounts > 0" class="pagination-footer">
<span class="description">{{ description }}</span>
<el-pagination
background
:current-page="currentPage"
:page-sizes="pageSizes"
:page-size="pageSize"
......
<template>
<span v-if="themeBar">
<vab-icon
title="主题配置"
:icon="['fas', 'palette']"
@click="handleChangeTheme"
/>
<vab-icon title="主题配置" :icon="['fas', 'palette']" @click="handleChangeTheme" />
<div class="theme-bar-setting">
<div @click="handleChangeTheme">
<vab-icon :icon="['fas', 'palette']" />
......@@ -86,11 +82,7 @@
></el-color-picker>
</el-form-item>
<el-form-item label="菜单文字色">
<el-color-picker
v-model="theme.menuColor"
:predefine="['#000', '#fff']"
show-alpha
></el-color-picker>
<el-color-picker v-model="theme.menuColor" :predefine="['#000', '#fff']" show-alpha></el-color-picker>
</el-form-item>
<el-form-item label="标签主题色">
<el-color-picker
......@@ -115,13 +107,11 @@
</el-form-item>
<el-form-item>
<el-button @click="handleSetDfaultTheme">恢复默认</el-button>
<el-button type="primary" @click="handleSaveTheme"
>保存</el-button
>
<el-button type="primary" @click="handleSaveTheme">保存</el-button>
</el-form-item>
</el-form>
</div></el-scrollbar
>
</div>
</el-scrollbar>
</el-drawer>
</span>
</template>
......
......@@ -26,13 +26,12 @@
:icon-class="onlyOneChildren.meta.remixIcon"
class="vab-nav-icon"
/>
<span slot="title">{{ onlyOneChildren.meta.title }} </span>
<span slot="title">{{ onlyOneChildren.meta.title }}</span>
<el-tag
v-if="onlyOneChildren.meta && onlyOneChildren.meta.badge"
type="danger"
effect="dark"
>{{ onlyOneChildren.meta.badge }}</el-tag
>
>{{ onlyOneChildren.meta.badge }}</el-tag>
</el-menu-item>
</app-link>
</template>
......
......@@ -57,6 +57,7 @@ export default {
if (meta.activeMenu) {
return meta.activeMenu
}
console.log("path",path)
return path
},
variables() {
......
......@@ -32,6 +32,7 @@ const actions = {
newDictSet.push(v.type)
}
})
console.log('执行getDictData', commit, state)
commit("setDictSet", latestDict)
newDictSet = Object.keys(dictMap).length === 0 ? latestDictSet : newDictSet
// 存在新增加的字典
......@@ -56,10 +57,12 @@ const actions = {
},
// 更新字典分类
async updateDictType({ commit, state }, data) {
console.log('执行updateDictType')
commit("setDictSet", data)
},
// 更新字典详情
async updateDictDetail({ commit, state }, { type, data }) {
console.log('执行updateDictDetail')
const dictMap = state.dictMap
if (type) {
const list = data.map((item) => {
......
......@@ -213,7 +213,19 @@ html {
text-align: center;
white-space: nowrap;
}
.is-background{
button,.el-pager li{
border-radius: 6px !important;
}
button,.el-pager li:not(.active){
border: 1px solid #D9D9D9;
background: transparent !important;
}
.el-input__inner{
border-radius: 6px !important;
}
}
/* 分页结束 */
/* 菜单开始 */
......
......@@ -153,7 +153,7 @@ export function getInfoByIdCard(idCard, type = "birthDate") {
d.getFullYear() -
birthdays.getFullYear() -
(d.getMonth() < birthdays.getMonth() ||
(d.getMonth() == birthdays.getMonth() && d.getDate() < birthdays.getDate())
(d.getMonth() == birthdays.getMonth() && d.getDate() < birthdays.getDate())
? 1
: 0)
......@@ -182,12 +182,12 @@ export function paramObj(url) {
}
return JSON.parse(
'{"' +
decodeURIComponent(search)
.replace(/"/g, '\\"')
.replace(/&/g, '","')
.replace(/=/g, '":"')
.replace(/\+/g, " ") +
'"}'
decodeURIComponent(search)
.replace(/"/g, '\\"')
.replace(/&/g, '","')
.replace(/=/g, '":"')
.replace(/\+/g, " ") +
'"}'
)
}
......@@ -471,7 +471,7 @@ export function formatDicList(list, value, connector = ",") {
if (!list) return ""
if (list.constructor !== Array) return ""
// if (!value && value != 0) return ""
let result = ""
let result = "--"
let multiple = Array.isArray(value) ? true : false
if (multiple) {
const resultList = []
......@@ -489,6 +489,7 @@ export function formatDicList(list, value, connector = ",") {
}
})
}
console.log('字典', list, value, result)
return result
}
/**
......@@ -522,7 +523,7 @@ export function changeTime(time) {
let seconds = Math.floor(time % 60) //秒
return `${day ? day + "" : ""} ${hours ? hours + "小时" : ""}${
minutes ? minutes + "" : ""
}${seconds}秒`
}${seconds}秒`
}
export default { formatDicList, excelExport }
......@@ -20,8 +20,7 @@
class="p-btn"
size="medium"
@click="showDialog(item.value)"
>{{ item.text }}</el-button
>
>{{ item.text }}</el-button>
<span v-if="editStatus" class="op">驳回修改建议:胃镜图片不合规</span>
</div>
</div>
......@@ -36,26 +35,20 @@
<div class="content">
<div class="showTips">
该病例已经审核【驳回修改】,需要改为{{
btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : ""
btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : ""
}}
</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" @click="onCancel"
></el-button
>
<el-button type="primary" :loading="loading" @click="editSubmit"
></el-button
>
<el-button type="primary" :loading="loading" @click="onCancel"></el-button>
<el-button type="primary" :loading="loading" @click="editSubmit"></el-button>
</div>
</template>
</public-dialog>
<public-dialog ref="publicDialog" @onSubmit="onSubmit" @onCancel="onCancel">
<!-- 审核结果回显 -->
<template v-if="!confirmStatus" slot="content">
<div class="title">
{{ btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : "" }}
</div>
<div class="title">{{ btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : "" }}</div>
<div class="content">
<div v-if="curBtn != 1" class="noPass">
<el-form
......@@ -66,10 +59,7 @@
label-width="100px"
class="demo-ruleForm"
>
<el-form-item
:label="curBtn == 2 ? '不合格原因' : '驳回修改建议'"
prop="reson"
>
<el-form-item :label="curBtn == 2 ? '不合格原因' : '驳回修改建议'" prop="reson">
<el-input
v-model="form.reson"
type="textarea"
......@@ -82,9 +72,7 @@
</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" @click="onSubmit"
>确 定</el-button
>
<el-button type="primary" :loading="loading" @click="onSubmit">确 定</el-button>
</div>
</template>
<!-- 提交后结果 -->
......@@ -94,17 +82,11 @@
<div v-if="curBtn == 1" class="pass">该病例审核合格成功!</div>
<div v-if="curBtn != 1" class="noPass">
<!-- 不合格和驳回 -->
<div class="label">
{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}
</div>
<div class="reson">
{{ form.reson }}
</div>
<div class="label">{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}</div>
<div class="reson">{{ form.reson }}</div>
</div>
</div>
<div v-if="curBtn != 1" class="showTips">
该病例审核{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}提交成功!
</div>
<div v-if="curBtn != 1" class="showTips">该病例审核{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}提交成功!</div>
<div class="btn">
<el-button type="primary" @click="nextExample">下一例</el-button>
</div>
......@@ -115,6 +97,7 @@
<script>
import publicDialog from "./components/publicDialog.vue"
import screenReview from "./components/screenReview.vue"
export default {
components: { publicDialog, screenReview },
data() {
......@@ -145,7 +128,9 @@ export default {
}
},
watch: {},
mounted() {},
mounted() {
},
methods: {
showDialog(val) {
this.curBtn = val
......@@ -210,6 +195,7 @@ export default {
nextExample() {
this.onCancel()
},
},
}
</script>
......
<template>
<div class="audit-qualitycontrol">
<div class="aq-top-tab">
<el-tabs v-model="type" @tab-click="handleClick">
<el-tab-pane label="筛查病例数据" name="0"></el-tab-pane>
<el-tab-pane label="随访病例数据" name="1"></el-tab-pane>
</el-tabs>
</div>
<div class="aq-bot-table">
<div class="table-top-tab">
<el-tabs v-model="auditStatus" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="0"></el-tab-pane>
<el-tab-pane label="已审核" name="1"></el-tab-pane>
</el-tabs>
<div v-show="auditStatus == 1" class="keyExplain">
字段说明
<img src="~@/assets/img/DataCenter/question.png" alt />
</div>
</div>
<div class="bot-table">
<customs-table
ref="table"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
/>
</div>
</div>
</div>
</template>
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import { getFollowCheck } from "@/api/followup"
export default {
components: {
CustomsTable,
},
mixins: [paginationMixin],
data() {
return {
type: "0",
auditStatus: "0",
listLoading: false,
columns: [
{
label: "医联体",
minWidth: 120,
value: "title",
},
{
label: "已审核(例)",
minWidth: 120,
value: "file",
},
{
label: "待审核(例)备份",
minWidth: 120,
value: "uploadTime",
},
{
label: "最新上报时间",
minWidth: 120,
value: "editTime",
},
{
label: "操作",
width: 220,
fixed: "right",
operType: "button",
operations: [
{
func: this.auditHandle,
label: "审核",
type: "text",
},
],
},
],
tableData: [
{
title: "第一个",
isOpen: true,
},
],
}
},
watch: {
auditStatus(val){
switch (this.type) {
case '1':
this.getFollowupList()
break;
}
},
type(val){
switch (val) {
case '1':
this.getFollowupList()
break;
}
}
},
mounted() {},
methods: {
handleClick() {
console.log("type:" + this.type, "auditStatus" + this.auditStatus)
if (this.auditStatus == 1) {
this.columns[this.columns.length - 1].operations[0].label =
"修改审核意见"
} else {
this.columns[this.columns.length - 1].operations[0].label = "审核"
}
},
auditHandle(data, i) {
console.log(data, i)
if(this.type=="1"){
this.$router.push("/followaudit")
}
else{
this.$router.push({
path: "/auditdetail",
query: {
id: i,
},
})
}
},
async getFollowupList(){
let params={
pageSize:10,
pageNum:1
}
let res
switch (this.auditStatus) {
case '1':
res = await getFollowCheck(params);
break;
}
},
},
}
</script>
<style lang="scss" scoped>
.audit-qualitycontrol {
padding: 20px 0;
.table-top-tab {
margin-bottom: 15px;
position: relative;
.keyExplain {
position: absolute;
display: flex;
align-items: center;
right: 0;
top: 10%;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: #999999;
img {
width: 18px;
height: 18px;
margin-left: 5px;
transform: translateY(1px);
}
}
}
.aq-bot-table {
padding: 20px;
::v-deep {
.el-tabs__nav {
border: none;
}
.el-tabs__item {
margin-right: 10px;
border: 1px solid #e4e7ed;
border-radius: 5px 5px 0 0;
}
.is-active {
background: #4e68ff;
color: #fff;
}
}
}
}
::v-deep {
.el-tabs__item {
padding-left: 20px !important;
font-size: 18px;
font-family: AlibabaPuHuiTiM;
}
.is-active {
color: #4e68ff;
}
}
</style>
<template>
<div class="audit-qualitycontrol">
<div class="aq-top-tab">
<el-tabs v-model="type" @tab-click="handleClick">
<el-tab-pane label="筛查病例数据" name="0"></el-tab-pane>
<el-tab-pane label="随访病例数据" name="1"></el-tab-pane>
</el-tabs>
</div>
<div class="aq-bot-table">
<div class="table-top-tab">
<el-tabs v-model="auditStatus" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="0"></el-tab-pane>
<el-tab-pane label="已审核" name="1"></el-tab-pane>
</el-tabs>
<div v-show="auditStatus == 1" class="keyExplain">
字段说明
<img src="~@/assets/img/DataCenter/question.png" alt />
</div>
</div>
<div class="bot-table">
<customs-table
ref="table"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
/>
</div>
</div>
</div>
</template>
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
export default {
components: {
CustomsTable,
},
mixins: [paginationMixin],
data() {
return {
type: "0",
auditStatus: "0",
listLoading: false,
columns: [
{
label: "医联体",
minWidth: 120,
value: "title",
},
{
label: "已审核(例)",
minWidth: 120,
value: "file",
},
{
label: "待审核(例)备份",
minWidth: 120,
value: "uploadTime",
},
{
label: "最新上报时间",
minWidth: 120,
value: "editTime",
},
{
label: "操作",
width: 220,
fixed: "right",
operType: "button",
operations: [
{
func: this.auditHandle,
label: "审核",
type: "text",
},
],
},
],
tableData: [
{
title: "第一个",
isOpen: true,
},
],
}
},
watch: {},
mounted() {},
methods: {
handleClick() {
console.log("type:" + this.type, "auditStatus" + this.auditStatus)
if (this.auditStatus == 1) {
this.columns[this.columns.length - 1].operations[0].label =
"修改审核意见"
} else {
this.columns[this.columns.length - 1].operations[0].label = "审核"
}
},
auditHandle(data, i) {
console.log(data, i)
if(this.type=="1"){
this.$router.push("/followaudit")
}
else{
this.$router.push({
path: "/auditdetail",
query: {
id: i,
},
})
}
},
},
}
</script>
<style lang="scss" scoped>
.audit-qualitycontrol {
padding: 20px 0;
.table-top-tab {
margin-bottom: 15px;
position: relative;
.keyExplain {
position: absolute;
display: flex;
align-items: center;
right: 0;
top: 10%;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: #999999;
img {
width: 18px;
height: 18px;
margin-left: 5px;
transform: translateY(1px);
}
}
}
.aq-bot-table {
padding: 20px;
::v-deep {
.el-tabs__nav {
border: none;
}
.el-tabs__item {
margin-right: 10px;
border: 1px solid #e4e7ed;
border-radius: 5px 5px 0 0;
}
.is-active {
background: #4e68ff;
color: #fff;
}
}
}
}
::v-deep {
.el-tabs__item {
padding-left: 20px !important;
font-size: 18px;
font-family: AlibabaPuHuiTiM;
}
.is-active {
color: #4e68ff;
}
}
</style>
<template>
<div class="audit-qualitycontrol">
<div class="aq-top-tab">
<el-tabs v-model="type" @tab-click="handleClick">
<el-tab-pane label="筛查病例数据" name="0"></el-tab-pane>
<el-tab-pane label="随访病例数据" name="1"></el-tab-pane>
</el-tabs>
</div>
<div class="aq-bot-table">
<div class="table-top-tab">
<el-tabs v-model="auditStatus" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="0"></el-tab-pane>
<el-tab-pane label="已审核" name="1"></el-tab-pane>
</el-tabs>
<div v-show="auditStatus == 1" class="keyExplain">
字段说明
<img src="~@/assets/img/DataCenter/question.png" alt />
</div>
</div>
<div class="bot-table">
<customs-table
ref="table"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
/>
</div>
</div>
</div>
</template>
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
export default {
components: {
CustomsTable,
},
mixins: [paginationMixin],
data() {
return {
type: "0",
auditStatus: "0",
listLoading: false,
columns: [
{
label: "医联体",
minWidth: 120,
value: "title",
},
{
label: "已审核(例)",
minWidth: 120,
value: "file",
},
{
label: "待审核(例)备份",
minWidth: 120,
value: "uploadTime",
},
{
label: "最新上报时间",
minWidth: 120,
value: "editTime",
},
{
label: "操作",
width: 220,
fixed: "right",
operType: "button",
operations: [
{
func: this.auditHandle,
label: "审核",
type: "text",
},
],
},
],
tableData: [
{
title: "第一个",
isOpen: true,
},
],
}
},
watch: {},
mounted() {},
methods: {
handleClick() {
console.log("type:" + this.type, "auditStatus" + this.auditStatus)
if (this.auditStatus == 1) {
this.columns[this.columns.length - 1].operations[0].label =
"修改审核意见"
} else {
this.columns[this.columns.length - 1].operations[0].label = "审核"
}
},
auditHandle(data, i) {
console.log(data,i,"表单")
if(this.type=="1"){
this.$router.push("/followaudit")
}
else{
this.$router.push({
path: "/auditdetail",
query: {
id: i,
},
})
}
},
},
}
</script>
<style lang="scss" scoped>
.audit-qualitycontrol {
padding: 20px 0;
.table-top-tab {
margin-bottom: 15px;
position: relative;
.keyExplain {
position: absolute;
display: flex;
align-items: center;
right: 0;
top: 10%;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: #999999;
img {
width: 18px;
height: 18px;
margin-left: 5px;
transform: translateY(1px);
}
}
}
.aq-bot-table {
padding: 20px;
::v-deep {
.el-tabs__nav {
border: none;
}
.el-tabs__item {
margin-right: 10px;
border: 1px solid #e4e7ed;
border-radius: 5px 5px 0 0;
}
.is-active {
background: #4e68ff;
color: #fff;
}
}
}
}
::v-deep {
.el-tabs__item {
padding-left: 20px !important;
font-size: 18px;
font-family: AlibabaPuHuiTiM;
}
.is-active {
color: #4e68ff;
}
}
</style>
......@@ -18,7 +18,7 @@
</div>
</div>
<div class="bot-table">
<customs-table
<el-table-self
ref="table"
:table-data="tableData"
:columns="columns"
......@@ -38,7 +38,7 @@
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import { getFollowCheck } from "@/api/followup"
import { getFollowCheck,getFollowUncheck } from "@/api/followup"
export default {
components: {
CustomsTable,
......@@ -49,26 +49,64 @@ export default {
type: "0",
auditStatus: "0",
listLoading: false,
columns: [
tableData: [
{
"unionId": "2",
"unionName": "合肥高新附院",
"unCheckNums": 2,
"checkNums": 0,
"reportTime": "2022-12-09 09:12:35"
}
],
}
},
watch: {
auditStatus(val) {
sessionStorage.setItem('audit-status',val)
switch (this.type) {
case "1":
this.handleSearch()
break
}
console.log('status',val)
},
type(val) {
console.log('type',val)
sessionStorage.setItem('audit-type',val)
switch (val) {
case "1":
this.handleSearch()
break
}
},
},
computed:{
columns(){
const unCkeckColumns = [
{
label: "医联体",
minWidth: 120,
value: "title",
value: "unionName",
},
{
label: "已审核(例)",
minWidth: 120,
value: "file",
value: "checkNums",
},
{
label: "待审核(例)备份",
minWidth: 120,
value: "uploadTime",
value: "unCheckNums",
},
{
label: "最新上报时间",
minWidth: 120,
value: "editTime",
value: "reportTime",
},
{
label: "操作",
......@@ -83,32 +121,75 @@ export default {
},
],
},
],
tableData: [
]
const checkColumns = [
{
title: "第一个",
isOpen: true,
label: "筛查编号",
minWidth: 120,
value: "unionId",
},
],
{
label: "医联体",
minWidth: 120,
value: "unionName",
},
{
label: "姓名",
minWidth: 120,
formatter: (row) => {
return row.name ? row.name : "--"
},
value: "name",
},
{
label: "年龄",
minWidth: 120,
value: "age",
formatter: (row) => {
return row.age ? row.age : "--"
},
},
{
label: "风险评估",
minWidth: 120,
value: "checkNums",
},
{
label: "审核状态",
minWidth: 120,
value: "unCheckNums",
},
{
label: "上报时间",
minWidth: 120,
value: "reportTime",
},
{
label: "操作",
width: 220,
fixed: "right",
operType: "button",
operations: [
{
func: this.auditHandle,
label: "审核",
type: "text",
},
],
},
]
return this.auditStatus == "1" ? checkColumns:unCkeckColumns
}
},
watch: {
auditStatus(val) {
switch (this.type) {
case "1":
this.getFollowupList()
break
}
},
type(val) {
switch (val) {
case "1":
this.getFollowupList()
break
}
},
mounted() {
if(sessionStorage.getItem('audit-status') || sessionStorage.getItem('audit-type') ){
this.auditStatus = sessionStorage.getItem('audit-status') || "0"
this.type = sessionStorage.getItem('audit-type') || "0"
}
else{
this.handleSearch()
}
},
mounted() {},
methods: {
handleClick() {
console.log("type:" + this.type, "auditStatus" + this.auditStatus)
......@@ -122,7 +203,12 @@ export default {
auditHandle(data, i) {
console.log(data, i)
if (this.type == "1") {
this.$router.push("/followaudit")
this.$router.push({
path: "/followaudit",
query: {
id: data['unionId'],
},
})
} else {
this.$router.push({
path: "/auditdetail",
......@@ -132,17 +218,22 @@ export default {
})
}
},
async getFollowupList() {
async handleSearch() {
let params = {
pageSize: 10,
pageNum: 1,
pageSize:this.pageSize,
pageNum:this.pageIndex
}
let res
switch (this.auditStatus) {
case "0":
res = await getFollowUncheck(params) //待审核
break;
case "1":
res = await getFollowCheck(params)
break
res = await getFollowCheck(params) //已审核
break;
}
this.tableData = res.data.records
this.total= res.data.total
},
},
}
......
<template>
<!-- 随访调查录入 -->
<!-- 随访审核详情 -->
<div class="follow-form">
<!-- <ConfigForms form-type="2" formClass="follow-form"></ConfigForms> -->
<read-form ref="form" :options="followupForm" :formEdit="formEdit"></read-form>
......@@ -10,11 +10,16 @@
import ConfigForms from "@/views/screening/components/ConfigForms.vue"
import ReadForm from "@/components/FormComponents/ReadForm/index"
export default {
name: "FollowupAudit",
name: "followReview",
components: {
ConfigForms,
ReadForm
},
props: {
form: {
type: Object,
},
},
data() {
return {
followupForm:{
......@@ -685,15 +690,19 @@ export default {
]
},
formEdit:{
name:"djksh",
contact_phone:"12345678",
is_accept:"0",
gas_exam:"15",
G_17:"1"
}
}
},
created() {},
watch:{
form(val){
this.formEdit = val
console.log("form",val)
}
},
created() {
},
mounted(){
},
methods: {},
}
</script>
......
<template>
<!-- 随访审核 -->
<div id="audit-detail">
<div class="audit-detail_header p-24">
<div class="left">
......@@ -9,6 +10,10 @@
<el-button class="btn" @click="$router.go(-1)">返回</el-button>
</div>
</div>
<div class="table-content p-24">
<!-- <component :is="curComponent" :formEdit="formEdit"></component> -->
<follow-review :form="formEdit"></follow-review>
</div>
<div class="choose-handle p-24">
<span v-if="!editStatus">请选择审核结果:</span>
<div class="btn_group">
......@@ -23,9 +28,6 @@
<span v-if="editStatus" class="op">驳回修改建议:胃镜图片不合规</span>
</div>
</div>
<div class="table-content p-24">
<component :is="curComponent"></component>
</div>
<public-dialog ref="editDialog" @onSubmit="onSubmit" @onCancel="onCancel">
<!-- 修改审核结果 优先触发提示 -->
<template v-if="!confirmStatus" slot="content">
......@@ -95,6 +97,7 @@
<script>
import publicDialog from "./components/publicDialog.vue"
import followReview from "./components/followReview.vue"
import { getFollowUnCheckDetail } from "@/api/followup"
export default {
components: { publicDialog, followReview },
data() {
......@@ -102,6 +105,13 @@ export default {
medicalCombination:'无锡市人民医院医联体',
mcCount:7,
editStatus: false, //进入的状态是第一次审核还是修改审核,false为第一次,true为修改
formEdit:{
name:"djksh",
contact_phone:"12345678",
is_accept:"0",
gas_exam:"15",
G_17:"5"
},//填报数据
form: {},
rules: {
reson: [{ required: true, message: "请填写", trigger: "blur" }],
......@@ -127,7 +137,14 @@ export default {
}
},
watch: {},
mounted() {},
created() {
this.getDetail()
},
computed:{
unionId(){
return this.$route.query.id
}
},
methods: {
showDialog(val) {
this.curBtn = val
......@@ -192,6 +209,14 @@ export default {
nextExample() {
this.onCancel()
},
async getDetail(){
this.loading = true
let res = await getFollowUnCheckDetail(this.unionId)
if(res.code==1){
this.formEdit=res.data[0]
}
this.loading = false
},
},
}
</script>
......@@ -234,7 +259,8 @@ export default {
font-size: 14px;
font-family: AlibabaPuHuiTiM;
color: #333333;
box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.1);
box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
border-top: 1px solid rgba(0, 0, 0, 0.1);
display: flex;
.btn_group {
margin-left: 24px;
......
......@@ -18,17 +18,7 @@ export default {
},
created() {
},
computed:{
formEdit(){
return this.$route.query
}
},
methods: {},
provide() {
return {
formEdit:this.$route.query.formEdit
}
},
}
</script>
......
......@@ -5,7 +5,7 @@
<form-components :forms="formList" :formEdit="formEdit" @handleSearch="onSearch"></form-components>
</div>
<div class="bot">
<customs-table
<el-table-self
ref="table"
:table-data="tableData"
:columns="columns"
......@@ -41,64 +41,82 @@ export default {
columns: [
{
label: "医联体",
value: "unionName",
minWidth: 120,
value: "unionName",
formatter: (row) => {
return row.unionName ? row.unionName : "--"
},
},
{
label: "姓名",
value: "name",
minWidth: 120,
formatter: (row) => {
return row.name ? row.name : "--"
},
value: "name",
},
{
label: "性别",
minWidth: 80,
value: "sex",
minWidth: 120,
// trans:'d-sex',
transList:{
1:'',
2:''
}
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["d-sex"], row.sex + "")
},
},
{
label: "身份证",
value: "idCard",
minWidth: 120,
value: "idCard",
formatter: (row) => {
return row.idCard ? row.idCard : "--"
},
},
{
label: "年龄",
value:"age",
minWidth: 120,
value: "age",
formatter: (row) => {
return row.age ? row.age : "--"
},
},
{
label: "筛查时间",
minWidth: 180,
value: "screeningTime",
minWidth: 120,
formatter: (row) => {
return row.createTime ? row.createTime : "--"
},
},
{
label: "风险评估结果",
minWidth: 120,
value: "riskRank",
trans:'risk_level',
transList:{
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["risk_level"],String(row.riskRank))
},
minWidth: 120,
},
{
label: "上次随访时间",
value: "followTime",
minWidth: 120,
formatter: (row) => {
return row.followTime ? row.followTime : "--"
},
},
{
label: "随访进度",
value: "followBatch",
trans:'follow_type',
transList:{
},
minWidth: 120,
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["follow_type"],String(row.followBatch))
},
},
{
label: "计划随访时间",
value: "nextFollowTime",
trans:'next_follow_time',
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["next_follow_time"],String(row.nextFollowTime))
},
minWidth: 120,
},
{
......@@ -142,7 +160,8 @@ export default {
"formRecordId": "", //表单记录id
"linkPhone": "0556-5556666", //联系方式
"isContinueFollow": 1, //是否继续随访
"checkStatus": "" //审核状态
"checkStatus": "", //审核状态
"riskRank":"medium"
},
{
name:'11',
......@@ -283,7 +302,7 @@ export default {
}
},
created(){
this.initColumn()
// this.initColumn()
},
mounted() {
this.formEdit = JSON.parse(sessionStorage.getItem('followResearch-form')) ||{}
......@@ -332,41 +351,41 @@ export default {
}
this.listLoading = false
},
initColumn(){
this.columns.forEach((item,index) => {
if(item.trans){
this.initDict(item.trans,index)
}
})
},
async initDict(type,index){
let params={
type:type
}
const res = await getDictDetail(params)
let item = this.formList.find(_ => _.trans == type)
res.data.forEach((itemD,inx) => {
if(!this.columns[index]['transList']){
this.columns[index]['transList']={}
}
else{
this.columns[index]['transList'][itemD.code]=itemD.name
}
if(item){
if(!item['opts']){
item['opts']=[]
}
else {
item['opts']=res.data.map((_) => {
return {
label: _.name,
value: _.code,
}
})
}
}
})
}
// initColumn(){
// this.columns.forEach((item,index) => {
// if(item.trans){
// this.initDict(item.trans,index)
// }
// })
// },
// async initDict(type,index){
// let params={
// type:type
// }
// const res = await getDictDetail(params)
// let item = this.formList.find(_ => _.trans == type)
// res.data.forEach((itemD,inx) => {
// // if(!this.columns[index]['transList']){
// // this.columns[index]['transList']={}
// // }
// // else{
// // this.columns[index]['transList'][itemD.code]=itemD.name
// // }
// if(item){
// if(!item['opts']){
// item['opts']=[]
// }
// else {
// item['opts']=res.data.map((_) => {
// return {
// label: _.name,
// value: _.code,
// }
// })
// }
// }
// })
// }
},
}
</script>
......
......@@ -42,11 +42,7 @@
</el-switch>-->
</div>
</el-row>
<div
ref="my-form"
class="my-form"
:class="externalScroll ? 'no-scroll' : ''"
>
<div ref="my-form" class="my-form" :class="externalScroll ? 'no-scroll' : ''">
<!-- <read-form
ref="form"
:options="survivalForm"
......@@ -344,7 +340,7 @@ export default {
},
created() {
if (this.$route.query.formEdit) {
this.formData.formEdit = this.$route.query.formEdit
this.formData.formEdit = JSON.parse(this.$route.query.formEdit)
}
this.initForm()
if (this.getAll) {
......
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