|
|
@@ -60,7 +60,7 @@
|
|
|
<tr>
|
|
|
<th class="content-col">评估内容</th>
|
|
|
<th class="level-col">级别</th>
|
|
|
- <th class="select-col">选择</th>
|
|
|
+ <th class="select-col">评估</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
@@ -78,9 +78,14 @@
|
|
|
</td>
|
|
|
<td class="level" rowspan="7">I级</td>
|
|
|
<td class="select" rowspan="7">
|
|
|
- <el-radio-group v-model="form.attackLevel" :disabled="isDetail">
|
|
|
+ <el-radio-group v-model="form.attackLevel" :disabled="isDetail" @change="handleLevelChange">
|
|
|
<el-radio :value="1"> 符合</el-radio>
|
|
|
</el-radio-group>
|
|
|
+ <div class="multi-select">
|
|
|
+ <el-checkbox-group v-model="form.attackLevel1Items" :disabled="isDetail || form.attackLevel !== 1">
|
|
|
+ <el-checkbox v-for="n in 7" :key="n" :value="n">{{ n }}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
|
|
|
@@ -95,9 +100,14 @@
|
|
|
</td>
|
|
|
<td class="level" rowspan="3">II级</td>
|
|
|
<td class="select" rowspan="3">
|
|
|
- <el-radio-group v-model="form.attackLevel" :disabled="isDetail">
|
|
|
+ <el-radio-group v-model="form.attackLevel" :disabled="isDetail" @change="handleLevelChange">
|
|
|
<el-radio :value="2"> 符合</el-radio>
|
|
|
</el-radio-group>
|
|
|
+ <div class="multi-select">
|
|
|
+ <el-checkbox-group v-model="form.attackLevel2Items" :disabled="isDetail || form.attackLevel !== 2">
|
|
|
+ <el-checkbox v-for="n in 3" :key="n" :value="n">{{ n }}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr></tr><tr></tr>
|
|
|
@@ -113,9 +123,14 @@
|
|
|
</td>
|
|
|
<td class="level" rowspan="4">III级</td>
|
|
|
<td class="select" rowspan="4">
|
|
|
- <el-radio-group v-model="form.attackLevel" :disabled="isDetail">
|
|
|
+ <el-radio-group v-model="form.attackLevel" :disabled="isDetail" @change="handleLevelChange">
|
|
|
<el-radio :value="3"> 符合</el-radio>
|
|
|
</el-radio-group>
|
|
|
+ <div class="multi-select">
|
|
|
+ <el-checkbox-group v-model="form.attackLevel3Items" :disabled="isDetail || form.attackLevel !== 3">
|
|
|
+ <el-checkbox v-for="n in 4" :key="n" :value="n">{{ n }}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr></tr><tr></tr><tr></tr>
|
|
|
@@ -128,10 +143,15 @@
|
|
|
<div class="content-item">(2) 攻击行为在一天内至少出现两次以上或攻击行为造成了他人肉体上的伤害</div>
|
|
|
</td>
|
|
|
<td class="level" rowspan="2">IV级</td>
|
|
|
- <td class="select" rowspan="2">
|
|
|
- <el-radio-group v-model="form.attackLevel" :disabled="isDetail">
|
|
|
- <el-radio :value="4"> 符合</el-radio>
|
|
|
+ <td class="select" rowspan="7">
|
|
|
+ <el-radio-group v-model="form.attackLevel" :disabled="isDetail" @change="handleLevelChange">
|
|
|
+ <el-radio :value="1"> 符合</el-radio>
|
|
|
</el-radio-group>
|
|
|
+ <div class="multi-select">
|
|
|
+ <el-checkbox-group v-model="form.attackLevel1Items" :disabled="isDetail || form.attackLevel !== 1">
|
|
|
+ <el-checkbox v-for="n in 7" :key="n" :value="n">{{ n }}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr></tr>
|
|
|
@@ -182,7 +202,7 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 签名区域 -->
|
|
|
- <div class="signature-section">
|
|
|
+ <!-- <div class="signature-section">
|
|
|
<div class="signature-row">
|
|
|
<div class="signature-item">
|
|
|
<span class="signature-label">家属/监护人签名:</span>
|
|
|
@@ -190,7 +210,7 @@
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
|
|
|
<!-- 说明 -->
|
|
|
<div class="note-section">
|
|
|
@@ -255,7 +275,7 @@ const elderUp = (e) => {
|
|
|
dataForm.value.elderSex = e.elderSex === 1 ? '男' : '女'
|
|
|
dataForm.value.bedName = e.bedName || ''
|
|
|
dataForm.value.checkInTime = e.checkInTime
|
|
|
- dataForm.value.contractNumber = e.contractNumber
|
|
|
+ dataForm.value.contractNumber = e.contractNumber||e.fileNumber
|
|
|
dataForm.value.elderAge = e.elderAge
|
|
|
}
|
|
|
|
|
|
@@ -289,6 +309,28 @@ const autoJudgeRiskLevel = () => {
|
|
|
else form.riskLevel = 'high'
|
|
|
}
|
|
|
|
|
|
+/** 处理级别选择变化 - 清空其他级别的选中项 */
|
|
|
+const handleLevelChange = (val: number) => {
|
|
|
+ // 根据选中的级别,清空其他级别的多选框
|
|
|
+ if (val === 1) {
|
|
|
+ form.attackLevel2Items = []
|
|
|
+ form.attackLevel3Items = []
|
|
|
+ form.attackLevel4Items = []
|
|
|
+ } else if (val === 2) {
|
|
|
+ form.attackLevel1Items = []
|
|
|
+ form.attackLevel3Items = []
|
|
|
+ form.attackLevel4Items = []
|
|
|
+ } else if (val === 3) {
|
|
|
+ form.attackLevel1Items = []
|
|
|
+ form.attackLevel2Items = []
|
|
|
+ form.attackLevel4Items = []
|
|
|
+ } else if (val === 4) {
|
|
|
+ form.attackLevel1Items = []
|
|
|
+ form.attackLevel2Items = []
|
|
|
+ form.attackLevel3Items = []
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|
|
|
/** 将表单数据序列化为 JSON 对象 */
|
|
|
@@ -301,6 +343,12 @@ const serializeFormData = () => {
|
|
|
// 攻击风险等级(1=I级,2=II级,3=III级,4=IV级)
|
|
|
attackLevel: form.attackLevel || 0,
|
|
|
|
|
|
+ // 各级别选择的具体项
|
|
|
+ attackLevel1Items: form.attackLevel1Items || [],
|
|
|
+ attackLevel2Items: form.attackLevel2Items || [],
|
|
|
+ attackLevel3Items: form.attackLevel3Items || [],
|
|
|
+ attackLevel4Items: form.attackLevel4Items || [],
|
|
|
+
|
|
|
// 风险程度
|
|
|
riskLevel: form.riskLevel || '',
|
|
|
|
|
|
@@ -325,6 +373,12 @@ const deserializeFormData = (formData: Record<string, any>) => {
|
|
|
// 攻击风险等级
|
|
|
form.attackLevel = formData.attackLevel || 0
|
|
|
|
|
|
+ // 各级别选择的具体项
|
|
|
+ form.attackLevel1Items = formData.attackLevel1Items || []
|
|
|
+ form.attackLevel2Items = formData.attackLevel2Items || []
|
|
|
+ form.attackLevel3Items = formData.attackLevel3Items || []
|
|
|
+ form.attackLevel4Items = formData.attackLevel4Items || []
|
|
|
+
|
|
|
// 风险程度
|
|
|
form.riskLevel = formData.riskLevel || ''
|
|
|
|
|
|
@@ -345,6 +399,12 @@ const resetAttackRiskForm = () => {
|
|
|
// 攻击风险等级
|
|
|
form.attackLevel = 0
|
|
|
|
|
|
+ // 各级别选择的具体项
|
|
|
+ form.attackLevel1Items = []
|
|
|
+ form.attackLevel2Items = []
|
|
|
+ form.attackLevel3Items = []
|
|
|
+ form.attackLevel4Items = []
|
|
|
+
|
|
|
// 风险程度
|
|
|
form.riskLevel = ''
|
|
|
|
|
|
@@ -420,6 +480,12 @@ const form = reactive({
|
|
|
// 攻击风险等级(0=无,1=I级,2=II级,3=III级,4=IV级)
|
|
|
attackLevel: 0,
|
|
|
|
|
|
+ // 各级别选择的具体项
|
|
|
+ attackLevel1Items: [], // I级选择的项(1-7)
|
|
|
+ attackLevel2Items: [], // II级选择的项(1-3)
|
|
|
+ attackLevel3Items: [], // III级选择的项(1-4)
|
|
|
+ attackLevel4Items: [], // IV级选择的项(1-2)
|
|
|
+
|
|
|
// 风险程度
|
|
|
riskLevel: '',
|
|
|
|
|
|
@@ -627,6 +693,16 @@ const handleExport = () => {
|
|
|
margin-left: 15px;
|
|
|
margin-bottom: 3px;
|
|
|
}
|
|
|
+ .assessment-table .select {
|
|
|
+ text-align: center;
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
+ .assessment-table .print-multi-select {
|
|
|
+ margin-top: 8px;
|
|
|
+ padding-top: 8px;
|
|
|
+ border-top: 1px dashed #ccc;
|
|
|
+ font-size: 9pt;
|
|
|
+ }
|
|
|
|
|
|
.risk-judgment-section {
|
|
|
margin: 15px 0;
|
|
|
@@ -753,7 +829,7 @@ const handleExport = () => {
|
|
|
<tr>
|
|
|
<th class="content-col">评估内容</th>
|
|
|
<th class="level-col">级别</th>
|
|
|
- <th class="select-col">选择</th>
|
|
|
+ <th class="select-col">评估</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
@@ -769,7 +845,12 @@ const handleExport = () => {
|
|
|
<div class="content-item">(7) 既往人格不良者(有冲动、边缘型人格障碍)</div>
|
|
|
</td>
|
|
|
<td class="level">I级</td>
|
|
|
- <td class="select">${form.attackLevel === 1 ? '☑' : '☐'} 符合</td>
|
|
|
+ <td class="select">
|
|
|
+ <div>${form.attackLevel === 1 ? '☑' : '☐'} 符合</div>
|
|
|
+ <div class="print-multi-select">
|
|
|
+ ${[1,2,3,4,5,6,7].map(n => `${form.attackLevel1Items?.includes(n) ? '☑' : '☐'} ${n}`).join(' ')}
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="content">
|
|
|
@@ -779,7 +860,12 @@ const handleExport = () => {
|
|
|
<div class="content-item">(3) 或精神分裂症有命令性幻听者</div>
|
|
|
</td>
|
|
|
<td class="level">II级</td>
|
|
|
- <td class="select">${form.attackLevel === 2 ? '☑' : '☐'} 符合</td>
|
|
|
+ <td class="select">
|
|
|
+ <div>${form.attackLevel === 2 ? '☑' : '☐'} 符合</div>
|
|
|
+ <div class="print-multi-select">
|
|
|
+ ${[1,2,3].map(n => `${form.attackLevel2Items?.includes(n) ? '☑' : '☐'} ${n}`).join(' ')}
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="content">
|
|
|
@@ -790,7 +876,12 @@ const handleExport = () => {
|
|
|
<div class="content-item">(4) 既往曾有过主动的躯体攻击行为</div>
|
|
|
</td>
|
|
|
<td class="level">III级</td>
|
|
|
- <td class="select">${form.attackLevel === 3 ? '☑' : '☐'} 符合</td>
|
|
|
+ <td class="select">
|
|
|
+ <div>${form.attackLevel === 3 ? '☑' : '☐'} 符合</div>
|
|
|
+ <div class="print-multi-select">
|
|
|
+ ${[1,2,3,4].map(n => `${form.attackLevel3Items?.includes(n) ? '☑' : '☐'} ${n}`).join(' ')}
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="content">
|
|
|
@@ -799,7 +890,12 @@ const handleExport = () => {
|
|
|
<div class="content-item">(2) 攻击行为在一天内至少出现两次以上或攻击行为造成了他人肉体上的伤害</div>
|
|
|
</td>
|
|
|
<td class="level">IV级</td>
|
|
|
- <td class="select">${form.attackLevel === 4 ? '☑' : '☐'} 符合</td>
|
|
|
+ <td class="select">
|
|
|
+ <div>${form.attackLevel === 4 ? '☑' : '☐'} 符合</div>
|
|
|
+ <div class="print-multi-select">
|
|
|
+ ${[1,2].map(n => `${form.attackLevel4Items?.includes(n) ? '☑' : '☐'} ${n}`).join(' ')}
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
@@ -830,16 +926,7 @@ const handleExport = () => {
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 签名区域 -->
|
|
|
- <div class="signature-section">
|
|
|
- <div class="signature-row">
|
|
|
- <div class="signature-item">
|
|
|
- <span class="signature-label">家属/监护人签名:</span>
|
|
|
- <span class="signature-value">${form.familySignature || ''}</span>
|
|
|
- </div>
|
|
|
|
|
|
- </div>
|
|
|
- </div>
|
|
|
|
|
|
<!-- 说明 -->
|
|
|
<div class="note-section">
|