WXL (wul)
昨天 d3c60e18b95b50751f8088fa2d23cd8ff7f173bc
src/views/outsideChainwtnew.vue
@@ -23,6 +23,9 @@
                  : "亲爱的患者-家属,我们是医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。"
              }}
            </div>
            <div v-if="orgname" class="questionnaire-signature">
              ———{{ orgname }}
            </div>
          </div>
          <el-divider class="custom-divider"></el-divider>
@@ -93,7 +96,7 @@
                        @click.native.prevent="
                          handleRadioToggle(
                            item,
                            getGlobalIndex(dimension, group, index),
                            getGlobalIndex(item.dimension, group, index),
                            item.svyTaskTemplateTargetoptions,
                            option.optioncontent
                          )
@@ -159,6 +162,18 @@
                      :closable="false"
                      class="warning-alert"
                    ></el-alert>
                  </div>
                  <div
                    v-if="item.showAppendInput || item.answerps"
                    class="append-input-container"
                  >
                    <el-input
                      type="textarea"
                      :rows="1"
                      placeholder="请输入具体信息"
                      v-model="item.answerps"
                      clearable
                    ></el-input>
                  </div>
                </div>
              </div>
@@ -281,6 +296,18 @@
                  class="warning-alert"
                ></el-alert>
              </div>
              <div
                v-if="item.showAppendInput || item.answerps"
                class="append-input-container"
              >
                <el-input
                  type="textarea"
                  :rows="1"
                  placeholder="请输入具体信息"
                  v-model="item.answerps"
                  clearable
                ></el-input>
              </div>
            </div>
          </div>
@@ -302,6 +329,7 @@
        <div class="completion-content">
          <div class="completion-icon">✓</div>
          <h2 class="completion-title">感谢您的配合!</h2>
          <h2 class="completion-title">祝您健康快乐!</h2>
          <p class="completion-message">
            {{
              jsy
@@ -335,6 +363,7 @@
      excep: 0,
      isabnormal: 0,
      taskname: "",
      orgname: "",
      questionList: [],
      param6: null,
      jsy: null,
@@ -480,6 +509,16 @@
            res.data.param3,
            res.data.param5
          );
          if (
            res.data.orgname == "省立同德翠苑院区" ||
            res.data.orgname == "省立同德之江院区" ||
            res.data.orgname == "省立同德闲林院区"
          ) {
            this.orgname = "浙江省立同德医院";
          } else {
            this.orgname = res.data.orgname;
          }
          this.param6 = res.data.param6;
        }
      });
@@ -746,6 +785,7 @@
      this.questionList[questionIndex].showAppendInput =
        selectedOptionObj.appendflag == 1;
      console.log(this.questionList);
      console.log(selectedOptionObj.appendflag);
      // if (!this.questionList[questionIndex].showAppendInput) {
      //   this.questionList[questionIndex].answerps = ""; // 清除附加信息
