1、调整资源管理功能

2、解决服务指令文件资源回显问题
3、增加机构3配置文件
This commit is contained in:
1378012178@qq.com 2025-06-19 15:09:53 +08:00
parent b8efa56a30
commit 1035b210df
8 changed files with 274 additions and 264 deletions

27
.env.development003 Normal file
View File

@ -0,0 +1,27 @@
# 是否打开mock
VITE_USE_MOCK = true
# 发布路径
VITE_PUBLIC_PATH = /
# 跨域代理,您可以配置多个 ,请注意,没有换行符
VITE_PROXY = [["/nursing-unit-003","http://localhost:8083/nursing-unit_003"],["/upload","http://localhost:3300/upload"]]
#后台接口全路径地址(必填)
VITE_GLOB_DOMAIN_URL=http://localhost:8083/nursing-unit_003
#后台接口父地址(必填)
VITE_GLOB_API_URL=/nursing-unit-003
# 接口前缀
VITE_GLOB_API_URL_PREFIX=
#微前端qiankun应用,命名必须以VITE_APP_SUB_开头,jeecg-app-1为子应用的项目名称,也是子应用的路由父路径
VITE_APP_SUB_jeecg-app-1 = '//localhost:8092'
# 填写后将作为乾坤子应用启动主应用注册时AppName需保持一致放开 VITE_GLOB_QIANKUN_MICRO_APP_NAME 参数表示jeecg-vue3将以乾坤子应用模式启动
#VITE_GLOB_QIANKUN_MICRO_APP_NAME=jeecg-vue3
# 作为乾坤子应用启动时必填需与qiankun主应用注册子应用时填写的 entry 保持一致
#VITE_GLOB_QIANKUN_MICRO_APP_ENTRY=//localhost:3001/jeecg-vue3

25
.env003 Normal file
View File

@ -0,0 +1,25 @@
# port
VITE_PORT = 3103
# 网站标题
VITE_GLOB_APP_TITLE = 业务系统3
# 简称,此变量只能是字符/下划线
VITE_GLOB_APP_SHORT_NAME = 业务系统3
# 单点登录服务端地址
VITE_GLOB_APP_CAS_BASE_URL=http://cas.test.com:8443/cas
# 是否开启单点登录
VITE_GLOB_APP_OPEN_SSO = false
# 开启微前端模式
VITE_GLOB_APP_OPEN_QIANKUN=true
# 文件预览地址
VITE_GLOB_ONLINE_VIEW_URL=http://fileview.jeecg.com/onlinePreview
# 运维服务器接口地址
VITE_GLOB_INSTITUTIONS_URL=http://192.168.2.19:8080/nursing-unit/

View File

