添加机构信息查询护理单元信息

This commit is contained in:
yangjun 2025-11-11 09:57:16 +08:00
parent e47f9a5a7b
commit 35459a7771
5 changed files with 341 additions and 5 deletions

View File

@ -46,6 +46,9 @@
<span style="color: #909399;">加盟时间{{ orgInfo.franchiseTime?.substring(0, 10) }}</span>
<a-button style="font-size: 12px;" v-show="showDetail" type="link" size="small"
@click.stop="handleDetail">了解更多</a-button>
<a-button style="font-size: 12px;right:-70px;" v-show="showHldy" type="link" size="small"
@click.stop="handleHldy">护理单元</a-button>
<a-button style="font-size: 12px;" v-show="showInfo" type="link" size="small"
@click.stop="handleInfo">查看详情</a-button>
</div>
@ -65,11 +68,12 @@ const props = defineProps({
isElderTagMain: { type: Boolean, default: false },//
showDetail: { type: Boolean, default: false },
showInfo: { type: Boolean, default: false },
showHldy: { type: Boolean, default: false },
clickable: { type: Boolean, default: false },
showMainTile: { type: Boolean, default: true },///
})
const emit = defineEmits(['click', 'detail', 'info'])
const emit = defineEmits(['click', 'detail', 'info','hldy'])
const existTagFunc = () => {
return props.isDirectiveMain || props.isElderTagMain
@ -86,6 +90,9 @@ const handleDetail = () => {
const handleInfo = () => {
emit('info', props.orgInfo)
}
const handleHldy = () => {
emit('hldy', props.orgInfo)
}
</script>
<style lang="less" scoped>

View File

@ -22,12 +22,13 @@
</a-form>
</div>
<OrgListCom ref="orgListComRef" :title="queryParam.title" @handleOrgInfo="handleDetail" :showMainTile="false"
:showInfo="true">
<OrgListCom ref="orgListComRef" :title="queryParam.title" @handleOrgInfo="handleDetail" @handleHldy="handleHldy" :showMainTile="false"
:showInfo="true" :showHldy="true">
</OrgListCom>
<!-- 表单区域 -->
<OrgApplyInfoModal ref="registerModal"></OrgApplyInfoModal>
<OrgApplyHldyModal ref="registerHldyModal"></OrgApplyHldyModal>
</div>
</template>
@ -36,9 +37,11 @@ import { ref, reactive, computed, onMounted, watch } from 'vue'
import { getOrgInfo } from '/@/views/admin/orgapplyinfo/OrgApplyInfo.api';
import OrgListCom from '/@/views/synchronization/directive/orgCom/OrgListCom.vue'
import OrgApplyInfoModal from './components/OrgApplyInfoModal.vue'
import OrgApplyHldyModal from './components/OrgApplyHldyModal.vue'
const formRef = ref();
const registerModal = ref();
const registerHldyModal = ref();
const orgTableList = ref<any>([]);
const queryParam = reactive<any>({});
const pageParams = ref({ pageNo: 1, pageSize: 8 })
@ -63,6 +66,14 @@ function handleDetail(record) {
registerModal.value.disableSubmit = true;
registerModal.value.edit(record);
}
/**
* 查询护理单元信息
* @param record
*/
function handleHldy(record) {
registerHldyModal.value.disableSubmit = true;
registerHldyModal.value.edit(record);
}
/**
* 查询
*/

View File

@ -0,0 +1,184 @@
<template>
<a-spin :spinning="confirmLoading">
<JFormContainer :disabled="disabled">
<template #detail>
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol"
name="OrgApplyInfoForm">
<a-row class="card-class">
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'护理单元'" />
</a-col>
<a-col :span="8" v-for="(item, index) in dataSource" style="padding: 7px;">
<a-card :title="`NUID`+item.nuId" >
<template #extra>{{item.nuType}}</template>
<p>摄像头{{item.sxtList}}</p>
<p>电表{{item.dbList}}</p>
<p>水表{{item.sbList}}</p>
<p>温湿度计{{item.wsdjList}}</p>
</a-card>
</a-col>
</a-row>
</a-form>
</template>
</JFormContainer>
</a-spin>
</template>
<script lang="ts" setup>
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted } from 'vue';
import { defHttp } from '/@/utils/http/axios';
import { useMessage } from '/@/hooks/web/useMessage';
import { saveOrUpdate } from '../OrgApplyInfo.api';
import { Form } from 'ant-design-vue';
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
const cityViewValue = ref('')
const props = defineProps({
formDisabled: { type: Boolean, default: false },
formData: { type: Object, default: () => ({}) },
formBpm: { type: Boolean, default: true }
});
const formRef = ref();
const useForm = Form.useForm;
const emit = defineEmits(['register', 'ok']);
const dataSource = ref<any>([]);
const formData = reactive<Record<string, any>>({
id: '',
openId: '',
wechatName: '',
tel: '',
status: '',
buildStatus: '',
content: '',
createTime: '',
updateTime: '',
izEntry: '',
name: '',
sex: '',
national: '',
birthDate: '',
idCardAddress: '',
idCard: '',
issuingAuthority: '',
startTime: '',
endTime: '',
cardZmPath: '',
cardFmPath: '',
comBusinessLicense: '',
comName: '',
comRegisterAddress: '',
comCreditCode: '',
comLegalPerson: '',
orgAddress: '',
orgCoordinateLo: '',
orgCoordinateLa: '',
orgLeader: '',
orgLeaderPhone: '',
orgBuildingNumber: '',
orgPropertyType: '',
orgBuildingArea: undefined,
orgProvince: '',
orgCity: '',
orgDistrict: '',
orgProvince_dictText: '',
orgCity_dictText: '',
orgDistrict_dictText: '',
franchiseTime: null,
contract: null,
contractNote: null,
replyContent: '',
replyFile: '',
replyTime: '',
handleBy: '',
workOrderStatus: '',
workOrderStatus_dictText: '',
auditBy: '',
auditTime: '',
});
const { createMessage } = useMessage();
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 8 } });
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
const confirmLoading = ref<boolean>(false);
//
const validatorRules = reactive({
});
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
//
const disabled = computed(() => {
if (props.formBpm === true) {
if (props.formData.disabled === false) {
return false;
} else {
return true;
}
}
return props.formDisabled;
});
/**
* 新增
*/
function add() {
edit({});
}
/**
* 编辑
*/
function edit(record) {
console.log("🌊 ~ edit ~ record:", record)
nextTick(() => {
resetFields();
let tmpData = {};
Object.keys(formData).forEach((key) => {
if (record.hasOwnProperty(key)) {
tmpData[key] = record[key]
}
})
console.log("🚀 ~ edit ~ formData.orgCode:", record.orgCode)
defHttp.get({ url: '/api/nuBaseInfo/getNuListByOrgCode', params: { orgCode: record.orgCode } }).then(res => {
console.log("🚀 ~ edit ~ res:", res)
dataSource.value = res;
})
});
}
/**
* 提交数据
*/
async function submitForm() {
}
defineExpose({
add,
edit,
submitForm,
});
</script>
<style lang="less" scoped>
.antd-modal-form {
padding: 14px;
}
.card-class {
padding-top: 24px;
padding-bottom: 24px;
padding-left: 14px;
padding-right: 14px;
// background-color: rgba(255, 255, 255, 0.9);
background-color: #fcfdff;
border-radius: 10px;
// box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 12px;
margin-bottom: 14px;
}
</style>

