Explorar o código

Merge branch 'master_179_20250827'

xgb hai 2 días
pai
achega
23f834888f
Modificáronse 1 ficheiros con 402 adicións e 1 borrados
  1. 402 1
      src/views/system/config/config.vue

+ 402 - 1
src/views/system/config/config.vue

@@ -1638,6 +1638,318 @@
         </div>
       </el-form>
     </el-tab-pane>
+
+    <el-tab-pane label="健康指标配置" name="his.healthIndexConfig">
+      
+        <el-form ref="form26" :model="form26" label-width="200px">
+          <!-- 红色提示 严格按照对应格式参数填写,指标参数只能是数字和特殊符号,数值保留一位小数,特殊符号只能有 < > ≥ ≤ ~ 不能有空格 -->
+          <el-card class="box-card">
+            <div slot="header" class="clearfix">
+              <span style="color: red;">请严格按照对应格式参数填写,指标参数只能是数字和特殊符号,数值保留一位小数,特殊符号只能有 &lt; &gt; ≥ ≤ ~ 不能有空格</span>
+            </div>
+          </el-card>
+
+
+          
+          <!-- 血糖指标 -->
+        <el-card class="box-card" style="margin-bottom: 20px;">
+          <div slot="header" class="clearfix">
+            <span>血糖指标 (mmol/L)</span>
+          </div>
+          
+          <el-form-item label="空腹血糖正常值">
+            <el-input v-model="form26.bloodGlucose.fasting.normal" placeholder="例如: 3.9-6.1">
+              <template slot="append">mmol/L</template>
+            </el-input>
+          </el-form-item>
+          
+          <el-form-item label="餐后1小时血糖正常值">
+            <el-input v-model="form26.bloodGlucose.post1Hour.normal" placeholder="例如: 6.7-9.0">
+              <template slot="append">mmol/L</template>
+            </el-input>
+          </el-form-item>
+          
+          <el-form-item label="餐后2小时血糖正常值">
+            <el-input v-model="form26.bloodGlucose.post2Hour.normal" placeholder="例如: ≤7.8">
+              <template slot="append">mmol/L</template>
+            </el-input>
+          </el-form-item>
+          
+          <el-form-item label="血糖异常程度配置">
+            <el-table :data="form26.bloodGlucose.severity" style="width: 100%;">
+              <el-table-column prop="level" label="严重程度" width="120">
+                <template slot-scope="scope">
+                  <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                            scope.row.level === 'mild' ? 'warning' : 'danger'">
+                    {{ scope.row.level === 'normal' ? '正常' : 
+                      scope.row.level === 'mild' ? '轻微' : '严重' }}
+                  </el-tag>
+                </template>
+              </el-table-column>
+              <el-table-column prop="range" label="数值范围">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.range" placeholder="例如: <3.9 or 6.1-7.8"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="description" label="描述">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.description" placeholder="例如: 低血糖风险"></el-input>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-form-item>
+        </el-card>
+        
+        <!-- 血压指标 -->
+        <el-card class="box-card" style="margin-bottom: 20px;">
+          <div slot="header" class="clearfix">
+            <span>血压指标 (mmHg)</span>
+          </div>
+          
+
+          
+          <el-form-item label="血压异常程度配置">
+            <el-table :data="form26.bloodPressure.severity" style="width: 100%;">
+              <el-table-column prop="level" label="严重程度" width="120">
+                <template slot-scope="scope">
+                  <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                            scope.row.level === 'mild' ? 'warning' : 'danger'">
+                    {{ scope.row.level === 'normal' ? '正常' : 
+                      scope.row.level === 'mild' ? '轻微' : '严重' }}
+                  </el-tag>
+                </template>
+              </el-table-column>
+              <el-table-column prop="type" label="血压类型" width="120">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.type === 'systolic' ? '收缩压' : '舒张压' }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column prop="range" label="数值范围">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.range" placeholder="例如: <90 or 120-139"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="description" label="描述">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.description" placeholder="例如: 正常高值"></el-input>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-form-item>
+        </el-card>
+
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>尿酸指标 (μmol/L)</span>
+          </div>
+
+          <el-form-item label="性别分类配置">
+            <el-tabs v-model="form26.uricAcid.activeGender">
+              <el-tab-pane label="男性" name="male">
+                <el-table :data="form26.uricAcid.male" style="width: 100%;">
+                  <el-table-column prop="level" label="风险等级" width="120">
+                    <template slot-scope="scope">
+                      <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                                scope.row.level === 'mild' ? 'warning' : 'danger'">
+                        {{ scope.row.level === 'normal' ? '正常' : 
+                          scope.row.level === 'mild' ? '不良' : '高风险' }}
+                      </el-tag>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="range" label="数值范围">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.range" placeholder="例如: <420"></el-input>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="description" label="描述">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.description" placeholder="例如: 正常范围"></el-input>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-tab-pane>
+              
+              <el-tab-pane label="女性" name="female">
+                <el-table :data="form26.uricAcid.female" style="width: 100%;">
+                  <el-table-column prop="level" label="风险等级" width="120">
+                    <template slot-scope="scope">
+                      <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                                scope.row.level === 'mild' ? 'warning' : 'danger'">
+                        {{ scope.row.level === 'normal' ? '正常' : 
+                          scope.row.level === 'mild' ? '不良' : '高风险' }}
+                      </el-tag>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="range" label="数值范围">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.range" placeholder="例如: <360"></el-input>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="description" label="描述">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.description" placeholder="例如: 正常范围"></el-input>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-tab-pane>
+            </el-tabs>
+          </el-form-item>
+        </el-card>
+
+        <!-- Add BMI指标 card after the uric acid card -->
+        <el-card class="box-card" style="margin-bottom: 20px;">
+          <div slot="header" class="clearfix">
+            <span>BMI指标 (kg/m²)</span>
+          </div>
+
+          <el-form-item label="BMI异常程度配置">
+            <el-table :data="form26.bmi.severity" style="width: 100%;">
+              <el-table-column prop="level" label="严重程度" width="120">
+                <template slot-scope="scope">
+                  <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                            scope.row.level === 'mild' ? 'warning' : 'danger'">
+                    {{ scope.row.level === 'normal' ? '正常' : 
+                      scope.row.level === 'mild' ? '偏瘦' : '偏胖' }}
+                  </el-tag>
+                </template>
+              </el-table-column>
+              <el-table-column prop="range" label="数值范围">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.range" placeholder="例如: 18.5-23.9"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="description" label="描述">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.description" placeholder="例如: 正常范围"></el-input>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-form-item>
+        </el-card>
+
+
+        <!-- 腰围指标 -->
+        <el-card class="box-card" style="margin-bottom: 20px;">
+          <div slot="header" class="clearfix">
+            <span>腰围指标 (cm)</span>
+          </div>
+
+          <el-form-item label="性别分类配置">
+            <el-tabs v-model="form26.waist.activeGender">
+              <el-tab-pane label="男性" name="male">
+                <el-table :data="form26.waist.male" style="width: 100%;">
+                  <el-table-column prop="level" label="风险等级" width="120">
+                    <template slot-scope="scope">
+                      <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                                scope.row.level === 'mild' ? 'warning' : 'danger'">
+                        {{ scope.row.level === 'normal' ? '正常' : 
+                          scope.row.level === 'mild' ? '偏小' : '偏大' }}
+                      </el-tag>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="range" label="数值范围">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.range" placeholder="例如: <90"></el-input>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="description" label="描述">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.description" placeholder="例如: 正常范围"></el-input>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-tab-pane>
+              
+              <el-tab-pane label="女性" name="female">
+                <el-table :data="form26.waist.female" style="width: 100%;">
+                  <el-table-column prop="level" label="风险等级" width="120">
+                    <template slot-scope="scope">
+                      <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                                scope.row.level === 'mild' ? 'warning' : 'danger'">
+                        {{ scope.row.level === 'normal' ? '正常' : 
+                          scope.row.level === 'mild' ? '偏小' : '偏大' }}
+                      </el-tag>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="range" label="数值范围">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.range" placeholder="例如: <80"></el-input>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="description" label="描述">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.description" placeholder="例如: 正常范围"></el-input>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-tab-pane>
+            </el-tabs>
+          </el-form-item>
+        </el-card>
+
+        <el-card class="box-card" style="margin-bottom: 20px;">
+          <div slot="header" class="clearfix">
+            <span>臀围指标 (cm)</span>
+          </div>
+
+          <el-form-item label="性别分类配置">
+            <el-tabs v-model="form26.hip.activeGender">
+              <el-tab-pane label="男性" name="male">
+                <el-table :data="form26.hip.male" style="width: 100%;">
+                  <el-table-column prop="level" label="风险等级" width="120">
+                    <template slot-scope="scope">
+                      <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                                scope.row.level === 'mild' ? 'warning' : 'danger'">
+                        {{ scope.row.level === 'normal' ? '正常' : 
+                          scope.row.level === 'mild' ? '偏小' : '偏大' }}
+                      </el-tag>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="range" label="数值范围">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.range" placeholder="例如: 90-100"></el-input>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="description" label="描述">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.description" placeholder="例如: 正常范围"></el-input>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-tab-pane>
+              
+              <el-tab-pane label="女性" name="female">
+                <el-table :data="form26.hip.female" style="width: 100%;">
+                  <el-table-column prop="level" label="风险等级" width="120">
+                    <template slot-scope="scope">
+                      <el-tag :type="scope.row.level === 'normal' ? 'success' : 
+                                scope.row.level === 'mild' ? 'warning' : 'danger'">
+                        {{ scope.row.level === 'normal' ? '正常' : 
+                          scope.row.level === 'mild' ? '偏小' : '偏大' }}
+                      </el-tag>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="range" label="数值范围">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.range" placeholder="例如: 85-95"></el-input>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="description" label="描述">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.description" placeholder="例如: 正常范围"></el-input>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-tab-pane>
+            </el-tabs>
+          </el-form-item>
+        </el-card>
+        
+        <div class="footer">
+          <el-button type="primary" @click="submitForm26">提交</el-button>
+        </div>
+      </el-form>
+    </el-tab-pane>
     </el-tabs>
 
 
