Commit d7c26631 authored by miaojiale's avatar miaojiale

Merge branch 'dev' into dev_Miaojiale

parents 2ddf1c34 6fe83cdb
......@@ -4,6 +4,14 @@ import request from "@/utils/request";
* 随访
*
* */
//随访查询 列表
export function getFollowSearch(params = {}) {
return request({
url: "/disease-data/follow/search",
method: "get",
params,
});
}
//随访调查 列表
export function getFollowSurvey(params = {}) {
return request({
......
import request from "@/utils/request";
/**
* 审核标签
*
* */
// 获取审核意见标签
export function getSysCheckNote(params = {}) {
return request({
url: "/disease-data/sysCheckNote",
method: "get",
params,
});
}
//保存意见标签
export function postSysCheckNote(data = {}) {
return request({
url: "/disease-data/sysCheckNote",
method: "post",
data
});
}
// //修改意见标签
// export function putSysCheckNote(data = {}) {
// return request({
// url: "/disease-data/sysCheckNote",
// method: "put",
// data
// });
// }
// //删除意见标签
// export function delSysCheckNote(id) {
// return request({
// url: `/disease-data/sysCheckNote/${id}`,
// method: "delete",
// });
// }
\ No newline at end of file
......@@ -69,6 +69,15 @@ export function getPatientDetail(params = {}) {
})
}
/* 随访患者数据详情 */
export function getFollowDetail(params = {}) {
return request({
url: "/disease-data/data/patient/follow/info",
method: "get",
params,
})
}
/* 获取表单填报记录list*/
export function getRecordList(params = {}) {
return request({
......@@ -191,3 +200,12 @@ export function getApScoreDetailList(params = {}) {
params,
})
}
// 获取随访计划右侧列表
export function getFollowList(params = {}) {
return request({
url: "/disease-data/data/patient/log/list",
method: "get",
params,
})
}
......@@ -196,6 +196,13 @@ export function getRefuteMessage(params) {
return request({
url: `/disease-data/sys/message/remind/${params}`,
method: "get",
params,
// params,
})
}
// 设置已读消息
export function setReadMessege(id) {
return request({
url: `/disease-data/sys/message/read`,
method: "put",
})
}
src/assets/img/DataCenter/qrcode.png

77.5 KB | W: | H:

src/assets/img/DataCenter/qrcode.png

63.5 KB | W: | H:

src/assets/img/DataCenter/qrcode.png
src/assets/img/DataCenter/qrcode.png
src/assets/img/DataCenter/qrcode.png
src/assets/img/DataCenter/qrcode.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -62,11 +62,19 @@
<el-input
v-if="item.type === 'input'"
v-model="form[item.prop]"
:class="item.prop == 'other_sickness' ? 'needlong' : ''"
:class="
item.prop == 'other_sickness'
? 'needlong'
: item.readonly
? 'read-input'
: ''
"
:readonly="item.readonly"
:disabled="item.disabled"
:placeholder="
item.placeholder ||
item.disabled || item.readonly
? ''
: item.placeholder ||
` ${item.label ? '请输入' + item.label : ''}`
"
:clearable="item.notClearable ? false : true"
......@@ -87,12 +95,12 @@
@click="openToothBit"
>{{ item.append || "牙位" }}</el-button
>
<template v-else-if="item.append" slot="append">{{
item.append
}}</template>
<template v-if="item.prepend" slot="prepend">{{
item.prepend
}}</template>
<template v-else-if="item.append" slot="append">
{{ item.append }}
</template>
<template v-if="item.prepend" slot="prepend">
{{ item.prepend }}
</template>
</el-input>
<!-- 密码框 -->
......@@ -115,12 +123,12 @@
"
@blur="handleBlur"
>
<template v-if="item.append" slot="append">{{
item.append
}}</template>
<template v-if="item.prepend" slot="prepend">{{
item.prepend
}}</template>
<template v-if="item.append" slot="append">
{{ item.append }}
</template>
<template v-if="item.prepend" slot="prepend">
{{ item.prepend }}
</template>
</el-input>
<!-- 文本域 -->
......@@ -172,7 +180,7 @@
<!-- 单选框 -->
<el-radio-group
v-if="item.type === 'radio'"
v-if="item.type === 'radio' && !item.disabled"
v-model="form[item.prop]"
:disabled="item.disabled"
@change="handleChange"
......@@ -184,6 +192,23 @@
>{{ opt.label }}</el-radio
>
</el-radio-group>
<!-- 单选框只读 -->
<div
v-for="(opt, optIndex) in item.dicData"
v-else-if="item.type === 'radio' && item.disabled"
:key="optIndex"
>
<el-radio
v-show="opt.value == form[item.prop]"
v-model="form[item.prop]"
:class="
item.class ? item.class : item.disabled ? 'read-radio' : ''
"
:label="opt.value"
@change="item.func ? item.func($event) : {}"
>{{ opt.label }}</el-radio
>
</div>
<!-- 多选框 -->
<template v-if="item.type === 'checkbox'">
......@@ -259,6 +284,7 @@
:value-format="item.valueFormat"
:format="item.format"
:disabled="item.disabled"
:class="item.disabled ? 'read-time' : ''"
style="width: 100%"
clearable
@change="handleChange"
......@@ -275,14 +301,25 @@
:value-format="item.valueFormat"
:format="item.format"
:disabled="item.disabled"
:class="item.disabled ? 'read-time' : ''"
clearable
@change="handleChange"
></el-time-picker>
<!-- 日期 -->
<div v-else-if="item.type === 'date'" class="flex">
<div
v-else-if="item.type === 'date'"
class="flex"
:class="item.disabled ? 'read-time' : ''"
>
<el-date-picker
v-model="form[item.prop]"
:placeholder="item.placeholder ? item.placeholder : '请选择'"
:placeholder="
item.placeholder
? item.placeholder
: item.disabled
? ''
: '请选择'
"
:value-format="item.valueFormat"
:format="item.format"
:disabled="item.disabled"
......@@ -355,9 +392,16 @@
v-else-if="item.type === 'datetime'"
v-model="form[item.prop]"
type="datetime"
:placeholder="item.placeholder ? item.placeholder : '请选择'"
:placeholder="
item.placeholder
? item.placeholder
: item.disabled
? ''
: '请选择'
"
clearable
:disabled="item.disabled"
:class="item.disabled ? 'read-time' : ''"
:picker-options="pickerOptions"
:value-format="item.valueFormat"
:format="item.format"
......@@ -489,9 +533,13 @@ export default {
this.checkboxReset()
//! 处理医联体名称,新增直接请求,其他等union_id后再请求
if (this.item.prop == "union_id") {
console.log("倒了")
this.unionList = []
// this.getMedicalunionList()
if (this.$route.path == "/screening/add") {
if (
this.$route.path == "/screening/add" ||
this.$route.path == "/screening/index"
) {
this.getMedicalunionList()
} else {
this.$watch(
......@@ -720,10 +768,30 @@ export default {
Object.keys(dyMap).forEach((key) => {
// !获取显隐目标
let targetItem = columns.find((_) => _.prop === key)
if (!targetItem) {
// !没有在表单子组件中找到,查找大表单id
targetItem = group.find((_) => _.prop === key)
}
//没有找到再细化查找
if (!targetItem) {
group.forEach((_) => {
if (_.column) {
_.column.find((item) => {
if (item.prop === key) {
targetItem = item
return
} else {
if (item.children && item.children.column) {
targetItem = item.children.column.find(
(e) => e.prop === key
)
}
}
})
}
})
}
if (!targetItem) return
let display = false
......
......@@ -25,7 +25,7 @@
{{ screeningAdvise[form[item.prop]] }}
</span>
<span v-else-if="item.prop == 'union_id'">
{{ unionName }}
{{ handleUnionName(form[item.prop]) }}
</span>
<span v-else style="margin: 0 5px">{{
form[item.prop] | getItemText(item.dicData, item.type)
......@@ -63,6 +63,22 @@ export default {
},
}
},
computed: {
unionLists() {
let arr
if (sessionStorage.getItem("unionList")) {
arr = JSON.parse(sessionStorage.getItem("unionList"))
} else {
arr = []
}
return arr
},
},
methods: {
handleUnionName(v) {
return this.unionLists.filter((e) => e.id == v)[0].unionName
},
},
filters: {
getItemText(val, list, type) {
// 单选改为字符串
......@@ -86,8 +102,9 @@ export default {
},
watch: {
unionList(v) {
console.log("获取到了医联体列表", this.form[this.item.prop])
if (v.length > 0 && this.form[this.item.prop]) {
// console.log("获取到了医联体列表", this.form[this.item.prop])
console.log("获取到了医联体列表", this.form[this.item.prop])
this.unionName = v.filter(
(e) => e.id == this.form[this.item.prop]
)[0].unionName
......
......@@ -313,8 +313,8 @@ export default {
},
// 绑定部分值(此时表单已渲染)
initfields(obj) {
console.log("通用表单",obj)
for (let k in obj) {
console.log("通用表单",k,obj)
// if (this.form.hasOwnProperty(k)) {
this.form[k] = obj[k]
// }
......
......@@ -34,14 +34,13 @@
v-model="form[item.prop]"
:readonly="item.readonly"
:disabled="item.disabled"
clearable=""
:placeholder="item.placeholder"
@focus="item.focusFunc ? item.focusFunc($event) : {}"
@change="item.func ? item.func($event) : {}"
>
<span v-if="item.unit" :slot="item.slot ? item.slot : 'append'">
{{
item.unit
}}
{{ item.unit }}
</span>
</el-input>
......@@ -146,7 +145,8 @@
:class="item.class"
:label="opt.value"
@change="item.func ? item.func($event) : {}"
>{{ opt.label }}</el-radio>
>{{ opt.label }}</el-radio
>
<!-- 级联 -->
<el-cascader
......@@ -159,7 +159,9 @@
></el-cascader>
<!-- 文字 -->
<span v-else-if="item.type === 'text'">{{ item.text ? item.text : form[item.prop] }}</span>
<span v-else-if="item.type === 'text'">{{
item.text ? item.text : form[item.prop]
}}</span>
<!-- 数字输入框 -->
<el-input-number
......@@ -191,7 +193,8 @@
:icon="btn.icon"
:style="btn.style"
@click="btn.func(form)"
>{{ btn.btnText }}</el-button>
>{{ btn.btnText }}</el-button
>
<div
v-if="btn.btnType == 'tobeModified'"
:key="index"
......@@ -199,8 +202,13 @@
:style="{ backgroundColor: modifiedFlag ? '#4E68FF' : '#fff' }"
@click="changeModified"
>
<i :style="{ color: modifiedFlag ? '#fff' : '#d9d9d9' }" class="el-icon-check"></i>
<span :style="{ color: modifiedFlag ? '#fff' : '#000' }">待修改({{ btn.tobeModified }}</span>
<i
:style="{ color: modifiedFlag ? '#fff' : '#d9d9d9' }"
class="el-icon-check"
></i>
<span :style="{ color: modifiedFlag ? '#fff' : '#000' }"
>待修改({{ btn.tobeModified }}</span
>
</div>
</template>
</div>
......@@ -215,7 +223,8 @@
:icon="btn.icon"
:style="btn.style"
@click="btn.func"
>{{ btn.btnText }}</el-button>
>{{ btn.btnText }}</el-button
>
</el-col>
</el-form>
</template>
......@@ -230,7 +239,7 @@ export default {
inlineFlag: { type: Boolean, default: false },
forms: { type: Array }, // 表单组,
lists: { type: Array }, // 按钮组
formEdit:{type: Object}
formEdit: { type: Object },
},
data() {
const form = {}
......@@ -257,7 +266,7 @@ export default {
methods: {
// 查询
handleSearch() {
console.log("this.form",this.form)
console.log("this.form", this.form)
this.$emit("handleSearch", this.form)
},
......@@ -324,10 +333,10 @@ export default {
},
},
watch: {
formEdit(val){
formEdit(val) {
this.initforms(val)
}
}
},
},
}
</script>
......
......@@ -4,7 +4,7 @@ const mixin = {
total: 0,
pageIndex: 1,
pageSize: 10,
pageSizes: [10, 20, 50, 100]
pageSizes: [10, 20, 50, 100],
}
},
methods: {
......@@ -16,9 +16,10 @@ const mixin = {
// 切换页面显示条数
handleSizeChange(val) {
this.pageIndex = 1
this.pageSize = val
this.handleSearch()
}
}
},
},
}
export default mixin
......@@ -23,7 +23,10 @@
<!-- :http-request="handleUpload" -->
<template v-if="drag">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
</template>
<template v-else-if="listType === 'picture-card'">
<i class="el-icon-plus"></i>
......@@ -42,8 +45,7 @@
style="display: none"
:src="imgUrl"
:preview-src-list="previewList"
>
</el-image>
></el-image>
</el-row>
</template>
......@@ -116,7 +118,7 @@ export default {
return this.value.map((_) => {
return (
_.url ||
`https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucket_name}/${_.prefix}-${_.uuid_name}`
`/geca-api/disease-data/file/info/${_.bucket_name}/${_.prefix}-${_.uuid_name}`
)
})
},
......@@ -129,7 +131,7 @@ export default {
this.fileList = newValue.map((_) => {
return {
name: _.file_name,
url: `https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucket_name}/${_.prefix}-${_.uuid_name}`,
url: `/geca-api/disease-data/file/info/${_.bucket_name}/${_.prefix}-${_.uuid_name}`,
}
})
},
......@@ -200,7 +202,7 @@ export default {
let responseUrl
if (file.response) {
const _ = file.response.data
responseUrl = `https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucket_name}/${_.prefix}-${_.uuid_name}`
responseUrl = `/geca-api/disease-data/file/info/${_.bucket_name}/${_.prefix}-${_.uuid_name}`
}
try {
if (name.match(/\.(png|jpg|jpeg)/)) {
......
......@@ -86,6 +86,7 @@
<script>
import { loginRSA } from "@/config/settings"
import { getAccessToken } from "@/utils/accessToken"
import { mapGetters } from "vuex"
import { encrypt, decrypt } from "@/utils/encryption"
export default {
data() {
......@@ -135,11 +136,15 @@ export default {
},
],
},
allianceToken: getAccessToken(),
currentRoute: this.$route.path,
userInfo: {},
}
},
computed: {
...mapGetters({
allianceToken: ["user/accessToken"],
}),
},
watch: {
$route: {
handler(v) {
......@@ -147,11 +152,13 @@ export default {
},
deep: true,
},
allianceToken(v) {},
},
mounted() {
// if (localStorage.getItem('allianceToken')) {
// this.$router.push('/datacenter/home')
// }
// this.allianceToken = getAccessToken()
this.userInfo = JSON.parse(localStorage.getItem("userInfo"))
},
methods: {
......
......@@ -63,7 +63,7 @@ module.exports = {
//消息框消失时间
messageDuration: 3000,
//最长请求时间
requestTimeout: 15000,
requestTimeout: 150000,
//操作正常code
successCode: 1,
//登录失效code
......
......@@ -10,7 +10,7 @@
</vab-keel> -->
<transition mode="out-in" name="fade-transform">
<keep-alive v-if="routerView" :include="cachedRoutes" :max="10">
<router-view :key="key" style="min-height: 88vh" />
<router-view :key="key" style="min-height: 84vh" />
</keep-alive>
</transition>
</section>
......
......@@ -39,7 +39,7 @@
<el-popover
placement="top-start"
width="300"
:trigger="messageCount == 0 ? 'none' : 'hover'"
trigger="hover"
popper-class="message-pop"
>
<div class="messageBox">
......@@ -55,7 +55,7 @@
<div
class="main-text ml-8"
style="cursor: pointer"
@click="goSearch(item.bizType)"
@click="goSearch(item.bizType, item.id)"
>
{{ item.content }}
</div>
......@@ -63,7 +63,17 @@
<div v-show="loading" v-loading="loading" class="loading"></div>
</div>
<template slot="reference">
<el-badge :value="messageCount" :class-name="'badge'">
<el-badge
v-if="messageCount != 0"
:value="messageCount"
:class-name="'badge'"
>
<div class="user">
<img src="~@/assets/img/DataCenter/message.png" alt />
消息
</div>
</el-badge>
<el-badge v-else :class-name="'badge'">
<div class="user">
<img src="~@/assets/img/DataCenter/message.png" alt />
消息
......@@ -71,6 +81,7 @@
</el-badge>
</template>
</el-popover>
<div class="user" @click="$router.push('/home')">
<img src="~@/assets/img/DataCenter/backhome.png" alt />
<span>返回首页</span>
......@@ -81,7 +92,7 @@
<script>
import { mapGetters } from "vuex"
import { getMessage } from "@/api/user"
import { getMessage, setReadMessege } from "@/api/user"
import Message from "@/mixins/getMessage"
import {
Avatar,
......@@ -147,11 +158,14 @@ export default {
}),
},
watch: {
curSelectedIndex(v) {
curSelectedIndex: {
handler(v) {
this.messageList = []
this.pageNum = 1
this.getMessage()
},
immediate: true,
},
getMessageFlag(v) {
if (v) {
this.messageList = []
......@@ -164,9 +178,11 @@ export default {
// this.getMessage()
},
mounted() {
if (document.querySelector(".messageBox")) {
document
.querySelector(".messageBox")
.addEventListener("scroll", this.scrolling)
}
},
methods: {
scrolling() {
......@@ -184,7 +200,14 @@ export default {
this.getMessage()
}
},
goSearch(val) {
goSearch(val, id) {
// 消息已读
this.messageList = []
setReadMessege().then((res) => {
if (res.code == 1) {
this.getMessage()
}
})
if (val == "screen") {
this.$router.push("/screening/index?checkStatus=2")
}
......@@ -198,8 +221,9 @@ export default {
}).then((res) => {
if (res.code == 1) {
this.$store.commit("user/setGetMessageFlag", false)
this.messageCount = res.data.total
this.messageList = [...this.messageList, ...res.data.records]
// this.messageCount = res.data.page.total
this.messageCount = res.data.unReadNum
this.messageList = [...this.messageList, ...res.data.page.records]
// console.log(res.data.total)
} else {
this.messageCount = 0
......
......@@ -322,15 +322,18 @@ export default {
},
},
watch: {
curSelectedIndex(v) {
curSelectedIndex: {
handler(v) {
this.getRefuteMessage()
},
immediate: false,
},
},
created() {
this.selectedIndex = sessionStorage.getItem("selectedIndex") || ""
this.curSelectedIndex = String(this.selectedIndex) ? this.selectedIndex : ""
if (this.curSelectedIndex) {
this.getRefuteMessage()
// this.getRefuteMessage()
}
},
mounted() {
......@@ -344,9 +347,9 @@ export default {
: ""
}
// console.log(this.curSelectedIndex)
if (this.curSelectedIndex) {
this.getRefuteMessage()
}
// if (this.curSelectedIndex) {
// this.getRefuteMessage()
// }
this.$nextTick(() => {
window.addEventListener(
"storage",
......@@ -501,7 +504,6 @@ export default {
margin-left: $base-left-menu-width;
background: #f6f8f9;
transition: $base-transition;
::v-deep {
.nav-bar-container {
position: relative;
......
......@@ -32,7 +32,6 @@ const actions = {
newDictSet.push(v.type)
}
})
console.log('执行getDictData', commit, state)
commit("setDictSet", latestDict)
newDictSet = Object.keys(dictMap).length === 0 ? latestDictSet : newDictSet
// 存在新增加的字典
......
......@@ -272,7 +272,7 @@ html {
border-top: 1px solid $base-border-color;
.el-form {
padding-right: 30px;
// padding-right: 30px;
}
}
......
......@@ -489,7 +489,6 @@ export function formatDicList(list, value, connector = ",") {
}
})
}
// console.log("字典", list, value, result)
return result
}
/**
......
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.
......@@ -15,7 +15,7 @@ export default {
locate: [
{
name: "安徽",
value: [117.29, 32.0581, 50],
value: [117.29, 32.0581, 0],
},
],
}
......@@ -123,7 +123,7 @@ export default {
},
},
animation: false,
data: [{ name: "安徽省", value: 50 }],
data: [{ name: "安徽省", value: 0 }],
},
],
}
......
......@@ -7,15 +7,14 @@
:close-on-click-modal="true"
:close-on-press-escape="false"
:show-close="true"
width="70%"
:destroy-on-close="true"
top="10vh"
top="2vh"
>
<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>
<pdf-view ref="pdfView" :pdfUrl="pdfSrc"></pdf-view>
</div>
</div>
</el-dialog>
......@@ -49,23 +48,29 @@ export default {
</script>
<style lang="scss" scoped>
.innerBody {
padding: 0 60px 40px;
padding: 0 50px 0px;
// width: 790px;
// height: 882px;
.title {
font-size: 24px;
font-family: AlibabaPuHuiTiM;
color: #333333;
text-align: center;
margin-bottom: 30px;
margin-bottom: 0px;
}
.refuteList {
height: 600px;
// height: 600px;
overflow: auto;
}
}
</style>
<style lang="scss">
.pdfDialog .el-dialog__header {
.pdfDialog {
width: 750px;
max-height: 858px;
.el-dialog__header {
// display: none;
padding: 0px !important;
}
}
</style>
This diff is collapsed.
......@@ -17,6 +17,7 @@
<li
v-for="(item, index) in noticeList"
:key="index"
title="点击查看pdf文件"
@click="setPdf(item)"
>
<div class="left">
......@@ -49,13 +50,18 @@
:name="e.title"
>
<ul class="tabslist" style="height: 380px" :loading="listLoading">
<li v-for="(item, index) in exampleList" :key="index">
<li
v-for="(item, index) in exampleList"
:key="index"
title="点击查看pdf文件"
@click="setPdf(item)"
>
<div class="left">
<div class="circle"></div>
{{ item.title }}
{{ item.articleTitle }}
</div>
<div class="right">
{{ item.date }}
{{ item.createTime }}
</div>
</li>
</ul>
......@@ -283,6 +289,7 @@ export default {
},
created() {
this.getArticleList("1")
this.getArticleList("6")
},
mounted() {
this.getRankTotal()
......@@ -322,6 +329,7 @@ export default {
size: 10,
current: 1,
moduleType: moduleType,
status: 1,
}
articleList(params)
.then((res) => {
......@@ -329,6 +337,9 @@ export default {
if (["1", "2", "3"].includes(moduleType)) {
this.noticeList = [...res.data.records]
}
if (["6"].includes(moduleType)) {
this.exampleList = [...res.data.records]
}
}
})
.catch((e) => {
......@@ -382,7 +393,7 @@ export default {
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: space-between;
// justify-content: space-between;
// &:hover {
// overflow: overlay;
// }
......@@ -477,7 +488,7 @@ export default {
// color: #4e68ff;
.rangeList {
li {
margin-bottom: 14px;
margin-bottom: 15px;
display: flex;
justify-content: space-between;
div:nth-child(1) {
......@@ -517,7 +528,7 @@ export default {
flex-wrap: wrap;
li {
width: 40%;
margin-bottom: 14px;
margin-bottom: 15px;
display: flex;
justify-content: space-between;
......
......@@ -56,7 +56,7 @@ export default {
formTabsList: [],
jsonList: [],
formList: {},
asideShow: true,
asideShow: false,
screenList: [
{
time: "2020-12-12 11:11:11",
......
......@@ -148,7 +148,15 @@ export default {
{
label: "风险评估",
minWidth: 120,
value: "checkNums",
value: "riskRank",
formatter: (row) => {
let riskRank = {
low: "低危",
medium: "中危",
high: "高危",
}
return row.riskRank ? riskRank[row.riskRank] : "--"
},
},
{
label: "审核状态",
......@@ -190,6 +198,9 @@ export default {
return this.auditStatus == "1" ? checkColumns : unCkeckColumns
},
},
created() {
console.log(this.dictMap)
},
mounted() {
if (
sessionStorage.getItem("audit-status") ||
......@@ -203,7 +214,6 @@ export default {
},
methods: {
handleClick() {
console.log("type:" + this.type, "auditStatus" + this.auditStatus)
if (this.auditStatus == 1) {
this.columns[this.columns.length - 1].operations[0].label =
"修改审核意见"
......@@ -213,12 +223,12 @@ export default {
this.handleSearch()
},
auditHandle(data, i) {
console.log(data, i)
if (this.type == "1") {
this.$router.push({
path: "/followaudit",
query: {
id: data["unionId"],
unionId: data["unionId"],
unionName: data["unionName"],
},
})
} else {
......@@ -268,7 +278,7 @@ export default {
if (this.type == "0") {
res = await getScreeningCheck(params) //待审核
} else {
res = await getFollowCheck(params) //审核
res = await getFollowCheck(params) //审核
}
break
}
......
......@@ -98,18 +98,21 @@ export default {
},
watch: {},
mounted() {
this.getPatientPage()
this.handleSearch()
},
methods: {
setSelectedIndex(i) {
console.log(this.selectedIndex)
this.selectedIndex = i
this.getPatientPage()
this.pageIndex = 1
this.handleSearch()
sessionStorage.setItem("homeSelectedIndex", this.selectedIndex)
},
getPatientPage() {
handleSearch() {
this.listLoading = true
let data = {
size: this.pageSize,
current: this.pageIndex,
patientFrom: this.selectedIndex == "0" ? null : this.selectedIndex,
}
getPatientPage(data).then((res) => {
......
<template>
<div>
<el-dialog
center
:visible.sync="dialogVisible"
width="40%"
show-close
@closed="cancelSubmit"
>
<el-dialog center :visible.sync="dialogVisible" width="40%" show-close @closed="cancelSubmit">
<slot name="content"></slot>
<slot name="footer"></slot>
</el-dialog>
......
This diff is collapsed.
<template>
<!-- 随访调查录入 -->
<div>
<div style="positon: relative">
<div class="goback" v-if="formType == 1">
<el-button icon="el-icon-back" @click="backInfoce">返 回</el-button>
</div>
<ConfigForms
form-type="2"
formClass="follow-form"
:disabled="false"
:patientId="patientId"
v-if="refreshFlag"
:form-type="formType"
form-class="follow-form"
:disabled="disabled"
:tab-disabled="tabDisabled"
:get-data="getData"
:contrast="formType == 1 ? false : true"
:patient-id="patientId"
:screenList="screenList"
@refreshData="refreshData"
></ConfigForms>
</div>
</template>
<script>
import ConfigForms from "@/views/screening/components/ConfigForms.vue"
import { getFollowList } from "@/api/patient"
export default {
name: "FollowupEntry",
components: {
ConfigForms,
},
data() {
return { patientId: "" }
return {
disabled: false,
tabDisabled: true,
refreshFlag: true,
screenList: [
// {
// create_time: "2020-12-12 11:11:11",
// create_user_name: "",
// title: "修改第一次随访计划",
// },
],
}
},
provide() {
return {
tabFollowId: () => this.followId,
}
},
computed: {
patientId() {
return this.$route.query.patientId
},
model() {
return this.$route.query.model
},
followId() {
return this.$route.query.followId
},
formType() {
return this.$route.query.formType
},
getData() {
return Boolean(this.$route.query.getData - 0)
},
},
mounted() {
if (this.model == "view") {
this.disabled = true
this.tabDisabled = false
} else {
this.disabled = false
this.tabDisabled = true
}
this.$nextTick(() => {
if (this.formType == 2) {
this.getFollowList()
}
})
},
methods: {
refreshData(data) {
// this.refreshFlag = false
// this.$nextTick(() => {
// this.refreshFlag = true
// })
},
backInfoce() {
this.$router.push({ path: "/followupquery", query: {} })
},
getFollowList() {
getFollowList({
patientId: this.patientId,
}).then((res) => {
// console.log(res)
if (res.code == 1) {
this.screenList = res.data || []
}
})
},
created() {
this.patientId = this.$route.query.patientId
},
methods: {},
}
</script>
<style lang="scss"></style>
<style lang="scss" scoped>
.goback {
position: absolute;
right: 24px;
top: 24px;
z-index: 99;
}
</style>
This diff is collapsed.
......@@ -28,15 +28,18 @@
<script>
import FormComponents from "@/components/FormComponents"
import paginationMixin from "@/components/TabComponents/mixin"
import searchMixin from "../searchMixin"
import { getCurrentFormByType } from "@/api/coop-group.js"
import { getFollowSurvey } from "@/api/followup"
import { mapGetters } from "vuex"
export default {
components: {
FormComponents,
},
mixins: [paginationMixin],
mixins: [paginationMixin, searchMixin],
data() {
return {
formId: "", //随访表单类型
listLoading: false,
keyword: "",
modifiedFlag: false,
......@@ -97,10 +100,12 @@ export default {
minWidth: 120,
value: "riskRank",
formatter: (row) => {
return this.$handle.formatDicList(
this.dictMap["risk_level"],
String(row.riskRank)
)
let riskRank = {
low: "低危",
medium: "中危",
high: "高危",
}
return row.riskRank ? riskRank[row.riskRank] : "--"
},
},
{
......@@ -253,13 +258,13 @@ export default {
},
computed: {
...mapGetters({
selectedIndex: "table/selectedIndex",
// selectedIndex: "table/selectedIndex",
refreshFlag: "table/refreshFlag",
}),
},
watch: {},
created() {
// this.initColumn()
this.initSearchForm()
},
mounted() {
this.handleSearch() //调试注释
......@@ -283,7 +288,13 @@ export default {
console.log("跳转", data, i)
sessionStorage.setItem("formEdit", JSON.stringify(data))
this.$router.push({
path: `/followupentry?patientId=${data.patientId}`,
path: `/followupentry`,
query: {
patientId: data.patientId,
getData: 0,
formType: "2",
model: "add",
},
})
},
async handleSearch() {
......@@ -305,13 +316,19 @@ export default {
}
this.listLoading = false
},
// initColumn(){
// this.columns.forEach((item,index) => {
// if(item.trans){
// this.initDict(item.trans,index)
// }
// })
// },
//查询表单枚举值字典
initSearchForm() {
this.formList.forEach((item, index) => {
if (item.trans) {
if (!item["opts"]) {
item["opts"] = []
} else {
item["opts"] = this.dictMap[item.trans]
}
}
})
this.$forceUpdate()
},
// async initDict(type,index){
// let params={
// type:type
......@@ -339,7 +356,19 @@ export default {
// }
// }
// })
// }
// },
//获取随访表单类型
getCurrentFormByType(type) {
getCurrentFormByType({
type,
groupId: this.$store.state.user.group.groupId || "",
}).then((res) => {
if (res.code === 1) {
this.formId = res.data[0].id
this.handleSearch()
}
})
},
},
}
</script>
......
......@@ -184,10 +184,10 @@ export default {
},
],
tableData: [
{
name: "1",
1: 2,
},
// {
// name: "1",
// 1: 2,
// },
],
}
},
......@@ -246,6 +246,9 @@ export default {
type: "success",
message: "删除成功!",
})
if (this.tableData.length == 1 && this.pageIndex != 1) {
this.pageIndex--
}
this.handleSearch()
}
})
......@@ -271,6 +274,7 @@ export default {
<style lang="scss" scoped>
.container {
padding: 24px;
padding-bottom: 0px;
height: 100%;
display: flex;
flex-direction: column;
......
......@@ -48,8 +48,10 @@
:style="{
height:
$route.path == '/screening/index'
? 'calc(100vh - 310px)'
: 'calc(100vh - 270px)',
? 'calc(100vh - 245px)'
: $route.path == '/screening/draft'
? 'calc(100vh - 249px)'
: 'calc(100vh - 203px)',
}"
:class="externalScroll ? 'no-scroll' : ''"
>
......@@ -70,18 +72,14 @@
</div>
</template>
</el-main>
<el-aside
v-if="contrast"
:width="sideWidth"
class="transition-box"
:class="{ hidden: !asideShow }"
>
<div class="side-content"></div>
</el-aside>
</el-container>
</template>
<script>
import { getPatientDetail, getRecordList } from "@/api/patient.js"
import {
getPatientDetail,
getRecordList,
getFollowDetail,
} from "@/api/patient.js"
import { getFormDetail } from "@/api/field"
import CustomForm from "@/components/FormComponents/CustomForm/index"
import ReadForm from "@/components/FormComponents/ReadForm/index"
......@@ -93,7 +91,8 @@ export default {
activeName: String,
externalScroll: Boolean, //外部滚动
disabled: Boolean,
contrast: Boolean, //同屏对照
getData: Boolean,
// contrast: Boolean, //同屏对照
form: Object,
formType: String,
patientId: String,
......@@ -118,6 +117,12 @@ export default {
},
}
},
inject: {
tabFollowId: {
type: Function,
default: () => {},
},
},
data() {
return {
btnType: "",
......@@ -157,9 +162,12 @@ export default {
return !(Object.keys(this.widgetFormPreview) || this.widgetFormPreview)
.length
},
sideWidth() {
return this.asideShow ? "200px" : "0px"
getTabFollowId() {
return this.tabFollowId()
},
// sideWidth() {
// return this.asideShow ? "200px" : "0px"
// },
pageLoading() {
return this.loading || this.formloading
},
......@@ -190,6 +198,9 @@ export default {
data[key] = data[key] + ""
}
}
data.follow_contents = data.follow_contents
? JSON.parse(data.follow_contents.replace(/"\"/g, ""))
: []
this.formData.formEdit = data
}
this.initForm() //! 随防筛查通用的设置form
......@@ -203,8 +214,9 @@ export default {
{ immediate: true }
)
} else {
console.log(206, this.getData)
// 监听form.silent 获取当前tab页数据
if (this.formType != 2) {
if (this.getData) {
this.$watch(
"form.silent",
() => {
......@@ -236,6 +248,7 @@ export default {
this.$refs.form.clearAge()
},
initData() {
console.log("初始化", this.formData)
this.formData.formRecordId = null
this.formCacheList = []
this.getPatientDetail()
......@@ -292,8 +305,9 @@ export default {
if (this.isDraft) {
params.statusMap.is_draft = this.isDraft
}
// 处理followId 针对随访查询的列表数据的查询和修改操作
if (this.$route.path == "/followupentry" && this.activeName != "index0") {
params.followId = this.followId
params.followId = this.followId || this.getTabFollowId
}
this.$emit("handleConfirm", params, done, (res) => {
// 多次填写的表单新增时,获取最新数据
......@@ -378,6 +392,19 @@ export default {
})
if (!this.patientId || this.form.silent) return
this.loading = true
if (this.formType == 2) {
getFollowDetail({
followId: this.followId || this.getTabFollowId,
formId: this.form.formId,
formRecordId: this.formData.formRecordId,
})
.then((res) => {
this.formatData(res)
})
.finally(() => {
this.loading = false
})
} else {
getPatientDetail({
patientId: this.patientId,
formId: this.form.formId,
......@@ -389,6 +416,7 @@ export default {
.finally(() => {
this.loading = false
})
}
},
formatData(res, cache) {
const d = res.data || {}
......@@ -401,11 +429,14 @@ export default {
if (form["YZZKJC"] && typeof form["YZZKJC"] === "string") {
form["YZZKJC"] = JSON.parse(form["YZZKJC"])
}
console.log(form)
console.log("form形成", form, this.formData)
if (!cache) {
this.formData.formEdit = form
}
this.formData.formRecordId = d.formRecordId
if (!this.formData.formRecordId) {
this.newformRecordId = ""
}
this.formData.percent = d.percent || {}
const index = this.formCacheList.findIndex(
(_) => _.formRecordId === d.formRecordId
......@@ -416,7 +447,17 @@ export default {
this.formCacheList.push(this.deepClone(this.formData))
}
},
// 表单数据转化
formatString(form) {
for (const key in form) {
Object.prototype.toString.call(form[key]) == "[object Number]"
? (form[key] = String(form[key]))
: ""
}
this.formData.formEdit = form
},
getRecordList(formRecordId) {
console.log("获取表单id", formRecordId)
if (!this.patientId) return
getRecordList({
patientId: this.patientId,
......@@ -445,6 +486,7 @@ export default {
.el-main {
position: relative;
padding: 0;
// box-shadow: 0px 5px 4px red;
.arrow {
position: absolute;
......@@ -456,7 +498,7 @@ export default {
}
.header {
height: 5px;
box-shadow: 0 5px 4px rgb(0 21 41 / 8%);
box-shadow: 0px 3px 4px rgb(0 21 41 / 8%);
padding-right: 20px;
position: relative;
font-size: 15px;
......@@ -504,12 +546,4 @@ export default {
float: left;
width: 150px;
}
.transition-box {
transition: all 0.2s;
&.hidden {
opacity: 0;
height: 0px;
}
}
</style>
......@@ -13,6 +13,7 @@ export default {
newformRecordId: null, //记录Id
formTabs: [],
formId: "",
followId: "",
formTabsList: [],
isUpdated: false,
}
......@@ -27,7 +28,7 @@ export default {
nextTab() {
let i = this.activeName.split("index")[1] - 0
i++
if (i == 6) {
if (i == this.formTabs.length) {
this.onSubmit(3)
return
} else {
......
......@@ -25,7 +25,7 @@
</div>
<div v-if="isDetail">
<div>
<div style="margin-left: 24px">
<el-button icon="el-icon-back" @click="backInfoce">返 回</el-button>
</div>
<ConfigForms
......@@ -59,9 +59,9 @@ export default {
tabDisabled: true,
searchList: [
{
type: "date",
type: "daterange",
label: "筛查时间",
prop: "createDate",
prop: "CreateDate",
placeholder: "请选择时间",
valueFormat: "yyyy-MM-dd",
},
......@@ -293,17 +293,20 @@ export default {
this.handleSearch(form)
},
handleSearch(form) {
this.$router.push({
query: {},
})
this.listLoading = true
const params = Object.assign(this.cacheForm, form)
const data = {}
for (let key in params) {
if (params[key] !== "" && params[key] !== null) {
// if (key.includes("Time") && params[key]) {
// data["start" + key] = params[key][0]
// data["end" + key] = params[key][1]
// } else {
if (key.includes("Date") && params[key]) {
data["start" + key] = params[key][0]
data["end" + key] = params[key][1]
} else {
data[key] = params[key]
// }
}
}
}
data.current = this.pageIndex
......@@ -385,4 +388,9 @@ export default {
}
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.container {
padding: 20px;
padding-bottom: 0px;
}
</style>
import { mapGetters } from "vuex"
export default {
data() {
return {}
},
computed: {
...mapGetters({
selectedIndex: ["table/selectedIndex"],
}),
},
methods: {},
mounted() {},
watch: {
selectedIndex(v) {
if (v) {
this.handleSearch()
}
},
},
}
......@@ -176,12 +176,12 @@ export default {
},
watch: {},
mounted() {
this.getMedicalunionList()
this.handleSearch()
console.log(cityList)
},
methods: {
// 获取list
getMedicalunionList() {
handleSearch() {
this.listLoading = true
medicalunionList({
size: this.pageSize,
......@@ -227,7 +227,7 @@ export default {
this.$message.success("添加成功")
this.addVisible = false
this.page = 1
this.getMedicalunionList()
this.handleSearch()
}
})
} else {
......@@ -259,7 +259,7 @@ export default {
.then((res) => {
if (res.code == 1) {
this.$message.success("删除成功")
this.getMedicalunionList()
this.handleSearch()
}
})
.catch(() => {})
......
<template>
<div id="medicalunion-management">
<div class="top-btn">
<el-button type="primary" class="btn" @click="addMedical">添加</el-button>
</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>
<el-dialog
:visible.sync="addVisible"
width="520px"
:show-close="true"
@closed="resetForm"
>
<div class="title">{{ readOnly ? "查看" : "添加" }}</div>
<el-form
ref="form"
:model="form"
:label-position="'right'"
label-width="110px"
label-suffix=":"
:disabled="readOnly"
>
<el-form-item
v-for="(item, index) in formList"
:key="index"
:label="item.label"
:prop="item.prop"
:rules="[{ required: true, message: item.label + '不能为空' }]"
>
<!-- <template v-if="!readOnly"> -->
<template>
<!-- 输入框 -->
<el-input
v-if="item.type == 'input'"
v-model="form[item.prop]"
autocomplete="off"
:placeholder="'请填写' + item.label"
></el-input>
<!-- 下拉选 -->
<el-select
v-else-if="item.type == 'select'"
v-model="form[item.prop]"
:placeholder="'请选择' + item.label"
style="width: 100%"
>
<el-option
v-for="e in item.selectGroup"
:key="e.value"
:label="e.label"
:value="e.value"
></el-option>
</el-select>
<!-- 上传 -->
<el-upload-self
v-else-if="item.type === 'upload'"
v-model="form[item.prop]"
:btn-type="'text'"
v-bind="item"
:list-type="item.listType"
:accept="item.accept"
:limit="item.limit"
:disabled="readOnly"
></el-upload-self>
<!-- switch -->
<!-- switch切换 启用 -->
<el-switch
v-else-if="item.type === 'switch'"
v-model="form[item.prop]"
:active-value="1"
:inactive-value="0"
>
</el-switch>
</template>
<!-- <template v-else>
<span>{{ form[item.prop] || "--" }}</span>
</template> -->
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button class="f-btn" type="primary" @click="submitForm('6')"
>保存</el-button
>
</span>
</el-dialog>
<!-- 删除提示框 -->
<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>
</div>
</template>
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/UploadForOperation"
import mixin from "./mixin"
import { articleList } from "@/api/operation-management"
export default {
components: {
CustomsTable,
ElUploadSelf,
},
mixins: [paginationMixin, mixin],
data() {
return {
addVisible: false,
listLoading: false,
deleteVisible: false,
columns: [
{
label: "标题",
minWidth: 120,
value: "articleTitle",
},
{
label: "文件",
minWidth: 120,
type: "file",
value: "filePath",
},
{
label: "上传时间",
minWidth: 120,
value: "uploadTime",
},
{
label: "最新修改时间",
minWidth: 120,
value: "updateTime",
},
{
label: "上传人姓名",
minWidth: 120,
value: "uploadUserName",
},
{
label: "启用状态",
minWidth: 120,
type: "switch",
value: "status",
func: this.openChage,
},
{
label: "操作",
width: 220,
fixed: "right",
operType: "button",
operations: [
{
func: this.viewMedical,
formatter(row) {
return {
label: "查看",
type: "text",
}
},
},
{
func: this.editMedical,
formatter(row) {
return {
label: "编辑",
type: "text",
}
},
},
{
func: this.deleteFunc,
style: {
color: "#FA6400",
},
formatter(row) {
return {
label: "删除",
type: "text",
}
},
},
],
},
],
tableData: [
// {
// title: "第一个",
// isOpen: true,
// },
],
formList: [
{
type: "input",
label: "标题",
prop: "articleTitle",
},
{
type: "upload",
label: "PDF",
prop: "filePath",
accept: "application/pdf",
},
{
type: "switch",
label: "启用状态",
prop: "status",
},
],
}
},
watch: {},
mounted() {
this.getArticleList()
},
methods: {
// 获取新闻会议
getArticleList() {
this.listLoading = true
let params = {
size: this.pageSize,
current: this.pageIndex,
moduleType: "6",
}
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
})
},
},
}
</script>
<style lang="scss" scoped>
#medicalunion-management {
padding: 20px 0;
.top-btn {
.btn {
width: 80px;
height: 32px;
background: #4e68ff;
border-radius: 4px;
}
}
.bot-table {
margin-top: 20px;
}
.title {
text-align: center;
height: 26px;
font-size: 22px;
font-family: AlibabaPuHuiTiM;
color: rgba(0, 0, 0, 0.8);
line-height: 26px;
margin-bottom: 30px;
}
}
::v-deep .el-dialog__body {
padding: 0 40px;
border-top: none;
}
::v-deep .el-dialog__footer {
border-top: none;
text-align: center;
.f-btn {
width: 100px;
height: 32px;
background: #4e68ff;
}
}
</style>
......@@ -18,6 +18,7 @@ import NoticeAnnouncement from "@/views/systems/operation-management/components/
import AcademicTrend from "@/views/systems/operation-management/components/AcademicTrend.vue"
import HealthPopularization from "@/views/systems/operation-management/components/HealthPopularization.vue"
import scientificResearch from "@/views/systems/operation-management/components/scientificResearch.vue"
import TypicalCase from "./components/TypicalCase.vue"
export default {
components: {
NewsMeeting,
......@@ -25,6 +26,7 @@ export default {
AcademicTrend,
HealthPopularization,
scientificResearch,
TypicalCase,
},
data() {
return {
......@@ -50,6 +52,10 @@ export default {
name: "科学研究",
component: "scientificResearch",
},
{
name: "典型案例",
component: "TypicalCase",
},
],
}
},
......
......@@ -1143,6 +1143,11 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
"@types/json-schema@^7.0.8":
version "7.0.11"
resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
"@types/liftoff@^2.5.0":
version "2.5.0"
resolved "https://registry.yarnpkg.com/@types/liftoff/-/liftoff-2.5.0.tgz#aa5f030ae0952d1b86225f3e9f27f6d5b69714aa"
......@@ -1757,7 +1762,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4:
ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
......@@ -2162,6 +2167,11 @@ babel-plugin-polyfill-regenerator@^0.1.2:
dependencies:
"@babel/helper-define-polyfill-provider" "^0.1.5"
babel-plugin-syntax-dynamic-import@^6.18.0:
version "6.18.0"
resolved "https://registry.npmmirror.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
integrity sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==
babel-runtime@6.x, babel-runtime@^6.9.2:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
......@@ -6521,6 +6531,15 @@ loader-utils@^0.2.16:
json5 "^0.5.0"
object-assign "^4.0.1"
loader-utils@^1.0.0:
version "1.4.2"
resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
dependencies:
big.js "^5.2.2"
emojis-list "^3.0.0"
json5 "^1.0.1"
loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
......@@ -7977,10 +7996,10 @@ 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==
pdfjs-dist@2.6.347:
version "2.6.347"
resolved "https://registry.npmmirror.com/pdfjs-dist/-/pdfjs-dist-2.6.347.tgz#f257ed66e83be900cd0fd28524a2187fb9e25cd5"
integrity sha512-QC+h7hG2su9v/nU1wEI3SnpPIrqJODL7GTDFvR74ANKGq1AFJW16PH8VWnhpiTi9YcLSFV9xLeWSgq+ckHLdVQ==
performance-now@^2.1.0:
version "2.1.0"
......@@ -8785,6 +8804,14 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
raw-loader@^4.0.2:
version "4.0.2"
resolved "https://registry.npmmirror.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6"
integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==
dependencies:
loader-utils "^2.0.0"
schema-utils "^3.0.0"
raw-loader@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
......@@ -9232,6 +9259,14 @@ sax@~1.2.4:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
schema-utils@^0.4.0:
version "0.4.7"
resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
dependencies:
ajv "^6.1.0"
ajv-keywords "^3.1.0"
schema-utils@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
......@@ -9250,6 +9285,15 @@ schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6
ajv "^6.12.4"
ajv-keywords "^3.5.2"
schema-utils@^3.0.0:
version "3.1.1"
resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
dependencies:
"@types/json-schema" "^7.0.8"
ajv "^6.12.5"
ajv-keywords "^3.5.2"
screenfull@^5.0.2:
version "5.1.0"
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.1.0.tgz#85c13c70f4ead4c1b8a935c70010dfdcd2c0e5c8"
......@@ -10840,6 +10884,23 @@ vue-observe-visibility@^0.4.4:
resolved "https://registry.yarnpkg.com/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz#878cb8ebcf3078e40807af29774e97105ebd519e"
integrity sha512-xo0CEVdkjSjhJoDdLSvoZoQrw/H2BlzB5jrCBKGZNXN2zdZgMuZ9BKrxXDjNP2AxlcCoKc8OahI3F3r3JGLv2Q==
vue-pdf@^4.3.0:
version "4.3.0"
resolved "https://registry.npmmirror.com/vue-pdf/-/vue-pdf-4.3.0.tgz#d5f790ee7967e7b7aa9089b97b11ab168e19dbd0"
integrity sha512-zd3lJj6CbtrawgaaDDciTDjkJMUKiLWtbEmBg5CvFn9Noe9oAO/GNy/fc5c59qGuFCJ14ibIV1baw4S07e5bSQ==
dependencies:
babel-plugin-syntax-dynamic-import "^6.18.0"
loader-utils "^1.4.0"
pdfjs-dist "2.6.347"
raw-loader "^4.0.2"
vue-resize-sensor "^2.0.0"
worker-loader "^2.0.0"
vue-resize-sensor@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/vue-resize-sensor/-/vue-resize-sensor-2.0.0.tgz#3a587fd6802e1688709cf2c5aadae7a0075952bf"
integrity sha512-W+y2EAI/BxS4Vlcca9scQv8ifeBFck56DRtSwWJ2H4Cw1GLNUYxiZxUHHkuzuI5JPW/cYtL1bPO5xPyEXx4LmQ==
vue-resize@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-0.4.5.tgz#4777a23042e3c05620d9cbda01c0b3cc5e32dcea"
......@@ -11143,6 +11204,14 @@ worker-farm@^1.7.0:
dependencies:
errno "~0.1.7"
worker-loader@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac"
integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==
dependencies:
loader-utils "^1.0.0"
schema-utils "^0.4.0"
wrap-ansi@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
......
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