View File

@ -0,0 +1,129 @@
<template>
<a-drawer :title="title" :width="`70vw`" v-model:visible="visible" :closable="true"
:footer-style="{ textAlign: 'right' }" :bodyStyle="{padding:'0px'}" @close="handleCancel">
<OrgApplyHldyForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false">
</OrgApplyHldyForm>
<template #footer>
<a-button type="primary" style="margin-right: 8px" @click="handleCancel">关闭</a-button>
<a-button type="primary" @click="handleOk" v-if="!disableSubmit">确认</a-button>
</template>
</a-drawer>
</template>
<script lang="ts" setup>
import { ref, nextTick, defineExpose } from 'vue';
import OrgApplyHldyForm from './OrgApplyHldyForm.vue'
import JModal from '/@/components/Modal/src/JModal/JModal.vue';
const title = ref<string>('');
const visible = ref<boolean>(false);
const disableSubmit = ref<boolean>(false);
const registerForm = ref();
const contractVisible = ref<boolean>(false);
const upContractForm = ref();
const emit = defineEmits(['register', 'success']);
function handleExtraButton(){
}
/**
* 新增
*/
function add() {
title.value = '新增';
visible.value = true;
nextTick(() => {
registerForm.value.add();
});
}
/**
* 编辑
* @param record
*/
function edit(record) {
title.value = disableSubmit.value ? '详情' : '机构加盟申请审核';
visible.value = true;
nextTick(() => {
registerForm.value.edit(record);
});
}
/**
* 确定按钮点击事件
*/
function handleOk() {
registerForm.value.submitForm();
}
/**
* form保存回调事件
*/
function submitCallback() {
handleCancel();
emit('success');
}
/**
* 取消按钮回调事件
*/
function handleCancel() {
visible.value = false;
}
/**
* 关闭合同上传窗口
*/
function handleContractCancel() {
contractVisible.value = false
}
/**
* 打开上传合同编辑窗口
*/
function editContract(record) {
contractVisible.value = true
nextTick(() => {
upContractForm.value.edit(record);
});
}
/**
* 上传合同提交
*/
function submitContractCallback() {
console.log(99999)
handleContractCancel();
emit('success');
}
/**
* 保存为草稿
*/
function saveContract() {
upContractForm.value.saveForm();
}
/**
* 保存并提交
*/
function submitContract() {
upContractForm.value.submitForm();
}
defineExpose({
add,
edit,
disableSubmit,
editContract,
});
</script>
<style lang="less">
/**隐藏样式-modal确定按钮 */
.jee-hidden {
display: none !important;
}
</style>
<style lang="less" scoped></style>