@@ -1761,6 +2073,75 @@ export default {
       },
       form25:{
       },
+      form26: {
+        bloodGlucose: {
+          fasting: { normal: "" },
+          post1Hour: { normal: "" },
+          post2Hour: { normal: "" },
+          severity: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ]
+        },
+        bloodPressure: {
+          protection: { systolic: "", diastolic: "" },
+          severity: [
+            { level: "normal", type: "systolic", range: "", description: "" },
+            { level: "mild", type: "systolic", range: "", description: "" },
+            { level: "severe", type: "systolic", range: "", description: "" },
+            { level: "normal", type: "diastolic", range: "", description: "" },
+            { level: "mild", type: "diastolic", range: "", description: "" },
+            { level: "severe", type: "diastolic", range: "", description: "" }
+          ]
+        },
+        uricAcid: {
+          activeGender: "male",
+          male: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ],
+          female: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ]
+        },
+        bmi: {
+          severity: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ]
+        },
+        waist: {
+          activeGender: "male",
+          male: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ],
+          female: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ]
+        },
+        hip: {
+          activeGender: "male",
+          male: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ],
+          female: [
+            { level: "normal", range: "", description: "" },
+            { level: "mild", range: "", description: "" },
+            { level: "severe", range: "", description: "" }
+          ]
+        }
+      },
       photoArr:[],
       couponList:[],
       inquirySubTypeOptions:[],
