1.更新im
2.修改最近提的问题
This commit is contained in:
2025-07-06 15:15:37 +08:00
parent f0a17ff9f1
commit be946d3f0b
56 changed files with 642 additions and 4348 deletions
@@ -4,7 +4,10 @@ import { render } from '/@/utils/common/renderUtils';
import { getHospitalsList, getNewHospitalApi } from '../../system/user/user.api';
import { personType } from '/@/views/emergency/outburst/ScheduleCustom/ScheduleDefault.api';
import dayjs from 'dayjs';
import { onSitePersonNewApi } from '/@/views/emergency/communication/components/commApi';
import {
employListApi,
onSitePersonNewApi, secondDepartApi
} from '/@/views/emergency/communication/components/commApi';
import { useMessage } from '/@/hooks/web/useMessage';
import moment from 'moment';
import { getZHospitalApi } from '/@/views/emergency/EmergencySeriousDisease/EmergencySeriousDisease.api';
@@ -436,3 +439,82 @@ export function getBpmFormSchema(_formData): FormSchema[] {
// 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
return formSchema;
}
const mColumns: BasicColumn[] = [
{
title: '员工姓名',
dataIndex: 'realname',
},
{
title: '单位名称',
dataIndex: ['secondDepart', 'departName'],
},
];
const mSearchFormSchema: FormSchema[] = [
{
label: '员工姓名',
field: 'realname',
component: 'Input',
},
{
label: '单位名称',
field: 'orgCode',
component: 'ApiSelect',
componentProps: () => {
return {
api: secondDepartApi,
resultField: 'result',
labelField: 'departName',
valueField: 'orgCode',
immediate: true,
}
}
},
];
export const tableProps = {
tableProps: {
api: employListApi,
columns: mColumns,
canResize: false,
immediate: false,
rowKey: (record: Recordable) => {
return JSON.stringify({
id: record.id,
realname: record?.realname
});
},
formConfig: {
labelWidth: 63,
schemas: mSearchFormSchema,
autoSubmitOnEnter: true,
showAdvancedButton: false,
fieldMapToNumber: [],
fieldMapToTime: [],
baseColProps: {
xs: 12,
sm: 12,
md: 12,
lg: 12,
xl: 12,
xxl: 12,
},
actionColOptions: {
span: 24,
offset: 0,
xs: 12,
sm: 12,
md: 12,
lg: 12,
xl: 12,
xxl: 12,
},
// resetFunc: () => {
// setTimeout(async () => {
// await chooseDom.value.getForm().setFieldsValue(paramsInfo.value);
// });
// },
},
showActionColumn: false,
},
}
@@ -13,7 +13,14 @@
<BasicForm @register="registerForm" style="overflow: auto" />
</BasicDrawer>
<!-- <UserSelectModal rowKey="id" @register="registerSelUserModal" @getSelectResult="onSelectUserOk" />-->
<replace-other ref="replaceOtherRef" title="选择用户" @choose-employ="onSelectUserOk" />
<!-- <replace-other ref="replaceOtherRef" title="选择用户" @choose-employ="onSelectUserOk" />-->
<ChooseSome
:width="750"
@register="registerUserDrawer"
@select-some="onSelectUserOk"
title="选择用户"
:tableprops="tableProps"
/>
<list-user-by-person-type @register="registerListModal" />
</div>
</template>
@@ -22,14 +29,15 @@
import { ref, unref } from 'vue';
import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
import { BasicForm, useForm } from '/@/components/Form/index';
import { formSchema } from '../EmergencySeriousDisease.data';
import {formSchema, tableProps} from '../EmergencySeriousDisease.data';
import { saveOrUpdate } from '../EmergencySeriousDisease.api';
import UserSelectModal from '/@/components/Form/src/jeecg/components/modal/UserSelectModalIllness.vue';
import { useModal } from '/@/components/Modal';
import { useDrawer } from '/@/components/Drawer';
import ListUserByPersonType from '/@/views/emergency/EmergencySeriousDisease/components/listUserByPersonType.vue';
import ReplaceOther from '/@/views/emergency/communication/components/replaceOther.vue';
const [registerSelUserModal, selUserModal] = useDrawer();
import ChooseSome from "/@/views/compoents/chooseSome/index.vue";
const [registerUserDrawer, {openDrawer}] = useDrawer();
const [registerListModal, { openDrawer: openListModal }] = useDrawer();
// Emits声明
const emit = defineEmits(['register', 'success']);
@@ -39,7 +47,15 @@
//设置标题
const title = ref<string>('');
formSchema[0].componentProps.onClick = () => {
replaceOtherRef.value.showModal();
// replaceOtherRef.value.showModal();
openDrawer(true, {
selectedRowKeys: [
JSON.stringify({
id: getFieldsValue().userId,
realname: getFieldsValue().realname,
})
]
});
};
formSchema[7].componentProps.onOptionsChange = (options) => {
onSelectHospital(options);
@@ -64,7 +80,7 @@
// });
//表单配置
const [registerForm, { setProps, resetFields, setFieldsValue, validate, clearValidate, updateSchema }] = useForm({
const [registerForm, { setProps, resetFields, setFieldsValue, validate, clearValidate, updateSchema, getFieldsValue }] = useForm({
//labelWidth: 150,
schemas: formSchema,
showActionButtonGroup: false,
@@ -32,6 +32,7 @@
import MarkersIcon from '/@/assets/images/markerCricle.png';
import { list } from './DeviceMap.api';
import { message } from 'ant-design-vue';
import {mapCenter} from "/@/utils/mapInfo";
let SelfMap = null;
let BasicMap = null;
@@ -64,7 +65,7 @@
BasicMap = new AMap.Map('container', {
viewMode: '3D', //是否为3D地图模式
// zoom: 11, //初始化地图级别
// center: [108.95, 34.33], //初始化地图中心点位置
center: mapCenter, //初始化地图中心点位置
resizeEnable: true,
});
// 注册搜索插件
@@ -1,13 +1,13 @@
import { defHttp } from '/@/utils/http/axios';
enum Api {
list = '/health-archives/housenew/fakerData/getFakerData',
save = '/health-archives/housenew/fakerData/createYcServiceFakerData,' +
'/health-archives/housenew/fakerData/createYcMedicalFakerData,' +
'/health-archives/housenew/fakerData/createYcMedicalCenterFakerData,' +
'/health-archives/housenew/fakerData/createYcUserHealthFakerData', // 查询: 9:银川服务 10:银川医院 11:银川一线医疗点 12:银川员工健康
status = '/health-archives/housenew/fakerData/getFakerDataEnable',
changeStatus = '/health-archives/housenew/fakerData/fakerDataEnable',
list = '/health-emergency/emergency/fakerData/getFakerData',
save = '/health-emergency/emergency/fakerData/createYcServiceFakerData,' +
'/health-emergency/emergency/fakerData/createYcMedicalFakerData,' +
'/health-emergency/emergency/fakerData/createYcMedicalCenterFakerData,' +
'/health-emergency/emergency/fakerData/createYcUserHealthFakerData', // 查询: 9:银川服务 10:银川医院 11:银川一线医疗点 12:银川员工健康
status = '/health-emergency/emergency/fakerData/getFakerDataEnable',
changeStatus = '/health-emergency/emergency/fakerData/fakerDataEnable',
}
export const listApi = (params: any) => defHttp.post({ url: Api.list, params }, { joinParamsToUrl: true, isTransformResponse: false });
export const saveApi = (params: any) => defHttp.post({ url: Api.save.split(',')[params['module'] - 9], params });
@@ -10,13 +10,13 @@
@close="closeDrawer"
:headerStyle="{ display: 'none' }"
>
<div id="container1" style="height: 100%"></div>
<div id="container1" style="height: calc(100% + 20px); overflow: hidden"></div>
</a-drawer>
</template>
<script setup lang="ts">
import { onMounted, ref } from 'vue';
import AMapLoader from '@amap/amap-jsapi-loader';
import { mapKey } from '/@/utils/baiduMaopKey';
import mapKey from "/@/utils/mapKey";
let BasicMap = null;
const visible = ref<Boolean>();
const emit = defineEmits(['closeDrawerOpenUp']);
@@ -121,4 +121,8 @@
height: 20px;
}
}
:deep(.amap-logo) {
display: none;
}
</style>
@@ -82,7 +82,7 @@
<a-row class="bottom-button">
<a-button type="primary" :disabled="resultInfo.orderStatus === '5'" @click="saveB" :loading="saveLoading">保存</a-button>
<a-button type="primary" :disabled="resultInfo.orderStatus === '5'" @click="supplementB(resultInfo)">补充小节</a-button>
<a-button type="primary" :disabled="resultInfo.orderStatus === '5'" @click="onSiteB(resultInfo)">驻场派单</a-button>
<!-- <a-button type="primary" :disabled="resultInfo.orderStatus === '5'" @click="onSiteB(resultInfo)">驻场派单</a-button>-->
<!-- <a-button type="primary" :disabled="resultInfo.orderStatus === '5'" @click="endB(resultInfo)" :loading="endLoading">结束应急</a-button>-->
</a-row>
<replaceOther ref="replaceOtherRef" @choose-employ="chooseEmploy" />
@@ -8,12 +8,12 @@
<!-- {{ oneNumber > 99 ? '99+' : oneNumber }}-->
<!-- </div>-->
</div>
<div :class="['button-t', checked ? '' : 'choose-this']" @click="clickThis(false)">
大病就医
<!-- <div v-show="twoNumber > 0" class="number-d">-->
<!-- {{ twoNumber > 99 ? '99+' : twoNumber }}-->
<!-- </div>-->
</div>
<!-- <div :class="['button-t', checked ? '' : 'choose-this']" @click="clickThis(false)">-->
<!-- 大病就医-->
<!-- &lt;!&ndash; <div v-show="twoNumber > 0" class="number-d">&ndash;&gt;-->
<!-- &lt;!&ndash; {{ twoNumber > 99 ? '99+' : twoNumber }}&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- </div>-->
</a-col>
<a-col :span="12" style="display: flex; justify-content: flex-end; padding-right: 60px">
<a-row class="top-right-row" style="color: #ffa845">
@@ -22,12 +22,12 @@
{{ stat.emeResRate + '%' }}
</div>
</a-row>
<a-row class="top-right-row" style="color: #4ad246">
<div> 大病就医率</div>
<div>
{{ stat.seriousRate + '%' }}
</div>
</a-row>
<!-- <a-row class="top-right-row" style="color: #4ad246">-->
<!-- <div> 大病就医率</div>-->
<!-- <div>-->
<!-- {{ stat.seriousRate + '%' }}-->
<!-- </div>-->
<!-- </a-row>-->
</a-col>
</a-row>
<a-row class="bottom-row">
@@ -66,11 +66,11 @@ export const columns: BasicColumn[] = [
align: 'center',
dataIndex: 'operationUserName',
},
{
title: '驻场人员',
align: 'center',
dataIndex: 'stationUserName',
},
// {
// title: '驻场人员',
// align: 'center',
// dataIndex: 'stationUserName',
// },
{
title: '工单状态',
align: 'center',
@@ -688,36 +688,36 @@ export const formSchema: FormSchema[] = [
component: 'Input',
rules: [{ required: false, pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' }],
},
{
label: '驻场人员',
field: 'stationUserName',
component: 'Input',
},
{
label: '驻场人员性别',
field: 'stationUserSex',
component: 'JDictSelectTag',
componentProps: () => ({
dictCode: 'sex',
type: 'radioButton',
}),
},
{
label: '驻场人员电话',
field: 'stationUserMobile',
component: 'Input',
rules: [{ required: false, pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' }],
},
{
label: '驻场人员部门',
field: 'stationUserDepart',
component: 'Input',
},
{
label: '驻场人员派单业务',
field: 'stationBusiness',
component: 'Input',
},
// {
// label: '驻场人员',
// field: 'stationUserName',
// component: 'Input',
// },
// {
// label: '驻场人员性别',
// field: 'stationUserSex',
// component: 'JDictSelectTag',
// componentProps: () => ({
// dictCode: 'sex',
// type: 'radioButton',
// }),
// },
// {
// label: '驻场人员电话',
// field: 'stationUserMobile',
// component: 'Input',
// rules: [{ required: false, pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' }],
// },
// {
// label: '驻场人员部门',
// field: 'stationUserDepart',
// component: 'Input',
// },
// {
// label: '驻场人员派单业务',
// field: 'stationBusiness',
// component: 'Input',
// },
{
label: '操作人员响应时间',
field: 'operationResponseTime',
@@ -733,16 +733,16 @@ export const formSchema: FormSchema[] = [
field: 'majorResponseTime',
component: 'DatePicker',
},
{
label: '驻场人员响应时间',
field: 'stationResponseTime',
component: 'DatePicker',
},
{
label: '驻场人员拒单时间',
field: 'stationRejectionTime',
component: 'DatePicker',
},
// {
// label: '驻场人员响应时间',
// field: 'stationResponseTime',
// component: 'DatePicker',
// },
// {
// label: '驻场人员拒单时间',
// field: 'stationRejectionTime',
// component: 'DatePicker',
// },
{
label: '专业人员救助意见',
field: 'majorSalvageOpinion',
@@ -907,14 +907,14 @@ export const descList2 = [
label: '派单时间',
key: 'operationSendOrderTime',
},
{
label: '驻场人员',
key: 'stationUserName',
},
{
label: '驻场人员手机',
key: 'stationUserMobile',
},
// {
// label: '驻场人员',
// key: 'stationUserName',
// },
// {
// label: '驻场人员手机',
// key: 'stationUserMobile',
// },
{
label: '接单时间',
key: 'stationResponseTime',
@@ -53,7 +53,7 @@
},
showActionColumn: userStore.getUserInfo?.personType !== '6',
actionColumn: {
width: 200,
width: 130,
fixed: 'right',
},
beforeFetch: (info) => {
@@ -138,10 +138,10 @@
onClick: handleDetail.bind(null, record),
auth: 'emergency:emergency_order:edit',
},
{
label: '派单记录',
onClick: orderRecord.bind(null, record),
},
// {
// label: '派单记录',
// onClick: orderRecord.bind(null, record),
// },
{
label: '删除',
onClick: handleDelete.bind(null, record),
@@ -154,7 +154,7 @@ export const formSchema: FormSchema[] = [
label: '联系电话',
field: 'mobile',
component: 'Input',
rules: [{ required: true, pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误' }],
rules: [{ required: true },{ pattern: /^1[3456789]\d{9}$/, message: '手机号码格式有误'}],
},
{
label: '经度',
@@ -251,15 +251,15 @@
listApi(params)
.then((res) => {
weekKey.map((item: any, index: number) => {
res[item]['professionalUserListIds'] = [];
res[item]['operationUserListIds'] = [];
if(!res[item]['professionalUserListIds']) res[item]['professionalUserListIds'] = [];
if(!res[item]['operationUserListIds']) res[item]['operationUserListIds'] = [];
res[item]?.professionalUserList &&
res[item]?.professionalUserList.map((it: any) => {
res[item]['professionalUserListIds'].push(it.userId);
if(!res[item]['professionalUserListIds'].includes(it.userId)) res[item]['professionalUserListIds'].push(it.userId);
});
res[item]?.operationUserList &&
res[item]?.operationUserList.map((it: any) => {
res[item]['operationUserListIds'].push(it.userId);
if(!res[item]['operationUserListIds'].includes(it.userId)) res[item]['operationUserListIds'].push(it.userId);
});
if (date1) {
res[item]['time'] = dayjs(date1).add(index, 'day').format('YYYY-MM-DD');