|  | @@ -17,7 +17,8 @@
 | 
	
		
			
				|  |  |      <el-table-column label="操作">
 | 
	
		
			
				|  |  |        <template #default="{row}">
 | 
	
		
			
				|  |  |          <el-button type="danger" @click="deleteQualityControl(row.id)">删除</el-button>
 | 
	
		
			
				|  |  | -        <el-button type="warning">修改</el-button>
 | 
	
		
			
				|  |  | +        <el-button type="warning" @click="clickModifyButton(row)">修改</el-button>
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="newlyAdded">新增</el-button>
 | 
	
		
			
				|  |  |        </template>
 | 
	
		
			
				|  |  |      </el-table-column>
 | 
	
		
			
				|  |  |    </xc-table>
 | 
	
	
		
			
				|  | @@ -49,25 +50,12 @@
 | 
	
		
			
				|  |  |          <el-tree-select
 | 
	
		
			
				|  |  |              style="width: 100%"
 | 
	
		
			
				|  |  |              class="tree-select"
 | 
	
		
			
				|  |  | -            v-model="value"
 | 
	
		
			
				|  |  | +            v-model="ruleForm.medicalRecordCode"
 | 
	
		
			
				|  |  |              :data="emrTree"
 | 
	
		
			
				|  |  | -            @clear=""
 | 
	
		
			
				|  |  | -            @remove-tag="removeTag"
 | 
	
		
			
				|  |  |              multiple
 | 
	
		
			
				|  |  | -            @node-click="nodeClick"
 | 
	
		
			
				|  |  |              :props="defaultProps"
 | 
	
		
			
				|  |  |              check-strictly
 | 
	
		
			
				|  |  |              :render-after-expand="false">
 | 
	
		
			
				|  |  | -          <template #default="{data}">
 | 
	
		
			
				|  |  | -            <div style="display: flex;justify-content: space-between;align-items: center">
 | 
	
		
			
				|  |  | -              <div>
 | 
	
		
			
				|  |  | -                {{ data.name }}
 | 
	
		
			
				|  |  | -              </div>
 | 
	
		
			
				|  |  | -              <div v-if="data.children && data.children.length > 0">
 | 
	
		
			
				|  |  | -                <el-button text @click.stop="selectAll(data.children)">全选</el-button>
 | 
	
		
			
				|  |  | -              </div>
 | 
	
		
			
				|  |  | -            </div>
 | 
	
		
			
				|  |  | -          </template>
 | 
	
		
			
				|  |  |          </el-tree-select>
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -87,9 +75,11 @@
 | 
	
		
			
				|  |  |      </el-form>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <template #footer>
 | 
	
		
			
				|  |  | -      <el-button>取消</el-button>
 | 
	
		
			
				|  |  | -      <el-button @click="confirm">确认</el-button>
 | 
	
		
			
				|  |  | +      <el-button @click="cancel">取消</el-button>
 | 
	
		
			
				|  |  | +      <el-button v-if="ruleForm.id == null" @click="confirm">确认</el-button>
 | 
	
		
			
				|  |  | +      <el-button v-else @click="modify">修改</el-button>
 | 
	
		
			
				|  |  |      </template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    </xc-dialog-v2>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  </template>
 | 
	
	
		
			
				|  | @@ -98,6 +88,7 @@
 | 
	
		
			
				|  |  |  import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
 | 
	
		
			
				|  |  |  import {nextTick, onMounted, Ref, ref} from "vue";
 | 
	
		
			
				|  |  |  import XcDialogV2 from "@/components/xiao-chan/dialog/XcDialogV2.vue";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  import {
 | 
	
		
			
				|  |  |    getEmrTree,
 | 
	
		
			
				|  |  |  } from "@/api/zhu-yuan-yi-sheng/emr-patient";
 | 
	
	
		
			
				|  | @@ -105,7 +96,9 @@ import {
 | 
	
		
			
				|  |  |    addRule,
 | 
	
		
			
				|  |  |    getAvailableObjects,
 | 
	
		
			
				|  |  |    getRuleList,
 | 
	
		
			
				|  |  | -  switchQualityControl
 | 
	
		
			
				|  |  | +  switchQualityControl,
 | 
	
		
			
				|  |  | +  deleteRuleById,
 | 
	
		
			
				|  |  | +  modifyQualityControl
 | 
	
		
			
				|  |  |  } from '@/api/zhu-yuan-yi-sheng/emr-control-rule'
 | 
	
		
			
				|  |  |  import {ElMessageBox} from "element-plus";
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -117,18 +110,13 @@ const ruleDataElement: Ref<Array<any>> = ref([])
 | 
	
		
			
				|  |  |  const defaultProps = {
 | 
	
		
			
				|  |  |    children: 'children',
 | 
	
		
			
				|  |  |    label: 'name',
 | 
	
		
			
				|  |  | -  value: '_id',
 | 
	
		
			
				|  |  | -  disabled: (data) => {
 | 
	
		
			
				|  |  | -    return data.children && data.children.length > 0;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  value: 'code',
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  interface ruleFormClass {
 | 
	
		
			
				|  |  | -  medicalRecord: Map<string, any>,
 | 
	
		
			
				|  |  | -  // 病历编码
 | 
	
		
			
				|  |  | +  id: string
 | 
	
		
			
				|  |  |    medicalRecordCode: Array<string>,
 | 
	
		
			
				|  |  |    type: number,
 | 
	
		
			
				|  |  | -  data: any,
 | 
	
		
			
				|  |  |    offOrOnRule: number
 | 
	
		
			
				|  |  |    promptStatement: string
 | 
	
		
			
				|  |  |    name: string
 | 
	
	
		
			
				|  | @@ -137,83 +125,50 @@ interface ruleFormClass {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const ruleForm: Ref<ruleFormClass> = ref({
 | 
	
		
			
				|  |  | +  id: null,
 | 
	
		
			
				|  |  |    type: 1,
 | 
	
		
			
				|  |  | -  medicalRecord: {},
 | 
	
		
			
				|  |  | -  medicalRecordCode: {},
 | 
	
		
			
				|  |  | -  data: {},
 | 
	
		
			
				|  |  | +  medicalRecordCode: [],
 | 
	
		
			
				|  |  |    offOrOnRule: 1,
 | 
	
		
			
				|  |  | -  promptStatement: '超过了 24 小时无法创建',
 | 
	
		
			
				|  |  | +  promptStatement: '',
 | 
	
		
			
				|  |  |    name: '',
 | 
	
		
			
				|  |  |    sql: '',
 | 
	
		
			
				|  |  |    prescription: 24
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | - * 全选
 | 
	
		
			
				|  |  | - * @param list
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -const selectAll = (list) => {
 | 
	
		
			
				|  |  | -  list.forEach(data => {
 | 
	
		
			
				|  |  | -    ruleForm.value.medicalRecord[data._id] = {
 | 
	
		
			
				|  |  | -      code: data.code,
 | 
	
		
			
				|  |  | -      name: data.name
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    if (value.value.indexOf(data._id) === -1) {
 | 
	
		
			
				|  |  | -      value.value.push(data._id);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  })
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | - * 编码点击
 | 
	
		
			
				|  |  | - * @param data
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -const nodeClick = (data) => {
 | 
	
		
			
				|  |  | -  if (data.children) return
 | 
	
		
			
				|  |  | -  if (ruleForm.value.medicalRecord[data._id]) {
 | 
	
		
			
				|  |  | -    uncheck(data._id)
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | -    ruleForm.value.medicalRecord[data._id] = {
 | 
	
		
			
				|  |  | -      code: data.code,
 | 
	
		
			
				|  |  | -      name: data.name
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | - * 移除标签
 | 
	
		
			
				|  |  | - * @param data
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -const removeTag = (data) => {
 | 
	
		
			
				|  |  | -  uncheck(data)
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | - * 删除数据
 | 
	
		
			
				|  |  | - * @param value
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -const uncheck = (value) => {
 | 
	
		
			
				|  |  | -  delete ruleForm.value.medicalRecord[value]
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  const selectRef = ref(null)
 | 
	
		
			
				|  |  |  const selectChange = async () => {
 | 
	
		
			
				|  |  |    await nextTick()
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -const confirm = () => {
 | 
	
		
			
				|  |  | -  let temp = new Set()
 | 
	
		
			
				|  |  | -  for (let key in ruleForm.value.medicalRecord) {
 | 
	
		
			
				|  |  | -    temp.add(ruleForm.value.medicalRecord[key].code)
 | 
	
		
			
				|  |  | +const cancel = () => {
 | 
	
		
			
				|  |  | +  ruleForm.value = <ruleFormClass>{
 | 
	
		
			
				|  |  | +    id: null,
 | 
	
		
			
				|  |  | +    type: 1,
 | 
	
		
			
				|  |  | +    medicalRecordCode: [],
 | 
	
		
			
				|  |  | +    offOrOnRule: 1,
 | 
	
		
			
				|  |  | +    promptStatement: '',
 | 
	
		
			
				|  |  | +    name: '',
 | 
	
		
			
				|  |  | +    sql: '',
 | 
	
		
			
				|  |  | +    prescription: 24
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  ruleForm.value.medicalRecordCode = Array.from(temp)
 | 
	
		
			
				|  |  | +  dialog.value = false
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const confirm = () => {
 | 
	
		
			
				|  |  |    ruleForm.value.type = 1
 | 
	
		
			
				|  |  |    addRule(ruleForm.value)
 | 
	
		
			
				|  |  | -  console.log(ruleForm.value)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -const value: Ref<Array<string>> = ref([])
 | 
	
		
			
				|  |  | +const modify = async () => {
 | 
	
		
			
				|  |  | +  await modifyQualityControl(ruleForm.value)
 | 
	
		
			
				|  |  | +  cancel()
 | 
	
		
			
				|  |  | +  await queryRule()
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +const newlyAdded = () => {
 | 
	
		
			
				|  |  | +  cancel()
 | 
	
		
			
				|  |  | +  dialog.value = true
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const onOff = async (id, val) => {
 | 
	
		
			
				|  |  |    await switchQualityControl(id, val)
 | 
	
	
		
			
				|  | @@ -223,22 +178,29 @@ const deleteQualityControl = (val) => {
 | 
	
		
			
				|  |  |    ElMessageBox.confirm('是否要删除该质控!', '提示', {
 | 
	
		
			
				|  |  |      type: 'warning'
 | 
	
		
			
				|  |  |    }).then((res) => {
 | 
	
		
			
				|  |  | -    console.log(val)
 | 
	
		
			
				|  |  | +    deleteRuleById(val)
 | 
	
		
			
				|  |  |    }).catch((e) => {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -onMounted(() => {
 | 
	
		
			
				|  |  | -  getEmrTree('hosp').then((res) => {
 | 
	
		
			
				|  |  | -    emrTree.value = res.all[0].children
 | 
	
		
			
				|  |  | -  })
 | 
	
		
			
				|  |  | +const clickModifyButton = (val) => {
 | 
	
		
			
				|  |  | +  ruleForm.value = val
 | 
	
		
			
				|  |  | +  dialog.value = true
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +const queryRule = () => {
 | 
	
		
			
				|  |  |    getRuleList().then((res) => {
 | 
	
		
			
				|  |  | -    console.log(res)
 | 
	
		
			
				|  |  |      data.value = res
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +onMounted(() => {
 | 
	
		
			
				|  |  | +  getEmrTree('hosp').then((res) => {
 | 
	
		
			
				|  |  | +    emrTree.value = res.all[0].children
 | 
	
		
			
				|  |  | +    console.log(emrTree.value)
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  queryRule()
 | 
	
		
			
				|  |  |    getAvailableObjects().then((res) => {
 | 
	
		
			
				|  |  |      ruleDataElement.value = res
 | 
	
		
			
				|  |  |      console.log(res)
 |