@@ -818,6 +858,7 @@
          hiddenByEnd: index == questionIndex + 1 ? false : item.hiddenByEnd,
        }));
      }
      this.$forceUpdate();
      // 在处理完题目显示/隐藏后,强制更新视图以确保序号正确
      this.$nextTick(() => {
@@ -856,21 +897,39 @@
}
.questionnaire-title {
  color: #175997;
  color: #0d3b6b; // 基础深蓝色
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 15px;
  line-height: 1.3;
  text-shadow: 0 1px 3px rgba(255, 255, 255, 0.4);
  // 针对夜间模式的优化
  @media (prefers-color-scheme: dark) {
    color: #4a90d9; // 夜间模式使用更亮的蓝色
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  }
}
.questionnaire-description {
  font-size: 18px;
  color: #5a6c84;
  line-height: 1.6;
  max-width: 700px;
  margin: 0 auto;
  font-size: 16px;
  color: #303a47;
  line-height: 1.8;
  max-width: 720px;
  margin: 0;
  padding: 0 16px;
  text-align: justify; /* 两端对齐,更美观 */
  text-indent: 2em; /* 首行缩进 */
}
.questionnaire-signature {
  font-size: 16px;
  color: #303a47;
  text-align: right; /* 右对齐 */
  max-width: 720px;
  margin: 8px 0 0 auto; /* 上边距8px,右边靠齐 */
  padding: 0 16px;
  letter-spacing: 1px; /* 字间距稍宽,更有落款感 */
}
.custom-divider {
  margin: 25px 0;
  background-color: #eaeef2;
@@ -930,68 +989,122 @@
}
.question-stem {
  display: flex;
  align-items: flex-start;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 3px;
  align-items: start; /* 改为 start 避免居中导致的视觉问题 */
  margin-bottom: 20px;
  font-size: 18px;
}
.question-text {
  line-height: 1.5;
  color: #2c3e50;
  font-weight: 500;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal; /* 确保允许换行 */
  min-width: 0; /* 防止 grid 项溢出 */
}
.question-number {
  font-weight: 600;
  color: #175997;
  margin-right: 8px;
  min-width: 24px;
  min-width: 16px;
}
.question-text {
  flex: 1;
  line-height: 1.5;
  color: #2c3e50;
  font-weight: 500;
}
// .question-text {
//   line-height: 1.5;
//   color: #2c3e50;
//   font-weight: 500;
//   overflow: hidden;
//   text-overflow: ellipsis;
//   white-space: nowrap;
// }
.question-type-tag {
  color: #3ba2f7;
  font-size: 14px;
  margin-left: 10px;
  font-weight: 500;
  text-align: right;
}
.question-options {
  margin: 15px 0;
  margin: 12px 0;
  padding: 0 4px;
}
// 修改 options-group 的样式
.options-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  display: grid;
  grid-template-columns: repeat(2, 1fr); // 改为两列网格
  gap: 10px;
  width: 100%;
}
// 针对多选的 checkbox-group 也应用同样的网格布局
:deep(.el-checkbox-group) {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  width: 100%;
  @media (max-width: 420px) {
    grid-template-columns: 1fr;
  }
}
// 修改选项的样式
.option-radio,
.option-checkbox {
  margin: 0;
  padding: 12px 15px;
  padding: 10px 12px;
  border-radius: 6px;
  border: 1px solid #e0e0e0;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  &:hover {
    border-color: #c0c4cc;
    background-color: #f8fafc;
  }
  // 确保内部内容自适应
  :deep(.el-radio__label),
  :deep(.el-checkbox__label) {
    display: inline;
    font-size: 15px;
    line-height: 1.4;
    word-break: break-all; // 允许在任意字符处换行
    white-space: normal; // 允许自动换行
    padding-left: 6px;
  }
  // 确保 radio/checkbox 图标不压缩
  :deep(.el-radio__input),
  :deep(.el-checkbox__input) {
    flex-shrink: 0;
  }
}
:deep(.option-radio .el-radio__label),
:deep(.option-checkbox .el-checkbox__label) {
  display: flex;
  align-items: center;
  font-size: 16px;
}
// :deep(.option-radio .el-radio__label),
// :deep(.option-checkbox .el-checkbox__label) {
//   display: flex;
//   align-items: center;
//   font-size: 16px;
// }
.option-text {
  margin-right: 5px;
  word-break: break-all;
  white-space: normal;
  line-height: 1.4;
}
// 在小屏幕上调整为单列
@media (max-width: 300px) {
  .options-group {
    grid-template-columns: 1fr; // 超小屏幕恢复单列
  }
}
.abnormal-indicator {
  color: #f56c6c;
  font-weight: bold;
@@ -1021,7 +1134,13 @@
.question-warning {
  margin-top: 15px;
}
.append-input-container {
  margin-top: 15px;
  padding: 10px;
  background-color: #f5f7fa;
  border-radius: 4px;
  border: 1px solid #dcdfe6;
}
.warning-alert {
  :deep(.el-alert__title) {
    font-size: 15px;
@@ -1112,11 +1231,11 @@
    font-size: 16px;
  }
  .question-stem {
    font-size: 16px;
    flex-direction: column;
    align-items: flex-start;
  }
  // .question-stem {
  //   font-size: 16px;
  //   flex-direction: column;
  //   align-items: flex-start;
  // }
  .question-type-tag {
    margin-left: 0;