...
 
Commits (296)
NODE_ENV = 'development' NODE_ENV = 'development'
VUE_APP_BASE_API = 'mockServer' VUE_APP_BASE_API = 'mockServer'
VUE_APP_BASE_API = 'http://192.168.31.140:11999/' VUE_APP_BASE_API = 'http://192.168.31.140:11999/'
VUE_APP_UPLOAD_API = 'https://ds.cixincloud.com/geca-api/disease-data/file/info/'
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true
·
\ No newline at end of file
NODE_ENV = 'production' NODE_ENV = 'production'
VUE_APP_BASE_API = '/disease-api/' VUE_APP_BASE_API = '/geca-api/'
VUE_APP_UPLOAD_API = '/geca-api/disease-data/file/info/'
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
<el-input-number <el-input-number
v-model="data.labelWidth" v-model="data.labelWidth"
:min="80" :min="80"
:max="500"
:step="10" :step="10"
controls-position="right" controls-position="right"
placeholder="标签宽度" placeholder="标签宽度"
...@@ -39,10 +38,10 @@ ...@@ -39,10 +38,10 @@
<el-form-item label="多分组转标签"> <el-form-item label="多分组转标签">
<el-switch v-model="data.tabs" active-color="#409EFF"></el-switch> <el-switch v-model="data.tabs" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="显示跳转按钮" v-if="data.tabs"> <el-form-item v-if="data.tabs" label="显示跳转按钮">
<el-switch v-model="data.nextTabBtn" active-color="#409EFF"></el-switch> <el-switch v-model="data.nextTabBtn" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="跳转按钮的文字" v-if="data.tabs && data.nextTabBtn"> <el-form-item v-if="data.tabs && data.nextTabBtn" label="跳转按钮的文字">
<el-input <el-input
v-model="data.nextTabText" v-model="data.nextTabText"
placeholder="跳转按钮的文字" placeholder="跳转按钮的文字"
...@@ -77,7 +76,10 @@ ...@@ -77,7 +76,10 @@
value="right"></el-option> value="right"></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="显示提交按钮" v-if="data.menuBtn"> <el-form-item v-if="data.menuBtn" label="显示上一步按钮">
<el-switch v-model="data.prevBtn" active-color="#409EFF"></el-switch>
</el-form-item>
<el-form-item v-if="data.menuBtn" label="显示提交按钮">
<el-switch v-model="data.submitBtn" active-color="#409EFF"></el-switch> <el-switch v-model="data.submitBtn" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<!-- <el-form-item label="提交按钮的大小" <!-- <el-form-item label="提交按钮的大小"
...@@ -93,8 +95,8 @@ ...@@ -93,8 +95,8 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item <el-form-item
label="提交按钮的文字"
v-if="data.menuBtn && data.submitBtn" v-if="data.menuBtn && data.submitBtn"
label="提交按钮的文字"
> >
<el-input <el-input
v-model="data.submitText" v-model="data.submitText"
...@@ -102,7 +104,7 @@ ...@@ -102,7 +104,7 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="显示清空按钮" v-if="data.menuBtn"> <el-form-item v-if="data.menuBtn" label="显示清空按钮">
<el-switch v-model="data.emptyBtn" active-color="#409EFF"></el-switch> <el-switch v-model="data.emptyBtn" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<!-- <el-form-item label="清空按钮的大小" <!-- <el-form-item label="清空按钮的大小"
...@@ -117,7 +119,7 @@ ...@@ -117,7 +119,7 @@
value="mini"></el-option> value="mini"></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="清空按钮的文字" v-if="data.menuBtn && data.emptyBtn"> <el-form-item v-if="data.menuBtn && data.emptyBtn" label="清空按钮的文字">
<el-input <el-input
v-model="data.emptyText" v-model="data.emptyText"
placeholder="清空按钮的文字" placeholder="清空按钮的文字"
...@@ -153,7 +155,7 @@ ...@@ -153,7 +155,7 @@
<script> <script>
export default { export default {
name: "form-config", name: "FormConfig",
props: ["data"], props: ["data"],
} }
</script> </script>
This diff is collapsed.
...@@ -40,9 +40,6 @@ ...@@ -40,9 +40,6 @@
:disabled="propNotEdit" :disabled="propNotEdit"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="数据库">
<el-input :value="data.tableCode" clearable disabled></el-input>
</el-form-item>
<el-form-item label="标题"> <el-form-item label="标题">
<el-input <el-input
v-model="data.label" v-model="data.label"
...@@ -50,10 +47,10 @@ ...@@ -50,10 +47,10 @@
placeholder="标题" placeholder="标题"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="标题缀"> <el-form-item label="标题缀">
<el-input <el-input
v-model="data.labelSuffix" v-model="data.labelSuffix"
placeholder="标题缀" placeholder="标题缀"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="左侧内边距" v-if="data.type === 'group'"> <el-form-item label="左侧内边距" v-if="data.type === 'group'">
...@@ -80,7 +77,6 @@ ...@@ -80,7 +77,6 @@
controls-position="right" controls-position="right"
placeholder="标题宽度" placeholder="标题宽度"
:min="0" :min="0"
:max="400"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<template <template
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
> >
<el-form-item <el-form-item
:label=" :label="
item.label ? `${item.label}${item.labelSuffix || ':'}` : '' item.label ? `${item.labelSuffix || ''}${item.label}` : ''
" "
:prop="item.prop" :prop="item.prop"
:label-width=" :label-width="
......
<template>
<div>
<span
v-if="item.type == 'title'"
:style="item.styles"
style="margin-left: 5px"
>
{{ item.value }}
</span>
<component
v-else
:is="getComponent(item.type, item.component)"
v-bind="
Object.assign(deepClone(item), params, { size: item.size || 'small' })
"
:multiple="false"
:placeholder="item.placeholder || getPlaceholder(item)"
:dic="item.dicData"
:value="
['time', 'timerange', 'checkbox'].includes(item.type)
? item.dicData
: undefined
"
>
<span v-if="params.html" v-html="params.html"></span>
</component>
</div>
</template>
<script>
export default {
name: "widget-form-item",
props: {
item: {
type: Object,
default: () => {
return {}
},
},
params: {
type: Object,
default: () => {
return {}
},
},
},
data() {
return {
form: {},
}
},
methods: {
getComponent(type, component) {
let KEY_COMPONENT_NAME = "avue-"
let result = "input"
if (component) return component
else if (["array", "img", "url"].includes(type)) result = "array"
else if (type === "select") result = "select"
else if (type === "radio") result = "radio"
else if (type === "checkbox") result = "checkbox"
else if (["time", "timerange"].includes(type)) result = "time"
else if (
[
"dates",
"date",
"datetime",
"datetimerange",
"daterange",
"week",
"month",
"year",
].includes(type)
)
result = "date"
else if (type === "cascader") result = "cascader"
else if (type === "number") result = "input-number"
else if (type === "password") result = "input"
else if (type === "switch") result = "switch"
else if (type === "rate") result = "rate"
else if (type === "upload") result = "upload"
else if (type === "slider") result = "slider"
else if (type === "dynamic") result = "dynamic"
else if (type === "icon") result = "input-icon"
else if (type === "color") result = "input-color"
else if (type === "map") result = "input-map"
return KEY_COMPONENT_NAME + result
},
getPlaceholder(item) {
const label = item.label
if (
[
"select",
"checkbox",
"radio",
"tree",
"color",
"dates",
"date",
"datetime",
"datetimerange",
"daterange",
"week",
"month",
"year",
"map",
"icon",
].includes(item.type)
)
return `请选择 ${label}`
else return `请输入 ${label}`
},
},
}
</script>
...@@ -224,6 +224,9 @@ export default { ...@@ -224,6 +224,9 @@ export default {
if (data.type === "dynamic") { if (data.type === "dynamic") {
data.prop = "fixed_field" data.prop = "fixed_field"
} }
if (data.type == "title") {
delete data.label
}
data.cType = column.children.type === "form" ? "form" : "table" data.cType = column.children.type === "form" ? "form" : "table"
data.subfield = true data.subfield = true
delete data.icon delete data.icon
......
<template> <template>
<div> <div>
<template v-if="data.type.indexOf('range') != -1"> <template v-if="data.type.indexOf('range') != -1">
<el-form-item label="开始占位内容" <el-form-item label="开始占位内容" label-width="110px">
label-width="110px"> <el-input
<el-input v-model="data.startPlaceholder" v-model="data.startPlaceholder"
clearable clearable
placeholder="开始占位内容"></el-input> placeholder="开始占位内容"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="结束占位内容" <el-form-item label="结束占位内容" label-width="110px">
label-width="110px"> <el-input
<el-input v-model="data.endPlaceholder" v-model="data.endPlaceholder"
clearable clearable
placeholder="结束占位内容"></el-input> placeholder="结束占位内容"
></el-input>
</el-form-item> </el-form-item>
</template> </template>
<el-form-item label="占位内容" <el-form-item label="占位内容" v-else>
v-else> <el-input
<el-input v-model="data.placeholder" v-model="data.placeholder"
clearable clearable
placeholder="占位内容"></el-input> placeholder="占位内容"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="默认值"> <el-form-item label="默认值">
<el-input v-model="data.value" <el-input v-model="data.value" clearable placeholder="默认值"></el-input>
clearable
placeholder="默认值"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="显示格式化" <el-form-item label="显示格式化" label-width="100px">
label-width="100px"> <el-input
<el-input v-model="data.format" v-model="data.format"
clearable clearable
placeholder="显示格式化"></el-input> placeholder="显示格式化"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="值格式化"> <el-form-item label="值格式化">
<el-input v-model="data.valueFormat" <el-input
v-model="data.valueFormat"
clearable clearable
placeholder="值格式化"></el-input> placeholder="值格式化"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="取消范围联动" <el-form-item
label="取消范围联动"
label-width="110px" label-width="110px"
v-if="['timerange', 'daterange', 'datetimerange'].includes(data.type)"> v-if="['timerange', 'daterange', 'datetimerange'].includes(data.type)"
>
<el-switch v-model="data.unlinkPanels"></el-switch> <el-switch v-model="data.unlinkPanels"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="是否禁用"> <el-form-item label="是否禁用">
...@@ -49,40 +55,113 @@ ...@@ -49,40 +55,113 @@
</el-form-item> </el-form-item>
<el-form-item label="是否必填"> <el-form-item label="是否必填">
<el-switch v-model="data.required"></el-switch> <el-switch v-model="data.required"></el-switch>
<el-input
v-if="data.required"
v-model.lazy="data.pattern"
placeholder="校验方法"
></el-input>
</el-form-item> </el-form-item>
</div> </div>
</template> </template>
<script> <script>
let checkAge = (rule, value, callback) => {
if (!value) {
return callback(new Error(""))
}
let sex = sessionStorage.getItem("addSex")
let survey_time = sessionStorage.getItem("survey_time")
let birthday = sessionStorage.getItem("birthday")
if (!sex || !survey_time || !birthday) {
return
}
birthday = new Date(birthday.replace(/-/g, "/"))
let d = new Date(survey_time.replace(/-/g, "/"))
let age =
d.getFullYear() -
birthday.getFullYear() -
(d.getMonth() < birthday.getMonth() ||
(d.getMonth() == birthday.getMonth() && d.getDate() < birthday.getDate())
? 1
: 0)
console.log(sex)
if (sex == 1) {
if (age < 40 || age > 79) {
callback(new Error("年龄不符合筛查条件"))
} else {
callback()
}
} else {
if (age < 50 || age > 79) {
callback(new Error("年龄不符合筛查条件"))
} else {
callback()
}
}
}
export default { export default {
name: "config-date", name: "config-date",
props: ['data'], props: ["data"],
data() { data() {
return { return {
validator: { validator: {
type: null, type: null,
required: null, required: null,
pattern: null, pattern: null,
length: null length: null,
} },
} }
}, },
methods: { methods: {
generateRule() { generateRule() {
const rules = []; const rules = []
Object.keys(this.validator).forEach(key => { Object.keys(this.validator).forEach((key) => {
if (this.validator[key]) rules.push(this.validator[key]) if (this.validator[key]) rules.push(this.validator[key])
}) })
this.data.rules = rules this.data.rules = rules
console.log(this.data.rules)
},
// 在表单配置中增加checkAge字段,可以增加校验年龄的方法
ageRule() {
// const rules = []
// Object.keys(this.validator).forEach((key) => {
// if (this.validator[key]) rules.push(this.validator[key])
// })
// this.data.rules = rules
let i = this.data.rules.findIndex((e) => e.trigger)
if (i == -1) {
i = 1
}
this.data.rules[i] = { validator: checkAge, trigger: "change" }
console.log(this.data.rules)
}, },
}, },
watch: { watch: {
'data.required': function (val) { "data.required": function (val) {
if (val) this.validator.required = { required: true, message: `${this.data.label}必须填写` } if (val) {
else this.validator.required = null this.validator.required = {
required: true,
message: `${this.data.label}必须填写`,
}
} else {
this.validator.required = null
}
this.generateRule() this.generateRule()
},
"data.pattern": function (val) {
if (val) {
// console.log(val)
if (val == "checkAge") {
this.ageRule()
} }
} else {
this.validator.pattern = null
} }
// delete this.data.pattern
// this.generateRule()
},
},
} }
</script> </script>
...@@ -35,6 +35,9 @@ ...@@ -35,6 +35,9 @@
<el-form-item label="是否只读"> <el-form-item label="是否只读">
<el-switch v-model="data.readonly"></el-switch> <el-switch v-model="data.readonly"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="是否禁用">
<el-switch v-model="data.disabled"></el-switch>
</el-form-item>
<el-form-item label="是否可见"> <el-form-item label="是否可见">
<el-switch v-model="data.display"></el-switch> <el-switch v-model="data.display"></el-switch>
</el-form-item> </el-form-item>
...@@ -50,6 +53,18 @@ ...@@ -50,6 +53,18 @@
</template> </template>
<script> <script>
let checkTel = (rule, value, callback) => {
if (!value) {
return callback(new Error("请输入手机号"))
}
const reg = /^1[3,4,5,6,7,8,9][0-9]{9}$/
reg.test(value)
if (!reg.test(value)) {
callback(new Error("请输入正确的手机号"))
} else {
callback()
}
}
export default { export default {
name: "config-input", name: "config-input",
props: ["data"], props: ["data"],
...@@ -71,6 +86,9 @@ export default { ...@@ -71,6 +86,9 @@ export default {
}) })
this.data.rules = rules this.data.rules = rules
}, },
telRule() {
this.data.rules[1] = { validator: checkTel, trigger: "blur" }
},
}, },
watch: { watch: {
"data.required": function (val) { "data.required": function (val) {
...@@ -78,21 +96,28 @@ export default { ...@@ -78,21 +96,28 @@ export default {
this.validator.required = { this.validator.required = {
required: true, required: true,
message: `${this.data.label}必须填写`, message: `${this.data.label}必须填写`,
trigger: "blur",
} }
else this.validator.required = null else this.validator.required = null
this.generateRule() this.generateRule()
}, },
"data.pattern": function (val) { "data.pattern": function (val) {
if (val) if (val) {
if (val == "checkTel") {
this.telRule()
} else {
this.validator.pattern = { this.validator.pattern = {
pattern: new RegExp(val), pattern: new RegExp(val),
message: `${this.data.label}格式不匹配`, message: `${this.data.label}格式不匹配`,
} }
else this.validator.pattern = null
// delete this.data.pattern
this.generateRule() this.generateRule()
}
} else {
this.validator.pattern = null
this.generateRule()
}
// delete this.data.pattern
}, },
}, },
} }
......
...@@ -97,6 +97,7 @@ export default { ...@@ -97,6 +97,7 @@ export default {
this.validator.required = { this.validator.required = {
required: true, required: true,
message: `${this.data.label}必须填写`, message: `${this.data.label}必须填写`,
trigger: "blur",
} }
else this.validator.required = null else this.validator.required = null
......
<template> <template>
<div> <div>
<el-form-item v-if="data.type == 'select'" label="占位内容"> <el-form-item v-if="data.type == 'select'" label="占位内容">
<el-input <el-input
v-model="data.placeholder" v-model="data.placeholder"
...@@ -235,6 +234,9 @@ ...@@ -235,6 +234,9 @@
<el-form-item label="是否必填"> <el-form-item label="是否必填">
<el-switch v-model="data.required"></el-switch> <el-switch v-model="data.required"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="必填提示文本">
<el-input v-model="data.pattern"></el-input>
</el-form-item>
</div> </div>
</template> </template>
...@@ -315,7 +317,16 @@ export default { ...@@ -315,7 +317,16 @@ export default {
this.generateRule() this.generateRule()
}, },
"data.pattern": function (val) {
if (val)
this.validator.required = {
required: true,
message: val,
}
else this.validator.required = null
this.generateRule()
},
}, },
} }
</script> </script>
...@@ -266,7 +266,7 @@ export default { ...@@ -266,7 +266,7 @@ export default {
if (val) if (val)
this.validator.required = { this.validator.required = {
required: true, required: true,
message: `${this.data.label}必须填写`, message: `请上传${this.data.label}`,
} }
else this.validator.required = null else this.validator.required = null
......
...@@ -4,12 +4,12 @@ module.exports = { ...@@ -4,12 +4,12 @@ module.exports = {
useTabs: false, useTabs: false,
semi: false, semi: false,
singleQuote: false, singleQuote: false,
quoteProps: 'as-needed', quoteProps: "as-needed",
jsxSingleQuote: false, jsxSingleQuote: false,
trailingComma: 'es5', trailingComma: "es5",
bracketSpacing: true, bracketSpacing: true,
jsxBracketSameLine: false, jsxBracketSameLine: false,
arrowParens: 'always', arrowParens: "always",
vueIndentScriptAndStyle: false, vueIndentScriptAndStyle: false,
endOfLine: 'lf', endOfLine: "auto",
} }
...@@ -18,6 +18,9 @@ export default { ...@@ -18,6 +18,9 @@ export default {
} }
#vue-admin-beautiful { #vue-admin-beautiful {
height: 100vh;
min-width: 1400px;
overflow: auto;
margin-right: calc(100% - 100vw); margin-right: calc(100% - 100vw);
} }
</style> </style>
import request from "@/utils/request"
/* 首页 */
export function addMedicalunion(data = {}) {
return request({
url: "/cloud-upms/sys/union/addOrUpdate",
method: "post",
data,
})
}
// 医联体授权
export function baseUnion(data = {}) {
return request({
url: "/cloud-upms/user/base/union",
method: "post",
data,
})
}
// 累计上报
export function getRankTotal(params = {}) {
return request({
url: "/disease-data/rank/total",
method: "get",
params,
})
}
//当前季度
export function getCurrentQuarter(params = {}) {
return request({
url: "/disease-data/rank/currentQuarter",
method: "get",
params,
})
}
export function deleteUnion(id) {
return request({
url: `/cloud-upms/sys/union/${id}`,
method: "delete",
})
}
...@@ -341,7 +341,7 @@ export function getQualityDetail(patientId) { ...@@ -341,7 +341,7 @@ export function getQualityDetail(patientId) {
// 协作组参数配置新增/修改 // 协作组参数配置新增/修改
export function setParamConfig(data) { export function setParamConfig(data) {
return request({ return request({
url: `/disease-data/sys/paramConfig/addOrUpdate`, url: `/disease-data/param/config`,
method: "post", method: "post",
data, data,
}) })
...@@ -350,7 +350,7 @@ export function setParamConfig(data) { ...@@ -350,7 +350,7 @@ export function setParamConfig(data) {
// 协作组参数配置列表 // 协作组参数配置列表
export function getParamConfigList(params) { export function getParamConfigList(params) {
return request({ return request({
url: `/disease-data/sys/paramConfig/list`, url: `/disease-data/param/config/page`,
method: "get", method: "get",
params, params,
}) })
...@@ -359,7 +359,7 @@ export function getParamConfigList(params) { ...@@ -359,7 +359,7 @@ export function getParamConfigList(params) {
// 删除配置 // 删除配置
export function delParamConfig(id) { export function delParamConfig(id) {
return request({ return request({
url: `/disease-data/sys/paramConfig/${id}`, url: `/disease-data/param/config?id=${id}`,
method: "delete", method: "delete",
}) })
} }
import request from "@/utils/request"
import { add } from "lodash"
/* 数据库管理 */
export function getDbPage(params = {}) {
return request({
url: "/cloud-upms/sys/db/info/page",
method: "get",
params,
})
}
export function getDbList(params = {}) {
return request({
url: "/cloud-upms/sys/db/info/list",
method: "get",
params,
})
}
export function addDb(data = {}) {
return request({
url: "/cloud-upms/sys/db/info",
method: "post",
data,
})
}
// 测试连接
export function testDb(data = {}) {
return request({
url: "/cloud-upms/sys/db/info/test/connection",
method: "post",
data,
})
}
// 根据数据库id 查数据表
export function getTableList(id) {
return request({
url: `/cloud-upms/sys/table/list?dbId=${id}`,
method: "get",
})
}
// 新增数据表
export function addDbTable(data = {}) {
return request({
url: "/cloud-upms/sys/table",
method: "post",
data,
})
}
import request from "@/utils/request"
/* 数据概览 */
// 累计上报
export function getPatientPage(params = {}) {
return request({
url: "/disease-data/data/report/page",
method: "get",
params,
})
}
// 数据概览总计
export function getReportCount(params = {}) {
return request({
url: "/disease-data/data/report/count",
method: "get",
params,
})
}
// 审核质控-筛查总计
export function getScreeningTotal(params = {}) {
return request({
url: "disease-data/dataCheck/screening/total",
method: "get",
params,
})
}
// 审核质控-随访总计
export function getFollowTotal(params = {}) {
return request({
url: "disease-data/dataCheck/follow/total",
method: "get",
params,
})
}
...@@ -12,6 +12,7 @@ export function getFieldPage(params = {}) { ...@@ -12,6 +12,7 @@ export function getFieldPage(params = {}) {
params, params,
}) })
} }
export function delField(id) { export function delField(id) {
return request({ return request({
url: `/cloud-upms/field/dict/${id}`, url: `/cloud-upms/field/dict/${id}`,
...@@ -84,7 +85,7 @@ export function copyForm(data = {}) { ...@@ -84,7 +85,7 @@ export function copyForm(data = {}) {
// 获取 // 获取
export function getFormDetail(id) { export function getFormDetail(id) {
return request({ return request({
url: `/cloud-upms//org/form/${id}`, url: `/cloud-upms/org/form/${id}`,
method: "get", method: "get",
}) })
} }
......
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({
url: "/disease-data/follow/survey",
method: "get",
params,
})
}
///////////////审核质控/////////////////////
//随访已审核列表
export function getFollowCheck(params = {}) {
return request({
url: "/disease-data/dataCheck/follow/check",
method: "get",
params,
})
}
//随访待审核列表
export function getFollowUncheck(params = {}) {
return request({
url: "/disease-data/dataCheck/follow/unCheck",
method: "get",
params,
})
}
//随访病例待审核(详情数据)
export function getFollowUnCheckDetail(id) {
return request({
url: `/disease-data/dataCheck/follow/unCheck/detail/${id}`,
method: "get",
})
}
//随访病例审核
export function putFollowCheck(data = {}) {
return request({
url: "/disease-data/dataCheck/follow/uncheck",
method: "put",
data,
})
}
//修改随访审核意见
export function putFollowCheckAdvice(data = {}) {
return request({
url: "/disease-data/dataCheck/follow/check/advice",
method: "put",
data,
})
}
// 随访查询详情list
export function getFollowRecord(params = {}) {
return request({
url: "/disease-data/follow/search/detail",
method: "get",
params,
})
}
import request from "@/utils/request"
/* 数据库管理 */
export function addMedicalunion(data = {}) {
return request({
url: "/cloud-upms/sys/union/addOrUpdate",
method: "post",
data,
})
}
// 医联体授权
export function baseUnion(data = {}) {
return request({
url: "/cloud-upms/user/base/union",
method: "post",
data,
})
}
export function medicalunionList(params = {}) {
return request({
url: "/cloud-upms/sys/union/list",
method: "get",
params,
})
}
// 添加标准获取医联体
export function getMedicalunionList(params = {}) {
return request({
url: "/cloud-upms/sys/union/select",
method: "get",
params,
})
}
export function deleteUnion(id) {
return request({
url: `/cloud-upms/sys/union/${id}`,
method: "delete",
})
}
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
import request from "@/utils/request"
/* 数据库管理 */
export function addArticle(data = {}) {
return request({
url: "/cloud-upms/sys/article/addOrUpdate",
method: "post",
data,
})
}
// 获取列表
export function articleList(params = {}) {
return request({
url: "/cloud-upms/sys/article/list",
method: "get",
params,
})
}
// 启用禁用状态
export function articleEnable(params = {}) {
return request({
url: "/cloud-upms/sys/article/enable",
method: "get",
params,
})
}
// 删除文章
export function deleteArticle(id) {
return request({
url: `/cloud-upms/sys/article/${id}`,
method: "delete",
})
}
import request from "@/utils/request"
/* 患者数据 */
export function getPatientPage(params = {}) {
let url = "/disease-data/data/patient/page?"
let keys = Object.keys(params)
for (let key of keys) {
url += `${encodeURIComponent(key)}=${params[key]}&`
}
url = url.substring(0, url.length - 1)
return request({
url: url,
method: "get",
})
}
// 随访分页
export function getPatientFollowPage(params = {}) {
let url = "/disease-data/data/patient/follow/page?"
let keys = Object.keys(params)
for (let key of keys) {
url += `${encodeURIComponent(key)}=${params[key]}&`
}
url = url.substring(0, url.length - 1)
return request({
url: url,
method: "get",
})
}
export function delPatient(id) {
return request({
url: `/cloud-upms/sys/menu/${id}`,
method: "delete",
})
}
// 填报
export function addPatient(data = {}, type = "") {
return request({
url: `/disease-data/data/patient/${type}`,
method: "post",
data,
})
}
// 随访录入
export function addFollowPatient(data = {}, type = "") {
return request({
url: `/disease-data/data/patient/follow/${type}`,
method: "post",
data,
})
}
// 删除草稿
export function deletePatient(data) {
return request({
url: `/disease-data/data/patient/${data}`,
method: "delete",
})
}
/* 患者数据详情 */
export function getPatientDetail(params = {}) {
return request({
url: "/disease-data/data/patient/info",
method: "get",
params,
})
}
/* 随访患者数据详情 */
export function getFollowDetail(params = {}) {
return request({
url: "/disease-data/data/patient/follow/info",
method: "get",
params,
})
}
/* 获取表单填报记录list*/
export function getRecordList(params = {}) {
return request({
url: "/disease-data/data/patient/form/record/list",
method: "get",
params,
})
}
// 患者质控列表 分页查询
export function getQcPage(params = {}) {
return request({
url: "/disease-data/data/qc/page",
method: "get",
params,
})
}
// 质控
export function qcPatient(data = {}, type = "") {
return request({
url: `/disease-data/data/qc`,
method: "post",
data,
})
}
// 获取九院口腔癌患者信息(同屏对照使用)
export function getJYpatientInfo(params = {}) {
return request({
url: "/jiuyuan-gather/patient/kqa/info",
method: "get",
params,
})
}
// 获取九院口腔癌随访表(同屏对照使用)
export function getJYFollowInfo(params = {}) {
return request({
url: "/jiuyuan-gather/patient/kqa/follow/info",
method: "get",
params,
})
}
// 获取同济口腔 牙周病(yzb) | 口腔癌(kqa) 患者信息(同屏对照使用)
export function getTJpatientInfo(params = {}, diseases = "yzb") {
return request({
url: `/tjkq-gather/patient/${diseases}/info`,
method: "get",
params,
})
}
// 获取九院牙周炎患者信息(同屏对照使用)
export function getJYyzyPatientInfo(params = {}) {
return request({
url: "/jiuyuan-gather/patient/yzy/info",
method: "get",
params,
})
}
// 获取急性胰腺炎患者信息/检查信息/术治疗(同屏对照使用)
export function getJxyzyPatientInfo(type, params = {}) {
return request({
url: `/changhai-gather/patient/${type}/info`,
method: "get",
params,
})
}
// 获取中山医院病历/检查信息/治疗(同屏对照使用)
export function getZsyzyPatientInfo(params = {}) {
return request({
url: "/zsyzy-gather/patient/yzb/info",
method: "get",
params,
})
}
// 急性胰腺炎-评分表
// 评分表新增修改
export function saveApScore(data = {}) {
return request({
url: `disease-data/ap/score`,
method: "post",
data,
})
}
// 根据patientId查询评分表数据
export function getApScore(patientId) {
return request({
url: `/disease-data/ap/score/list?patientId=${patientId}`,
method: "get",
})
}
// 根据patientId+type查询(评分趋势图用)
export function getApScoreTypeList(params = {}) {
return request({
url: "disease-data/ap/score/type/list",
method: "get",
params,
})
}
// 根据patientId, scoreId查询detailList
export function getApScoreDetailList(params = {}) {
return request({
url: "/disease-data/ap/score/detail/list",
method: "get",
params,
})
}
// 获取随访计划右侧列表
export function getFollowList(params = {}) {
return request({
url: "/disease-data/data/patient/log/list",
method: "get",
params,
})
}
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,
})
}
import request from "@/utils/request"
/* 总体数据 */
export function screenOverview(params = {}) {
return request({
url: "/disease-data/data/screen/overview",
method: "get",
params,
})
}
// 医联体地图
export function unionList(params = {}) {
return request({
url: "/disease-data/data/screen/union",
method: "get",
params,
})
}
//近六个月上报量
export function sixMonthList(params = {}) {
return request({
url: "/disease-data/data/screen/union/sixMonth",
method: "get",
params,
})
}
//性别分布
export function genderCount(params = {}) {
return request({
url: "/disease-data/data/screen/genderCount",
method: "get",
params,
})
}
//年龄段分布
export function ageCount(params = {}) {
return request({
url: "/disease-data/data/screen/ageCount",
method: "get",
params,
})
}
//风险分布
export function riskCount(params = {}) {
return request({
url: "/disease-data/data/screen/riskCount",
method: "get",
params,
})
}
//应答情况
export function checkCondition(params = {}) {
return request({
url: "/disease-data/data/screen/checkCondition",
method: "get",
params,
})
}
// 良性疾病
export function esophagusBenign(params = {}) {
return request({
url: "/disease-data/data/screen/esophagus/benign",
method: "get",
params,
})
}
// 良性疾病
export function gastricBenign(params = {}) {
return request({
url: "/disease-data/data/screen/gastric/benign",
method: "get",
params,
})
}
// 胃癌内镜检出率
export function cancerFound(params = {}) {
return request({
url: "/disease-data/data/screen/gastric/cancer",
method: "get",
params,
})
}
// 早癌占比
export function earlyGastric(params = {}) {
return request({
url: "/disease-data/data/screen/earlyGastric/cancer",
method: "get",
params,
})
}
import request from "@/utils/request"
/**
* 筛查审核
*
* */
///////////////筛查质控/////////////////////
//筛查已审核列表
export function getScreeningCheck(params = {}) {
return request({
url: "/disease-data/dataCheck/screening/check",
method: "get",
params,
})
}
//筛查待审核列表
export function getScreeningUncheck(params = {}) {
return request({
url: "/disease-data/dataCheck/screening/unCheck",
method: "get",
params,
})
}
//筛查病例待审核(用户)
export function getScreeningUser(id) {
return request({
url: `/disease-data/dataCheck/screening/unCheck/detail/${id}`,
method: "get",
})
}
//筛查病例审核
export function putScreeningCheck(data = {}) {
return request({
url: "/disease-data/dataCheck/screening/uncheck",
method: "put",
data,
})
}
// 获取意见标签
export function getSysCheckNote() {
return request({
url: "/disease-data/sysCheckNote",
method: "get",
})
}
// 删除意见标签
export function saveSysCheckNote(data = {}) {
return request({
url: "/disease-data/sysCheckNote",
method: "post",
data,
})
}
//修改筛查病例审核意见
export function putScreeningCheckAdvice(data = {}) {
return request({
url: "/disease-data/dataCheck/screening/check/advice",
method: "put",
data,
})
}
...@@ -141,25 +141,21 @@ export function ssoLogin(token) { ...@@ -141,25 +141,21 @@ export function ssoLogin(token) {
}) })
} }
//异常反馈 //异常反馈
export function getAbnormalList(params) { export function getAbnormalList(params) {
return request({ return request({
url: `/disease-data/sys/message/exception/feedBack/select/all/msg`, url: `/disease-data/sys/message/exception/feedBack/select/all/msg`,
method: "get", method: "get",
params params,
}) })
} }
// 修改系统信息-点击单条消息(进行已读操作) // 修改系统信息-点击单条消息(进行已读操作)
export function setAbnormalStatus(params) { export function setAbnormalStatus(params) {
return request({ return request({
url: `/disease-data/sys/message/exception/feedBack/do/read`, url: `/disease-data/sys/message/exception/feedBack/do/read`,
method: "get", method: "get",
params params,
}) })
} }
...@@ -171,3 +167,42 @@ export function getFeedBackNumber(id) { ...@@ -171,3 +167,42 @@ export function getFeedBackNumber(id) {
}) })
} }
// 获取B端日志
export function getLogPage(params = {}) {
return request({
url: "/cloud-upms/sys/log/page",
method: "get",
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,
})
}
// 设置已读消息
export function setReadMessege(id) {
return request({
url: `/disease-data/sys/message/read`,
method: "put",
})
}
This diff is collapsed.
This diff is collapsed.
@charset "UTF-8";
/*针对英文单词,强制让单词换行,break-word不拆分单词, break-all拆分单词*/
* {
word-wrap: break-word; /*word-break: break-all;*/
}
html {
//font-size: calc(100vw / 7.5); /*1rem = 100px*/
}
body {
font-family: "Helvetica", "Tahoma", "Arial", "PingFang SC", "Microsoft Yahei",
"SimSun", "SimHei", "sans-serif";
color: #666;
background: #fff;
font-size: 14px;
}
.break-all {
word-break: break-all;
}
/*对齐方式*/
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
/*图片居左、右、中*/
.img-left {
display: inline;
float: left;
}
.img-right {
display: inline;
float: right;
}
.img-center {
clear: both;
display: block;
margin: auto;
}
/*父容器要清除浮动*/
/*隐藏文字*/
.text-indent {
text-indent: -9999em;
}
.seo-text {
font-size: 0;
line-height: 0;
overflow: hidden;
}
/*图片控制尺寸*/
.img-overflow {
width: 100%;
height: 100%;
overflow: hidden;
}
/*img自适应*/
.img-responsive {
max-width: 100%;
height: auto;
display: block;
}
img {
border: none;
}
/*清除浮动*/
.fl {
float: left;
_display: inline;
*zoom: 1;
}
.fr {
float: right;
_display: inline;
*zoom: 1;
}
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both;
}
/*外边距px*/
.margin-auto {
margin-left: auto;
margin-right: auto;
}
.mb30 {
margin-bottom: 30px;
}
/*字体加粗*/
.bold {
font-weight: bold;
}
/*1行显示省略号*/
.ellipsis {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
}
/*默认2行显示省略号 只适用于webkit内核*/
.ellipses-line2 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.ellipses-line4 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
/*placeholder重置字体颜色*/
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
color: #999 !important;
font-size: 12px;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
color: #999 !important;
font-size: 12px;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
color: #999 !important;
font-size: 12px;
}
// 美化滚动条
::-webkit-scrollbar-track-piece {
background-color: #fff;
-webkit-border-radius: 0;
opacity: 0.5;
}
::-webkit-scrollbar {
width: 6px;
height: 10px;
}
::-webkit-scrollbar-thumb {
height: 30px;
background-color: #b8b8b8;
-webkit-border-radius: 6px;
outline: 1px solid transparent;
outline-offset: -2px;
border: 1px solid transparent;
filter: alpha(opacity = 30);
-moz-opacity: .5;
opacity: .5;
}
::-webkit-scrollbar-thumb:hover {
height: 30px;
background-color: #878987;
-webkit-border-radius: 6px;
}
/*隐藏*/
.hidden {
display: none;
}
.visible {
display: block;
}
/*将dcss容器里的所有元素设为默认值*/
.dcss html,
.dcss address,
.dcss blockquote,
.dcss body,
.dcss dd,
.dcss div,
.dcss dl,
.dcss dt,
.dcss fieldset,
.dcss form,
.dcss frame,
.dcss frameset,
.dcss h1,
.dcss h2,
.dcss h3,
.dcss h4,
.dcss h5,
.dcss h6,
.dcss noframes,
.dcss ol,
.dcss p,
.dcss ul,
.dcss center,
.dcss dir,
.dcss hr,
.dcss menu,
.dcss pre {
display: block;
}
.dcss li {
display: list-item;
}
.dcss head {
display: none;
}
.dcss table {
display: table;
}
.dcss tr {
display: table-row;
}
.dcss thead {
display: table-header-group;
}
.dcss tbody {
display: table-row-group;
}
.dcss tfoot {
display: table-footer-group;
}
.dcss col {
display: table-column;
}
.dcss colgroup {
display: table-column-group;
}
.dcss td,
.dcss th {
display: table-cell;
}
.dcss caption {
display: table-caption;
}
.dcss th {
font-weight: bolder;
text-align: center;
}
.dcss caption {
text-align: center;
}
.dcss body {
margin: 8px;
line-height: 1.12;
}
.dcss h1 {
font-size: 2em;
margin: 0.67em 0;
line-height: 1.5em;
}
.dcss h2 {
font-size: 1.5em;
margin: 0.75em 0;
line-height: 1.5em;
}
.dcss h3 {
font-size: 1.17em;
margin: 0.83em 0;
line-height: 1.5em;
}
.dcss h4 {
font-size: 1.09em;
margin: 1.12em 0;
line-height: 1.5em;
}
.dcss h4,
.dcss p,
.dcss blockquote,
.dcss ul,
.dcss fieldset,
.dcss form,
.dcss ol,
.dcss dl,
.dcss dir,
.dcss menu {
margin: 1.12em 0;
}
.dcss h5 {
font-size: 0.83em;
margin: 1.5em 0;
line-height: 1.5em;
}
.dcss h6 {
font-size: 0.75em;
margin: 1.67em 0;
line-height: 1.5em;
}
.dcss h1,
.dcss h2,
.dcss h3,
.dcss h4,
.dcss h5,
.dcss h6,
.dcss b,
.dcss strong {
font-weight: bolder;
}
.dcss blockquote {
margin-left: 40px;
margin-right: 40px;
}
.dcss i,
.dcss cite,
.dcss em,
.dcss var,
.dcss address {
font-style: italic;
}
.dcss pre,
.dcss tt,
.dcss code,
.dcss kbd,
.dcss samp {
font-family: monospace;
}
.dcss pre {
white-space: pre;
}
.dcss button,
.dcss textarea,
.dcss input,
.dcss object,
.dcss select {
display: inline-block;
}
.dcss big {
font-size: 1.17em;
}
.dcss small,
.dcss sub,
.dcss sup {
font-size: 0.83em;
}
.dcss sub {
vertical-align: sub;
}
.dcss sup {
vertical-align: super;
}
.dcss table {
border-spacing: 2px;
}
.dcss thead,
.dcss tbody,
.dcss tfoot {
vertical-align: middle;
}
.dcss td,
.dcss th {
vertical-align: inherit;
}
.dcss s,
.dcss strike,
.dcss del {
text-decoration: line-through;
}
.dcss hr {
border: 1px inset;
}
.dcss ol,
.dcss ul,
.dcss dir,
.dcss menu,
.dcss dd {
margin-left: 40px;
}
.dcss ol,
.dcss ul,
.dcss li {
list-style-type: decimal;
}
.dcss ol ul,
.dcss ul ol,
.dcss ul ul,
.dcss ol ol {
margin-top: 0;
margin-bottom: 0;
}
.dcss u,
.dcss ins {
text-decoration: underline;
}
.dcss br:before {
content: "A";
}
.dcss :before,
.dcss :after {
white-space: pre-line;
}
.dcss center {
text-align: center;
}
.dcss abbr,
.dcss acronym {
font-variant: small-caps;
letter-spacing: 0.1em;
}
.dcss :link,
.dcss :visited {
text-decoration: underline;
}
.dcss :focus {
outline: thin dotted invert;
}
.dcss BDO[DIR="ltr"] {
direction: ltr;
unicode-bidi: bidi-override;
}
.dcss BDO[DIR="rtl"] {
direction: rtl;
unicode-bidi: bidi-override;
}
.dcss *[DIR="ltr"] {
direction: ltr;
unicode-bidi: embed;
}
.dcss *[DIR="rtl"] {
direction: rtl;
unicode-bidi: embed;
}
@media print {
.dcss h1 {
page-break-before: always;
}
.dcss h1,
.dcss h2,
.dcss h3,
.dcss h4,
.dcss h5,
.dcss h6 {
page-break-after: avoid;
}
.dcss ul,
.dcss ol,
.dcss dl {
page-break-before: avoid;
}
}
//间距
$size-map: (
-2: -2px,
4: 4px,
5: 5px,
8: 8px,
10: 10px,
12: 12px,
15: 15px,
16: 16px,
20: 20px,
24: 24px,
25: 25px,
30: 30px,
32: 32px,
40: 40px,
50: 50px,
80: 80px,
140: 140px
);
@each $name in map-keys($size-map) {
$value: map-get($size-map, $name);
.mt-#{$name} {
margin-top: $value;
}
.mr-#{$name} {
margin-right: $value;
}
.mb-#{$name} {
margin-bottom: $value;
}
.ml-#{$name} {
margin-left: $value;
}
.margin-#{$name} {
margin: $value;
}
.pt-#{$name} {
padding-top: $value !important;
}
.pr-#{$name} {
padding-right: $value;
}
.pb-#{$name} {
padding-bottom: $value;
}
.pl-#{$name} {
padding-left: $value;
}
.pd-#{$name} {
padding: $value;
}
}
//字号
$font-map: (
10: 10px,
11: 11px,
14: 14px,
15: 15px,
18: 18px,
20: 20px,
24: 24px,
25: 25px,
30: 30px,
36: 36px,
40: 40px,
50: 50px,
80: 80px,
140: 140px
);
@each $size in map-keys($font-map) {
$value: map-get($font-map, $size);
.font-#{$size} {
font-size: $value;
}
}
.message-pop {
padding: 40px 28px;
box-shadow: 0px 4px 16px 0px rgba(0,0,0,0.3);
border-radius: 8px;
.popper__arrow::after {
display: none;
}
.popper__arrow {
display: none;
}
}
\ No newline at end of file
@charset "UTF-8";
/*防止用户自定义背景颜色对网页的影响,添加让用户可以自定义字体 */
html {
-webkit-text-size-adjust: 100%; /*禁用Webkit内核浏览器的文字大小调整功能,默认是auto;*/
-ms-text-size-adjust: 100%; /*禁用IE内核浏览器的文字大小调整功能,默认是auto;*/
font-family: sans-serif;
-webkit-font-smoothing: antialiased;
height: 100%;
touch-action: manipulation; /*取消移动端click300ms的延迟*/
}
body {
height: 100%;
}
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
}
/*此处增加dt,label针对bootstrap的加粗定义*/
dt,
label {
font-weight: normal;
font-size: 100%;
}
input,
button,
textarea,
select,
optgroup,
option {
font-size: 100%;
font-weight: normal;
outline: none;
}
h1,h2,h3,h4,h5{
padding: 0;
margin: 0;
font-weight: normal;
}
input,
button,
textarea {
-webkit-appearance: none;
}
/*去除ios按钮内阴影、圆角,对单选框、复选框有影响*/
input[type="checkbox"] {
-webkit-appearance: checkbox;
}
input[type="radio"] {
-webkit-appearance: radio;
}
input::-webkit-input-safebox-button {
display: none;
}
/*解决搜狗浏览器密码框自带安全键盘*/
input:focus,
textarea:focus {
outline: none;
}
th,
td,
button,
input,
select,
textarea {
-webkit-font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
}
/*页面的字体抗锯齿,字体会更清晰圆滑*/
textarea {
resize: none;
border: 1px solid #ddd;
padding: 5px;
width: 100%;
border-radius: 0;
}
address, caption, cite, code, dfn, th, var, /*em,*/ i {
font-style: normal;
font-weight: normal;
}
sub,
sup {
vertical-align: baseline;
}
button {
overflow: visible;
vertical-align: middle;
outline: none;
height: auto;
}
/*去掉列表标签的默认样式*/
ul,
ol,
li {
list-style-type: none;
}
/*重置table样式*/
table {
border-collapse: collapse;
border-spacing: 0; /*table-layout: fixed;*/
}
/*table-layout: fixed; 表格布局尺寸固定(默认等分表格),表格的宽度不再由单元格的内容多少而决定,可自定义宽度(给th,td不起作用)*/
/*border-collapse: separate(独立边框); border-spacing:20px 20px(边框单元格间距离);*/
button {
cursor: pointer;
}
fieldset,
img {
border: 0;
}
/*a链接*/
a {
outline: none;
text-decoration: none;
color: #848484;
cursor: pointer;
}
a:focus {
outline: none;
text-decoration: none;
color: inherit;
}
a:hover {
outline: none;
color: #157df1;
text-decoration: none;
}
input::-webkit-inner-spin-button {
display: none;
}
@charset "utf-8";
// 全局
@import "reset";
@import "base";
//@import "reset-iview";
@import "index";
@function bvw($vw) {
@return $vw / 1440 * 100vw;
}
@function bvh($vh) {
@return $vh / 1024 * 100vh;
}
\ No newline at end of file
@charset "utf-8";
// 通用 全局
<template>
<el-row class="el-table-self">
<el-table
ref="selftab"
v-loading="listLoading"
:max-height="maxHeight || maxTableHeight"
:height="tableHeight"
:data="tableData"
:summary-method="getSummaries"
:show-summary="showSummary"
:show-overflow-tooltip="true"
:highlight-current-row="highLight"
:header-row-class-name="headerClass"
style="width: 100%"
>
<el-table-column
v-if="showIndex"
type="index"
width="120"
label="序号"
></el-table-column>
<template v-for="(column, index) in columns">
<template v-if="!column.type && !column.operType">
<el-table-column
:key="column.value"
:show-overflow-tooltip="true"
:fixed="column.fixed"
:prop="column.value"
:label="column.label"
:width="column.width"
:min-width="column.minWidth"
align="center"
:sortable="column.sortable"
:formatter="column.formatter"
:class-name="column.className"
:label-class-name="column.labelClassName"
>
<!-- 表头插槽 -->
<template slot="header" slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }">{{
column.label
}}</span>
</template>
<!-- 表内容插槽 -->
<template slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }">
<span>{{ scope.row[column.value] || "--" }}</span>
</span>
</template>
</el-table-column>
</template>
<template v-else>
<el-table-column
:key="index"
:show-overflow-tooltip="column.type === 'img' ? false : true"
:fixed="column.fixed"
:prop="column.value"
:label="column.label"
:sortable="column.sortable"
:width="column.width"
:min-width="column.minWidth"
align="center"
>
<!-- 表头插槽 -->
<template slot="header" slot-scope="scope">
<span :style="{ fontSize: fontSize + 'px' }">
{{ column.label }}
</span>
</template>
<!-- 表内容插槽 -->
<template slot-scope="scope">
<!-- 按钮 -->
<template
v-if="column.type === 'button' || column.operType === 'button'"
>
<!-- 按钮数组 -->
<template v-for="(op, opIndex) in column.operations">
<el-button
:key="opIndex"
:disabled="
op.formatter ? op.formatter(scope.row).disabled : false
"
:style="[{ fontSize: fontSize + 'px' }, op.style]"
:type="
op.formatter
? op.formatter(scope.row).type
: op.type || ''
"
:icon="op.icon"
@click="op.func(scope.row, scope.$index)"
>
{{
op.formatter
? op.formatter(scope.row).label
: op.label
? op.label
: scope.row[column.value]
}}
</el-button>
</template>
</template>
<!-- 图片 -->
<template v-if="column.type === 'img'">
<el-image
style="width: 100px; height: 100px"
:src="
scope.row[column.value]
? 'https://ds.cixincloud.com/geca-api' +
'/disease-data/file/info/' +
scope.row[column.value][0].bucketName +
'/' +
scope.row[column.value][0].uuidName
: ''
"
:preview-src-list="[
scope.row[column.value]
? 'https://ds.cixincloud.com/geca-api' +
'/disease-data/file/info/' +
scope.row[column.value][0].bucketName +
'/' +
scope.row[column.value][0].uuidName
: '',
]"
></el-image>
</template>
<!-- 文件 -->
<template v-if="column.type === 'file'">
<span>
{{
scope.row[column.value]
? scope.row[column.value][0].fileName
: ""
}}
</span>
</template>
<!-- html -->
<template v-if="column.type === 'html'">
<div class="highlight" v-html="scope.row[column.value]"></div>
</template>
<!-- switch切换 启用 -->
<template v-if="column.type === 'switch'">
<el-switch
v-model="scope.row[column.value]"
:active-value="1"
:inactive-value="0"
@change="column.func(scope.row, scope.$index)"
></el-switch>
</template>
</template>
</el-table-column>
</template>
</template>
</el-table>
<!-- 分页 -->
<div v-if="pageSize && totalCounts > 0" class="pagination-footer">
<!-- <span class="description">{{ description }}</span> -->
<el-pagination
background
:current-page="currentPage"
:page-sizes="pageSizes"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalCounts"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
</div>
</el-row>
</template>
<script>
import resize from "../TabComponents/resize.js"
import { mapGetters } from "vuex"
export default {
mixins: [resize],
props: {
tableHeight: Number, // 表格的高度
maxHeight: Number, // 表格的最大高度
listLoading: Boolean, // table 加载层
pageSizes: Array, // 决定每页显示的条数[10,15,20,25]
pageSize: Number,
totalCount: [Number, String], // 表格数据总数
currentPage: { type: Number, default: 1 },
highLight: { type: Boolean, default: true },
headerClass: { type: String, default: "default" }, // 头部背景色Class名称,默认default
columns: Array, // 表格列配置数据,{vlaue:对应数据对象中的属性,label:对应的是标题文字,fixed:列是否固定,width:列宽, sortable:是否可排序,formatter:列格式化, className:对应的是列的样式类名}
tableData: Array, // 表格数据
showIndex: { default: false }, // 是否展示索引
getSummaries: Function,
showSummary: { type: Boolean, default: false },
},
data() {
return {
httpPrefix:
process.env.NODE_ENV === "development"
? "/api"
: process.env.VUE_APP_BASE_API,
}
},
computed: {
...mapGetters({
fontSize: "table/fontSize",
}),
totalCounts() {
return this.totalCount - 0
},
},
watch: {},
mounted() {},
methods: {
// 切换页面显示条数
handleSizeChange(val) {
this.$emit("pageSizeChange", val)
},
// 跳转页码
handleCurrentChange(val) {
this.$emit("currentPageChange", val)
},
},
}
</script>
<style lang="scss" scoped>
.el-table__empty-block {
position: relative;
min-height: 60px;
text-align: center;
width: 100%;
height: 100%;
}
.el-table__empty-text {
position: absolute;
left: 50%;
width: 110px;
height: 110px;
top: 50%;
line-height: 220px;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
color: #5e7382;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
::v-deep {
.el-table {
thead {
.newHeader {
height: 60px;
background: #f6f6f6;
}
}
}
}
</style>
...@@ -408,6 +408,7 @@ export default { ...@@ -408,6 +408,7 @@ export default {
} }
::v-deep .el-input-number .el-input__inner { ::v-deep .el-input-number .el-input__inner {
text-align: left;
padding: 0 2px !important; padding: 0 2px !important;
} }
::v-deep .el-input .el-input__inner { ::v-deep .el-input .el-input__inner {
......
...@@ -20,12 +20,12 @@ ...@@ -20,12 +20,12 @@
> >
<el-row> <el-row>
<template v-for="(item, index) in formDataSet"> <template v-for="(item, index) in formDataSet">
<el-col <!-- <el-col
v-if="!item.hidden" v-if="!item.hidden"
:span="item.spanCount ? item.spanCount : countLine" :span="item.spanCount ? item.spanCount : countLine"
:key="item.prop" :key="item.prop"
:class="item.class" :class="item.class"
> > -->
<el-form-item <el-form-item
:key="index" :key="index"
:label="item.label ? `${item.label}:` : ''" :label="item.label ? `${item.label}:` : ''"
...@@ -82,10 +82,7 @@ ...@@ -82,10 +82,7 @@
</el-input> </el-input>
<!-- 数字输入框 --> <!-- 数字输入框 -->
<div <div v-if="item.type === 'number'" style="display: inline-table">
v-if="item.type === 'number'"
style="display: inline-table"
>
<el-input-number <el-input-number
:min="item.min" :min="item.min"
:max="item.max" :max="item.max"
...@@ -146,10 +143,9 @@ ...@@ -146,10 +143,9 @@
:disabled="opt.disabled" :disabled="opt.disabled"
> >
<span style="float: left">{{ opt.label }}</span> <span style="float: left">{{ opt.label }}</span>
<span <span style="float: right; color: #8492a6; font-size: 10px">{{
style="float: right; color: #8492a6; font-size: 10px" opt.description
>{{ opt.description }}</span }}</span>
>
</el-option> </el-option>
</el-select> </el-select>
...@@ -160,11 +156,28 @@ ...@@ -160,11 +156,28 @@
filterable filterable
remote remote
reserve-keyword reserve-keyword
:multiple="item.multiple ? true : false"
:placeholder="item.placeholder" :placeholder="item.placeholder"
:remote-method="item.remoteFunc" :remote-method="item.remoteFunc"
v-el-select-loadmore="loadmore"
@change="item.func ? item.func($event) : {}" @change="item.func ? item.func($event) : {}"
> >
<!--禁用all的条件: value有值,并且值不是all-->
<el-option <el-option
:key="'all'"
label="全部"
value="all"
:disabled="
form[item.prop]
? form[item.prop].length > 0 &&
form[item.prop].indexOf('all') < 0
: false
"
></el-option>
  
<!--禁用非all条件: form[item.prop]为all-->
<el-option
:disabled="form[item.prop] == 'all'"
v-for="(opt, optIndex) in item.opts" v-for="(opt, optIndex) in item.opts"
:key="optIndex" :key="optIndex"
:label="opt.label" :label="opt.label"
...@@ -265,14 +278,14 @@ ...@@ -265,14 +278,14 @@
form[item.prop] form[item.prop]
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> <!-- </el-col> -->
</template> </template>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
<div slot="footer"> <div slot="footer">
<el-button size="medium" v-if="btnCancel" @click="visible = false" <el-button size="medium" v-if="btnCancel" @click="visible = false"
>取消</el-button > </el-button
> >
<el-button <el-button
size="medium" size="medium"
...@@ -281,6 +294,7 @@ ...@@ -281,6 +294,7 @@
@click="handleConfirm" @click="handleConfirm"
>{{ confirmText }}</el-button >{{ confirmText }}</el-button
> >
<slot name="otherButton" :form="form"></slot>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -301,7 +315,7 @@ export default { ...@@ -301,7 +315,7 @@ export default {
props: { props: {
confirmText: { confirmText: {
type: String, type: String,
default: "确认", default: " ",
}, },
appendToBody: { appendToBody: {
type: Boolean, type: Boolean,
...@@ -331,6 +345,7 @@ export default { ...@@ -331,6 +345,7 @@ export default {
type: Boolean, type: Boolean,
default: true, default: true,
}, },
current: Number,
formData: { formData: {
type: Array, type: Array,
}, },
...@@ -349,7 +364,27 @@ export default { ...@@ -349,7 +364,27 @@ export default {
type: Array, type: Array,
}, },
}, },
directives: {
/** 下拉框懒加载 */
"el-select-loadmore": {
bind(el, binding) {
const SELECTWRAP_DOM = el.querySelector(
".el-select-dropdown .el-select-dropdown__wrap"
)
SELECTWRAP_DOM.addEventListener("scroll", function () {
const condition =
this.scrollHeight - this.scrollTop <= this.clientHeight
if (condition) {
binding.value()
}
})
},
},
},
methods: { methods: {
loadmore() {
// this.$emit("loadMore", this.current + 1)
},
open() { open() {
this.visible = true this.visible = true
}, },
...@@ -489,9 +524,6 @@ export default { ...@@ -489,9 +524,6 @@ export default {
text-align: center; text-align: center;
} }
} }
.el-input-group__prepend {
padding: 0;
}
.input-with-input { .input-with-input {
.el-input-group__prepend { .el-input-group__prepend {
background-color: #ffffff; background-color: #ffffff;
...@@ -550,4 +582,8 @@ export default { ...@@ -550,4 +582,8 @@ export default {
.el-autocomplete { .el-autocomplete {
width: 100%; width: 100%;
} }
.el-row {
display: flex;
flex-wrap: wrap;
}
</style> </style>
<template> <template>
<el-row <el-row :gutter="options.gutter" class="form-content">
:gutter="options.gutter"
class="form-content"
:style="{
paddingLeft,
}"
>
<template <template
v-for="(item, columnIndex) in columns.column || columns.children.column" v-for="(item, columnIndex) in columns.column || columns.children.column"
> >
<div <div
v-if="item.type === 'dynamic'" v-if="item.type === 'dynamic'"
v-show="item.display"
:key="columnIndex" :key="columnIndex"
style="width: 100%" style="width: 100%"
v-show="item.display"
class="dynamic-form-container" class="dynamic-form-container"
> >
<el-form-item <el-form-item
:prop="item.prop" :prop="item.prop"
:label-width="'0px'" :label-width="'0px'"
style="display: none" style="display: none"
> ></el-form-item>
</el-form-item>
<div class="dynamic-form-container_lable">{{ item.label }}</div> <div class="dynamic-form-container_lable">{{ item.label }}</div>
<form-dynamic <form-dynamic
v-model="form[item.prop]"
:options="item.children" :options="item.children"
:dynamic-data="item.dynamicData" :dynamic-data="item.dynamicData"
:is-show-important="isShowImportant" :is-show-important="isShowImportant"
v-model="form[item.prop]"
></form-dynamic> ></form-dynamic>
</div> </div>
<div <div
v-else-if="item.type === 'group'" v-else-if="item.type === 'group'"
v-show="item.display"
:key="columnIndex" :key="columnIndex"
style="width: 100%" style="width: 100%"
v-show="item.display"
> >
<el-collapse :value="item.collapse ? item.prop : ''"> <el-collapse :value="item.collapse ? item.prop : ''">
<el-collapse-item <el-collapse-item
...@@ -56,20 +48,19 @@ ...@@ -56,20 +48,19 @@
<div <div
v-else-if="item.type === 'dental-tab'" v-else-if="item.type === 'dental-tab'"
v-show="item.display && isShowIm(item.importantField)"
:key="columnIndex" :key="columnIndex"
style="width: 100%" style="width: 100%"
v-show="item.display && isShowIm(item.importantField)"
> >
<el-form-item <el-form-item
:prop="item.prop" :prop="item.prop"
:label-width="'0px'" :label-width="'0px'"
style="display: none" style="display: none"
> ></el-form-item>
</el-form-item>
<dental-tab-form <dental-tab-form
ref="dental" ref="dental"
:item="item"
v-model="form[item.prop]" v-model="form[item.prop]"
:item="item"
:disabled="options.disabled" :disabled="options.disabled"
@change="handleChange" @change="handleChange"
></dental-tab-form> ></dental-tab-form>
...@@ -77,32 +68,32 @@ ...@@ -77,32 +68,32 @@
<div <div
v-else-if="item.type === 'dental-tab-tj'" v-else-if="item.type === 'dental-tab-tj'"
v-show="item.display && isShowIm(item.importantField)"
:key="columnIndex" :key="columnIndex"
style="width: 100%" style="width: 100%"
v-show="item.display && isShowIm(item.importantField)"
> >
<el-form-item <el-form-item
:prop="item.prop" :prop="item.prop"
:label-width="'0px'" :label-width="'0px'"
style="display: none" style="display: none"
> ></el-form-item>
</el-form-item>
<dental-tab-tj-form <dental-tab-tj-form
ref="dental" ref="dental"
:item="item"
v-model="form[item.prop]" v-model="form[item.prop]"
:item="item"
:disabled="options.disabled" :disabled="options.disabled"
></dental-tab-tj-form> ></dental-tab-tj-form>
</div> </div>
<el-col <el-col
v-else-if="item.type === 'title'" v-else-if="item.type === 'title'"
v-show="item.display"
:key="columnIndex"
class="row12"
:xs="item.xs || 24" :xs="item.xs || 24"
:sm="item.sm || 24" :sm="item.sm || 24"
:md="item.md || 24" :md="item.md || 24"
:lg="item.span || 12" :lg="item.span || 12"
:key="columnIndex"
v-show="item.display"
> >
<div class="form_title" :style="item.styles"> <div class="form_title" :style="item.styles">
<span>{{ item.value }}</span> <span>{{ item.value }}</span>
...@@ -111,19 +102,26 @@ ...@@ -111,19 +102,26 @@
<el-col <el-col
v-else v-else
v-show="item.display && isShowIm(item.importantField)"
:key="columnIndex"
class="row24"
:xs="item.xs || 24" :xs="item.xs || 24"
:sm="item.sm || 24" :sm="item.sm || 24"
:md="item.md || 24" :md="item.md || 24"
:lg="item.lg || item.span || 12" :lg="item.lg || item.span || 12"
:xl="item.span || 12" :xl="item.span || 12"
:key="columnIndex"
v-show="item.display && isShowIm(item.importantField)"
> >
<form-item-self <form-item-self
ref="formSelf"
:form="form" :form="form"
:column-index="columnIndex"
:item="item" :item="item"
:columns="columns.column || columns.children.column" :columns="columns.column || columns.children.column"
:group="options.group" :group="options.group"
:active-name="activeName"
@formChange="formChange"
@validateForm="validateForm"
@validUpload="validUpload"
></form-item-self> ></form-item-self>
</el-col> </el-col>
</template> </template>
...@@ -144,6 +142,7 @@ export default { ...@@ -144,6 +142,7 @@ export default {
components: { FormItemSelf, FormDynamic, DentalTabForm, DentalTabTjForm }, components: { FormItemSelf, FormDynamic, DentalTabForm, DentalTabTjForm },
props: { props: {
activeName: { type: String },
form: { form: {
type: Object, type: Object,
default: () => { default: () => {
...@@ -173,11 +172,6 @@ export default { ...@@ -173,11 +172,6 @@ export default {
data() { data() {
return {} return {}
}, },
methods: {
handleChange(key, val) {
if (this.form.hasOwnProperty(key)) this.form[key] = val
},
},
computed: { computed: {
isShowIm() { isShowIm() {
...@@ -190,10 +184,70 @@ export default { ...@@ -190,10 +184,70 @@ export default {
return columns.labelWidth ? `${columns.labelWidth}px` : "" return columns.labelWidth ? `${columns.labelWidth}px` : ""
}, },
}, },
methods: {
clearAge() {
for (let i = 0; i < this.$refs.formSelf.length; i++) {
this.$refs.formSelf[i].age = ""
}
},
validateForm() {
this.$emit("validateForm")
},
validUpload(prop) {
this.$emit("validUpload", prop)
},
handleChange(key, val) {
if (this.form.hasOwnProperty(key)) this.form[key] = val
},
// 切换不符合筛查条件的显示
formChange() {
// 入选,排除标准,一个填写是就不符合筛查条件
let arr = [
"is_one_year",
"is_subtotal_history",
"is_ppi",
"is_symptom",
"is_disease",
"is_tumour",
"is_Incomplete",
]
let flag = 0
for (let i = 0; i < arr.length; i++) {
if (this.form[arr[i]] && this.form[arr[i]] == 1) {
flag++
}
}
if (this.form.is_know && this.form.is_know == 0) {
flag = 1
}
if (flag == 0) {
this.$emit("showError", false)
} else {
this.$emit("showError", true)
}
},
},
mounted() {
// console.log(this.activeName)
},
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.25s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
opacity: 0;
}
::v-deep {
.row24.el-col-lg-12 {
&:nth-child(2n) {
border-left: 1px solid #ccc;
}
}
}
.form-content ::v-deep { .form-content ::v-deep {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
...@@ -206,6 +260,8 @@ export default { ...@@ -206,6 +260,8 @@ export default {
.el-form-item__content { .el-form-item__content {
margin-left: 0 !important; margin-left: 0 !important;
flex: 1; flex: 1;
display: flex;
align-items: center;
} }
} }
} }
......
...@@ -67,7 +67,19 @@ ...@@ -67,7 +67,19 @@
:is-show-important="isShowImportant" :is-show-important="isShowImportant"
></form-dynamic> ></form-dynamic>
</div> </div>
<el-col
v-else-if="c.type === 'title'"
:xs="c.xs || 24"
:sm="c.sm || 24"
:md="c.md || 24"
:lg="c.span || 12"
:key="columnIndex"
v-show="c.display"
>
<div class="form_title" :style="c.styles">
<span>{{ c.value }}</span>
</div>
</el-col>
<el-col <el-col
:xs="c.xs || 24" :xs="c.xs || 24"
:sm="c.sm || 24" :sm="c.sm || 24"
......
<template> <template>
<div class="form-item-text"> <div class="form-item-text">
<template v-if="form[item.prop]"> <template v-if="String(form[item.prop])">
<span v-if="item.prepend">{{ item.prepend }}</span> <span v-if="item.prepend">{{ item.prepend }}</span>
<span style="margin: 0 5px">{{ <span>
<span
v-if="item.prop == 'risk_rank'"
:style="{
color:
form[item.prop] == 'medium'
? '#FF9F33'
: form[item.prop] == 'low'
? 'green'
: form[item.prop] == 'high'
? 'red'
: '',
}"
>
{{ riskRank[form[item.prop]] }}
</span>
<span
v-else-if="item.prop == 'screening_advise'"
style="color: #4e68ff"
>
{{ screeningAdvise[form[item.prop]] }}
</span>
<span v-else-if="item.prop == 'union_id'">
{{ handleUnionName(form[item.prop]) }}
</span>
<!-- <span v-else-if="item.prop == 'age'">
{{ handleAge() }}
</span> -->
<span v-else style="margin: 0 5px">{{
form[item.prop] | getItemText(item.dicData, item.type) form[item.prop] | getItemText(item.dicData, item.type)
}}</span> }}</span>
</span>
<span v-if="item.append && !item.toothBit" class="append">{{ <span v-if="item.append && !item.toothBit" class="append">{{
item.append item.append
}}</span> }}</span>
</template> </template>
<template v-else> -- </template>
</div> </div>
</template> </template>
...@@ -19,22 +49,85 @@ export default { ...@@ -19,22 +49,85 @@ export default {
props: { props: {
item: Object, item: Object,
form: Object | Array, form: Object | Array,
unionList: Array,
}, },
data() { data() {
return {} return {
riskRank: {
low: "低危",
medium: "中危",
high: "高危",
},
unionName: "",
screeningAdvise: {
1: "可定期随访",
2: "推荐胶囊内镜或胃镜检查",
3: "强烈推荐胶囊内镜或胃镜检查",
},
}
},
computed: {
unionLists() {
let arr
if (sessionStorage.getItem("unionList")) {
arr = JSON.parse(sessionStorage.getItem("unionList"))
} else {
arr = []
}
return arr
},
},
methods: {
handleUnionName(v) {
const union = this.unionList.find((e) => e.id == v) || {}
return union.unionName || ""
},
handleAge() {
var birthday = new Date(this.form.birthday.replace(/-/g, "/"))
var d = new Date()
var age =
d.getFullYear() -
birthday.getFullYear() -
(d.getMonth() < birthday.getMonth() ||
(d.getMonth() == birthday.getMonth() &&
d.getDate() < birthday.getDate())
? 1
: 0)
return age
},
}, },
filters: { filters: {
getItemText(val, list, type) { 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" ? "/" : ",") return formatDicList(list, val, type === "cascader" ? "/" : ",")
} }
// 返回的数字修改字符串
if (typeof val === "number") {
return String(val)
}
if (Array.isArray(val) && type.includes("range")) { if (Array.isArray(val) && type.includes("range")) {
return val.join("-") return val.join("-")
} }
// if (!val) return ""
return val return val
}, },
}, },
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])
this.unionName = v.filter(
(e) => e.id == this.form[this.item.prop]
)[0].unionName
}
},
},
} }
</script> </script>
<style scoped> <style scoped>
......
let formJson = {
column: [],
labelPosition: "right",
labelSuffix: "",
labelWidth: 180,
gutter: 0,
menuBtn: true,
submitBtn: true,
submitText: "下一步",
emptyBtn: false,
emptyText: "清空",
nextTabBtn: true,
nextTabText: "下一页",
menuPosition: "center",
prevBtn: true,
group: [
{
label: "实验室检查",
prop: "1669789802778_28648",
arrow: true,
collapse: true,
display: true,
labelWidth: 8,
column: [
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "G_17",
label: "胃泌素17",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
required: true,
rules: [{ required: true, message: "胃泌素17必须填写" }],
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "PG_I",
label: "胃蛋白酶原I(PG I)",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
rules: [{ required: true, message: "胃蛋白酶原I(PG I)必须填写" }],
required: true,
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "PG_II",
label: "胃蛋白酶原II(PG II)",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
rules: [{ required: true, message: "胃蛋白酶原II(PG II)必须填写" }],
required: true,
},
{
type: "radio",
display: true,
importantField: false,
styles: {},
prop: "IgG",
label: "Hp抗体(IgG)检测",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
dicData: [
{
label: "阳性",
value: "2",
id: "1598150992287858689",
parentId: "",
},
{
label: "阴性",
value: "1",
id: "1598150963816923138",
parentId: "",
},
],
dynamicshSet: [],
dicType: "hp_antibody",
props: { label: "label", value: "value" },
disabled: false,
required: true,
rules: [{ required: true, message: "请选择Hp抗体(IgG)检测" }],
},
{
type: "upload",
display: true,
importantField: false,
styles: {},
prop: "patient_avatar",
label: "血检报告单",
fieldType: "varchar",
fieldLength: "10",
showFileList: true,
multiple: true,
bucketName: "pacs",
limit: 5,
dicType: "",
tableName: "附件",
tableCode: "gas_attachment",
tableId: "1595978031963398145",
notFilter: false,
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
listType: "picture-card",
required: true,
rules: [{ required: true, message: "血检报告单必须填写" }],
lg: 24,
width: 24,
xs: 24,
sm: 24,
span: 24,
md: 24,
},
{
type: "upload",
display: true,
importantField: true,
styles: {},
autoRequired: 0,
personalRequired: 0,
prop: "exam_img",
label: "实验室报告",
required: true,
rules: [{ required: true, message: "实验室报告必须填写" }],
showFileList: true,
multiple: true,
bucketName: "exam",
limit: 5,
dicType: "",
listType: "picture-card",
fieldType: "varchar",
fieldLength: "255",
tableName: "附件",
tableCode: "gas_attachment",
tableId: "1595978031963398145",
notFilter: false,
cType: "",
subfield: false,
},
],
},
],
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -226,6 +226,15 @@ export default { ...@@ -226,6 +226,15 @@ export default {
form: {}, form: {},
} }
}, },
watch: {
formDefaults: {
handler(v) {
console.log(v)
this.initforms()
},
deep: true,
},
},
methods: { methods: {
// 表单赋值 // 表单赋值
initforms() { initforms() {
......
This diff is collapsed.
This diff is collapsed.
...@@ -4,7 +4,7 @@ const mixin = { ...@@ -4,7 +4,7 @@ const mixin = {
total: 0, total: 0,
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
pageSizes: [10, 20, 50, 100] pageSizes: [10, 20, 50, 100],
} }
}, },
methods: { methods: {
...@@ -16,9 +16,10 @@ const mixin = { ...@@ -16,9 +16,10 @@ const mixin = {
// 切换页面显示条数 // 切换页面显示条数
handleSizeChange(val) { handleSizeChange(val) {
this.pageIndex = 1
this.pageSize = val this.pageSize = val
this.handleSearch() this.handleSearch()
} },
} },
} }
export default mixin export default mixin
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -53,7 +53,8 @@ export default { ...@@ -53,7 +53,8 @@ export default {
async () => { async () => {
const fullPath = this.$route.fullPath const fullPath = this.$route.fullPath
await this.$store.dispatch("user/logout") await this.$store.dispatch("user/logout")
this.$router.push(`/login?redirect=${fullPath}`) this.$store.commit("table/removeSelectedIndex")
this.$router.push(`/home?redirect=${fullPath}`)
} }
) )
}, },
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.