diff --git a/packages/FormConfig.vue b/packages/FormConfig.vue index 83caa6b0d743350b343c0d60ee50295ee4328dd2..00b1abf3363e76ca78785d2000895e5505beceb2 100644 --- a/packages/FormConfig.vue +++ b/packages/FormConfig.vue @@ -38,10 +38,10 @@ - + - + --> - + + + + - + - + export default { - name: "form-config", + name: "FormConfig", props: ["data"], } diff --git a/packages/config/date.vue b/packages/config/date.vue index 0942503959ce5b86f6796101f18750acfcffbfe5..af7804dce0e8152af97bb6ba64ce56a3b54e2502 100644 --- a/packages/config/date.vue +++ b/packages/config/date.vue @@ -79,8 +79,8 @@ let checkAge = (rule, value, callback) => { ? 1 : 0) console.log(age) - if (age < 18) { - callback(new Error("必须年满18岁")) + if (age < 40 || age > 80) { + callback(new Error("年龄不符合筛查条件")) } else { callback() } diff --git a/src/components/FormComponents/CustomForm/FormContent.vue b/src/components/FormComponents/CustomForm/FormContent.vue index 133a442434d2053ffa37f64054021a7b52991c0d..f52db79065a739b6f5d6cfb265116127ccbcd7b2 100644 --- a/src/components/FormComponents/CustomForm/FormContent.vue +++ b/src/components/FormComponents/CustomForm/FormContent.vue @@ -168,6 +168,7 @@ export default { }, // 切换不符合筛查条件的显示 formChange() { + // 入选,排除标准 console.log(this.form) let arr = [ "is_one_year", diff --git a/src/components/FormComponents/CustomForm/FormItemSelf.vue b/src/components/FormComponents/CustomForm/FormItemSelf.vue index 198b3e49f8b7112fe46c2fc0506eb17da47880d4..ac16068e8f63802bce081fbab0778e1ac9bdd0c3 100644 --- a/src/components/FormComponents/CustomForm/FormItemSelf.vue +++ b/src/components/FormComponents/CustomForm/FormItemSelf.vue @@ -5,12 +5,17 @@ :style="item.styles" :class="{ isDefects: defectsSet.includes(item.prop) }" > - +
{{ columnIndex + 1 }}
- + {{ item.labelSuffix || columnIndex + 1 }} + + +
@@ -40,7 +52,7 @@ {{ item.append || "牙位" }} + >{{ item.append || "牙位" }} @@ -97,14 +106,10 @@ @blur="handleBlur" > @@ -151,7 +156,8 @@ v-if="item.append" class="el-input-group__append" style="line-height: 28px" - >{{ item.append }} + >{{ item.append }}
@@ -165,7 +171,8 @@ v-for="(opt, optIndex) in item.dicData" :key="optIndex" :label="opt.value" - >{{ opt.label }} + >{{ opt.label }} @@ -179,7 +186,8 @@ v-for="(opt, optIndex) in item.dicData" :key="optIndex" :label="opt.value" - >{{ opt.label }} + >{{ opt.label }} @@ -351,7 +359,8 @@ {{ item.importantFieldDesc || "*" }} + >{{ item.importantFieldDesc || "*" }}
@@ -547,23 +556,6 @@ export default { } catch {} } }) - } else { - // let { birthday } = this.form - // if (birthday) { - // birthday = new Date(birthday.replace(/-/g, "/")) - // let d = new Date() - // let age = - // d.getFullYear() - - // birthday.getFullYear() - - // (d.getMonth() < birthday.getMonth() || - // (d.getMonth() == birthday.getMonth() && - // d.getDate() < birthday.getDate()) - // ? 1 - // : 0) - // console.log(age) - // if (age == 0) { - // } - // } } }, // 自定义方法规则 @@ -628,6 +620,7 @@ export default { const columns = this.columns || [] const group = this.group || [] const dyMap = {} // 显示数据集合 + dynamicshSet.forEach((dy) => { if (dyMap[dy.target]) { dyMap[dy.target].push(dy.value) @@ -645,7 +638,38 @@ export default { const values = dyMap[key] let display = false if (Array.isArray(val)) { - display = values.filter((v) => val.includes(v)).length > 0 + if ( + prop == "early_gastric_cancer" || + prop == "period_gastric_cancer" + ) { + let flag = false + if (this.form.early_gastric_cancer) { + this.form.early_gastric_cancer.length > 0 + ? (flag = true) + : (flag = false) + } + if (!flag) { + if (this.form.period_gastric_cancer) { + this.form.period_gastric_cancer.length > 0 + ? (flag = true) + : (flag = false) + } + } + console.log(targetItem) + display = flag + if (display) { + targetItem.rules[0] = { + required: true, + message: "请上传病理报告", + } + } else { + if (targetItem.rules.length > 0) { + targetItem.rules[0].required = false + } + } + } else { + display = values.filter((v) => val.includes(v)).length > 0 + } } else { display = values.includes(val) } @@ -666,6 +690,14 @@ export default { this.$set(this.form, "$_hidden" + targetItem.prop, !display) }, 200) } else { + if (prop == "check_type" && Boolean(display)) { + targetItem.rules[0] = { + required: true, + message: "请上传内镜报告", + } + } else if (prop == "check_type") { + targetItem.rules = [] + } this.$set(targetItem, "display", Boolean(display)) } }) @@ -699,7 +731,6 @@ export default { .el-col { height: 100%; - height: 53px; display: flex; align-items: center; } @@ -708,6 +739,7 @@ export default { height: 100%; background: #fafafa; border-right: 1px solid #ccc; + font-size: 14px; justify-content: center; display: flex; align-items: center; @@ -837,4 +869,7 @@ export default { } } } +::v-deep .needlong { + width: 260px !important; +} diff --git a/src/components/FormComponents/CustomForm/index.vue b/src/components/FormComponents/CustomForm/index.vue index 89c492f444295691b152d17001e0f623798b4e2a..de96e7405a6785386f90370e4339ba2c8b39e333 100644 --- a/src/components/FormComponents/CustomForm/index.vue +++ b/src/components/FormComponents/CustomForm/index.vue @@ -49,7 +49,9 @@ > @@ -169,7 +185,20 @@ export default { // this.setformWatch(this.options, "form") }) }, - + mounted() { + // 处理computeIndex + let domArr = document.querySelectorAll(".computeIndex") + for (let i = 0; i < domArr.length; i++) { + domArr[i].style.height = "54px" + domArr[i].innerHTML = "" + if (domArr.length / i == 2) { + domArr[i].innerHTML = "6" + } + if (i == domArr.length - 1) { + domArr[i].style.height = "53px" + } + } + }, methods: { // 显示不符合筛查条件 showError(data) { @@ -224,7 +253,12 @@ export default { func(valid, () => {}) }) }, - + onPrev() { + this.$emit("onPrev", () => { + // 完成之后的回调 + this.loading = false + }) + }, handleConfirm() { this.loading = true this.$refs.form.validate((valid) => { @@ -257,6 +291,7 @@ export default { } }) this.$emit("handleConfirm", data, () => { + // 完成之后的回调 this.loading = false }) } else { @@ -359,10 +394,10 @@ export default { border-right: 1px solid #e5e5e5; // border-bottom: 1px solid #e5e5e5 !important; padding: 0px; - &:hover { - // background-color: #ecf8ff; - // outline: 1px dashed #ccc; - } + // &:hover { + // background-color: #ecf8ff; + // outline: 1px dashed #ccc; + // } } .el-collapse-item__header { font-size: 16px; diff --git a/src/components/Upload/index.vue b/src/components/Upload/index.vue index 72c17c9d743f02dd3f4db5e7a436e5e6ba4ac408..6cc65fa30f84b478e27c5038a446e4027a2c52ee 100644 --- a/src/components/Upload/index.vue +++ b/src/components/Upload/index.vue @@ -2,6 +2,7 @@
{{ tip }}
@@ -220,4 +223,31 @@ export default { .el-upload-self { font-size: 14px; } +.avatar-uploader { + display: flex; + align-items: center; +} +::v-deep .avatar-uploader .el-upload { + border: 1px solid #d9d9d9; + border-radius: 6px; + cursor: pointer; + position: relative; + overflow: hidden; +} +::v-deep .avatar-uploader .el-upload:hover { + border-color: #409eff; +} +.avatar-uploader-icon { + font-size: 28px; + color: #8c939d; + width: 88px; + height: 88px; + line-height: 88px; + text-align: center; +} +.avatar { + width: 88px; + height: 88px; + display: block; +} diff --git a/src/router/index.js b/src/router/index.js index c6509b7bc578529930c26cd14d1946f0272b5a96..5e1f6d177e0d19d6b92d5fea23c24071bec8e16d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -40,6 +40,19 @@ export const constantRoutes = [ // hidden: true, // name: "login", // }, + { + path: "/auditdetail", + component: Layout, + children: [ + { + path: "/auditdetail", + component: () => import("@/views/audit-detail/index"), + hidden: true, + name: "auditdetail", + }, + ], + }, + // 审核详情 { path: "/followupentry", component: Layout, diff --git a/src/views/audit-detail/components/publicDialog.vue b/src/views/audit-detail/components/publicDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..b0ea9dc149d661d050529750dd91a2927f4e0118 --- /dev/null +++ b/src/views/audit-detail/components/publicDialog.vue @@ -0,0 +1,33 @@ + + + diff --git a/src/views/audit-detail/components/screenReview.vue b/src/views/audit-detail/components/screenReview.vue new file mode 100644 index 0000000000000000000000000000000000000000..74f79e94d4e5f5b427e8091f7bd9f5c551ba3d61 --- /dev/null +++ b/src/views/audit-detail/components/screenReview.vue @@ -0,0 +1,137 @@ + + + diff --git a/src/views/audit-detail/index.vue b/src/views/audit-detail/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e42b90249466f30cfacb2034fd37cff0bc67b0bc --- /dev/null +++ b/src/views/audit-detail/index.vue @@ -0,0 +1,307 @@ + + + diff --git a/src/views/audit-qualitycontrol/community.vue b/src/views/audit-qualitycontrol/community.vue index 31b333a23deb212d1b08b3c38600cb4d102f183d..6d8f97c77c920bb60d6f4203ae7da8f2842651a5 100644 --- a/src/views/audit-qualitycontrol/community.vue +++ b/src/views/audit-qualitycontrol/community.vue @@ -104,6 +104,12 @@ export default { }, auditHandle(data, i) { console.log(data, i) + this.$router.push({ + path: "/auditdetail", + query: { + id: i, + }, + }) }, }, } diff --git a/src/views/screening/components/ConfigForms.vue b/src/views/screening/components/ConfigForms.vue index c6e1ac6fa572c39f4c77c2e8e2dae1c12f4e5140..2c4215610d2c4eae63d8762f62af7302f34c84f4 100644 --- a/src/views/screening/components/ConfigForms.vue +++ b/src/views/screening/components/ConfigForms.vue @@ -1,7 +1,12 @@ @@ -62,6 +68,9 @@ export default { handleConfirm(data, done, cb) { this.addPatient(data, done, cb) }, + onPrev(done) { + this.prevTab(done) + }, }, created() { // 字典formType 1 筛查表单 @@ -81,30 +90,27 @@ export default { // } // } }, - computed:{ - survivalFlag(){ - if(this.activeName=="index0" && this.formClass){ + computed: { + survivalFlag() { + if (this.activeName == "index0" && this.formClass) { return true - } - else{ + } else { return false } }, - showIndex(){ - if(this.activeName=="index0" && this.formClass){ + showIndex() { + if (this.activeName == "index0" && this.formClass) { return false - } - else{ + } else { return true } - } + }, }, provide() { return { - configForms: this + configForms: this, } }, - } diff --git a/src/views/screening/components/FormTab.vue b/src/views/screening/components/FormTab.vue index 365f0f25bc50751e9f05da8d25f2ce26c0b0629d..193256799f57430dbc8cfe6dc6ed68dfc1c4453c 100644 --- a/src/views/screening/components/FormTab.vue +++ b/src/views/screening/components/FormTab.vue @@ -49,6 +49,7 @@ @scrollTop="scrollTop" :options="widgetFormPreview" @handleConfirm="handleConfirm" + @onPrev="onPrev" :form-edit="formData.formEdit" > @@ -427,6 +428,9 @@ export default { } ) }, + onPrev(done) { + this.$emit("onPrev", done) + }, getPatientDetail() { this.$nextTick(() => { diff --git a/src/views/screening/components/mixin.js b/src/views/screening/components/mixin.js index 091db9d4d75b8f55a629b46dca1c9dfed3d04f64..e39ec4199c64dba05002411cdcfbe22e8dec2d8c 100644 --- a/src/views/screening/components/mixin.js +++ b/src/views/screening/components/mixin.js @@ -22,6 +22,23 @@ export default { }, methods: { + nextTab() { + let i = this.activeName.split("index")[1] - 0 + i++ + if (i == 5) { + return + } else { + this.activeName = "index" + i + this.handleTabClick({ index: i, name: "" }) + } + }, + prevTab(done) { + let i = this.activeName.split("index")[1] - 0 + i-- + this.activeName = "index" + i + this.handleTabClick({ index: i, name: "" }) + done() + }, handleTabClick({ index, name }) { const { formId, id, silent } = this.formTabs[index] console.log('表单项', this.formTabs) @@ -50,6 +67,7 @@ export default { }) .finally((e) => { done() + this.nextTab() }) },