View File

@ -6,11 +6,12 @@
:xxl="props.layout == 'full' ? 6 : 8" :xxxl="props.layout == 'full' ? 4 : 8"
:style="{ 'padding-right': ((index + 1) % 4 != 0) ? '14px' : '0px', 'padding-bottom': '14px' }">
<OrgCard :orgInfo="item" :layout="props.layout" :showMainTile="props.showMainTile" :showInfo="props.showInfo"
:showHldy="props.showHldy"
:is-selected="selectedOrgs.some(org => org.orgCode === item.orgCode)"
:is-directive-selected="directiveMainSelectedOrg?.orgCode === item.orgCode"
:is-directive-main="dmOrg?.orgCode === item.orgCode" :show-detail="props.showDetail"
:clickable="props.showChoose || props.showDirectiveChoose" @click="handleCardClick" @detail="handleDetail"
@info="handleInfo" />
@info="handleInfo" @hldy="handleHldy" />
</a-col>
<a-col v-if="orgTableList.length == 0">
<div style="margin: 30px auto;">
@ -48,9 +49,10 @@ const props = defineProps({
showDirectiveChoose: { type: Boolean, default: false },
showDMTip: { type: Boolean, default: false },
showMainTile: { type: Boolean, default: true },///
showHldy: { type: Boolean, default: false },//
})
const emit = defineEmits(['handleOrgDetail', 'handleOrgChoose', 'handleOrgInfo'])
const emit = defineEmits(['handleOrgDetail', 'handleOrgChoose', 'handleOrgInfo','handleHldy'])
const orgTableList = ref<any>({ records: [], total: 0 })
const queryParam = reactive<any>({})
@ -88,6 +90,9 @@ function handleDetail(item: any) {
function handleInfo(item: any) {
emit('handleOrgInfo', item)
}
function handleHldy(item: any) {
emit('handleHldy', item)
}
function reload() {
directiveMainSelectedOrg.value = {}