Merge branch 'master' of http://47.115.223.229:8888/yangjun/nursing_unit_vue
This commit is contained in:
commit
c5fec1250e
|
|
@ -521,7 +521,7 @@
|
|||
//update-end-author:liusq---date:20230517--for: [issues/526]RangePicker 设置预设范围按钮样式问题---
|
||||
|
||||
.ant-table-wrapper {
|
||||
padding: 6px;
|
||||
padding: 14px;
|
||||
background-color: @component-background;
|
||||
border-radius: 8px;
|
||||
|
||||
|
|
|
|||
|
|
@ -58,13 +58,136 @@
|
|||
@click="handleAddbj({ levle: '1' })" preIcon="ant-design:plus-outlined"> 一级分类</a-button>
|
||||
</div>
|
||||
</div>
|
||||
<a-tree class="draggable-tree" draggable block-node :tree-data="treeData">
|
||||
|
||||
<a-menu style="width: 100%;" mode="inline" >
|
||||
<template v-for="item in treeData">
|
||||
<!-- 第一层判断是否有下级 -->
|
||||
<a-sub-menu v-if="item.children && item.children.length > 0" :key="item.key">
|
||||
<template #icon>
|
||||
<Icon :icon="item.icon" :size="20" v-if="item.icon" />
|
||||
<Icon icon="ant-design:appstore-add-outlined" :size="20" v-else />
|
||||
</template>
|
||||
<template #title>
|
||||
<span @mouseenter="item.showContent = true" @mouseleave="item.showContent = false">{{ item?.title }}
|
||||
<span v-if="item?.izEnabled == '1'" style="color:red;">(已停用)</span>
|
||||
<span v-show="item.showContent">
|
||||
<!-- 下拉菜单 -->
|
||||
<a-dropdown >
|
||||
<template #overlay>
|
||||
<ConfigMaterialInfoListMenu :data="item" @handleAddbj="handleAddbj" @handleAddxj="handleAddxj" @handleAdd="handleAdd" @handleFenleiEdit="handleFenleiEdit" @handleQyty="handleQyty" @handleQianyi="handleQianyi" />
|
||||
</template>
|
||||
<!-- 图标 -->
|
||||
<a class="ant-dropdown-link" style="color:#1890FF;" @click.prevent>
|
||||
<Icon icon="ant-design:setting-outlined" />
|
||||
</a>
|
||||
</a-dropdown>
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
<!-- 第二级 -->
|
||||
<template v-for="child in item.children">
|
||||
<a-sub-menu :key="child.key" v-if="child.children && child.children.length > 0">
|
||||
<template #icon>
|
||||
<Icon :icon="child.icon" :size="20" v-if="child.icon" />
|
||||
<Icon icon="ant-design:appstore-add-outlined" :size="20" v-else />
|
||||
</template>
|
||||
<template #title>
|
||||
<span @mouseenter="child.showContent = true" @mouseleave="child.showContent = false">{{ child?.title }}
|
||||
<span v-if="child?.izEnabled == '1'" style="color:red;">(已停用)</span>
|
||||
<span v-show="child.showContent">
|
||||
<!-- 下拉菜单 -->
|
||||
<a-dropdown >
|
||||
<template #overlay>
|
||||
<ConfigMaterialInfoListMenu :data="child" @handleAddbj="handleAddbj" @handleAddxj="handleAddxj" @handleAdd="handleAdd" @handleFenleiEdit="handleFenleiEdit" @handleQyty="handleQyty" @handleQianyi="handleQianyi" />
|
||||
</template>
|
||||
<!-- 图标 -->
|
||||
<a class="ant-dropdown-link" style="color:#1890FF;" @click.prevent>
|
||||
<Icon icon="ant-design:setting-outlined" />
|
||||
</a>
|
||||
</a-dropdown>
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
<!-- 第三层 -->
|
||||
<a-menu-item :key="childThree.key" v-for="childThree in child.children">
|
||||
<template #icon>
|
||||
<Icon :icon="childThree.icon" :size="20" v-if="childThree.icon" />
|
||||
<Icon icon="ant-design:appstore-add-outlined" :size="20" v-else />
|
||||
</template>
|
||||
<span @mouseenter="childThree.showContent = true" @mouseleave="childThree.showContent = false">{{ childThree?.title }}
|
||||
<span v-if="childThree?.izEnabled == '1'" style="color:red;">(已停用)</span>
|
||||
<span v-show="childThree.showContent">
|
||||
<a-dropdown >
|
||||
<template #overlay>
|
||||
<ConfigMaterialInfoListMenu :data="childThree" @handleAddbj="handleAddbj" @handleAddxj="handleAddxj" @handleAdd="handleAdd" @handleFenleiEdit="handleFenleiEdit" @handleQyty="handleQyty" @handleQianyi="handleQianyi" />
|
||||
</template>
|
||||
<a class="ant-dropdown-link" style="color:#1890FF;" @click.prevent>
|
||||
<Icon icon="ant-design:setting-outlined" />
|
||||
</a>
|
||||
</a-dropdown>
|
||||
</span>
|
||||
</span>
|
||||
</a-menu-item>
|
||||
</a-sub-menu>
|
||||
<a-menu-item :key="child.key" v-if="!child.children || child.children.length < 1">
|
||||
<template #icon>
|
||||
<Icon :icon="child.icon" :size="20" v-if="child.icon" />
|
||||
<Icon icon="ant-design:appstore-add-outlined" :size="20" v-else />
|
||||
</template>
|
||||
<span @mouseenter="child.showContent = true" @mouseleave="child.showContent = false">{{ child?.title }}
|
||||
<span v-if="child?.izEnabled == '1'" style="color:red;">(已停用)</span>
|
||||
<span v-show="child.showContent">
|
||||
<!-- 下拉菜单 -->
|
||||
<a-dropdown >
|
||||
<template #overlay>
|
||||
<ConfigMaterialInfoListMenu :data="child" @handleAddbj="handleAddbj" @handleAddxj="handleAddxj" @handleAdd="handleAdd" @handleFenleiEdit="handleFenleiEdit" @handleQyty="handleQyty" @handleQianyi="handleQianyi" />
|
||||
</template>
|
||||
<!-- 图标 -->
|
||||
<a class="ant-dropdown-link" style="color:#1890FF;" @click.prevent>
|
||||
<Icon icon="ant-design:setting-outlined" />
|
||||
</a>
|
||||
</a-dropdown>
|
||||
</span>
|
||||
</span>
|
||||
</a-menu-item>
|
||||
</template>
|
||||
</a-sub-menu>
|
||||
<a-menu-item :key="item.key" v-if="!item.children || item.children.length < 1">
|
||||
<template #icon>
|
||||
<Icon :icon="item.icon" :size="20" v-if="item.icon" />
|
||||
<Icon icon="ant-design:appstore-add-outlined" :size="20" v-else />
|
||||
</template>
|
||||
<span @mouseenter="item.showContent = true" @mouseleave="item.showContent = false">{{ item?.title }}
|
||||
<span v-if="item?.izEnabled == '1'" style="color:red;">(已停用)</span>
|
||||
<span v-show="item.showContent">
|
||||
<!-- 下拉菜单 -->
|
||||
<a-dropdown >
|
||||
<template #overlay>
|
||||
<ConfigMaterialInfoListMenu :data="item" @handleAddbj="handleAddbj" @handleAddxj="handleAddxj" @handleAdd="handleAdd" @handleFenleiEdit="handleFenleiEdit" @handleQyty="handleQyty" @handleQianyi="handleQianyi" />
|
||||
</template>
|
||||
<!-- 图标 -->
|
||||
<a class="ant-dropdown-link" style="color:#1890FF;" @click.prevent>
|
||||
<Icon icon="ant-design:setting-outlined" />
|
||||
</a>
|
||||
</a-dropdown>
|
||||
</span>
|
||||
</span>
|
||||
</a-menu-item>
|
||||
</template>
|
||||
</a-menu>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <a-tree class="draggable-tree" draggable block-node :tree-data="treeData">
|
||||
<template #title="{ data, title }">
|
||||
<div @mouseenter="data.showContent = true" @mouseleave="data.showContent = false">
|
||||
<span @click="handleSearch(data)">{{ title }}</span>
|
||||
<span v-if="data?.izEnabled == '1'" style="color:red;">(已停用)</span>
|
||||
<span v-show="data.showContent" style="margin-left: 5px;">
|
||||
<!-- 下拉菜单 -->
|
||||
<a-dropdown>
|
||||
<a class="ant-dropdown-link" @click.prevent>
|
||||
<Icon icon="ant-design:setting-outlined" />
|
||||
|
|
@ -117,7 +240,7 @@
|
|||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</a-tree>
|
||||
</a-tree> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-height" style="width:calc(100% - 300px);float: left;">
|
||||
|
|
@ -179,6 +302,7 @@ import ConfigMaterialTypeModal from '/@/views/invoicing/ConfigMaterial/component
|
|||
import ConfigMaterialMedicationModal from '/@/views/invoicing/ConfigMaterial/components/ConfigMaterialMedicationModal.vue';
|
||||
import QianyiModal from '/@/views/invoicing/ConfigMaterial/components/QianyiModal.vue';
|
||||
import WlqianyiModal from '/@/views/invoicing/ConfigMaterial/components/WlqianyiModal.vue';
|
||||
import ConfigMaterialInfoListMenu from './ConfigMaterialInfoListMenu.vue';
|
||||
import { useResponsive } from '/@/hooks/web/useResponsive';
|
||||
|
||||
const { screenEnum, screenWidth } = useResponsive();
|
||||
|
|
@ -656,4 +780,13 @@ onMounted(() => {
|
|||
height: 81.5vh;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
:deep(.ant-menu-item-selected) {
|
||||
color: #4b4b4b !important;
|
||||
}
|
||||
|
||||
:deep(.ant-menu-submenu-title) {
|
||||
color: #4b4b4b !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<template>
|
||||
<a-menu>
|
||||
<a-menu-item v-if="data.levle == '1'">
|
||||
<Icon icon="ant-design:plus-outlined" class="abuttoncss" />
|
||||
<a href="javascript:;" class="abuttoncss" @click="handleAddbj(data)">添加本级</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item
|
||||
v-if="(data.levle == '1' || data.levle == '2') && data.tjxj == 0 && data.parentIzEnabled == 0 && data.izEnabled == '0'">
|
||||
<Icon icon="ant-design:plus-outlined" class="abuttoncss" />
|
||||
<a href="javascript:;" class="abuttoncss" @click="handleAddxj(data)">添加下级</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item
|
||||
v-if="data?.children?.length == 0 && data.parentIzEnabled == 0 && data.izEnabled == '0'">
|
||||
<Icon icon="ant-design:plus-outlined" class="abuttoncss" />
|
||||
<a href="javascript:;" class="abuttoncss" @click="handleAdd(data)">添加物料</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item v-if="data.parentIzEnabled == 0 && data.izEnabled == '0'">
|
||||
<Icon icon="ant-design:edit-outlined" class="abuttoncss" />
|
||||
<a href="javascript:;" class="abuttoncss" @click="handleFenleiEdit(data)">编辑</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item
|
||||
v-if="(data.izEnabled == '1' && data.parentIzEnabled == 0) || (data.parentIzEnabled == 1 && data.levle == '1')">
|
||||
<Icon icon="ant-design:check-circle-outlined" class="abuttoncss" />
|
||||
<a href="javascript:;" class="abuttoncss" @click="handleQyty(data, '0')">启用</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item v-if="data.izEnabled == '0'">
|
||||
<Icon icon="ant-design:stop-outlined" class="abuttoncss" />
|
||||
<a href="javascript:;" class="abuttoncss" @click="handleQyty(data, '1')">停用</a>
|
||||
</a-menu-item>
|
||||
<a-menu-item
|
||||
v-if="(data.levle == '2' || data.levle == '3') && data.parentIzEnabled == 0 && data.izEnabled == '0'">
|
||||
<Icon icon="ant-design:copy-outlined" class="abuttoncss" />
|
||||
<a href="javascript:;" class="abuttoncss" @click="handleQianyi(data)">迁移</a>
|
||||
</a-menu-item>
|
||||
|
||||
<a-menu-item
|
||||
v-if="(data.levle == '2' || data.levle == '3') && data.parentIzEnabled == 1 && data.izEnabled == '1'">
|
||||
<span disabled>
|
||||
<Icon icon="ant-design:file-excel-outlined" />
|
||||
暂无操作
|
||||
</span>
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
</template>
|
||||
|
||||
<script lang="ts" name="configMaterialInfo-configMaterialInfo" setup>
|
||||
|
||||
const emit = defineEmits(['handleAddbj', 'handleAddxj', 'handleAdd', 'handleFenleiEdit', 'handleQyty', 'handleQianyi']);
|
||||
const props = defineProps({
|
||||
data: {
|
||||
type: [String, Array] as PropType<string | string[]>,
|
||||
default: '',},
|
||||
});
|
||||
function handleAddbj(data) { emit('handleAddbj', data); }
|
||||
function handleAddxj(data) { emit('handleAddxj', data); }
|
||||
function handleAdd(data) { emit('handleAdd', data); }
|
||||
function handleFenleiEdit(data) { emit('handleFenleiEdit', data); }
|
||||
function handleQyty(data, type) { emit('handleQyty', data, type); }
|
||||
function handleQianyi(data) { emit('handleQianyi', data); }
|
||||
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
|
||||
.abuttoncss {
|
||||
color: #1890ff !important;
|
||||
}
|
||||
|
||||
.abuttoncss:hover {
|
||||
color: #69c0ff !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -4,10 +4,16 @@
|
|||
<template #detail>
|
||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="ConfigMaterialMedicationForm">
|
||||
<a-row>
|
||||
<a-col :span="24" style="margin-top: 100px;">
|
||||
<a-col :span="24" style="margin-top: 50px;">
|
||||
<a-form-item label="一级分类" v-bind="validateInfos.categoryName" id="ConfigMaterialMedicationForm-categoryName" name="categoryId">
|
||||
<a-input v-model:value="formData.categoryName" placeholder="请输入一级分类" maxLength="10" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
|
||||
<a-col :span="24" style="margin-top: 50px;">
|
||||
<a-form-item label="图标" v-bind="validateInfos.icon" id="ConfigMaterialMedicationForm-icon" name="icon">
|
||||
<IconPicker v-model:value="formData.icon" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
|
|
@ -25,6 +31,7 @@
|
|||
import { saveOrUpdate } from '../ConfigMaterialCategory.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||
import { IconPicker } from '/@/components/Icon/index';
|
||||
const props = defineProps({
|
||||
formDisabled: { type: Boolean, default: false },
|
||||
formData: { type: Object, default: () => ({})},
|
||||
|
|
@ -36,6 +43,7 @@
|
|||
const formData = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
categoryName: '',
|
||||
icon: '',
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
|
|
|
|||
|
|
@ -14,11 +14,16 @@
|
|||
<j-dict-select-tag type='list' v-model:value="formData.typeId" :dictCode="`nu_config_material_type,type_name,id,iz_enabled = 0 and del_flag = 0 and category_id = ${formData.categoryId || -1}`" placeholder="请选择二级分类" allow-clear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-col :span="24" style="margin-top: 50px;">
|
||||
<a-form-item label="三级分类" v-bind="validateInfos.medicationName" id="ConfigMaterialMedicationForm-medicationName" name="medicationName">
|
||||
<a-input v-model:value="formData.medicationName" placeholder="请输入三级分类" maxLength="10" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" style="margin-top: 50px;">
|
||||
<a-form-item label="图标" v-bind="validateInfos.icon" id="ConfigMaterialMedicationForm-icon" name="icon">
|
||||
<IconPicker v-model:value="formData.icon" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</template>
|
||||
|
|
@ -35,6 +40,7 @@
|
|||
import { saveOrUpdate } from '../ConfigMaterialMedication.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||
import { IconPicker } from '/@/components/Icon/index';
|
||||
const props = defineProps({
|
||||
formDisabled: { type: Boolean, default: false },
|
||||
formData: { type: Object, default: () => ({})},
|
||||
|
|
@ -49,6 +55,7 @@
|
|||
categoryId: '',
|
||||
typeId: '',
|
||||
medicationName: '',
|
||||
icon: '',
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
|
|
|
|||
|
|
@ -9,11 +9,16 @@
|
|||
<j-dict-select-tag type='list' v-model:value="formData.categoryId" dictCode="nu_config_material_category,category_name,id,iz_enabled = 0 and del_flag = 0" placeholder="请选择一级分类" allow-clear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-col :span="24" style="margin-top: 50px;">
|
||||
<a-form-item label="二级分类" v-bind="validateInfos.typeName" id="ConfigMaterialTypeForm-typeName" name="typeName">
|
||||
<a-input v-model:value="formData.typeName" placeholder="请输入二级分类" maxLength="10" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" style="margin-top: 50px;">
|
||||
<a-form-item label="图标" v-bind="validateInfos.icon" id="ConfigMaterialMedicationForm-icon" name="icon">
|
||||
<IconPicker v-model:value="formData.icon" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</template>
|
||||
|
|
@ -30,6 +35,7 @@
|
|||
import { saveOrUpdate } from '../ConfigMaterialType.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||
import { IconPicker } from '/@/components/Icon/index';
|
||||
const props = defineProps({
|
||||
formDisabled: { type: Boolean, default: false },
|
||||
formData: { type: Object, default: () => ({})},
|
||||
|
|
@ -43,6 +49,7 @@
|
|||
id: '',
|
||||
categoryId: '',
|
||||
typeName: '',
|
||||
icon: '',
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
|
|
|
|||
|
|
@ -422,7 +422,7 @@
|
|||
</a-drawer> -->
|
||||
<!-- 差异比对 -->
|
||||
<a-drawer title="差异比对" width="80vw" :open="compareListOpen" @close="onCompareListClose"
|
||||
:footer-style="{ textAlign: 'right' }" :bodyStyle="{ padding: '14px' }">
|
||||
:footer-style="{ textAlign: 'right' }" :bodyStyle="{ padding: '0' }">
|
||||
<template #footer>
|
||||
<a-button type="primary" @click="onCompareListClose" style="margin-right: 10px;">关闭</a-button>
|
||||
</template>
|
||||
|
|
@ -432,7 +432,7 @@
|
|||
|
||||
<!-- 批量新增 -->
|
||||
<a-drawer title="批量新增" width="80vw" :open="batchAddOpen" @close="onBatchAddClose"
|
||||
:footer-style="{ textAlign: 'right' }" :bodyStyle="{ padding: '14px' }">
|
||||
:footer-style="{ textAlign: 'right' }" :bodyStyle="{ padding: '0' }">
|
||||
<template #footer>
|
||||
<a-button type="primary" @click="onBatchAddClose" style="margin-right: 10px;">关闭</a-button>
|
||||
<a-button type="primary" @click="onBatchAddSubmit">确认</a-button>
|
||||
|
|
@ -442,7 +442,7 @@
|
|||
|
||||
<!-- 停用指令 -->
|
||||
<a-drawer title="停用指令" width="85vw" :open="abnormalListOpen" @close="onAbnormalListClose"
|
||||
:footer-style="{ textAlign: 'right' }" :bodyStyle="{ padding: '14px' }">
|
||||
:footer-style="{ textAlign: 'right' }" :bodyStyle="{ padding: '0' }">
|
||||
<template #footer>
|
||||
<a-button type="primary" @click="onAbnormalListClose" style="margin-right: 10px;">关闭</a-button>
|
||||
</template>
|
||||
|
|
@ -451,7 +451,7 @@
|
|||
|
||||
<!-- 差异指令 -->
|
||||
<a-drawer v-model:visible="newDirectiveVisible" title="差异指令" width="85vw" :footer-style="{ textAlign: 'right' }"
|
||||
:bodyStyle="{ height: '80vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }"
|
||||
:bodyStyle="{ height: '80vh', display: 'flex', padding: '0', flexDirection: 'column', overflow: 'auto' }"
|
||||
wrapClassName="org-list-modal" @cancel="handleCancelNewDirective">
|
||||
<template #footer>
|
||||
<a-button @click="handleCancelNewDirective" type="primary">关闭</a-button>
|
||||
|
|
|
|||
|
|
@ -5,58 +5,21 @@
|
|||
:disabled="loading">目标机构</a-button>
|
||||
</div>
|
||||
|
||||
<div class="table-card">
|
||||
<!-- 表头:两级 -->
|
||||
<div class="thead">
|
||||
<!-- 顶层 -->
|
||||
<div class="thead-top">
|
||||
<div class="th"></div>
|
||||
<div class="th"></div>
|
||||
<div class="th"></div>
|
||||
<div class="th"></div>
|
||||
<div class="th"></div>
|
||||
<div class="th th-org" style="grid-column:6 / span 2;">源机构</div>
|
||||
<div class="th th-org" style="grid-column:8 / span 2;">目标机构</div>
|
||||
</div>
|
||||
<!-- 次级 -->
|
||||
<div class="thead-sub">
|
||||
<div class="th">分类标签</div>
|
||||
<div class="th">服务类别</div>
|
||||
<div class="th">服务类型</div>
|
||||
<div class="th">服务指令</div>
|
||||
<div class="th">周期类型</div>
|
||||
|
||||
<div class="th th-name-sub">名称</div>
|
||||
<div class="th th-exist-sub">是否存在</div>
|
||||
|
||||
<div class="th th-name-sub">名称</div>
|
||||
<div class="th th-exist-sub">是否存在</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 表体 -->
|
||||
<div v-if="!targetOrgInfo && !loading" class="status">未选择目标机构</div>
|
||||
|
||||
<div v-else class="body-div">
|
||||
<div v-if="loading" class="status">加载中…</div>
|
||||
<div v-else-if="rows.length === 0" class="status">暂无数据</div>
|
||||
<div v-else class="tbody">
|
||||
<div class="tr" v-for="item in rows" :key="item.id || item.directiveName || item.instructionName"
|
||||
:data-rank="rank(item)">
|
||||
<div class="td td-tag" :title="item.instructionName || '-'">{{ item.instructionName || '-' }}
|
||||
</div>
|
||||
<div class="td td-category" :title="item.categoryName || '-'">{{ item.categoryName || '-' }}
|
||||
</div>
|
||||
<div class="td td-type" :title="item.typeName || '-'">{{ item.typeName || '-' }}</div>
|
||||
<div class="td td-name" :title="item.directiveName || '-'">{{ item.directiveName || '-' }}</div>
|
||||
<div class="td td-cycle" :title="item.cycleTypeName || '-'">{{ item.cycleTypeName || '-' }}
|
||||
</div>
|
||||
|
||||
<!-- 源机构 -->
|
||||
<div class="td td-org-name" :title="ownOrgName || '-'">{{ ownOrgName || '-' }}</div>
|
||||
<div class="td td-org-exist center" :title="item.ownExist ? '源机构已存在' : '源机构不存在'">
|
||||
<a-table
|
||||
:columns="headChildColumns"
|
||||
:data-source="rows"
|
||||
bordered
|
||||
size="middle"
|
||||
:scroll="{ y: 640 }"
|
||||
:pagination="false"
|
||||
>
|
||||
<template #bodyCell="{ column, text, record }">
|
||||
<template v-if="column.dataIndex === 'ownOrgName'">
|
||||
{{ownOrgName}}
|
||||
</template>
|
||||
<template v-else-if="column.dataIndex === 'ownExist'">
|
||||
<div class="org-badge">
|
||||
<svg v-if="item.ownExist" class="icon check" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<svg v-if="text" class="icon check" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path
|
||||
d="M20.285 6.709l-11.39 11.39-5.18-5.18 1.414-1.414 3.766 3.766 9.976-9.976z" />
|
||||
</svg>
|
||||
|
|
@ -65,14 +28,13 @@
|
|||
d="M18.3 5.71L12 12.01 5.7 5.71 4.29 7.12 10.59 13.42 4.29 19.72 5.7 21.13 12 14.83 18.3 21.13 19.71 19.72 13.41 13.42 19.71 7.12z" />
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 目标机构 -->
|
||||
<div class="td td-org-name" :title="targetOrgInfo.comName || '-'">{{ targetOrgInfo.comName ||
|
||||
'-' }}</div>
|
||||
<div class="td td-org-exist center" :title="item.targetExist ? '目标机构已存在' : '目标机构不存在'">
|
||||
</template>
|
||||
<template v-else-if="column.dataIndex === 'own2OrgName'">
|
||||
{{targetOrgInfo.comName}}
|
||||
</template>
|
||||
<template v-else-if="column.dataIndex === 'targetExist'">
|
||||
<div class="org-badge">
|
||||
<svg v-if="item.targetExist" class="icon check" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<svg v-if="text" class="icon check" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path
|
||||
d="M20.285 6.709l-11.39 11.39-5.18-5.18 1.414-1.414 3.766 3.766 9.976-9.976z" />
|
||||
</svg>
|
||||
|
|
@ -81,13 +43,11 @@
|
|||
d="M18.3 5.71L12 12.01 5.7 5.71 4.29 7.12 10.59 13.42 4.29 19.72 5.7 21.13 12 14.83 18.3 21.13 19.71 19.72 13.41 13.42 19.71 7.12z" />
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a-modal v-model:visible="targetOrgListVisible" title="请选择目标机构" width="90vw" @cancel="handleCancelTarget"
|
||||
:bodyStyle="{ padding: '14px', height: '70vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }">
|
||||
|
|
@ -103,6 +63,7 @@
|
|||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import { compareList } from '../ConfigServiceDirective.api';
|
||||
import { headChildColumns } from './ConfigServiceDirective.data';
|
||||
import OrgListCom from '/@/views/orgcom/OrgListCom.vue';
|
||||
|
||||
const props = defineProps({
|
||||
|
|
@ -111,6 +72,8 @@ const props = defineProps({
|
|||
});
|
||||
const targetOrgInfo = ref('')//目标机构信息
|
||||
|
||||
|
||||
|
||||
type Row = {
|
||||
id?: string;
|
||||
instructionName?: string;
|
||||
|
|
@ -219,7 +182,7 @@ async function initData() {
|
|||
.thead-sub {
|
||||
grid-template-columns: 1fr 1fr 1fr 2fr 1fr 2fr 1fr 2fr 1fr;
|
||||
padding: 0px 14px 8px 14px;
|
||||
border-bottom: 1px solid #e6eef8;
|
||||
// border-bottom: 1px solid #e6eef8;
|
||||
color: #374151;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
|
|
@ -270,13 +233,14 @@ async function initData() {
|
|||
}
|
||||
|
||||
.org-badge {
|
||||
width: 36px;
|
||||
// width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: #fbfdff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.icon {
|
||||
|
|
|
|||
|
|
@ -167,3 +167,79 @@ export const superQuerySchema = {
|
|||
mp3File: { title: '语音文件', order: 18, view: 'file', type: 'string' },
|
||||
mp4File: { title: '视频文件', order: 19, view: 'file', type: 'string' },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
//列表数据
|
||||
export const headChildColumns: BasicColumn[] = [
|
||||
{
|
||||
title: '基础信息',
|
||||
children: [
|
||||
{
|
||||
title: '分类标签',
|
||||
align: 'center',
|
||||
dataIndex: 'instructionName',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '服务类别',
|
||||
align: 'center',
|
||||
dataIndex: 'categoryName',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '服务类型',
|
||||
align: 'center',
|
||||
dataIndex: 'typeName',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '服务指令',
|
||||
align: 'center',
|
||||
dataIndex: 'directiveName',
|
||||
},
|
||||
{
|
||||
title: '周期类型',
|
||||
align: 'center',
|
||||
dataIndex: 'cycleTypeName',
|
||||
width: 100,
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '源机构',
|
||||
children: [
|
||||
{
|
||||
title: '名称',
|
||||
align: 'center',
|
||||
dataIndex: 'ownOrgName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '是否存在',
|
||||
align: 'center',
|
||||
dataIndex: 'ownExist',
|
||||
width: 100,
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '目标机构',
|
||||
children: [
|
||||
{
|
||||
title: '名称',
|
||||
align: 'center',
|
||||
dataIndex: 'own2OrgName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '是否存在',
|
||||
align: 'center',
|
||||
dataIndex: 'targetExist',
|
||||
width: 100,
|
||||
},
|
||||
]
|
||||
},
|
||||
|
||||
];
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
</j-modal> -->
|
||||
<a-drawer :title="title" width="80vw" v-model:visible="visible" :closable="true"
|
||||
:footer-style="{ textAlign: 'right' }" @close="handleCancel"
|
||||
:bodyStyle="{ background: 'linear-gradient(135deg, #f1f7ff 0%, #f1f7ff 100%)' }">
|
||||
:bodyStyle="{ background: 'linear-gradient(135deg, #f1f7ff 0%, #f1f7ff 100%)',padding: '14px' }">
|
||||
<a-spin :spinning="loading">
|
||||
<ConfigServiceDirectiveForm ref="registerForm" v-if="visible" @ok="submitCallback" :formDisabled="disableSubmit"
|
||||
:formBpm="false" :mainOrgCode="mainOrgCode" :mediaApiAddress="mediaApiAddress" :opeType="opeType"
|
||||
|
|
|
|||
Loading…
Reference in New Issue