@ -17,8 +17,8 @@
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="系统功能" v-bind="validateInfos.sysFunc" id="MediaManageForm-sysFunc" name="sysFunc"> <a-form-item label="系统功能" v-bind="validateInfos.sysFunc" id="MediaManageForm-sysFunc" name="sysFunc">
<j-dict-select-tag type='list' v-model:value="formData.sysFunc" dictCode="sys_function" <j-dict-select-tag type='list' v-model:value="formData.sysFunc" @change="sysFuncChanged"
placeholder="请选择系统功能" allowClear /> dictCode="sys_function" placeholder="请选择系统功能" allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -30,7 +30,7 @@
<a-col :span="24"> <a-col :span="24">
<a-form-item label="资源类型" v-bind="validateInfos.izNetUrl" id="MediaManageForm-izNetUrl" name="izNetUrl"> <a-form-item label="资源类型" v-bind="validateInfos.izNetUrl" id="MediaManageForm-izNetUrl" name="izNetUrl">
<j-dict-select-tag type='radio' v-model:value="formData.izNetUrl" dictCode="iz_net_url" allowClear <j-dict-select-tag type='radio' v-model:value="formData.izNetUrl" dictCode="iz_net_url" allowClear
@change="handleFileTypeChange" /> :disabled="formData.sysFunc == 'directive'" @change="handleFileTypeChange" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -126,6 +126,7 @@ const formData = reactive<Record<string, any>>({
id: '', id: '',
name: '', name: '',
descr: '', descr: '',
sysFunc: '',
fileType: '', fileType: '',
filePath: '', filePath: '',
izNetUrl: 'local', izNetUrl: 'local',
@ -285,6 +286,15 @@ function transUrl(record) {
} }
} }
/**
* 系统功能变更
*/
function sysFuncChanged() {
if (formData.sysFunc == 'directive') {
formData.izNetUrl = 'net'
}
}
defineExpose({ defineExpose({
add, add,
edit, edit,

View File

@ -1,8 +1,4 @@
import { BasicColumn } from '/@/components/Table'; import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
import { rules } from '/@/utils/helper/validator';
import { render } from '/@/utils/common/renderUtils';
import { getWeekMonthQuarterYear } from '/@/utils';
//列表数据 //列表数据
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
{ {
@ -92,27 +88,11 @@ export const columns: BasicColumn[] = [
dataIndex: 'izPreferential_dictText', dataIndex: 'izPreferential_dictText',
width: 100, width: 100,
}, },
// {
// title: '收费频次',
// align: 'center',
// dataIndex: 'chargingFrequency_dictText',
// },
{ {
title: '周期类型', title: '周期类型',
align: 'center', align: 'center',
dataIndex: 'cycleType_dictText', dataIndex: 'cycleType_dictText',
}, },
// {
// title: '排序',
// align: "center",
// sorter: true,
// dataIndex: 'sort'
// },
// {
// title: '服务说明',
// align: "center",
// dataIndex: 'serviceContent'
// },
{ {
title: '服务时长(分钟)', title: '服务时长(分钟)',
align: 'center', align: 'center',
@ -125,50 +105,16 @@ export const columns: BasicColumn[] = [
dataIndex: 'izEnabled_dictText', dataIndex: 'izEnabled_dictText',
width: 100, width: 100,
}, },
// {
// title: '语音文件',
// align: 'center',
// dataIndex: 'mp3FileMedia',
// },
// {
// title: '视频文件',
// align: 'center',
// dataIndex: 'mp4FileMedia',
// },
{ {
title: '预览图片', title: '预览图片',
align: 'center', align: 'center',
dataIndex: 'previewFileMedia', dataIndex: 'previewFileMedia',
customRender: render.renderImage,
}, },
{ {
title: '即时指令图片', title: '即时指令图片',
align: 'center', align: 'center',
dataIndex: 'immediateFileMedia', dataIndex: 'immediateFileMedia',
customRender: render.renderImage,
}, },
// {
// title: '创建人',
// align: "center",
// dataIndex: 'createBy'
// },
// {
// title: '创建日期',
// align: "center",
// sorter: true,
// dataIndex: 'createTime'
// },
// {
// title: '更新人',
// align: "center",
// dataIndex: 'updateBy'
// },
// {
// title: '更新日期',
// align: "center",
// sorter: true,
// dataIndex: 'updateTime'
// },
]; ];
// 高级查询数据 // 高级查询数据

View File

@ -5,6 +5,13 @@
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" <a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol"
:wrapper-col="wrapperCol"> :wrapper-col="wrapperCol">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6">
<a-form-item name="instructionTagId">
<template #label><span title="分类标签">分类标签</span></template>
<j-dict-select-tag v-model:value="queryParam.instructionTagId" dictCode="instruction_tag"
:ignoreDisabled="true" placeholder="请选分类标签" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="categoryId"> <a-form-item name="categoryId">
<template #label><span title="服务类别">服务类别</span></template> <template #label><span title="服务类别">服务类别</span></template>
@ -17,85 +24,39 @@
<a-form-item name="typeId"> <a-form-item name="typeId">
<template #label><span title="服务类型">服务类型</span></template> <template #label><span title="服务类型">服务类型</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.typeId" <j-dict-select-tag type="list" v-model:value="queryParam.typeId"
:dictCode="`nu_config_service_type,type_name,id,del_flag = 0 and category_id = ${queryParam.categoryId || -1} order by sort asc`" placeholder="请选择服务类型" :dictCode="`nu_config_service_type,type_name,id,del_flag = 0 and category_id = ${queryParam.categoryId || -1} order by sort asc`"
:ignoreDisabled="true" allowClear /> placeholder="请选择服务类型" :ignoreDisabled="true" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="directiveName">
<template #label><span title="服务指令">服务指令</span></template>
<JInput v-model:value="queryParam.directiveName" placeholder="请输入服务指令名称" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="bodyTags">
<template #label><span title="体型标签">体型标签</span></template>
<j-dict-select-tag type='list' v-model:value="queryParam.bodyTags"
:dictCode="`nu_config_body_tag,tag_name,id,del_flag = '0' order by sort asc`" :ignoreDisabled="true"
placeholder="请选择体型标签" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="emotionTags">
<template #label><span title="情绪标签">情绪标签</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.emotionTags"
:dictCode="`nu_config_emotion_tag,tag_name,id,del_flag = '0' order by sort asc`" :ignoreDisabled="true"
placeholder="请选择情绪标签" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="izEnabled">
<template #label><span title="是否启用">是否启用</span></template>
<j-dict-select-tag type='list' v-model:value="queryParam.izEnabled" dictCode="iz_enabled"
:ignoreDisabled="true" placeholder="请选择是否启用" allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6">
<a-form-item name="directiveName">
<template #label><span title="服务指令">服务指令</span></template>
<JInput v-model:value="queryParam.directiveName" placeholder="请输入服务指令名称" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="instructionTagId">
<template #label><span title="分类标签">分类标签</span></template>
<j-dict-select-tag v-model:value="queryParam.instructionTagId" dictCode="instruction_tag"
:ignoreDisabled="true" placeholder="请选分类标签" allowClear />
</a-form-item>
</a-col>
<!-- <a-col :lg="6">
<a-form-item name="tollPrice">
<template #label><span title="收费价格">收费价格</span></template>
<JRangeNumber v-model:value="queryParam.tollPrice" class="query-group-cust"></JRangeNumber>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="comPrice">
<template #label><span title="提成价格">提成价格</span></template>
<JRangeNumber v-model:value="queryParam.comPrice" class="query-group-cust"></JRangeNumber>
</a-form-item>
</a-col> -->
<!-- <a-col :lg="6">
<a-form-item name="izReimbursement">
<template #label><span title="医保报销">医保报销</span></template>
<j-dict-select-tag type='list' v-model:value="queryParam.izReimbursement" dictCode="med_ins_reimb"
:ignoreDisabled="true" placeholder="请选择医保报销" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="izPreferential">
<template #label><span title="机构优惠">机构优惠</span></template>
<j-dict-select-tag type='list' v-model:value="queryParam.izPreferential"
dictCode="institutional_discount" :ignoreDisabled="true" placeholder="请选择机构优惠" allowClear />
</a-form-item>
</a-col> -->
<!-- <a-col :lg="6">
<a-form-item name="chargingFrequency">
<template #label><span title="收费频次">收费频次</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.chargingFrequency" dictCode="billing_frequency"
:ignoreDisabled="true" placeholder="请选择收费频次" allowClear />
</a-form-item>
</a-col> -->
<a-col :lg="6">
<a-form-item name="bodyTags">
<template #label><span title="体型标签">体型标签</span></template>
<j-dict-select-tag type='list' v-model:value="queryParam.bodyTags" :dictCode="`nu_config_body_tag,tag_name,id,del_flag = '0' order by sort asc`"
:ignoreDisabled="true" placeholder="请选择体型标签" allowClear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="emotionTags">
<template #label><span title="情绪标签">情绪标签</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.emotionTags"
:dictCode="`nu_config_emotion_tag,tag_name,id,del_flag = '0' order by sort asc`" :ignoreDisabled="true"
placeholder="请选择情绪标签" allowClear />
</a-form-item>
</a-col>
<!-- <a-col :lg="6">
<a-form-item name="cycleType">
<template #label><span title="周期类型">周期类型</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.cycleType" dictCode="period_type"
:ignoreDisabled="true" placeholder="请选择周期类型" allowClear />
</a-form-item>
</a-col> -->
<a-col :lg="6">
<a-form-item name="izEnabled">
<template #label><span title="是否启用">是否启用</span></template>
<j-dict-select-tag type='list' v-model:value="queryParam.izEnabled" dictCode="iz_enabled"
:ignoreDisabled="true" placeholder="请选择是否启用" allowClear />
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
@ -112,63 +73,43 @@
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<!--插槽:table标题--> <!--插槽:table标题-->
<template #tableTitle> <template #tableTitle>
<a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'" @click="handleCategory" <a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'"
preIcon="tabler:settings">配置服务类别</a-button> @click="handleCategory" preIcon="tabler:settings">配置服务类别</a-button>
<a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'" @click="handleType" <a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'"
preIcon="tabler:settings">配置服务类型</a-button> @click="handleType" preIcon="tabler:settings">配置服务类型</a-button>
<a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'" @click="handleBodyTag" <a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'"
preIcon="tabler:settings">配置体型标签</a-button> @click="handleBodyTag" preIcon="tabler:settings">配置体型标签</a-button>
<a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'" @click="handleEmotionTag" <a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'"
preIcon="tabler:settings">配置情绪标签</a-button> @click="handleEmotionTag" preIcon="tabler:settings">配置情绪标签</a-button>
<a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'" @click="handleAdd" <a-button type="primary" class="btnPrivate" v-auth="'serviceDirective:config_service_directive:add'"
preIcon="ant-design:plus-outlined">新增服务指令</a-button> @click="handleAdd" preIcon="ant-design:plus-outlined">新增服务指令</a-button>
<!-- <a-button type="primary" v-auth="'serviceDirective:config_service_directive:exportXls'"
preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
<j-upload-button type="primary" v-auth="'serviceDirective:config_service_directive:importExcel'"
preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button> -->
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">
<template #overlay>
<a-menu>
<a-menu-item key="1" @click="batchHandleDelete">
<Icon icon="ant-design:delete-outlined"></Icon>
删除
</a-menu-item>
</a-menu>
</template>
<a-button v-auth="'serviceDirective:config_service_directive:deleteBatch'">批量操作
<Icon icon="mdi:chevron-down"></Icon>
</a-button>
</a-dropdown> -->
<!-- 高级查询 -->
<!-- <super-query :config="superQueryConfig" @search="handleSuperQuery" /> -->
</template> </template>
<!--操作栏--> <!--操作栏-->
<template #action="{ record }"> <template #action="{ record }">
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" /> <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
</template> </template>
<template v-slot:bodyCell="{ column, record, index, text }"> <template v-slot:bodyCell="{ column, record, index, text }">
<template v-if="column.dataIndex === 'mp3File'"> <template v-if="column.dataIndex === 'previewFileMedia'">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<audio controls v-else style="width: 100%; max-width: 300px; height: 40px;"> <img v-else :src="sysUrlValue + text" style="max-height: 50px;max-width: 80px;">
<source :src="getFileAccessHttpUrl(text)">
</audio>
</template> </template>
<template v-if="column.dataIndex === 'mp4File'"> <template v-if="column.dataIndex === 'immediateFileMedia'">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<template v-else> <img v-else :src="sysUrlValue + text" style="max-height: 50px;max-width: 80px;">
<a-button type="primary" @click="openVideoModal(text)">播放视频</a-button>
</template>
</template> </template>
<template v-if="column.dataIndex === 'bodyTagList'"> <template v-if="column.dataIndex === 'bodyTagList'">
<span :title="text.map((item) => item.tagName).join('、')">{{text.map((item) => item.tagName).join('、')}}</span> <span :title="text.map((item) => item.tagName).join('、')">{{text.map((item) =>
item.tagName).join('、')}}</span>
</template> </template>
<template v-if="column.dataIndex === 'emotionTagList'"> <template v-if="column.dataIndex === 'emotionTagList'">
<span :title="text.map((item) => item.tagName).join('、')">{{text.map((item) => item.tagName).join('、')}}</span> <span :title="text.map((item) => item.tagName).join('、')">{{text.map((item) =>
item.tagName).join('、')}}</span>
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<!-- 表单区域 --> <!-- 表单区域 -->
<ConfigServiceDirectiveModal :sysUrlValue="sysUrlValue" ref="registerModal" @success="handleSuccess"></ConfigServiceDirectiveModal> <ConfigServiceDirectiveModal :sysUrlValue="sysUrlValue" ref="registerModal" @success="handleSuccess">
</ConfigServiceDirectiveModal>
</div> </div>
<!-- 服务类别 --> <!-- 服务类别 -->
@ -214,15 +155,13 @@
</template> </template>
<script lang="ts" name="serviceDirective-configServiceDirective" setup> <script lang="ts" name="serviceDirective-configServiceDirective" setup>
import { ref, reactive,onMounted } from 'vue'; import { ref, reactive, onMounted } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table'; import { BasicTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage'; import { useListPage } from '/@/hooks/system/useListPage';
import { columns, superQuerySchema } from './ConfigServiceDirective.data'; import { columns, superQuerySchema } from './ConfigServiceDirective.data';
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './ConfigServiceDirective.api'; import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './ConfigServiceDirective.api';
import { downloadFile } from '/@/utils/common/renderUtils';
import ConfigServiceDirectiveModal from './components/ConfigServiceDirectiveModal.vue' import ConfigServiceDirectiveModal from './components/ConfigServiceDirectiveModal.vue'
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
import JRangeNumber from "/@/components/Form/src/jeecg/components/JRangeNumber.vue";
import JInput from "/@/components/Form/src/jeecg/components/JInput.vue"; import JInput from "/@/components/Form/src/jeecg/components/JInput.vue";
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { cloneDeep } from "lodash-es"; import { cloneDeep } from "lodash-es";
@ -231,7 +170,6 @@ import ConfigServiceTypeList from '../serviceType/ConfigServiceTypeList.vue';
import BodyTagList from '/@/views/services/directivetag/bodytag/BodyTagList.vue'; import BodyTagList from '/@/views/services/directivetag/bodytag/BodyTagList.vue';
import EmotionTagList from '/@/views/services/directivetag/emotiontag/EmotionTagList.vue'; import EmotionTagList from '/@/views/services/directivetag/emotiontag/EmotionTagList.vue';
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'; import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
import JSelectMultiple from '/@/components/Form/src/jeecg/components/JSelectMultiple.vue';
import { sysUrl } from '/@/utils/sysBaseInfo/MediaManagePicker.api'; import { sysUrl } from '/@/utils/sysBaseInfo/MediaManagePicker.api';
const formRef = ref(); const formRef = ref();
@ -249,11 +187,11 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
canResize: false, canResize: false,
useSearchForm: false, useSearchForm: false,
showIndexColumn: true, showIndexColumn: true,
pagination: { pagination: {
current: 1, current: 1,
pageSize: 10, pageSize: 10,
pageSizeOptions: ['10', '20', '50', '100'], pageSizeOptions: ['10', '20', '50', '100'],
}, },
actionColumn: { actionColumn: {
width: 160, width: 160,
fixed: 'right', fixed: 'right',
@ -478,9 +416,9 @@ const closeVideoModal = () => {
}; };
onMounted(() => { onMounted(() => {
sysUrl().then(res => { sysUrl().then(res => {
sysUrlValue.value = res.url sysUrlValue.value = res.url
}) })
}) })
</script> </script>
@ -523,7 +461,8 @@ audio::-webkit-media-controls-current-time-display,
audio::-webkit-media-controls-time-remaining-display { audio::-webkit-media-controls-time-remaining-display {
display: none; display: none;
} }
.btnPrivate{
.btnPrivate {
height: 34px; height: 34px;
margin-left: 4px; margin-left: 4px;
} }

View File

@ -61,13 +61,6 @@
dictCode="institutional_discount" allowClear /> dictCode="institutional_discount" allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- <a-col :span="12">
<a-form-item label="收费频次" v-bind="validateInfos.chargingFrequency"
id="ConfigServiceDirectiveForm-chargingFrequency" name="chargingFrequency">
<j-dict-select-tag type="list" v-model:value="formData.chargingFrequency" dictCode="billing_frequency"
placeholder="请选择收费频次" allowClear />
</a-form-item>
</a-col> -->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="周期类型" v-bind="validateInfos.cycleType" id="ConfigServiceDirectiveForm-cycleType" <a-form-item label="周期类型" v-bind="validateInfos.cycleType" id="ConfigServiceDirectiveForm-cycleType"
name="cycleType"> name="cycleType">
@ -90,11 +83,6 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<!-- <a-col :span="12">
<a-form-item label="排序" v-bind="validateInfos.sort" id="ConfigServiceDirectiveForm-sort" name="sort">
<a-input-number v-model:value="formData.sort" placeholder="请输入排序" style="width: 100%" />
</a-form-item>
</a-col> -->
<a-col :span="24"> <a-col :span="24">
<a-form-item label="体型标签" id="ConfigServiceDirectiveForm-typeId" :labelCol="labelCol2" <a-form-item label="体型标签" id="ConfigServiceDirectiveForm-typeId" :labelCol="labelCol2"
:wrapperCol="wrapperCol2" name="typeId"> :wrapperCol="wrapperCol2" name="typeId">
@ -115,32 +103,6 @@
placeholder="请选择是否启用"  allowClear /> placeholder="请选择是否启用"  allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- <a-col :span="12">
<a-form-item label="创建人" v-bind="validateInfos.createBy" id="ConfigServiceDirectiveForm-createBy"
name="createBy">
<a-input v-model:value="formData.createBy" placeholder="请输入创建人" disabled allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="创建日期" v-bind="validateInfos.createTime" id="ConfigServiceDirectiveForm-createTime"
name="createTime">
<a-date-picker placeholder="请选择创建日期" v-model:value="formData.createTime" showTime
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" disabled allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="更新人" v-bind="validateInfos.updateBy" id="ConfigServiceDirectiveForm-updateBy"
name="updateBy">
<a-input v-model:value="formData.updateBy" placeholder="请输入更新人" disabled allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="更新日期" v-bind="validateInfos.updateTime" id="ConfigServiceDirectiveForm-updateTime"
name="updateTime">
<a-date-picker placeholder="请选择更新日期" v-model:value="formData.updateTime" showTime
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" disabled allow-clear />
</a-form-item>
</a-col> -->
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
@ -165,14 +127,12 @@
<a-row> <a-row>
<a-col :span="12" v-if="!!formData.previewFile"> <a-col :span="12" v-if="!!formData.previewFile">
<a-form-item label="预览图片" id="ConfigServiceDirectiveForm-previewFile"> <a-form-item label="预览图片" id="ConfigServiceDirectiveForm-previewFile">
<img :src="getFileAccessHttpUrl(formData.previewFileMedia)" <img :src="sysUrlValue + formData.previewFileMedia" style="max-width: 100px; max-height: 100px;" />
style="max-width: 200px; max-height: 200px;" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12" v-if="!!formData.immediateFile" :push="!!formData.previewFile ? 0 : 12"> <a-col :span="12" v-if="!!formData.immediateFile" :push="!!formData.previewFile ? 0 : 12">
<a-form-item label="即时指令图片" id="ConfigServiceDirectiveForm-immediateFile"> <a-form-item label="即时指令图片" id="ConfigServiceDirectiveForm-immediateFile">
<img :src="getFileAccessHttpUrl(formData.immediateFileMedia)" <img :src="sysUrlValue + formData.immediateFileMedia" style="max-width: 100px; max-height: 100px;" />
style="max-width: 200px; max-height: 200px;" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@ -205,14 +165,14 @@
<a-col :span="12" v-if="!!formData.mp3File"> <a-col :span="12" v-if="!!formData.mp3File">
<a-form-item label="语音预览" id="ConfigServiceDirectiveForm-mp3File"> <a-form-item label="语音预览" id="ConfigServiceDirectiveForm-mp3File">
<audio controls disabled="false"> <audio controls disabled="false">
<source :src="getFileAccessHttpUrl(formData.mp3FileMedia)"> <source :src="sysUrlValue + formData.mp3FileMedia">
</audio> </audio>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12" v-if="!!formData.mp4File" :push="!!formData.mp3File ? 0 : 12"> <a-col :span="12" v-if="!!formData.mp4File" :push="!!formData.mp3File ? 0 : 12">
<a-form-item label="视频预览" id="ConfigServiceDirectiveForm-mp4File"> <a-form-item label="视频预览" id="ConfigServiceDirectiveForm-mp4File">
<video controls> <video controls>
<source :src="getFileAccessHttpUrl(formData.mp4FileMedia)"> <source :src="sysUrlValue + formData.mp4FileMedia">
</video> </video>
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -261,11 +221,7 @@ const showResourcePicker = (obj, param) => {
const handleResourceSelected = (selectedResource) => { const handleResourceSelected = (selectedResource) => {
formData[changedMediaObjStr.value] = selectedResource.id formData[changedMediaObjStr.value] = selectedResource.id
if (selectedResource.izNetUrl == 'net') { formData[changedMediaObjStr.value + 'Media'] = selectedResource.filePath
formData[changedMediaObjStr.value + 'Media'] = props.sysUrlValue + selectedResource.filePath
} else {
formData[changedMediaObjStr.value + 'Media'] = selectedResource.filePath
}
}; };
const formRef = ref(); const formRef = ref();
const useForm = Form.useForm; const useForm = Form.useForm;

View File

@ -66,27 +66,23 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data
}, },
}, },
{ {
field: 'orgCode', field: 'platType',
show: false, show: !isChild
}, },
{ {
field: 'orgCategory', field: 'orgCode',
componentProps: { options: categoryOptions }, show: false,
}, },
{ {
field: 'url', field: 'url',
show: !isChild, show: !isChild,
}, },
{ {
field: 'province', field: 'orgCategory',
show: !isChild, componentProps: { options: categoryOptions },
}, },
{ {
field: 'city', field: 'payableAmount',
show: !isChild,
},
{
field: 'district',
show: !isChild, show: !isChild,
}, },
]); ]);

