diff --git a/src/api/platform/core/controller/user.ts b/src/api/platform/core/controller/user.ts
index 60bcd78..bb23875 100644
--- a/src/api/platform/core/controller/user.ts
+++ b/src/api/platform/core/controller/user.ts
@@ -21,7 +21,7 @@ enum Api {
/** 用户登录接口 */
export const login = (params: LoginParams, options?: boolean | RequestOptions) => {
- // 非对称密钥ASE加密处理
+ // 非对称密钥AES加密处理
const user = encryptionLogin({
data: params,
key: globSetting.gatewayAseEncodeSecret,
diff --git a/src/components/AMap/src/TaskModal.vue b/src/components/AMap/src/TaskModal.vue
index ddeab65..7a166ee 100644
--- a/src/components/AMap/src/TaskModal.vue
+++ b/src/components/AMap/src/TaskModal.vue
@@ -1,7 +1,6 @@
@@ -16,14 +15,20 @@
-
+
+ 新增任务
+
+
+
@@ -32,7 +37,7 @@
import { reactive } from 'vue';
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal';
import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table';
- import { formTaskColumns, formSchemeColumns, largeHospitalMapList, smallHospitalMapList, } from './map.data';
+ import { formTaskColumns, formMutualTaskColumns, largeHospitalMapList, smallHospitalMapList, } from './map.data';
import { buildUUID } from '/@/utils/uuid';
import { add, divide } from 'lodash-es';
@@ -49,6 +54,10 @@
currentEditKeyRef: '',
formData: {}
});
+ const mutualState = reactive({
+ currentEditKeyRef: '',
+ formData: {}
+ });
const emit = defineEmits(['success', 'register']);
const [registerModal, { setModalProps, closeModal }] = useModalInner(async data => {
driving = data.driving;
@@ -59,6 +68,7 @@
setModalProps(props);
});
const [registerTable, { reload, getDataSource }] = useTable({
+ title: '任务设置',
columns: formTaskColumns,
pagination: {
pageSize: 3,
@@ -77,9 +87,13 @@
slots: { customRender: 'action' },
}
});
- const [schemeRegisterTable, { reload: schemeReload, setProps }] = useTable({
- columns: formSchemeColumns,
- pagination: false,
+ const [schemeRegisterTable, { reload: schemeReload, getDataSource: getMutualDataSource, setProps }] = useTable({
+ title: '交接任务设置',
+ columns: formMutualTaskColumns,
+ pagination: {
+ pageSize: 3,
+ showSizeChanger: false
+ },
striped: false,
useSearchForm: false,
showTableSetting: false,
@@ -102,6 +116,39 @@
});
}
+ /** 处理任务新增 */
+ function handleMutualTaskAdd() {
+ getMutualDataSource().push({
+ smallHospitalId: '',
+ largeHospitalId: ''
+ });
+ }
+
+ function createMutualActions(record: EditRecordRow, column: BasicColumn): ActionItem[] {
+ if (!record.editable) {
+ return [
+ {
+ label: '编辑',
+ disabled: mutualState.currentEditKeyRef ? mutualState.currentEditKeyRef !== record.key : false,
+ onClick: handleMutualEdit.bind(null, record),
+ }
+ ];
+ }
+ return [
+ {
+ label: '保存',
+ onClick: handleMutualSave.bind(null, record, column)
+ },
+ {
+ label: '取消',
+ popConfirm: {
+ title: '是否取消编辑',
+ confirm: handleMutualCancel.bind(null, record, column)
+ }
+ }
+ ];
+ }
+
/** 创建操作列 */
function createActions(record: EditRecordRow, column: BasicColumn): ActionItem[] {
if (!record.editable) {
@@ -147,6 +194,26 @@
}
}
+
+ function handleMutualEdit(record: EditRecordRow) {
+ mutualState.currentEditKeyRef = record.key;
+ record.onEdit?.(true);
+ }
+
+ function handleMutualCancel(record: EditRecordRow) {
+ mutualState.currentEditKeyRef = '';
+ record.onEdit?.(false, false);
+ }
+
+ async function handleMutualSave(record: EditRecordRow) {
+ const valid = await record.onValid?.();
+ if (valid) {
+ const pass = await record.onEdit?.(false, true);
+ pass && (mutualState.currentEditKeyRef = '');
+ }
+ }
+
+
/** 智能计算方案 */
function computeScheme() {
const scheme = [];
diff --git a/src/components/AMap/src/map.data.ts b/src/components/AMap/src/map.data.ts
index 4c992f7..86b52cc 100644
--- a/src/components/AMap/src/map.data.ts
+++ b/src/components/AMap/src/map.data.ts
@@ -92,27 +92,79 @@ export const formTaskColumns: BasicColumn[] = [
// todo: 后做
title: '上传文件',
dataIndex: 'file'
+ },
+ {
+ title: '要求时间',
+ dataIndex: 'timeRequired',
+ editRow: true,
+ editComponent: 'DatePicker',
+ editComponentProps: {
+ valueFormat: 'YYYY-MM-DD',
+ format: 'YYYY-MM-DD',
+ }
}
];
-export const formSchemeColumns: BasicColumn[] = [
+export const formMutualTaskColumns: BasicColumn[] = [
{
- title: '方案名称',
- dataIndex: 'schemeName',
- edit: true,
- editRule: true
+ title: '下级医院',
+ dataIndex: 'smallHospitalId',
+ editRow: true,
+ editRule: true,
+ editComponent: 'Select',
+ editComponentProps: {
+ options: [
+ {
+ label: 'Option1',
+ value: '1'
+ },
+ {
+ label: 'Option2',
+ value: '2'
+ },
+ {
+ label: 'Option3',
+ value: '3'
+ }
+ ]
+ }
},
{
- title: '起点',
- dataIndex: 'origin'
+ title: '上级医院',
+ dataIndex: 'largeHospitalId',
+ editRow: true,
+ editRule: true,
+ editComponent: 'Select',
+ editComponentProps: {
+ 'options': [
+ {
+ 'label': 'Option1',
+ 'value': '1'
+ },
+ {
+ 'label': 'Option2',
+ 'value': '2'
+ },
+ {
+ 'label': 'Option3',
+ 'value': '3'
+ }
+ ]
+ }
},
{
- title: '终点',
- dataIndex: 'destination'
+ // todo: 后做
+ title: '上传文件',
+ dataIndex: 'file'
},
{
- title: '途径点',
- dataIndex: 'waypoints',
- ellipsis: true
+ title: '要求时间',
+ dataIndex: 'timeRequired',
+ editRow: true,
+ editComponent: 'DatePicker',
+ editComponentProps: {
+ valueFormat: 'YYYY-MM-DD',
+ format: 'YYYY-MM-DD',
+ }
}
];
diff --git a/src/views/institution/doctor/doctor.data.ts b/src/views/institution/doctor/doctor.data.ts
index 5ecc1ad..ea751f6 100644
--- a/src/views/institution/doctor/doctor.data.ts
+++ b/src/views/institution/doctor/doctor.data.ts
@@ -1,10 +1,11 @@
import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
-import {h} from 'vue';
+import {h, watch, watchEffect, watchSyncEffect} from 'vue';
import {Tag} from 'ant-design-vue';
import { list as hospitalList } from '/@/api/platform/system/controller/hospital';
import {list as institutionList, list as institutalList} from '/@/api/platform/system/controller/institution';
import { list as officeList } from '/@/api/platform/system/controller/office';
+import {deepMerge} from "/@/utils";
export const columns: BasicColumn[] = [
@@ -71,9 +72,9 @@ export const columns: BasicColumn[] = [
text = '未知';
color = 'gray';
break;
-
+
}
-
+
return h(Tag, { color: color }, () => text);
}
},
@@ -197,17 +198,23 @@ export const doctorFormSchema: FormSchema[] = [
label: '所属组织',
component: 'ApiSelect',
required: true,
- renderComponentContent: renderCallbackParams => {
- const organType = renderCallbackParams.model.organType;
- const dataApi = organType=='1' ? hospitalList : institutionList;
-
- renderCallbackParams.schema.componentProps = {
- resultField: 'list',
- labelField: 'name',
- valueField: 'id',
- api: dataApi
- };
- },
+ renderComponentContent: ({ schema, values, model, field }) => {
+ const organType = model.organType;
+ watch(organType,
+ () => {
+ const dataApi = organType=='1' ? hospitalList : institutionList;
+ console.log(schema);
+ schema.componentProps = deepMerge({
+ api: dataApi,
+ labelField: 'name',
+ valueField: 'id'
+ });
+ },
+ {
+ immediate: true,
+ }
+ );
+ }
},
// {
// field: 'officeId',
@@ -232,4 +239,4 @@ export const doctorFormSchema: FormSchema[] = [
field: 'remarks',
component: 'InputTextArea',
}
-];
\ No newline at end of file
+];
diff --git a/src/views/institution/office/office.data.ts b/src/views/institution/office/office.data.ts
index ae85345..e3d15f1 100644
--- a/src/views/institution/office/office.data.ts
+++ b/src/views/institution/office/office.data.ts
@@ -1,9 +1,10 @@
import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
-import {h} from 'vue';
+import {h, watch} from 'vue';
import {Tag} from 'ant-design-vue';
import { list as hospitalList } from '/@/api/platform/system/controller/hospital';
import { list as institutionList } from '/@/api/platform/system/controller/institution';
+import {deepMerge} from "/@/utils";
export const columns: BasicColumn[] = [
@@ -140,16 +141,22 @@ export const officeFormSchema: FormSchema[] = [
label: '所属组织',
component: 'ApiSelect',
required: true,
- renderComponentContent: renderCallbackParams => {
- const organType = renderCallbackParams.model.organType;
- const dataApi = organType==1 ? hospitalList : institutionList;
-
- renderCallbackParams.schema.componentProps = {
- resultField: 'list',
- labelField: 'name',
- valueField: 'id',
- api: dataApi
- };
+ renderComponentContent: ({ schema, values, model, field }) => {
+ const organType = model.organType;
+ watch(organType,
+ () => {
+ const dataApi = organType=='1' ? hospitalList : institutionList;
+ console.log(schema);
+ schema.componentProps = deepMerge({
+ api: dataApi,
+ labelField: 'name',
+ valueField: 'id'
+ });
+ },
+ {
+ immediate: true,
+ }
+ );
},
},
{
@@ -187,4 +194,4 @@ export const officeFormSchema: FormSchema[] = [
field: 'remarks',
component: 'InputTextArea',
}
-];
\ No newline at end of file
+];