Commit dcacef75 authored by miaojiale's avatar miaojiale

Merge branch 'dev_Miaojiale' into dev

parents 5e7c0a12 f9bca93c
......@@ -25,7 +25,7 @@
"core-js": "^3.6.5",
"crypto-js": "^4.0.0",
"dayjs": "^1.8.28",
"echarts": "^5.1.2",
"echarts": "4.8.0",
"element-ui": "^2.15.2",
"js-cookie": "^2.2.1",
"jsbarcode": "^3.11.5",
......@@ -33,6 +33,7 @@
"lodash": "^4.17.15",
"monaco-editor": "^0.23.0",
"nprogress": "^0.2.0",
"pdfjs-dist": "2.5.207",
"qrcodejs2": "^0.0.2",
"qs": "^6.9.4",
"screenfull": "^5.0.2",
......
......@@ -43,6 +43,15 @@ export function addPatient(data = {}, type = "") {
})
}
// 随访录入
export function addFollowPatient(data = {}, type = "") {
return request({
url: `/disease-data/data/patient/follow/${type}`,
method: "post",
data,
})
}
// 删除草稿
export function deletePatient(data) {
return request({
......
import request from "@/utils/request"
/* 质控报表 */
// 审核员列表
export function checkerQuality(params = {}) {
return request({
url: "/disease-data/data/report/checker/quality",
method: "get",
params,
})
}
// 管理员列表
export function adminQuality(params = {}) {
return request({
url: "/disease-data/data/report/admin/quality",
method: "get",
params,
})
}
......@@ -53,11 +53,11 @@ export function saveSysCheckNote(data = {}) {
})
}
// //修改筛查病例审核意见
// export function putFollowCheckAdvice(data = {}) {
// return request({
// url: "/disease-data/dataCheck/follow/check/advice",
// method: "put",
// data,
// })
// }
//修改筛查病例审核意见
export function putScreeningCheckAdvice(data = {}) {
return request({
url: "/disease-data/dataCheck/screening/check/advice",
method: "put",
data,
})
}
......@@ -175,3 +175,27 @@ export function getLogPage(params = {}) {
params,
})
}
// 用户管理启用禁用
export function baseEnable(params = {}) {
return request({
url: "/cloud-upms/user/base/enable",
method: "get",
params,
})
}
// 获取消息列表
export function getMessage(params = {}) {
return request({
url: "/disease-data/sys/message/list",
method: "get",
params,
})
}
// 获取驳回修改消息
export function getRefuteMessage(params) {
return request({
url: `/disease-data/sys/message/remind/${params}`,
method: "get",
params,
})
}
This diff is collapsed.
......@@ -408,6 +408,7 @@ export default {
}
::v-deep .el-input-number .el-input__inner {
text-align: left;
padding: 0 2px !important;
}
::v-deep .el-input .el-input__inner {
......
......@@ -152,12 +152,12 @@
:disabled="item.disabled"
:controls="item.controls ? true : false"
:controls-position="item.controlsPosition"
:placeholder="item.placeholder"
:placeholder="item.placeholder || '请输入'"
:step="item.step"
:precision="item.precision"
:min="item.minRows"
:max="item.maxRows"
style="display: table-cell"
style="display: table-cell; text-align: left"
@blur="handleBlur"
></el-input-number>
<span
......@@ -232,7 +232,7 @@
v-for="(opt, optIndex) in unionList"
:key="optIndex"
:label="opt.unionName"
:value="opt.unionNo"
:value="opt.id"
></el-option>
</template>
<template v-else>
......@@ -831,6 +831,13 @@ export default {
message: "请选择" + targetItem.label,
},
]
} else if (targetItem.type == "upload") {
targetItem.rules = [
{
required: true,
message: "请上传" + targetItem.label,
},
]
} else {
targetItem.rules = [
{
......@@ -862,13 +869,24 @@ export default {
if (filterArr.includes(targetItem.column[index].prop)) {
return
}
if (targetItem.column[index].type == "checkbox") {
if (
targetItem.column[index].type == "checkbox" ||
targetItem.column[index].type == "date" ||
targetItem.column[index].type == "radio"
) {
targetItem.column[index].rules = [
{
required: true,
message: "请选择" + targetItem.column[index].label,
},
]
} else if (targetItem.column[index].type == "upload") {
targetItem.rules = [
{
required: true,
message: "请上传" + targetItem.column[index].label,
},
]
} else {
targetItem.column[index].rules = [
{
......@@ -975,7 +993,8 @@ export default {
}
::v-deep .el-input-number .el-input__inner {
padding: 0 2px !important;
padding: 0 15px !important;
text-align: left;
}
.el-radio {
......
......@@ -28,7 +28,7 @@
{{ unionName }}
</span>
<span v-else style="margin: 0 5px">{{
String(form[item.prop]) | getItemText(item.dicData, item.type)
form[item.prop] | getItemText(item.dicData, item.type)
}}</span>
</span>
<span v-if="item.append && !item.toothBit" class="append">{{
......@@ -65,13 +65,22 @@ export default {
},
filters: {
getItemText(val, list, type) {
if (!val) return ""
if (["radio", "select", "checkbox", "cascader"].includes(type)) {
// 单选改为字符串
if (["radio", "select", "cascader"].includes(type)) {
return formatDicList(list, String(val), type === "cascader" ? "/" : ",")
}
// 多选
if (["checkbox"].includes(type)) {
return formatDicList(list, val, type === "cascader" ? "/" : ",")
}
// 返回的数字修改字符串
if (typeof val === "number") {
return String(val)
}
if (Array.isArray(val) && type.includes("range")) {
return val.join("-")
}
// if (!val) return ""
return val
},
},
......@@ -80,7 +89,7 @@ export default {
if (v.length > 0 && this.form[this.item.prop]) {
// console.log("获取到了医联体列表", this.form[this.item.prop])
this.unionName = v.filter(
(e) => e.unionNo == this.form[this.item.prop]
(e) => e.id == this.form[this.item.prop]
)[0].unionName
}
},
......
......@@ -44,7 +44,7 @@
v-show="g.display"
:key="gIndex"
:name="g.prop"
:disabled="!g.arrow"
:disabled="true"
:class="g.prop == '1669858313508_15760' ? 'otherItemClass' : ''"
>
<template slot="title">
......@@ -493,4 +493,8 @@ export default {
}
}
}
::v-deep .el-collapse-item.is-disabled .el-collapse-item__header {
// color: #bbb;
cursor: default;
}
</style>
......@@ -226,6 +226,15 @@ export default {
form: {},
}
},
watch: {
formDefaults: {
handler(v) {
console.log(v)
this.initforms()
},
deep: true,
},
},
methods: {
// 表单赋值
initforms() {
......
This diff is collapsed.
......@@ -38,20 +38,29 @@
</div>
<el-popover
placement="top-start"
width="200"
trigger="click"
width="300"
:trigger="messageCount == 0 ? 'none' : 'hover'"
popper-class="message-pop"
>
<div
v-for="(item, index) in messageList"
:key="index"
class="message-box mb-24"
>
<div class="top-box mb-12">
<span class="blue-dot mt-5 mr-8"></span>
<span class="top-text">{{ item.date }}</span>
<div class="messageBox">
<div
v-for="(item, index) in messageList"
:key="index"
class="message-box mb-24"
>
<div class="top-box mb-12">
<span class="blue-dot mt-5 mr-8"></span>
<span class="top-text">{{ item.createTime }}</span>
</div>
<div
class="main-text ml-8"
style="cursor: pointer"
@click="goSearch(item.bizType)"
>
{{ item.content }}
</div>
</div>
<div class="main-text ml-8">{{ item.message }}</div>
<div v-show="loading" v-loading="loading" class="loading"></div>
</div>
<template slot="reference">
<el-badge :value="messageCount" :class-name="'badge'">
......@@ -72,24 +81,26 @@
<script>
import { mapGetters } from "vuex"
import { getMessage } from "@/api/user"
import Message from "@/mixins/getMessage"
import {
Avatar,
Breadcrumb,
// Breadcrumb,
ErrorLog,
FullScreenBar,
ThemeBar,
// FullScreenBar,
// ThemeBar,
} from "@/layouts/components"
export default {
name: "NavBar",
components: {
Avatar,
Breadcrumb,
// Breadcrumb,
ErrorLog,
FullScreenBar,
ThemeBar,
// FullScreenBar,
// ThemeBar,
},
mixins: [Message],
props: {
curSelectedIndex: {
type: String,
......@@ -100,7 +111,6 @@ export default {
return {
pulse: false,
isDot: true,
messageCount: 10,
screeningList: [
{
title: "社区筛查",
......@@ -124,16 +134,6 @@ export default {
{ fontSize: "+", label: "A+" },
],
fontSize: localStorage.getItem("fontSize") - 0 || 14,
messageList: [
{
date: "2022-12-12",
message: "驳回修改病例【6条】",
},
{
date: "2022-12-12",
message: "驳回修改病例【6条】",
},
],
}
},
computed: {
......@@ -143,11 +143,70 @@ export default {
device: "settings/device",
routes: "routes/routes",
feedBackNumber: "user/feedBackNumber",
getMessageFlag: "user/getMessageFlag",
}),
},
created() {},
mounted() {},
watch: {
curSelectedIndex(v) {
this.messageList = []
this.pageNum = 1
this.getMessage()
},
getMessageFlag(v) {
if (v) {
this.messageList = []
this.pageNum = 1
this.getMessage()
}
},
},
created() {
// this.getMessage()
},
mounted() {
document
.querySelector(".messageBox")
.addEventListener("scroll", this.scrolling)
},
methods: {
scrolling() {
let scrollHeight = document.querySelector(".messageBox").scrollHeight //实际高度
let scrollTop = document.querySelector(".messageBox").scrollTop //滚动高度
let height = document.querySelector(".messageBox").clientHeight //滚动高度
console.log(scrollHeight, scrollTop)
if (
scrollTop + height + 10 >= scrollHeight &&
this.messageList.length < this.messageCount &&
!this.loading
) {
this.pageNum++
this.loading = true
this.getMessage()
}
},
goSearch(val) {
if (val == "screen") {
this.$router.push("/screening/index?checkStatus=2")
}
},
getMessage() {
this.loading = true
getMessage({
pageSize: this.pageSize,
pageNum: this.pageNum,
patientFrom: this.curSelectedIndex,
}).then((res) => {
if (res.code == 1) {
this.$store.commit("user/setGetMessageFlag", false)
this.messageCount = res.data.total
this.messageList = [...this.messageList, ...res.data.records]
// console.log(res.data.total)
} else {
this.messageCount = 0
}
this.loading = false
})
},
handleCollapse() {
this.$store.dispatch("settings/changeCollapse")
},
......@@ -308,6 +367,19 @@ export default {
}
}
}
.messageBox {
padding: 40px 28px 12px;
height: 380px;
// background: pink;
overflow: auto;
.loading {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
}
// .el-popper {
// ::v-deep .popper__arrow {
// display: none;
......@@ -316,7 +388,7 @@ export default {
</style>
<style lang="scss">
.message-pop {
padding: 40px 28px 12px;
padding: 0px !important;
z-index: 10;
.popper__arrow::after {
......
......@@ -174,6 +174,35 @@
</div>
</el-dialog>
</el-dialog>
<!-- 自动提醒 -->
<el-dialog
custom-class="autoDialog"
:title="''"
:visible.sync="autoFlag"
:close-on-click-modal="true"
:close-on-press-escape="false"
:show-close="true"
width="520px"
>
<div class="innerBody">
<div class="title">驳回修改提醒</div>
<div class="refuteList">
<div
v-for="(item, index) in autoDialogList"
:key="index"
class="rufuteItem"
>
<div class="title">{{ item.title }}病例数据驳回修改</div>
<div class="num">【{{ item.num }}条】</div>
<div class="btn">
<el-button type="warning" @click="goSearch(item.title)"
>去处理</el-button
>
</div>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
......@@ -189,6 +218,7 @@ import {
import { mapGetters, mapActions } from "vuex"
import { tokenName } from "@/config/settings"
import Media from "./mixin/Media"
import { getRefuteMessage } from "@/api/user"
export default {
name: "Layout",
......@@ -204,6 +234,7 @@ export default {
data() {
return {
modalFlag: false,
autoFlag: false,
innerVisible: false,
screeningList: [
{
......@@ -272,6 +303,7 @@ export default {
],
},
],
autoDialogList: [],
}
},
computed: {
......@@ -289,9 +321,17 @@ export default {
}
},
},
watch: {
curSelectedIndex(v) {
this.getRefuteMessage()
},
},
created() {
this.selectedIndex = sessionStorage.getItem("selectedIndex") || ""
this.curSelectedIndex = String(this.selectedIndex) ? this.selectedIndex : ""
if (this.curSelectedIndex) {
this.getRefuteMessage()
}
},
mounted() {
if (!this.selectedIndex) {
......@@ -304,7 +344,9 @@ export default {
: ""
}
// console.log(this.curSelectedIndex)
if (this.curSelectedIndex) {
this.getRefuteMessage()
}
this.$nextTick(() => {
window.addEventListener(
"storage",
......@@ -320,6 +362,37 @@ export default {
...mapActions({
handleFoldSideBar: "settings/foldSideBar",
}),
goSearch(title) {
if (title == "筛查") {
this.$router.push("/screening/index?checkStatus=2")
}
this.autoFlag = false
},
// 获取消息
getRefuteMessage() {
getRefuteMessage(this.curSelectedIndex)
.then((res) => {
if (res.code == 1) {
this.autoDialogList = []
if (res.data.筛查) {
this.autoDialogList.push({
title: "筛查",
num: res.data.筛查 || 0,
})
}
if (res.data.随访) {
this.autoDialogList.push({
title: "随访",
num: res.data.随访 || 0,
})
}
if (this.autoDialogList.length > 0) {
this.autoFlag = true
}
}
})
.catch()
},
setSelectedIndex() {
console.log(this.selectedIndex)
this.curSelectedIndex = this.selectedIndex
......@@ -475,6 +548,10 @@ export default {
::v-deep .homeDialog .el-dialog__header {
display: none;
}
::v-deep .autoDialog .el-dialog__header {
// display: none;
padding: 0px;
}
.modalContent {
padding: 60px;
.title {
......@@ -604,6 +681,38 @@ export default {
}
}
}
.refuteList {
display: flex;
justify-content: space-around;
.rufuteItem {
width: 200px;
height: 148px;
border-radius: 4px;
border: 1px solid #dddddd;
display: flex;
flex-direction: column;
align-items: center;
.title {
font-size: 16px;
margin: 16px 0;
font-family: AlibabaPuHuiTiR;
color: #333333;
}
.num {
font-size: 16px;
font-family: AlibabaPuHuiTiM;
color: #4e68ff;
margin-bottom: 16px;
}
.btn {
.el-button {
width: 100px;
background: #ff7900;
border-radius: 5px;
}
}
}
}
}
.submit {
margin-top: 60px;
......
import { getMessage } from "@/api/user"
export default {
data() {
return {
messageCount: 0,
messageList: [],
loading: false,
pageNum: 1,
pageSize: 6,
}
},
methods: {
getMessage() {
this.loading = true
getMessage({
pageSize: this.pageSize,
pageNum: this.pageNum,
patientFrom: this.curSelectedIndex,
}).then((res) => {
if (res.code == 1) {
this.messageCount = res.data.total
this.messageList = [...this.messageList, ...res.data.records]
// console.log(res.data.total)
} else {
this.messageCount = 0
}
this.loading = false
})
},
},
}
......@@ -20,6 +20,7 @@ const state = {
menuList: [],
group: "",
feedBackNumber: 0,
getMessageFlag: false,
}
const getters = {
accessToken: (state) => state.accessToken,
......@@ -28,8 +29,12 @@ const getters = {
roles: (state) => state.roles,
menuList: (state) => state.menuList,
feedBackNumber: (state) => state.feedBackNumber,
getMessageFlag: (state) => state.getMessageFlag,
}
const mutations = {
setGetMessageFlag(state, MessageFlag) {
state.getMessageFlag = MessageFlag
},
setAccessToken(state, accessToken) {
state.accessToken = accessToken
setAccessToken(accessToken)
......
import * as PDFJS from "pdfjs-dist/build/pdf"
export async function loadPDF({ el, fileSrc, scale }, call) {
PDFJS.GlobalWorkerOptions.workerSrc = require("./pdf.worker.entry.js")
let loadingTask = await PDFJS.getDocument({
url: fileSrc,
withCredentials: true, // 允许携带cookie
})
loadingTask.promise.then((pdf) => {
// 开始加载任务
document.getElementById("pdfEle").innerHTML = ""
const renderPage = (num) => {
let pdfCol = document.querySelector(el)
// 遍历每一页PDF
pdf.getPage(num).then(async (page) => {
let viewPort = page.getViewport({ scale: scale }) // 获取PDF尺寸
let div = document.createElement("div") // 用于存放canvas
div.id = `canvasBox_${num}`
div.className = "canvas-box"
div.style.position = "relative"
div.style.width = viewPort.width + "px"
div.style.margin = "0 auto"
let canvas = document.createElement("canvas") // 创建canvas
let context = canvas.getContext("2d")
// 将canvas的宽和高设置为与PDF视图一样大小
canvas.height = viewPort.height
canvas.width = viewPort.width
// setTimeout(() => {
// // 画页码
// context.font = "14px orbitron";
// context.fillStyle = "#333";
// context.save();
// context.beginPath();
// context.line = 2;
// context.textAlign = "center";
// context.textBaseline = "middle";
// // context.fillText(`${i}`, viewPort.width / 2, viewPort.height - 30);
// context.restore();
// context.closePath();
// }, 500);
let renderContext = {
canvasContext: context,
viewport: viewPort,
}
// 该函数返回一个当PDF页面成功渲染到界面上时解析的`promise`,我们可以使用成功回调来渲染文本图层。
await page.render(renderContext) // 初始化文本图层
canvas.className = "canvas"
canvas.id = `canvas_${num}`
call({
div: div,
pdfCol: pdfCol,
canvas: canvas,
context: context,
scale: scale,
index: num,
allPage: pdf.numPages,
})
div.appendChild(canvas) // 将canvas放进对应的div中
pdfCol.appendChild(div) // 将每一个div放到外面的大盒子中
num++
if (num <= pdf.numPages) {
// console.log(num, pdf.numPages);
renderPage(num)
}
})
}
renderPage(1)
})
}
/* Copyright 2020 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(typeof window !== "undefined"
? window
: {}
).pdfjsWorker = require("./pdf.worker.js");
This diff is collapsed.
......@@ -10,26 +10,48 @@
{{ item.name }}
</li>
</ul>
<div v-if="!showText" class="right_list">
<div v-if="!showDetail" v-loading="listLoading" class="right_list">
<div class="list_title">
{{ leftBar[activeBar].name }}
</div>
<ul class="list">
<li v-for="(item, index) in leftBar[activeBar].list" :key="index">
<ul class="list" v-if="tableData.length > 0">
<li v-for="(item, index) in tableData" :key="index">
<div class="leftImg">
<img src="~@/assets/img/Home/shenghuo.png" alt="" />
<img
:src="
'https://ds.cixincloud.com/geca-api/disease-data/file/info/' +
item.imgPath[0].bucketName +
'/' +
item.imgPath[0].uuidName
"
alt=""
/>
</div>
<div class="rightCon">
<div class="top">
<div class="rc_title">{{ item.title }}</div>
<div class="rc_date">{{ item.time }}</div>
<div class="rc_title">{{ item.articleTitle }}</div>
<div class="rc_date">{{ item.createTime }}</div>
</div>
<div class="bottom" @click="viewDetail(index)">查看</div>
</div>
</li>
</ul>
<el-empty v-else description="暂无数据"></el-empty>
<div v-if="pageSize && total > 10" class="pagination-footer">
<!-- <span class="description">{{ description }}</span> -->
<el-pagination
background
:current-page="pageIndex"
:page-sizes="pageSizes"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
</div>
</div>
<div v-if="showText" class="right_content">
<div v-if="showDetail" class="right_content">
<div class="breadcum">
<div
v-for="(item, index) in showTitle"
......@@ -45,27 +67,17 @@
</div>
</template>
<script>
import { articleList } from "@/api/operation-management"
import paginationMixin from "@/components/TabComponents/mixin"
export default {
mixins: [paginationMixin],
data() {
return {
activeBar: 0,
listLoading: false,
leftBar: [
{
name: "筛查",
list: [
{
id: 1,
title: "筛查数据的科学性",
text: "123",
time: "2022/06-30",
},
{
id: 2,
title: "筛查数据的科学性",
text: "1",
time: "2022/06-30",
},
],
},
{
name: "生活",
......@@ -79,6 +91,10 @@ export default {
],
showText: "",
showTitle: [],
showDetail: false,
// 分页数据
total: 0,
tableData: [],
}
},
mounted() {
......@@ -86,21 +102,47 @@ export default {
if (this.$route.query.tabIndex) {
this.activeBar = this.$route.query.tabIndex
}
this.getArticleList()
},
methods: {
// 获取健康科普
getArticleList() {
this.listLoading = true
let params = {
size: this.pageSize,
current: this.pageIndex,
moduleType: "4",
articleType: this.activeBar - 0 + 1,
}
articleList(params)
.then((res) => {
if (res.code == 1) {
this.tableData = [...res.data.records]
this.total = res.data.total - 0
this.listLoading = false
}
})
.catch((e) => {
this.listLoading = false
})
},
changeActive(i) {
this.activeBar = i
this.showDetail = false
this.showText = ""
this.getArticleList()
},
viewDetail(i) {
this.showText = this.leftBar[this.activeBar].list[i].text
this.showDetail = true
this.showText = this.tableData[i].articleContent
this.showTitle[0] = this.leftBar[this.activeBar].name
this.showTitle[1] = this.leftBar[this.activeBar].list[i].title
this.showTitle[1] = this.tableData[i].articleTitle
console.log(this.showText)
},
back(index) {
if (index == 0) {
this.showText = ""
this.showDetail = false
}
},
},
......@@ -125,6 +167,9 @@ export default {
justify-content: center;
align-items: center;
cursor: pointer;
&:hover {
background: rgba(78, 104, 255, 0.04);
}
// background: rgba(78, 104, 255, 0.1);
}
.activeBar {
......@@ -175,6 +220,7 @@ export default {
font-family: Roboto-Regular, Roboto;
font-weight: 400;
color: #999999;
margin-top: 8px;
}
.bottom {
cursor: pointer;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
<template>
<div id="map" ref="areaRankingAll"></div>
</template>
<script>
import * as echarts from "echarts"
import china from "./china.json"
import allCode from "./allCode.json"
export default {
data() {
return {
//线上请求JSON文件数据地址
// publicUrl: "https://geo.datav.aliyun.com/areas_v3/bound/",
//allCode 区域行政编码信息
allCode: allCode,
locate: [
{
name: "安徽",
value: [117.29, 32.0581, 50],
},
],
}
},
watch: {},
mounted() {
this.initChart() //初始化地图
},
methods: {
initEcharts(geoJson, name, chart) {
// console.log(JSON.stringify(geoJson))
let self = this
echarts.registerMap(name, geoJson)
let option = {
title: {
text: "", // 地图名称
},
tooltip: {
show: true,
formatter: function (params) {
if (params.value.length > 1) {
return params.name + "" + params.value[2] + ""
}
return `${params.name}${params.value ? params.value : 0}人`
},
textStyle: { fontSize: 14, fontFamily: "fzzz", color: "#fff" },
backgroundColor: "rgba(0,0,0,0.3)",
borderColor: "rgba(0,0,0,0.3)",
},
geo: {
show: true,
map: name,
roam: true,
zoom: 1.5,
center: [105, 34.0267395887],
label: {
emphasis: {
show: false,
},
},
itemStyle: {
normal: {
areaColor: "#EDEFFF",
borderColor: "#7597FA",
borderWidth: 1,
},
emphasis: {
areaColor: "#4E68FF", //悬浮背景
},
},
},
series: [
//小点
{
//文字和标志
name: "light",
type: "scatter",
coordinateSystem: "geo",
data: this.locate,
symbolSize: function (val) {
return val[2] / 8
},
label: {
normal: {
// formatter: "{b}",
formatter: "",
position: "right",
show: true,
},
emphasis: {
show: true,
},
},
itemStyle: {
normal: {
color: "#FFCF4E",
},
},
},
{
type: "map",
map: "china",
geoIndex: 0,
aspectScale: 0.75, //长宽比
showLegendSymbol: false, // 存在legend时显示
label: {
normal: {
show: false,
},
emphasis: {
show: false,
textStyle: {
color: "#fff",
},
},
},
roam: true,
itemStyle: {
normal: {
areaColor: "#031525",
borderColor: "#FFFFFF",
},
emphasis: {
areaColor: "#2B91B7",
},
},
animation: false,
data: [{ name: "安徽省", value: 50 }],
},
],
}
chart.setOption(option, true) //加个true解决下钻的视角偏移
chart.off("click")
},
//带头函数-初始化
initChart() {
let chart = echarts.init(this.$refs.areaRankingAll)
this.initEcharts(china, "中国", chart)
},
},
}
</script>
<style lang="scss" scoped></style>
<template>
<div>
<el-dialog
custom-class="pdfDialog"
:title="''"
:visible.sync="showPdf"
:close-on-click-modal="true"
:close-on-press-escape="false"
:show-close="true"
width="70%"
:destroy-on-close="true"
top="10vh"
>
<div class="innerBody">
<div class="title">{{ curPdf.articleTitle }}</div>
<div class="refuteList">
<!-- <pdf :src="pdfSrc"></pdf> -->
<pdf-view ref="pdfView" :pdf-src="pdfSrc"></pdf-view>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import PdfView from "../PdfView/index"
export default {
components: { PdfView },
props: {
curPdf: {
type: Object,
},
pdfSrc: String,
},
data() {
return {
showPdf: false,
}
},
watch: {
showPdf(v) {
if (v) {
setTimeout(() => {
this.$refs.pdfView.loadPDF()
}, 250)
}
},
},
}
</script>
<style lang="scss" scoped>
.innerBody {
padding: 0 60px 40px;
.title {
font-size: 24px;
font-family: AlibabaPuHuiTiM;
color: #333333;
text-align: center;
margin-bottom: 30px;
}
.refuteList {
height: 600px;
overflow: auto;
}
}
</style>
<style lang="scss">
.pdfDialog .el-dialog__header {
// display: none;
padding: 0px !important;
}
</style>
<template>
<div id="editor">
<div v-loading="loadingPdf" class="pdfEle_wrap">
<div id="pdfEle"></div>
</div>
<!-- 页码 -->
<div class="pdf-render-pager">
<div class="prev-next" @click="goPrevPdf">
<i class="el-icon-arrow-left"></i>
</div>
<input
v-model="curPage"
type="text"
title="输入页码后按enter即可跳至目标页"
style="border: 1px solid #ccc; position: relative; z-index: 9999"
@keyup.enter="handleChangePage"
/>
<div class="middle">/</div>
<div class="totalPage">{{ totalPage }}</div>
<div class="prev-next" @click="goNextPdf">
<i class="el-icon-arrow-right"></i>
</div>
</div>
</div>
</template>
<script>
import { loadPDF } from "@/utils/loadPdf.js"
export default {
props: {
pdfSrc: String,
},
data() {
return {
totalPage: 1,
curPage: 1,
loadingPdf: false,
canvasH: 0,
scrollEle: "", //元素画布
clickFlag: true, //左右跳转
timeout: null,
}
},
mounted() {},
methods: {
loadPDF() {
document.getElementById("pdfEle").innerHTML = ""
this.canvasH = 0 //高度初始化为0 以此控制分页不显示
this.curPage = 1 //页码重置为1
this.loadingPdf = true
if (process.env.NODE_ENV == "development") {
loadPDF(
// 特约讲师合作协议
{ el: "#pdfEle", fileSrc: "/ppt的pdf.pdf", scale: 1 },
this.callBackPdf
)
} else {
loadPDF(
{ el: "#pdfEle", fileSrc: this.pdfSrc, scale: 1 },
this.callBackPdf
)
}
},
// 加载完成的回调 分页加载
callBackPdf(item) {
const { index, allPage } = item
if (index !== allPage) {
return
}
// console.log(allPage);
this.totalPage = item.allPage
this.scrollEle = document.querySelector(".pdfEle_wrap")
// this.canvasH = item.canvas.height;
setTimeout(() => {
this.canvasH = item.div.offsetHeight
}, 100)
this.scrollEle.addEventListener("scroll", (e) => {
if (this.timeout != null) {
clearTimeout(this.timeout)
}
this.timeout = setTimeout(() => {
if (Math.floor(this.scrollEle.scrollTop / this.canvasH) == 0) {
this.curPage = 1
}
if (
Math.floor(this.scrollEle.scrollTop / this.canvasH) > 0 &&
Math.floor(this.scrollEle.scrollTop / this.canvasH) + 1 !=
this.curPage
) {
this.curPage =
Math.floor(this.scrollEle.scrollTop / this.canvasH) + 1
}
}, 100)
// this.curPage = Math.floor(this.scrollEle.scrollTop / this.canvasH) <= 0? 1: Math.floor(this.scrollEle.scrollTop / this.canvasH);
})
this.loadingPdf = false
},
goPrevPdf() {
// 限制一下多次点击
if (!this.clickFlag) {
return false
}
this.clickFlag = false
if (this.curPage > 1) {
// --this.curPage;
this.scrollPdfPage(parseInt(this.curPage) - 1)
--this.curPage
}
setTimeout(() => {
this.clickFlag = true
}, 500)
},
goNextPdf() {
// 限制一下多次点击
if (!this.clickFlag) {
return false
}
this.clickFlag = false
if (this.curPage < this.totalPage) {
// ++this.curPage;
this.scrollPdfPage(parseInt(this.curPage) + 1)
++this.curPage
}
setTimeout(() => {
this.clickFlag = true
}, 500)
},
handleChangePage(e) {
if (!/^\d+$/.test(e.target.value)) {
this.curPage = 1
} else {
// this.curPage = parseInt(e.target.value) > 0 ? parseInt(e.target.value) : 1;
if (parseInt(e.target.value) <= 0) {
this.curPage = 1
} else if (parseInt(e.target.value) > this.totalPage) {
this.curPage = this.totalPage
} else {
this.curPage = parseInt(e.target.value)
}
}
this.scrollPdfPage(this.curPage)
},
// pdf滚动
scrollPdfPage(page) {
console.log(this.scrollEle)
this.scrollEle.scrollTo({
top: this.canvasH * (page - 1),
behavior: "smooth",
})
},
},
}
</script>
<style lang="scss" scoped>
#editor {
height: 600px;
}
.pdf-render-pager {
width: 100%;
color: #333;
font-size: 12px;
height: 50px;
padding: 0 15px;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
// box-shadow: 0 -1px 0px 0 rgba(149, 149, 149, 0.25);
bottom: 0px;
left: 0;
z-index: 9999;
input {
width: 26px;
border: none;
border-bottom: 1px solid #e4e4e4;
text-align: center;
font-size: 14px;
}
}
.pdfEle_wrap {
width: 100%;
height: 600px;
padding: 20px 0;
min-height: 50px;
overflow-y: scroll;
overflow-x: hidden;
// text-align:center;
position: relative;
transition: all 0.3s;
background: #e4e4e4;
#pdfEle {
height: 600px;
}
}
.prev-next {
cursor: pointer;
width: 20px;
height: 20px;
font-size: 18px;
display: flex;
justify-content: center;
align-items: center;
}
.middle {
margin: 0 8px;
}
</style>
......@@ -10,45 +10,64 @@
{{ item.name }}
</li>
</ul>
<div class="right_list">
<div v-loading="listLoading" class="right_list">
<div class="list_title">
{{ leftBar[activeBar].name }}
</div>
<ul class="list">
<li v-for="(item, index) in leftBar[activeBar].list" :key="index">
<ul v-if="tableData.length > 0" class="list">
<li
v-for="(item, index) in tableData"
:key="index"
title="点击预览pdf"
@click="setPdf(item)"
>
<div class="left_text">
<div class="circle"></div>
<div class="title">{{ item.title }}</div>
<div class="title">{{ item.articleTitle }}</div>
</div>
<div class="rig_date">
{{ item.time }}
{{ item.createTime }}
</div>
</li>
</ul>
<el-empty v-else description="暂无数据"></el-empty>
<div v-if="pageSize && total > 10" class="pagination-footer">
<!-- <span class="description">{{ description }}</span> -->
<el-pagination
background
:current-page="pageIndex"
:page-sizes="pageSizes"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
</div>
</div>
<!-- 弹窗 -->
<pdf-dialog
ref="pdfDialog"
:cur-pdf="curPdf"
:pdf-src="pdfSrc"
></pdf-dialog>
</div>
</template>
<script>
import { articleList } from "@/api/operation-management"
import paginationMixin from "@/components/TabComponents/mixin"
import PdfDialog from "../PdfDialog/index.vue"
export default {
components: { PdfDialog },
mixins: [paginationMixin],
data() {
return {
activeBar: 0,
listLoading: false,
leftBar: [
{
name: "筛查技术方案",
list: [
{
title: "筛查数据的科学性",
text: "",
time: "2022/06-30",
},
{
title: "筛查数据的科学性",
text: "",
time: "2022/06-30",
},
],
},
{
name: "筛查指南",
......@@ -60,19 +79,53 @@ export default {
name: "项目进展与成果",
},
],
tableData: [],
curPdf: { articleTitle: "测试pdf" },
pdfSrc: "",
}
},
watch: {},
mounted() {
if (this.$route.query.tabIndex) {
this.activeBar = this.$route.query.tabIndex
}
this.getArticleList()
},
methods: {
changeActive(i) {
this.activeBar = i
this.getArticleList()
// this.$router.replace("/scientificresearch")
},
// 获取科学研究
getArticleList() {
this.listLoading = true
let params = {
size: this.pageSize,
current: this.pageIndex,
moduleType: "5",
articleType: this.activeBar - 0 + 1,
}
articleList(params)
.then((res) => {
if (res.code == 1) {
this.tableData = [...res.data.records]
this.total = res.data.total
this.listLoading = false
}
})
.catch((e) => {
this.listLoading = false
})
},
setPdf(item) {
this.$refs.pdfDialog.showPdf = true
this.curPdf = item
this.pdfSrc =
"https://ds.cixincloud.com/geca-api/disease-data/file/info/" +
item.filePath[0].bucketName +
"/" +
item.filePath[0].uuidName
},
},
}
</script>
......@@ -95,6 +148,9 @@ export default {
justify-content: center;
align-items: center;
cursor: pointer;
&:hover {
background: rgba(78, 104, 255, 0.04);
}
// background: rgba(78, 104, 255, 0.1);
}
.activeBar {
......@@ -127,9 +183,16 @@ export default {
justify-content: space-between;
align-items: center;
cursor: pointer;
&:hover {
background: rgba(78, 104, 255, 0.04);
.left_text .title {
color: #4e68ff;
}
}
.left_text {
display: flex;
align-items: center;
.circle {
width: 6px;
height: 6px;
......
......@@ -14,7 +14,11 @@
:name="index + 1 + ''"
>
<ul class="tabslist">
<li v-for="(item, index) in noticeList" :key="index">
<li
v-for="(item, index) in noticeList"
:key="index"
@click="setPdf(item)"
>
<div class="left">
<div class="circle"></div>
{{ item.articleTitle }}
......@@ -33,7 +37,8 @@
<div class="flex">
<div class="left box cenbox">
<div class="box_title text-center">联盟地图</div>
<img class="map" src="~@/assets/img/Home/map.png" alt="" />
<!-- <img class="map" src="~@/assets/img/Home/map.png" alt="" /> -->
<Map></Map>
</div>
<div class="right box tabbox" style="height: 458px">
<el-tabs v-model="exTab">
......@@ -188,14 +193,25 @@
</el-popover>
</ul>
</div>
<!-- 弹窗 -->
<pdf-dialog
ref="pdfDialog"
:cur-pdf="curPdf"
:pdf-src="pdfSrc"
></pdf-dialog>
</div>
</template>
<script>
import { getRankTotal, getCurrentQuarter } from "@/api/Home"
import { articleList } from "@/api/operation-management"
import Map from "./Map"
import PdfDialog from "./PdfDialog/index.vue"
export default {
components: { Map, PdfDialog },
data() {
return {
curPdf: {},
pdfSrc: "",
fixIndex: -1,
// videoSrc: require("../../../public/aaa.mp4"),
videoSrc: "",
......@@ -205,48 +221,7 @@ export default {
title: "浙江省典型案例",
},
],
exampleList: [
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
],
exampleList: [],
tabList: [
{
title: "新闻会议",
......@@ -258,48 +233,7 @@ export default {
title: "学术动态",
},
],
noticeList: [
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
],
noticeList: [],
curTab: "1",
listLoading: false,
rangeList: [], // 上报排名
......@@ -369,6 +303,15 @@ export default {
})
},
methods: {
setPdf(item) {
this.$refs.pdfDialog.showPdf = true
this.curPdf = item
this.pdfSrc =
"https://ds.cixincloud.com/geca-api/disease-data/file/info/" +
item.filePath[0].bucketName +
"/" +
item.filePath[0].uuidName
},
handleClick() {
this.getArticleList(this.curTab)
},
......@@ -508,7 +451,7 @@ export default {
}
.cenbox {
height: 458px;
.map {
#map {
width: 100%;
height: 422px;
object-fit: contain;
......
......@@ -86,6 +86,11 @@ export default {
patientId(v) {
this.getCurrentFormByType()
},
noData(v) {
if (v) {
this.jsonList = []
}
},
},
created() {},
mounted() {},
......
This diff is collapsed.
......@@ -64,21 +64,21 @@ export default {
watch: {
auditStatus(val) {
sessionStorage.setItem("audit-status", val)
switch (this.type) {
case "1":
this.handleSearch()
break
}
// 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
}
// switch (val) {
// case "1":
// this.handleSearch()
// break
// }
},
},
computed: {
......@@ -160,7 +160,7 @@ export default {
text = "合格"
} else if (row.checkStatus == 4) {
text = "不合格"
} else if (row.checkStatus == 5) {
} else if (row.checkStatus == 2) {
text = "驳回修改"
} else if (row.checkStatus) {
text = "--"
......@@ -198,7 +198,8 @@ export default {
this.auditStatus = sessionStorage.getItem("audit-status") || "0"
this.type = sessionStorage.getItem("audit-type") || "0"
}
this.handleSearch()
// this.handleSearch()
this.handleClick()
},
methods: {
handleClick() {
......@@ -220,12 +221,31 @@ export default {
},
})
} else {
this.$router.push({
path: "/auditdetail",
query: {
id: data["unionId"],
},
})
switch (this.auditStatus) {
case "0":
this.$router.push({
path: "/auditdetail",
query: {
unionId: data["unionId"],
},
})
break
case "1":
this.$router.push({
path: "/auditdetail",
query: {
id: data["id"],
patientId: data["patientId"],
checkNote: data["checkNote"],
checkStatus: data["checkStatus"],
unionName: data["unionName"],
},
})
break
default:
break
}
}
},
async handleSearch() {
......
This diff is collapsed.
......@@ -4,10 +4,8 @@
<ConfigForms
form-type="2"
formClass="follow-form"
:patient-id="patientId"
:disabled="disabled"
:tabDisabled="tabDisabled"
:operation="operation"
:disabled="false"
:patientId="patientId"
></ConfigForms>
</div>
</template>
......@@ -20,42 +18,13 @@ export default {
ConfigForms,
},
data() {
return {
disabled:false,
tabDisabled:true,
operation:'',
patientId:this.$route.query.patientId,
model:''
}
},
watch:{
model(val){
switch(val){
case 'view':
this.disabled = true
this.tabDisabled = false
this.operation = 'edit'
break;
case 'edit':
this.disabled = false
this.tabDisabled = true
this.operation = 'edit'
break;
default:
this.disabled = false
this.tabDisabled = true
this.operation = ''
break;
}
}
return { patientId: "" }
},
created() {
this.model = this.$route.query.model
this.patientId = this.$route.query.patientId
},
methods: {},
}
</script>
<style lang="scss">
</style>
<style lang="scss"></style>
......@@ -2,7 +2,11 @@
<!-- 随访调查 -->
<div class="screeningSearch">
<div class="top">
<form-components :forms="formList" :formEdit="formEdit" @handleSearch="onSearch"></form-components>
<form-components
:forms="formList"
:formEdit="formEdit"
@handleSearch="onSearch"
></form-components>
</div>
<div class="bot">
<el-table-self
......@@ -23,20 +27,18 @@
</template>
<script>
import FormComponents from "@/components/FormComponents"
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import { getCurrentFormByType } from "@/api/coop-group.js"
import { getFollowSurvey } from "@/api/followup"
import { getDictDetail } from "@/api/dict.js"
import { mapGetters } from "vuex"
export default {
components: {
CustomsTable,
FormComponents,
},
mixins: [paginationMixin],
data() {
return {
formId:"", //随访表单类型
formId: "", //随访表单类型
listLoading: false,
keyword: "",
modifiedFlag: false,
......@@ -62,7 +64,10 @@ export default {
minWidth: 80,
value: "sex",
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["d-sex"], row.sex + "")
return this.$handle.formatDicList(
this.dictMap["d-sex"],
row.sex + ""
)
},
},
{
......@@ -86,7 +91,7 @@ export default {
minWidth: 180,
value: "screeningTime",
formatter: (row) => {
return row.createTime ? row.createTime : "--"
return row.screeningTime ? row.screeningTime : "--"
},
},
{
......@@ -94,7 +99,10 @@ export default {
minWidth: 120,
value: "riskRank",
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["risk_level"],String(row.riskRank))
return this.$handle.formatDicList(
this.dictMap["risk_level"],
String(row.riskRank)
)
},
},
{
......@@ -110,15 +118,21 @@ export default {
value: "followBatch",
minWidth: 120,
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["follow_type"],String(row.followBatch))
return this.$handle.formatDicList(
this.dictMap["follow_type"],
String(row.followBatch)
)
},
},
{
label: "计划随访时间",
value: "nextFollowTime",
formatter: (row) => {
return this.$handle.formatDicList(this.dictMap["next_follow_time"],String(row.nextFollowTime))
},
// formatter: (row) => {
// return this.$handle.formatDicList(
// this.dictMap["next_follow_time"],
// String(row.nextFollowTime)
// )
// },
minWidth: 120,
},
{
......@@ -139,8 +153,7 @@ export default {
],
},
],
tableData: [
],
tableData: [],
formList: [
{
xs: 24,
......@@ -151,7 +164,7 @@ export default {
type: "select",
label: "计划随访时间",
prop: "nextFollowTime",
trans:'next_follow_time',
trans: "next_follow_time",
placeholder: "请选择计划随访时间",
rules: [],
opts: [{ label: "123", value: "1" }],
......@@ -201,10 +214,13 @@ export default {
type: "select",
label: "随访进度",
prop: "followBatch",
trans:'follow_type',
trans: "follow_type",
placeholder: "请选择随访进度",
rules: [],
opts: [{ label: "123", value: "1" }],
opts: [
{ label: "筛查", value: "0" },
{ label: "随访", value: "1" },
],
},
{
xs: 1,
......@@ -225,7 +241,7 @@ export default {
marginLeft: "40px",
},
btnText: "查询",
func: this.onSearch
func: this.onSearch,
},
// {
// btnType: "tobeModified",
......@@ -234,79 +250,74 @@ export default {
],
},
],
formEdit:{}
formEdit: {},
}
},
watch: {
pageSize(val){
sessionStorage.setItem('followResearch-pageSize',val)
},
//当前页
pageIndex(val){
sessionStorage.setItem('followResearch-pageIndex',val)
}
computed: {
...mapGetters({
selectedIndex: "table/selectedIndex",
refreshFlag: "table/refreshFlag",
}),
},
created(){
this.initSearchForm()
watch: {},
created() {
// this.initColumn()
},
mounted() {
this.formEdit = JSON.parse(sessionStorage.getItem('followResearch-form')) ? JSON.parse(sessionStorage.getItem('followResearch-form')) : {}
this.pageSize = Number(sessionStorage.getItem('followResearch-pageSize')) || 10
this.pageIndex = Number(sessionStorage.getItem('followResearch-pageIndex')) || 1
this.getCurrentFormByType(2)
this.handleSearch() //调试注释
},
methods: {
changeModified() {
this.modifiedFlag = !this.modifiedFlag
},
setSelectedIndex(i) {
console.log(this.selectedIndex)
this.selectedIndex = i
sessionStorage.setItem("homeSelectedIndex", this.selectedIndex)
},
rowOpration(data, i,label) {
console.log('跳转',data, i,label)
this.$router.push({path:"/followupentry",query:{patientId:data.patientId,formEdit:JSON.stringify(data)}})
changePage(v) {
this.page[v.type] = v.value
console.log(this.page)
this.$refs.customTable.loading = false
},
onSearch(form) {
sessionStorage.setItem('followResearch-form',JSON.stringify(form))
sessionStorage.setItem("followResearch-form", JSON.stringify(form))
this.formEdit = form
this.handleSearch()
},
async handleSearch(){
rowOpration(data, i) {
console.log("跳转", data, i)
sessionStorage.setItem("formEdit", JSON.stringify(data))
this.$router.push({
path: `/followupentry?patientId=${data.patientId}`,
})
},
async handleSearch() {
this.listLoading = true
let params={
pageSize:this.pageSize,
pageNum:this.pageIndex,
formId:this.formId,
patientFrom:sessionStorage.getItem('selectedIndex') //筛查场景
let params = {
pageSize: this.pageSize,
pageNum: this.pageIndex,
}
if(this.formEdit){
params=Object.assign(this.formEdit,params)
params.patientFrom = this.selectedIndex
if (this.formEdit) {
params = Object.assign(this.formEdit, params)
}
let res = await getFollowSurvey(params)
if(res.code==1){
if (res.code == 1) {
//分页内容
const d = res.data
this.total= d.total
this.tableData=d['records']
this.total = d.total
this.tableData = d["records"]
}
this.listLoading = false
},
//查询表单枚举值字典
initSearchForm(){
this.formList.forEach((item,index) => {
if(item.trans){
if(!item['opts']){
item['opts']=[]
}
else{
item['opts']=this.dictMap[item.trans]
initSearchForm() {
this.formList.forEach((item, index) => {
if (item.trans) {
if (!item["opts"]) {
item["opts"] = []
} else {
item["opts"] = this.dictMap[item.trans]
}
}
})
this.$forceUpdate();
this.$forceUpdate()
},
// async initDict(type,index){
// let params={
......@@ -340,14 +351,13 @@ export default {
getCurrentFormByType(type) {
getCurrentFormByType({
type,
groupId: this.$store.state.user.group.groupId || '',
groupId: this.$store.state.user.group.groupId || "",
}).then((res) => {
if (res.code === 1) {
this.formId = res.data[0].id
this.handleSearch()
}
})
.then((res) => {
if (res.code === 1) {
this.formId = res.data[0].id
this.handleSearch()
}
})
},
},
}
......
This diff is collapsed.
<template>
<div class="container" style="max-height: 89vh">
<div v-show="!isDetail">
<div class="header">草稿箱</div>
<div class="header">草稿箱{{ total }}条】</div>
<div class="content">
<customs-table
<el-table-self
ref="table"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
......@@ -36,7 +35,6 @@
</div>
</template>
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ConfigForms from "./components/ConfigForms.vue"
import { mapGetters } from "vuex"
......@@ -45,7 +43,6 @@ export default {
// 数据概览
name: "",
components: {
CustomsTable,
ConfigForms,
},
mixins: [paginationMixin],
......@@ -57,51 +54,104 @@ export default {
{
label: "医联体",
minWidth: 120,
value: "unionId",
value: "unionName",
formatter: (row) => {
return row.unionName ? row.unionName : "--"
},
},
{
label: "姓名",
minWidth: 120,
formatter: (row) => {
return row.name ? row.name : "--"
},
value: "name",
},
{
label: "性别",
minWidth: 120,
minWidth: 80,
value: "sex",
formatter: (row) => {
return row.sex
? this.$handle.formatDicList(this.dictMap["d-sex"], row.sex + "")
: "--"
},
},
{
label: "身份证",
minWidth: 120,
value: "idCard",
},
// {
// label: "身份证",
// minWidth: 120,
// value: "idCard",
// formatter: (row) => {
// return row.idCard ? row.idCard : "--"
// },
// },
{
label: "年龄",
minWidth: 120,
value: "age",
formatter: (row) => {
return row.age ? row.age : "--"
},
},
{
label: "筛查时间",
minWidth: 120,
value: "screenTime",
minWidth: 180,
// sortable: "custom",
value: "createTime",
formatter: (row) => {
return row.createTime ? row.createTime : "--"
},
},
{
label: "风险评估结果",
minWidth: 120,
value: "result",
value: "riskRank",
formatter: (row) => {
let riskRank = {
low: "低危",
medium: "中危",
high: "高危",
}
return row.riskRank ? riskRank[row.riskRank] : "--"
},
},
{
label: "上次随访时间",
label: "是否内镜",
minWidth: 120,
value: "targetFieldCode",
value: "isInnerCheck",
formatter: (row) => {
let arr = [
{ label: "", value: "0" },
{ label: "", value: "1" },
]
let label
if (String(row.isInnerCheck)) {
label = arr.filter((e) => e.value == row.isInnerCheck)[0].label
} else {
label = "--"
}
return label
},
},
{
label: "筛查审核状态",
minWidth: 180,
value: "createTime",
minWidth: 120,
value: "checkStatus",
formatter: (row) => {
let arr = [
{ label: "待审核", value: "1" },
{ label: "驳回修改", value: "2" },
{ label: "合格", value: "3" },
{ label: "不合格", value: "4" },
]
let label
if (row.checkStatus) {
label = arr.filter((e) => e.value == row.checkStatus)[0].label
} else {
label = "--"
}
return label
},
},
{
label: "操作",
......@@ -172,9 +222,14 @@ export default {
getPatientPage(data).then((res) => {
this.listLoading = false
if (res.code === 1) {
const d = res.data
this.tableData = d.records || []
this.total = Number(d.total)
if (res.data.records && res.data.records.length > 0) {
const d = res.data
this.tableData = d.records || []
this.total = Number(d.total)
} else {
this.tableData = []
this.total = 0
}
}
})
},
......
......@@ -8,12 +8,13 @@
>
<div v-if="formTabs && formTabs.length > 0" style="position: relative">
<el-button
v-if="formType == 1 ? !disabled ? true : false : true"
v-if="formType == 1 ? (!disabled ? true : false) : true"
class="draftButton"
:loading="loading"
:disabled="!infoCompelete"
@click="onSubmit(formType)"
>{{ formType == 1 ? "临时保存" : "返回" }}</el-button>
>{{ formType == 1 ? "临时保存" : "返回" }}</el-button
>
<el-tabs
v-model="activeName"
v-loading="fromLoading"
......@@ -39,6 +40,7 @@
:patient-standby-id="patientStandbyId"
:newform-record-id="newformRecordId"
:form="form"
:formType="formType"
:disabled="disabled"
:operation="operation"
:isDraft="isDraft"
......@@ -46,6 +48,7 @@
contrast
:form-initial="formInitial"
:survival-flag="survivalFlag"
:followId="followId"
@setFormJson="setFormJson"
@handleConfirm="handleConfirm"
@onPrev="onPrev"
......@@ -69,7 +72,9 @@
<div class="showTips">您可以在【草稿箱】页面找到该数据</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" @click="continueSubmit">继续添加</el-button>
<el-button type="primary" :loading="loading" @click="continueSubmit"
>继续添加</el-button
>
</div>
</template>
<!-- 保存提交 -->
......@@ -82,8 +87,16 @@
<div class="showTips">您可以在【筛查查询】页面查询到该数据</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" class="textBtn" @click="viewJump">查看</el-button>
<el-button type="primary" :loading="loading" @click="continueSubmit">继续添加</el-button>
<el-button
type="primary"
:loading="loading"
class="textBtn"
@click="viewJump"
>查看</el-button
>
<el-button type="primary" :loading="loading" @click="continueSubmit"
>继续添加</el-button
>
</div>
</template>
</public-dialog>
......@@ -138,10 +151,12 @@ export default {
watch: {
activeName(val) {
if (!this.disabled) {
if (!["index0", "index1"].includes(val)) {
this.infoCompelete = true
} else {
this.infoCompelete = false
if (this.$route.path != "/followupentry") {
if (!["index0", "index1"].includes(val)) {
this.infoCompelete = true
} else {
this.infoCompelete = false
}
}
}
if (val == "index1") {
......@@ -199,17 +214,28 @@ export default {
},
},
created() {
// 字典formType 1 筛查表单
// 字典formType 1 筛查表单 2随访表单
// console.log('回显2',this.formEdit)
this.getCurrentFormByType(this.formType)
console.log('大表单',this.disabled,this.tabDisabled,this.patientId)
console.log(this.$route.path)
this.infoCompelete = this.$route.path == "/followupentry" ? true : false
},
methods: {
handleConfirm(data, done, cb) {
this.addPatient(data, done, cb)
this.$emit("addMethods", {
activeName: this.activeName,
form: data.data,
})
console.log("提交", this.formType)
if (this.formType == "2") {
this.addFollowPatient(data, done, cb)
this.$emit("addMethods", {
activeName: this.activeName,
form: data.data,
})
} else {
this.addPatient(data, done, cb)
this.$emit("addMethods", {
activeName: this.activeName,
form: data.data,
})
}
},
temporaryConfirm(data, done, cb) {
this.addPatient(data, done, cb, () => {
......@@ -233,7 +259,7 @@ export default {
)[0]
formTab.temporarySave()
// console.log(formTab)
} else if (type == 2) {
} else if (type == 3) {
//提交
this.dialogType = "submit"
this.$refs.showDialog.dialogVisible = true
......
......@@ -12,7 +12,7 @@
<template v-if="!isEmpty">
<!-- 多次记录 -->
<el-row v-if="form.fillType === 1">
<tags-scroll-bar
<!-- <tags-scroll-bar
v-if="repeatedlyList.length > 0"
ref="tags"
:tags-list="repeatedlyList"
......@@ -20,7 +20,7 @@
:disabled="disabled"
@change="changeRepeate"
@add="handleAdd"
></tags-scroll-bar>
></tags-scroll-bar> -->
</el-row>
<el-row class="header">
<!-- <template v-if="formData.percent.autoPercent">
......@@ -95,6 +95,7 @@ export default {
disabled: Boolean,
contrast: Boolean, //同屏对照
form: Object,
formType: String,
patientId: String,
patientStandbyId: String,
newformRecordId: String,
......@@ -107,6 +108,7 @@ export default {
type: String,
default: "",
},
followId: String,
},
provide() {
return {
......@@ -162,6 +164,70 @@ export default {
return this.loading || this.formloading
},
},
watch: {
formEdit(val) {
console.log("回显3", val)
},
formInitial: {
handler(v) {
if (v) {
this.$set(this.formData, "formEdit", { ...v })
console.log(this.formData.formEdit)
}
},
deep: true,
},
},
created() {
if (
this.formType == "2" &&
sessionStorage.getItem("formEdit") &&
this.activeName == "index0"
) {
let data = JSON.parse(sessionStorage.getItem("formEdit"))
for (const key in data) {
if (typeof data[key] == "number") {
data[key] = data[key] + ""
}
}
this.formData.formEdit = data
}
this.initForm() //! 随防筛查通用的设置form
if (this.getAll) {
// 监听patientId 获取页面所有数据
this.$watch(
"patientId",
() => {
this.initData()
},
{ immediate: true }
)
} else {
// 监听form.silent 获取当前tab页数据
if (this.formType != 2) {
this.$watch(
"form.silent",
() => {
this.initData()
},
{ immediate: true }
)
} else {
this.$nextTick(() => {
this.$refs.form && this.$refs.form.resetForm()
})
}
}
},
mounted() {
//! 设置新增判断
if (this.$route.path == "/screening/add") {
// this.handleAdd()
if (!this.formData.formRecordId) {
this.handleAdd()
}
}
},
methods: {
resetForm() {
this.$refs.form.resetForm(false)
......@@ -227,6 +293,9 @@ export default {
if (this.isDraft) {
params.statusMap.is_draft = this.isDraft
}
if (this.$route.path == "/followupentry" && this.activeName != "index0") {
params.followId = this.followId
}
this.$emit("handleConfirm", params, done, (res) => {
// 多次填写的表单新增时,获取最新数据
if (this.form.fillType === 1 && !this.formData.formRecordId) {
......@@ -381,55 +450,6 @@ export default {
})
},
},
watch: {
formEdit(val) {
console.log("回显3", val)
this.formatString(val)
},
formInitial: {
handler(v) {
if (v) {
this.$set(this.formData, "formEdit", { ...v })
console.log('form-tab',this.formData.formEdit)
}
},
deep: true,
},
},
created() {
if (this.$route.query.formEdit) {
this.formatString(JSON.parse(this.$route.query.formEdit))
}
this.initForm()
if (this.getAll) {
// 监听patientId 获取页面所有数据
this.$watch(
"patientId",
() => {
this.initData()
},
{ immediate: true }
)
} else {
// 监听form.silent 获取当前tab页数据
this.$watch(
"form.silent",
() => {
this.initData()
},
{ immediate: true }
)
}
},
mounted() {
//! 设置新增判断
if (this.$route.path == "/screening/add") {
// this.handleAdd()
if (!this.formData.formRecordId) {
this.handleAdd()
}
}
},
}
</script>
<style scoped lang="scss">
......
import { addPatient } from "@/api/patient.js"
import { addPatient, addFollowPatient } from "@/api/patient.js"
import FormTab from "./FormTab"
import { mapGetters } from "vuex"
......@@ -28,7 +28,7 @@ export default {
let i = this.activeName.split("index")[1] - 0
i++
if (i == 6) {
this.onSubmit(2)
this.onSubmit(3)
return
} else {
this.activeName = "index" + i
......@@ -86,6 +86,37 @@ export default {
}
})
},
async addFollowPatient(data, done, cb, ConfigFormsCallback) {
addFollowPatient(data, "")
.then((res) => {
// this.$message.success("操作成功")
if (res.data) {
this.isUpdated = true
this.patientStandbyId = res.data.patientId
this.followId = res.data.followId
this.newformRecordId = res.data.formRecordId
if (
cb &&
Object.prototype.toString.call(cb) === "[object Function]"
) {
cb(res)
}
}
})
.finally((e) => {
done()
console.log("走了", ConfigFormsCallback)
if (
ConfigFormsCallback &&
Object.prototype.toString.call(ConfigFormsCallback) ===
"[object Function]"
) {
ConfigFormsCallback()
} else {
this.nextTab()
}
})
},
// json存储
setFormJson(formJson) {
......
......@@ -5,6 +5,7 @@
ref="form"
:label-position="'right'"
:forms="searchList"
:form-defaults="initForm"
:style="{ textAlign: 'left' }"
@handleSearch="handleFormSearch"
/>
......@@ -17,9 +18,9 @@
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
:sort-change="sortChange"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
:sortChange="sortChange"
/>
</div>
......@@ -31,8 +32,8 @@
form-type="1"
:patient-id="patientId"
:disabled="disabled"
:tabDisabled="tabDisabled"
:isDraft="'0'"
:tab-disabled="tabDisabled"
:is-draft="'0'"
:operation="'edit'"
></ConfigForms>
</div>
......@@ -46,8 +47,8 @@ import ConfigForms from "./components/ConfigForms.vue"
import { mapGetters } from "vuex"
export default {
name: "ScreeningIndex",
mixins: [paginationMixin],
components: { ConfigForms },
mixins: [paginationMixin],
data() {
return {
isDetail: false, //! 控制详情显隐
......@@ -60,7 +61,7 @@ export default {
{
type: "date",
label: "筛查时间",
prop: "createTime",
prop: "createDate",
placeholder: "请选择时间",
valueFormat: "yyyy-MM-dd",
},
......@@ -80,9 +81,9 @@ export default {
type: "select",
prop: "riskRank",
opts: [
{ label: "低危", value: "c" },
{ label: "中危", value: "b" },
{ label: "高危", value: "a" },
{ label: "低危", value: "low" },
{ label: "中危", value: "medium" },
{ label: "高危", value: "high" },
],
},
{
......@@ -131,14 +132,14 @@ export default {
: "--"
},
},
{
label: "身份证",
minWidth: 120,
value: "idCard",
formatter: (row) => {
return row.idCard ? row.idCard : "--"
},
},
// {
// label: "身份证",
// minWidth: 120,
// value: "idCard",
// formatter: (row) => {
// return row.idCard ? row.idCard : "--"
// },
// },
{
label: "年龄",
minWidth: 120,
......@@ -216,9 +217,19 @@ export default {
{
func: this.handleView,
formatter(row) {
return {
label: "查看",
type: "text",
if (row.checkStatus != 2) {
return {
label: "查看",
type: "text",
}
} else {
return {
label: "",
type: "none",
style: {
display: "none",
},
}
}
},
},
......@@ -233,7 +244,7 @@ export default {
} else {
return {
label: "",
type: "text",
type: "none",
style: {
display: "none",
},
......@@ -245,6 +256,7 @@ export default {
},
],
searchForm: {},
initForm: {},
}
},
methods: {
......@@ -313,21 +325,9 @@ export default {
selectedIndex: "table/selectedIndex",
refreshFlag: "table/refreshFlag",
}),
},
created() {
this.handleFormSearch()
// if (this.$route.path == "/screening/index") {
// this.tabDisabled = false
// }
if (this.$route.query.patientId) {
let patientId = this.$route.query.patientId
// this.$nextTick(() => {
this.disabled = true
this.tabDisabled = false
this.patientId = patientId || null
this.isDetail = true
// })
}
initCheckStatus() {
return this.$route.query.checkStatus
},
},
watch: {
selectedIndex(v) {
......@@ -345,6 +345,42 @@ export default {
})
}
},
initCheckStatus(v) {
if (v) {
this.initForm = {
checkStatus: this.$route.query.checkStatus + "",
}
// console.log(this.searchForm)
this.handleSearch(this.initForm)
}
console.log("status" + v)
},
},
created() {
if (this.$route.query.checkStatus) {
this.initForm = {
checkStatus: this.$route.query.checkStatus + "",
}
this.handleSearch(this.initForm)
} else {
this.handleFormSearch()
}
// if (this.$route.path == "/screening/index") {
// this.tabDisabled = false
// }
if (this.$route.query.patientId) {
let patientId = this.$route.query.patientId
// this.$nextTick(() => {
this.disabled = true
this.tabDisabled = false
this.patientId = patientId || null
this.isDetail = true
// })
}
},
mounted() {
// console.log(this.$route.query.checkStatus)
},
}
</script>
......
......@@ -20,7 +20,7 @@
/>
</div>
<el-dialog :visible.sync="addVisible" width="520px" :show-close="true">
<div class="title">添加医联体</div>
<div class="title">{{ title }}</div>
<el-form
ref="form"
:model="form"
......@@ -63,13 +63,13 @@
</span>
</el-dialog>
<!-- 删除提示框 -->
<el-dialog title="提示" :visible.sync="deleteVisible" width="30%">
<!-- <el-dialog title="提示" :visible.sync="deleteVisible" width="30%">
<span>确定删除吗?</span>
<span slot="footer" class="dialog-footers">
<el-button @click="deleteVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmDelete">确 定</el-button>
</span>
</el-dialog>
</el-dialog> -->
</div>
</template>
<script>
......@@ -171,6 +171,7 @@ export default {
],
form: {},
deleteId: "",
title: "添加医联体",
}
},
watch: {},
......@@ -195,6 +196,7 @@ export default {
},
// 添加医联体
addMedical() {
this.title = "添加医联体"
if (this.$refs["form"]) {
this.clearForm()
}
......@@ -203,6 +205,7 @@ export default {
},
// 编辑医联体
editMedical(data) {
this.title = "编辑医联体"
console.log(data)
this.form = { ...data }
this.addVisible = true
......@@ -236,8 +239,15 @@ export default {
// 删除
deleteFunc(data) {
console.log(data)
this.deleteVisible = true
// this.deleteVisible = true
this.deleteId = data.id
this.$confirm("确定要删除吗?", "警告", {
type: "warning",
})
.then(() => {
this.confirmDelete()
})
.catch(() => {})
},
clearForm() {
this.form = {}
......
<template>
<div id="medicalunion-management">
<div class="top-btn">
<el-select v-model="selectType">
<el-select v-model="selectType" @change="getArticleList">
<el-option
v-for="item in selectList"
:key="item.value"
......@@ -287,6 +287,7 @@ export default {
size: this.pageSize,
current: this.pageIndex,
moduleType: "5",
articleType: this.selectType - 0,
}
articleList(params)
.then((res) => {
......
......@@ -51,33 +51,33 @@ export default {
id: null,
// 查询列表
searchList: [
{
label: "角色名",
type: "input",
prop: "roleName",
placeholder: "请输入角色名",
},
// {
// label: "角色名",
// type: "input",
// prop: "roleName",
// placeholder: "请输入角色名",
// },
{
label: "状态",
type: "select",
prop: "status",
opts: [
{
label: "启用",
value: 1,
},
{
label: "禁用",
value: 0,
},
],
},
{
type: "button",
value: "查询",
icon: "el-icon-search",
},
// {
// label: "状态",
// type: "select",
// prop: "status",
// opts: [
// {
// label: "启用",
// value: 1,
// },
// {
// label: "禁用",
// value: 0,
// },
// ],
// },
// {
// type: "button",
// value: "查询",
// icon: "el-icon-search",
// },
{
type: "button",
color: "primary",
......
......@@ -11,6 +11,8 @@
ref="table"
:table-data="tableData"
:columns="columns"
tab-type="index"
tab-label="序号"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
......@@ -57,6 +59,7 @@ import {
getUserInfo,
setUserRole,
resetPassword,
baseEnable,
} from "@/api/user"
import { getOrgList, getDepartPage } from "@/api/org"
import { medicalunionList, baseUnion } from "@/api/medicalunion-management"
......@@ -111,21 +114,27 @@ export default {
// 查询列表
searchList: [
{
label: "用户姓名",
label: "选择角色",
type: "select",
opts: roleList,
prop: "roleId",
placeholder: "请选择角色",
},
{
label: "登录名",
type: "input",
prop: "name",
placeholder: "请输入用户姓",
prop: "userName",
placeholder: "请输入登录",
},
{
type: "button",
value: "查询",
icon: "el-icon-search",
value: "搜索",
// icon: "el-icon-search",
},
{
type: "button",
color: "primary",
icon: "el-icon-plus",
// icon: "el-icon-plus",
value: "添加",
func: this.handleAdd,
},
......@@ -133,60 +142,68 @@ export default {
searchQuery: "",
columns: [
{
label: "用户姓",
minWidth: 120,
value: "name",
label: "登录",
width: 140,
value: "userName",
},
{
label: "性别",
value: "sex",
width: 80,
label: "角色",
value: "roles",
minWidth: 180,
formatter: (row) => {
return this.$handle.formatDicList(
this.dictMap["d-sex"],
String(row.sex)
)
if (row.roles.length > 0) {
let roleName = row.roles.map((e) => e.roleName)
return roleName.join("")
} else {
return "--"
}
},
},
{
label: "身份证号",
value: "idCard",
minWidth: 180,
},
{
label: "手机",
minWidth: 120,
value: "phone",
},
{
label: "机构",
label: "医联体名称",
value: "unions",
minWidth: 180,
value: "orgName",
formatter: (row) => {
if (row.unions.length > 0) {
let unionName = row.unions.map((e) => e.unionName)
return unionName.join("")
} else {
return "--"
}
},
},
{
label: "科室",
label: "医联体编号",
value: "unions",
minWidth: 180,
value: "deptName",
formatter: (row) => {
if (row.unions.length > 0) {
let unionNo = row.unions.map((e) => e.unionNo)
return unionNo.join("")
} else {
return "--"
}
},
},
{
label: "登录账户名",
minWidth: 150,
value: "userName",
label: "添加时间",
width: 140,
value: "createTime",
formatter: (row) => {
if (row.createTime) {
return row.createTime
} else {
return "--"
}
},
},
{
label: "邮箱",
minWidth: 180,
value: "email",
label: "状态",
width: 140,
type: "switch",
value: "status",
func: this.openChage,
},
// {
// label: "状态",
// value: "status",
// width: 100,
// formatter(row) {
// return row.status === 1 ? '启用' : '禁用'
// }
// },
{
label: "操作",
width: 220,
......@@ -250,6 +267,42 @@ export default {
},
],
},
// {
// label: "登录名",
// minWidth: 120,
// value: "name",
// },
// {
// label: "性别",
// value: "sex",
// width: 80,
// formatter: (row) => {
// return this.$handle.formatDicList(
// this.dictMap["d-sex"],
// String(row.sex)
// )
// },
// },
// {
// label: "身份证号",
// value: "idCard",
// minWidth: 180,
// },
// {
// label: "手机",
// minWidth: 120,
// value: "phone",
// },
// {
// label: "机构",
// minWidth: 180,
// value: "orgName",
// },
// {
// label: "科室",
// minWidth: 180,
// value: "deptName",
// },
],
tableData: [],
cacheForm: {},
......@@ -370,6 +423,7 @@ export default {
multiple: true,
},
],
roleList: roleList,
consortiaList: [],
consortiaDataRole: [
{
......@@ -403,6 +457,21 @@ export default {
this.loadMore()
},
methods: {
// 修改启用状态
// 启用状态
openChage(data, index) {
console.log(data, index)
let params = {
id: data.id,
status: data.status ? 1 : 0,
}
baseEnable(params).then((res) => {
if (res.code == 1) {
// this.$message.success("保存成功")
// this.handleSearch()
}
})
},
loadMore(current = 1) {
let params = {
current: current,
......@@ -473,15 +542,11 @@ export default {
})
},
handleReset(row) {
this.$confirm(
`【${row.name}】是否重置密码? 重置密码为123456!!`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
this.$confirm(`【${row.name}】是否重置密码? 重置密码为:123456`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
resetPassword(row.id).then((res) => {
if (res.code === 1) {
......@@ -530,6 +595,20 @@ export default {
handleConsortia({ id }) {
this.rowId = id
this.$refs.consortiaRole.open()
getUserInfo({ userId: id }).then((res) => {
if (res.code === 1) {
const consortiaList = []
res.data.unionList.map((item) => {
consortiaList.push(item.id)
})
this.consortiaList = [...consortiaList]
this.$refs.consortiaRole.initFields({
consortiaList: consortiaList,
})
}
})
},
handleRoleConfirm(form) {
const data = {
......@@ -545,6 +624,7 @@ export default {
setUserRole(data).then((res) => {
if (res.code === 1) {
this.$message.success(res.msg)
this.handleSearch()
this.$refs.role.close()
}
})
......
......@@ -3916,13 +3916,12 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
echarts@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.1.2.tgz#aa1ab0cef5b74fa2f7c620261a5f286893d30fd1"
integrity sha512-okUhO4sw22vwZp+rTPNjd/bvTdpug4K4sHNHyrV8NdAncIX9/AarlolFqtJCAYKGFYhUBNjIWu1EznFrSWTFxg==
echarts@4.8.0:
version "4.8.0"
resolved "https://registry.npmmirror.com/echarts/-/echarts-4.8.0.tgz#b2c1cfb9229b13d368ee104fc8eea600b574d4c4"
integrity sha512-YwShpug8fWngj/RlgxDaYrLBoD+LsZUArrusjNPHpAF+is+gGe38xx4W848AwWMGoi745t3OXM52JedNrv+F6g==
dependencies:
tslib "2.0.3"
zrender "5.1.1"
zrender "4.3.1"
ee-first@1.1.1:
version "1.1.1"
......@@ -7978,6 +7977,11 @@ pbkdf2@^3.0.3:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
pdfjs-dist@2.5.207:
version "2.5.207"
resolved "https://registry.npmmirror.com/pdfjs-dist/-/pdfjs-dist-2.5.207.tgz#b5e8c19627be64269cd3fb6df3eaaf45ddffe7b6"
integrity sha512-xGDUhnCYPfHy+unMXCLCJtlpZaaZ17Ew3WIL0tnSgKFUZXHAPD49GO9xScyszSsQMoutNDgRb+rfBXIaX/lJbw==
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
......@@ -10381,11 +10385,6 @@ ts-pnp@^1.1.6:
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
tslib@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==
tslib@^1.9.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
......@@ -11299,12 +11298,10 @@ zip-stream@^2.1.2:
compress-commons "^2.1.1"
readable-stream "^3.4.0"
zrender@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/zrender/-/zrender-5.1.1.tgz#0515f4f8cc0f4742f02a6b8819550a6d13d64c5c"
integrity sha512-oeWlmUZPQdS9f5hK4pV21tHPqA3wgQ7CkKkw7l0CCBgWlJ/FP+lRgLFtUBW6yam4JX8y9CdHJo1o587VVrbcoQ==
dependencies:
tslib "2.0.3"
zrender@4.3.1:
version "4.3.1"
resolved "https://registry.npmmirror.com/zrender/-/zrender-4.3.1.tgz#baf8aa6dc8187a2f819692d7d5f9bedfa2b90fa3"
integrity sha512-CeH2TpJeCdG0TAGYoPSAcFX2ogdug1K7LIn9UO/q9HWqQ54gWhrMAlDP9AwWYMUDhrPe4VeazQ4DW3msD96nUQ==
zwitch@^1.0.0:
version "1.0.5"
......
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