View File

@ -3,19 +3,13 @@ import { FormSchema } from '/@/components/Form';
// 部门基础表单 // 部门基础表单
export function useBasicFormSchema() { export function useBasicFormSchema() {
const basicFormSchema: FormSchema[] = [ const basicFormSchema: FormSchema[] = [
{
field: 'departName',
label: '机构名称',
component: 'Input',
componentProps: {
placeholder: '请输入机构/部门名称',
},
rules: [{ required: true, message: '机构名称不能为空' }],
},
{ {
field: 'parentId', field: 'parentId',
label: '上级部门', label: '上级',
component: 'TreeSelect', component: 'TreeSelect',
ifShow: (v_) => {
return !!v_.values.parentId;
},
componentProps: { componentProps: {
treeData: [], treeData: [],
placeholder: '无', placeholder: '无',
@ -23,16 +17,25 @@ export function useBasicFormSchema() {
}, },
}, },
{ {
field: 'orgCode', field: 'departName',
label: '机构编码', label: '名称',
component: 'Input', component: 'Input',
componentProps: { componentProps: {
placeholder: '请输入机构编码', placeholder: '请输入名称',
},
rules: [{ required: true, message: '名称不能为空' }],
},
{
field: 'orgCode',
label: '编码',
component: 'Input',
componentProps: {
placeholder: '请输入编码',
}, },
}, },
{ {
field: 'orgCategory', field: 'orgCategory',
label: '机构类型', label: '类型',
component: 'RadioButtonGroup', component: 'RadioButtonGroup',
componentProps: { options: [] }, componentProps: { options: [] },
}, },
@ -40,8 +43,8 @@ export function useBasicFormSchema() {
field: 'url', field: 'url',
label: '协议域名', label: '协议域名',
component: 'Input', component: 'Input',
dynamicDisabled: ({ values }) => { ifShow: (v_) => {
return values.orgCategory != '1'; return !v_.values.parentId;
}, },
componentProps: { componentProps: {
placeholder: '请输入协议域名', placeholder: '请输入协议域名',
@ -51,20 +54,117 @@ export function useBasicFormSchema() {
field: 'province', field: 'province',
label: '省份', label: '省份',
component: 'Input', component: 'Input',
ifShow: (v_) => {
return !v_.values.parentId;
},
slot: 'province', slot: 'province',
}, },
{ {
field: 'city', field: 'city',
label: '城市', label: '城市',
component: 'Input', component: 'Input',
ifShow: (v_) => {
return !v_.values.parentId;
},
slot: 'city', slot: 'city',
}, },
{ {
field: 'district', field: 'district',
label: '区县', label: '区县',
component: 'Input', component: 'Input',
ifShow: (v_) => {
return !v_.values.parentId;
},
slot: 'district', slot: 'district',
}, },
{
field: 'platType',
label: '业务平台类型',
defaultValue: 'ywjg',
component: 'JDictSelectTag',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
dictCode: 'iz_test_site',
},
rules: [
{
required: true,
message: '请选择平台类型',
},
],
},
{
field: 'payableAmount',
label: '入住应缴金额',
component: 'InputNumber',
ifShow: (v_) => {
return !v_.values.parentId;
},
rules: [
{
required: true,
message: '请填写护理单元长者入住应缴金额',
},
],
},
{
field: 'operationStartTime',
label: '运营开始时间',
component: 'DatePicker',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
valueFormat: 'YYYY-MM-DD',
style: {
width: '100%',
},
},
},
{
field: 'operationEndTime',
label: '运营到期时间',
component: 'DatePicker',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
valueFormat: 'YYYY-MM-DD',
style: {
width: '100%',
},
},
},
{
field: 'contractStartTime',
label: '合同开始时间',
component: 'DatePicker',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
valueFormat: 'YYYY-MM-DD',
style: {
width: '100%',
},
},
},
{
field: 'contractEndTime',
label: '合同到期时间',
component: 'DatePicker',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: {
valueFormat: 'YYYY-MM-DD',
style: {
width: '100%',
},
},
},
{ {
field: 'mobile', field: 'mobile',
label: '电话', label: '电话',
@ -85,6 +185,9 @@ export function useBasicFormSchema() {
field: 'address', field: 'address',
label: '地址', label: '地址',
component: 'Input', component: 'Input',
ifShow: (v_) => {
return !v_.values.parentId;
},
componentProps: { componentProps: {
placeholder: '请输入地址', placeholder: '请输入地址',
}, },
@ -103,6 +206,14 @@ export function useBasicFormSchema() {
component: 'InputNumber', component: 'InputNumber',
componentProps: {}, componentProps: {},
}, },
{
field: 'picUrl',
label: '机构图片',
component: 'JImageUpload',
ifShow: (v_) => {
return !v_.values.parentId;
},
},
]; ];
return { basicFormSchema }; return { basicFormSchema };
} }