@@ -1815,7 +2196,8 @@ export default {
         dLevelMax: [{ required: true, message: '请输入D级最大值', trigger: 'blur' }],
       },
       rules21:{},
-      rules25:{}
+      rules25:{},
+      rules26: {},
     };
   },
   created() {
@@ -2147,6 +2529,9 @@ export default {
           if(key=="his.login"){
             this.form22 =JSON.parse(response.data.configValue);
           }
+          if (key === "his.healthIndexConfig") {
+            this.form26 =JSON.parse(response.data.configValue);
+          }
           else if(key=="store.concept"){
             this.configId=response.data.configId;
             this.configKey=response.data.configKey;
@@ -2252,6 +2637,7 @@ export default {
       }
     });
   },
+  
   submitForm10(){
     var param={configId:this.configId,configValue:JSON.stringify(this.form10)}
     updateConfigByKey(param).then(response => {
@@ -2380,6 +2766,21 @@ export default {
         }
       });
     },
+    submitForm26() {
+      const param = {
+        configId:this.configId,
+        configKey:this.configKey,
+        configValue: JSON.stringify(this.form26)
+      };
+      
+      updateConfigByKey(param).then(response => {
+        if (response.code === 200) {
+          this.msgSuccess("健康指标配置保存成功");
+        } else {
+          this.msgError("保存失败");
+        }
+      });
+    },
     submitForm24(){
       this.$refs["form24"].validate(valid => {
         if (valid) {