parent
37fe13e762
commit
6b6d4c06d3
|
|
@ -6,10 +6,10 @@ VITE_PUBLIC_PATH = /ope
|
||||||
|
|
||||||
|
|
||||||
# 跨域代理,您可以配置多个 ,请注意,没有换行符
|
# 跨域代理,您可以配置多个 ,请注意,没有换行符
|
||||||
VITE_PROXY = [["/opeapi","http://192.168.2.30:8081/opeapi"],["/upload","http://192.168.2.30:3300/upload"]]
|
VITE_PROXY = [["/opeapi","http://localhost:8081/opeapi"],["/upload","http://localhost:3300/upload"]]
|
||||||
|
|
||||||
#后台接口全路径地址(必填)
|
#后台接口全路径地址(必填)
|
||||||
VITE_GLOB_DOMAIN_URL=http://192.168.2.30:8081/opeapi
|
VITE_GLOB_DOMAIN_URL=http://localhost:8081/opeapi
|
||||||
|
|
||||||
#后台接口父地址(必填)
|
#后台接口父地址(必填)
|
||||||
VITE_GLOB_API_URL=/opeapi
|
VITE_GLOB_API_URL=/opeapi
|
||||||
|
|
@ -18,7 +18,7 @@ VITE_GLOB_API_URL=/opeapi
|
||||||
VITE_GLOB_API_URL_PREFIX=
|
VITE_GLOB_API_URL_PREFIX=
|
||||||
|
|
||||||
#微前端qiankun应用,命名必须以VITE_APP_SUB_开头,jeecg-app-1为子应用的项目名称,也是子应用的路由父路径
|
#微前端qiankun应用,命名必须以VITE_APP_SUB_开头,jeecg-app-1为子应用的项目名称,也是子应用的路由父路径
|
||||||
VITE_APP_SUB_jeecg-app-1 = '//192.168.2.30:8092'
|
VITE_APP_SUB_jeecg-app-1 = '//localhost:8092'
|
||||||
|
|
||||||
# 试验田机构编码
|
# 试验田机构编码
|
||||||
VITE_SYTJGBM = '101'
|
VITE_SYTJGBM = '101'
|
||||||
|
|
@ -29,4 +29,4 @@ VITE_DIRECTIVE_UPLOAD_PATH = ''
|
||||||
# 填写后将作为乾坤子应用启动,主应用注册时AppName需保持一致(放开 VITE_GLOB_QIANKUN_MICRO_APP_NAME 参数表示jeecg-vue3将以乾坤子应用模式启动)
|
# 填写后将作为乾坤子应用启动,主应用注册时AppName需保持一致(放开 VITE_GLOB_QIANKUN_MICRO_APP_NAME 参数表示jeecg-vue3将以乾坤子应用模式启动)
|
||||||
#VITE_GLOB_QIANKUN_MICRO_APP_NAME=jeecg-vue3
|
#VITE_GLOB_QIANKUN_MICRO_APP_NAME=jeecg-vue3
|
||||||
# 作为乾坤子应用启动时必填,需与qiankun主应用注册子应用时填写的 entry 保持一致
|
# 作为乾坤子应用启动时必填,需与qiankun主应用注册子应用时填写的 entry 保持一致
|
||||||
#VITE_GLOB_QIANKUN_MICRO_APP_ENTRY=//192.168.2.30:3001/jeecg-vue3
|
#VITE_GLOB_QIANKUN_MICRO_APP_ENTRY=//localhost:3001/jeecg-vue3
|
||||||
|
|
|
||||||
180
src/App.vue
180
src/App.vue
|
|
@ -7,99 +7,103 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { watch, ref } from 'vue';
|
import { watch, ref } from 'vue';
|
||||||
import { theme } from 'ant-design-vue';
|
import { theme } from 'ant-design-vue';
|
||||||
import { ConfigProvider } from 'ant-design-vue';
|
import { ConfigProvider } from 'ant-design-vue';
|
||||||
import { AppProvider } from '/@/components/Application';
|
import { AppProvider } from '/@/components/Application';
|
||||||
import { useTitle } from '/@/hooks/web/useTitle';
|
import { useTitle } from '/@/hooks/web/useTitle';
|
||||||
import { useLocale } from '/@/locales/useLocale';
|
import { useLocale } from '/@/locales/useLocale';
|
||||||
import { useAppStore } from '/@/store/modules/app';
|
import { useAppStore } from '/@/store/modules/app';
|
||||||
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
|
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
|
||||||
import { ThemeEnum } from '/@/enums/appEnum';
|
import { ThemeEnum } from '/@/enums/appEnum';
|
||||||
import { changeTheme } from '/@/logics/theme/index';
|
import { changeTheme } from '/@/logics/theme/index';
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
// 解决日期时间国际化问题
|
// 解决日期时间国际化问题
|
||||||
import 'dayjs/locale/zh-cn';
|
import 'dayjs/locale/zh-cn';
|
||||||
// support Multi-language
|
// support Multi-language
|
||||||
const { getAntdLocale } = useLocale();
|
const { getAntdLocale } = useLocale();
|
||||||
|
|
||||||
useTitle();
|
useTitle();
|
||||||
/**
|
/**
|
||||||
* 2024-04-07
|
* 2024-04-07
|
||||||
* liaozhiyang
|
* liaozhiyang
|
||||||
* 暗黑模式下默认文字白色,白天模式默认文字 #333
|
* 暗黑模式下默认文字白色,白天模式默认文字 #333
|
||||||
* */
|
* */
|
||||||
const modeAction = (data) => {
|
const modeAction = (data) => {
|
||||||
if (data.token) {
|
if (data.token) {
|
||||||
if (getDarkMode.value === ThemeEnum.DARK) {
|
if (getDarkMode.value === ThemeEnum.DARK) {
|
||||||
Object.assign(data.token, { colorTextBase: 'fff' });
|
Object.assign(data.token, { colorTextBase: 'fff' });
|
||||||
} else {
|
} else {
|
||||||
Object.assign(data.token, { colorTextBase: '#333' });
|
Object.assign(data.token, { colorTextBase: '#333' });
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
// update-begin--author:liaozhiyang---date:20231218---for:【QQYUN-6366】升级到antd4.x
|
};
|
||||||
const appTheme: any = ref({});
|
// update-begin--author:liaozhiyang---date:20231218---for:【QQYUN-6366】升级到antd4.x
|
||||||
const { getDarkMode } = useRootSetting();
|
const appTheme: any = ref({});
|
||||||
watch(
|
const { getDarkMode } = useRootSetting();
|
||||||
() => getDarkMode.value,
|
watch(
|
||||||
(newValue) => {
|
() => getDarkMode.value,
|
||||||
delete appTheme.value.algorithm;
|
(newValue) => {
|
||||||
if (newValue === ThemeEnum.DARK) {
|
delete appTheme.value.algorithm;
|
||||||
appTheme.value.algorithm = theme.darkAlgorithm;
|
if (newValue === ThemeEnum.DARK) {
|
||||||
}
|
appTheme.value.algorithm = theme.darkAlgorithm;
|
||||||
// update-begin--author:liaozhiyang---date:20240322---for:【QQYUN-8570】生产环境暗黑模式下主题色不生效
|
}
|
||||||
if (import.meta.env.PROD) {
|
// update-begin--author:liaozhiyang---date:20240322---for:【QQYUN-8570】生产环境暗黑模式下主题色不生效
|
||||||
changeTheme(appStore.getProjectConfig.themeColor);
|
if (import.meta.env.PROD) {
|
||||||
}
|
changeTheme(appStore.getProjectConfig.themeColor);
|
||||||
// update-end--author:liaozhiyang---date:20240322---for:【QQYUN-8570】生产环境暗黑模式下主题色不生效
|
}
|
||||||
modeAction(appTheme.value);
|
// update-end--author:liaozhiyang---date:20240322---for:【QQYUN-8570】生产环境暗黑模式下主题色不生效
|
||||||
appTheme.value = {
|
modeAction(appTheme.value);
|
||||||
...appTheme.value,
|
appTheme.value = {
|
||||||
};
|
...appTheme.value,
|
||||||
},
|
};
|
||||||
{ immediate: true }
|
},
|
||||||
);
|
{ immediate: true }
|
||||||
watch(
|
);
|
||||||
appStore.getProjectConfig,
|
watch(
|
||||||
(newValue) => {
|
appStore.getProjectConfig,
|
||||||
const primary = newValue.themeColor;
|
(newValue) => {
|
||||||
const result = {
|
const primary = newValue.themeColor;
|
||||||
...appTheme.value,
|
const result = {
|
||||||
...{
|
...appTheme.value,
|
||||||
token: {
|
...{
|
||||||
colorPrimary: primary,
|
token: {
|
||||||
wireframe: true,
|
colorPrimary: primary,
|
||||||
fontSize: 14,
|
wireframe: true,
|
||||||
colorTextBase: '#333',
|
fontSize: 14,
|
||||||
colorSuccess: '#55D187',
|
colorTextBase: '#333',
|
||||||
colorInfo: primary,
|
colorSuccess: '#55D187',
|
||||||
borderRadius: 4,
|
colorInfo: primary,
|
||||||
sizeStep: 4,
|
borderRadius: 4,
|
||||||
sizeUnit: 4,
|
sizeStep: 4,
|
||||||
colorWarning: '#EFBD47',
|
sizeUnit: 4,
|
||||||
colorError: '#ED6F6F',
|
colorWarning: '#EFBD47',
|
||||||
fontFamily:
|
colorError: '#ED6F6F',
|
||||||
'-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol',
|
fontFamily:
|
||||||
},
|
'-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol',
|
||||||
},
|
},
|
||||||
};
|
},
|
||||||
appTheme.value = result;
|
};
|
||||||
modeAction(result);
|
appTheme.value = result;
|
||||||
},
|
modeAction(result);
|
||||||
{ immediate: true }
|
},
|
||||||
);
|
{ immediate: true }
|
||||||
setTimeout(() => {
|
);
|
||||||
appStore.getProjectConfig?.themeColor && changeTheme(appStore.getProjectConfig.themeColor);
|
setTimeout(() => {
|
||||||
}, 300);
|
appStore.getProjectConfig?.themeColor && changeTheme(appStore.getProjectConfig.themeColor);
|
||||||
// update-end--author:liaozhiyang---date:20231218---for:【QQYUN-6366】升级到antd4.x
|
}, 300);
|
||||||
|
// update-end--author:liaozhiyang---date:20231218---for:【QQYUN-6366】升级到antd4.x
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
// update-begin--author:liaozhiyang---date:20230803---for:【QQYUN-5839】windi会影响到html2canvas绘制的图片样式
|
// update-begin--author:liaozhiyang---date:20230803---for:【QQYUN-5839】windi会影响到html2canvas绘制的图片样式
|
||||||
img {
|
img {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
// update-end--author:liaozhiyang---date:20230803---for:【QQYUN-5839】windi会影响到html2canvas绘制的图片样式
|
|
||||||
|
// update-end--author:liaozhiyang---date:20230803---for:【QQYUN-5839】windi会影响到html2canvas绘制的图片样式
|
||||||
|
.p-2{
|
||||||
|
padding: 14px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@ enum Api {
|
||||||
changeDirectiveMain = '/sys/sysDepart/changeDirectiveMain', //变更指令库
|
changeDirectiveMain = '/sys/sysDepart/changeDirectiveMain', //变更指令库
|
||||||
getDirectiveMain = '/sys/sysDepart/getDirectiveMain', //查询当前指令库机构信息
|
getDirectiveMain = '/sys/sysDepart/getDirectiveMain', //查询当前指令库机构信息
|
||||||
getDMOrgInfo = '/api/common/getDMOrgInfo', //标准指令库信息
|
getDMOrgInfo = '/api/common/getDMOrgInfo', //标准指令库信息
|
||||||
|
changeElderTagMain = '/sys/sysDepart/changeElderTagMain', //变更标准标签库
|
||||||
|
getElderTagMain = '/sys/sysDepart/getElderTagMain', //查询当前标准标签库机构信息
|
||||||
|
getETMOrgInfo = '/api/common/getETMOrgInfo', //标准标签库信息
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -188,3 +191,25 @@ export const changeDirectiveMain = (orgCode) => {
|
||||||
export const getDirectiveMain = () => {
|
export const getDirectiveMain = () => {
|
||||||
return defHttp.get({ url: Api.getDirectiveMain });
|
return defHttp.get({ url: Api.getDirectiveMain });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//标准标签库信息
|
||||||
|
export const getETMOrgInfo = () => {
|
||||||
|
return defHttp.get({ url: Api.getETMOrgInfo });
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更标签库
|
||||||
|
* @param params
|
||||||
|
*/
|
||||||
|
export const changeElderTagMain = (orgCode) => {
|
||||||
|
return defHttp.post({ url: `${Api.changeElderTagMain}?orgCode=${encodeURIComponent(orgCode)}` });
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更标签库
|
||||||
|
* @param params
|
||||||
|
*/
|
||||||
|
export const getElderTagMain = () => {
|
||||||
|
return defHttp.get({ url: Api.getElderTagMain });
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
* @Description: logo component
|
* @Description: logo component
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="anticon" :class="getAppLogoClass" @click="goHome" style="background: #ceeef7;text-align: center;">
|
<div class="anticon" :class="getAppLogoClass" @click="goHome" style="text-align: center;">
|
||||||
<img src="../../../assets/images/logo.png" />
|
<img src="../../../assets/images/logo.png" />
|
||||||
<div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle">
|
<div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle">
|
||||||
{{ shortTitle }}
|
{{ shortTitle }}
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,57 @@ export const asyncMaincolumns: BasicColumn[] = [
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
export const asyncMaincolumnsElderTag: BasicColumn[] = [
|
||||||
|
{
|
||||||
|
title: '同步时间',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
width: '150px'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '同步人',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'createBy_dictText',
|
||||||
|
width: '120px'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '源平台',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'orgName',
|
||||||
|
width: '150px'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '目标平台',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'targetOrgName',
|
||||||
|
width: '150px',
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
return record.asyncStatusList?.[0]?.zorgName || '-';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '数据',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'dataStatus',
|
||||||
|
width: '120px',
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
const dataItem = record.asyncStatusList?.find(item => item.code === 'data');
|
||||||
|
return dataItem ? (dataItem.status === '200' ? '成功' : '失败') : '-';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '文件',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'fileStatus',
|
||||||
|
width: '120px',
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
const fileItem = record.asyncStatusList?.find(item => item.code === 'file');
|
||||||
|
return fileItem ? (fileItem.status === '200' ? '成功' : '失败') : '-';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
//子列表数据
|
//子列表数据
|
||||||
export const asyncStatusColumns: BasicColumn[] = [
|
export const asyncStatusColumns: BasicColumn[] = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
import { ref, reactive } from 'vue';
|
import { ref, reactive } from 'vue';
|
||||||
import { BasicTable, useTable } from '/@/components/Table';
|
import { BasicTable, useTable } from '/@/components/Table';
|
||||||
import { useListPage } from '/@/hooks/system/useListPage';
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
import { asyncMaincolumns } from './AsyncMain.data';
|
import { asyncMaincolumns, asyncMaincolumnsElderTag } from './AsyncMain.data';
|
||||||
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './AsyncMain.api';
|
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './AsyncMain.api';
|
||||||
import AsyncMainModal from './components/AsyncMainModal.vue'
|
import AsyncMainModal from './components/AsyncMainModal.vue'
|
||||||
|
|
||||||
|
|
@ -87,7 +87,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
tableProps: {
|
tableProps: {
|
||||||
title: '数据同步主表',
|
title: '数据同步主表',
|
||||||
api: list,
|
api: list,
|
||||||
columns: asyncMaincolumns,
|
columns: props.type == 'elderTag' ? asyncMaincolumnsElderTag : asyncMaincolumns,
|
||||||
canResize: false,
|
canResize: false,
|
||||||
useSearchForm: false,
|
useSearchForm: false,
|
||||||
showTableSetting: false,
|
showTableSetting: false,
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
/>
|
/>
|
||||||
<LayoutBreadcrumb v-if="getShowContent && getShowBread" :theme="getHeaderTheme" />
|
<LayoutBreadcrumb v-if="getShowContent && getShowBread" :theme="getHeaderTheme" />
|
||||||
<!-- 欢迎语 -->
|
<!-- 欢迎语 -->
|
||||||
<span v-if="getShowContent && getShowBreadTitle && !getIsMobile" style="background: #ceeef7 !important;" :class="[prefixCls, `${prefixCls}--${getHeaderTheme}`,'headerIntroductionClass']"> {{t('layout.header.welcomeIn')}} {{ title }} </span>
|
<span v-if="getShowContent && getShowBreadTitle && !getIsMobile" style="" :class="[prefixCls, `${prefixCls}--${getHeaderTheme}`,'headerIntroductionClass']"> {{t('layout.header.welcomeIn')}} {{ title }} </span>
|
||||||
</div>
|
</div>
|
||||||
<!-- left end -->
|
<!-- left end -->
|
||||||
|
|
||||||
|
|
@ -262,9 +262,9 @@
|
||||||
border-left: 0px;
|
border-left: 0px;
|
||||||
}
|
}
|
||||||
.headClass{
|
.headClass{
|
||||||
background-image: url('../resource/img/bj.png') !important;
|
// background-image: url('../resource/img/bj.png') !important;
|
||||||
background-repeat: no-repeat;
|
// background-repeat: no-repeat;
|
||||||
background-size: 100% auto;
|
// background-size: 100% auto;
|
||||||
background-color: #e5f5f9 !important;
|
// background-color: #f3f6fe !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -99,17 +99,19 @@
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row v-show="!isEditMedia">
|
<!-- <a-row v-show="!isEditMedia">
|
||||||
<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">
|
||||||
<JCheckbox v-model:value="formData.bodyTags" :orgCode="formData?.sysOrgCode"
|
<span v-if="!formData.bodyTags">-</span>
|
||||||
|
<JCheckbox v-else v-model:value="formData.bodyTags" :orgCode="formData?.sysOrgCode"
|
||||||
:dictCode="bodyTagDictCode" />
|
:dictCode="bodyTagDictCode" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="情绪标签" :labelCol="labelCol2" :wrapperCol="wrapperCol2" name="emoTags">
|
<a-form-item label="情绪标签" :labelCol="labelCol2" :wrapperCol="wrapperCol2" name="emoTags">
|
||||||
<JCheckbox v-model:value="formData.emotionTags" :orgCode="formData?.sysOrgCode"
|
<span v-if="!formData.emotionTags">-</span>
|
||||||
|
<JCheckbox v-else v-model:value="formData.emotionTags" :orgCode="formData?.sysOrgCode"
|
||||||
:dictCode="emotionTagDictCode" />
|
:dictCode="emotionTagDictCode" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
@ -120,7 +122,7 @@
|
||||||
placeholder="请选择是否启用" allowClear />
|
placeholder="请选择是否启用" allowClear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row> -->
|
||||||
<!-- <a-row> -->
|
<!-- <a-row> -->
|
||||||
<!-- <a-col :span="12">
|
<!-- <a-col :span="12">
|
||||||
<a-form-item label="服务指令图片" v-bind="validateInfos.previewFile">
|
<a-form-item label="服务指令图片" v-bind="validateInfos.previewFile">
|
||||||
|
|
@ -216,8 +218,8 @@ const props = defineProps({
|
||||||
formData: { type: Object, default: () => ({}) },
|
formData: { type: Object, default: () => ({}) },
|
||||||
formBpm: { type: Boolean, default: true },
|
formBpm: { type: Boolean, default: true },
|
||||||
});
|
});
|
||||||
const bodyTagDictCode = ref(`nu_config_body_tag,tag_name,id,del_flag = 0 and iz_enabled = 0 order by sort asc`)
|
const bodyTagDictCode = ref(`nu_config_body_tag,tag_name,id,1=2`)
|
||||||
const emotionTagDictCode = ref(`nu_config_emotion_tag,tag_name,id,del_flag = 0 and iz_enabled = 0 order by sort asc`)
|
const emotionTagDictCode = ref(`nu_config_emotion_tag,tag_name,id,1=2`)
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const useForm = Form.useForm;
|
const useForm = Form.useForm;
|
||||||
const emit = defineEmits(['register', 'ok']);
|
const emit = defineEmits(['register', 'ok']);
|
||||||
|
|
@ -392,7 +394,8 @@ function add() {
|
||||||
* isAudit_是否为服务指令那个审核 (隐藏业务字段)
|
* isAudit_是否为服务指令那个审核 (隐藏业务字段)
|
||||||
*/
|
*/
|
||||||
function edit(record, isEditMedia_ = false, isAudit_ = false) {
|
function edit(record, isEditMedia_ = false, isAudit_ = false) {
|
||||||
if (!!record.bodyTags ) {
|
console.log("🌊 ~ edit ~ record:", record)
|
||||||
|
if (!!record.bodyTags) {
|
||||||
// 将逗号分隔的字符串转换为 "id = 'id1' or id = 'id2'" 格式
|
// 将逗号分隔的字符串转换为 "id = 'id1' or id = 'id2'" 格式
|
||||||
const bodyTagConditions = record.bodyTags.split(',')
|
const bodyTagConditions = record.bodyTags.split(',')
|
||||||
.map(id => `id = '${id}'`)
|
.map(id => `id = '${id}'`)
|
||||||
|
|
@ -401,7 +404,7 @@ function edit(record, isEditMedia_ = false, isAudit_ = false) {
|
||||||
(bodyTagConditions ? ` and (${bodyTagConditions})` : '') +
|
(bodyTagConditions ? ` and (${bodyTagConditions})` : '') +
|
||||||
` order by sort asc`;
|
` order by sort asc`;
|
||||||
}
|
}
|
||||||
if (!!record.emotionTags ) {
|
if (!!record.emotionTags) {
|
||||||
// 将逗号分隔的字符串转换为 "id = 'id1' or id = 'id2'" 格式
|
// 将逗号分隔的字符串转换为 "id = 'id1' or id = 'id2'" 格式
|
||||||
const emotionTagConditions = record.emotionTags.split(',')
|
const emotionTagConditions = record.emotionTags.split(',')
|
||||||
.map(id => `id = '${id}'`)
|
.map(id => `id = '${id}'`)
|
||||||
|
|
|
||||||
|
|
@ -1,47 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="p-2">
|
<div>
|
||||||
<!-- <a-row :style="props.layout === 'half' ? { height: '68vh', overflow: 'auto' } : {}"> -->
|
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col v-for="item in orgTableList.records" :key="item.id" :xs="24" :sm="24" :md="props.layout == 'full' ? 12 : 8"
|
<a-col v-for="(item, index) in orgTableList.records" :key="item.id" :xs="24" :sm="24"
|
||||||
:lg="props.layout == 'full' ? 12 : 8" :xl="props.layout == 'full' ? 8 : 8" :xxl="props.layout == 'full' ? 6 : 8"
|
:md="props.layout == 'full' ? 12 : 8" :lg="props.layout == 'full' ? 12 : 8" :xl="props.layout == 'full' ? 8 : 8"
|
||||||
:xxxl="props.layout == 'full' ? 4 : 8" style="padding: 8px;">
|
:xxl="props.layout == 'full' ? 6 : 8" :xxxl="props.layout == 'full' ? 4 : 8"
|
||||||
<a-card :class="{
|
:style="{ 'padding-right': ((index + 1) % 4 != 0) ? '14px' : '0px', 'padding-bottom': '14px' }">
|
||||||
'selected-card': selectedOrgs.some(org => org.orgCode === item.orgCode),
|
<OrgCard :orgInfo="item" :layout="props.layout"
|
||||||
'directive-selected-card': directiveMainSelectedOrg?.orgCode === item.orgCode,
|
:is-selected="selectedOrgs.some(org => org.orgCode === item.orgCode)"
|
||||||
'org-card': (showChoose || showDirectiveChoose)
|
:is-directive-selected="directiveMainSelectedOrg?.orgCode === item.orgCode"
|
||||||
}" style="width: 100%; border-radius: 8px; " :style="{ cursor: showChoose ? 'pointer' : 'default' }"
|
:is-directive-main="dmOrg?.orgCode === item.orgCode" :show-detail="props.showDetail"
|
||||||
:bodyStyle="{ padding: '24px' }" @click="handleCardClick(item)">
|
:clickable="props.showChoose || props.showDirectiveChoose" @click="handleCardClick" @detail="handleDetail" />
|
||||||
<div>
|
|
||||||
<a-row style="font-weight: normal; margin-bottom: 12px;">
|
|
||||||
<a-col :span="props.layout == 'full' ? 16 : 13" style="font-size: 14px;">
|
|
||||||
<div>
|
|
||||||
<span style="font-weight: bold;">{{ item.departName }}</span>
|
|
||||||
</div>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="props.layout == 'full' ? 8 : 11" style="text-align: right;">
|
|
||||||
<div style="display: flex; align-items: center; justify-content: flex-end; gap: 8px;">
|
|
||||||
<!-- <span v-if="selectedOrgs.some(org => org.orgCode === item.orgCode)"
|
|
||||||
style="color: green; font-size: 12px; white-space: nowrap;">已选择</span> -->
|
|
||||||
<span v-if="dmOrg?.orgCode === item.orgCode"
|
|
||||||
style="color: green; font-size: 12px; font-weight: bold; white-space: nowrap;">标准指令库</span>
|
|
||||||
<div class="zxClass" style="min-width: 35px;">{{ item.orgCode }}</div>
|
|
||||||
</div>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
<a-divider />
|
|
||||||
<div style="position: relative;">
|
|
||||||
<div v-show="showDetail" style="text-align:center;position: absolute;top: 0px;right:0px">
|
|
||||||
<a-button type="link" size="small" @click.stop="handleDetail(item)">详情</a-button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<p>加盟时间:{{ item.franchiseTime?.substring(0, 10) }}</p>
|
|
||||||
<p>机构负责人:{{ item.orgLeader }}</p>
|
|
||||||
<p>负责人电话:{{ item.orgLeaderPhone }}</p>
|
|
||||||
<p class="ellipsis-one-lines" :title="item.comRegisterAddress">机构地址:{{ item.comRegisterAddress }}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a-card>
|
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="orgTableList.length == 0">
|
<a-col v-if="orgTableList.length == 0">
|
||||||
<div style="margin: 30px auto;">
|
<div style="margin: 30px auto;">
|
||||||
|
|
@ -61,21 +29,22 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="synchronization-directive2">
|
<script setup lang="ts" name="synchronization-directive2">
|
||||||
import { ref, reactive, onMounted, watch } from 'vue'
|
import { ref, reactive, onMounted } from 'vue'
|
||||||
import { Pagination } from 'ant-design-vue'
|
import { Pagination } from 'ant-design-vue'
|
||||||
import { getOrgInfo } from '/@/views/admin/orgapplyinfo/OrgApplyInfo.api'
|
import { getOrgInfo } from '/@/views/admin/orgapplyinfo/OrgApplyInfo.api'
|
||||||
|
import OrgCard from '/@/components/OrgCard/OrgCardCom.vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
showChoose: { type: Boolean, default: false },
|
showChoose: { type: Boolean, default: false },
|
||||||
pageSize: { type: Number, default: 8 },
|
pageSize: { type: Number, default: 8 },
|
||||||
showDetail: { type: Boolean, default: false },
|
showDetail: { type: Boolean, default: false },
|
||||||
title: { type: String, default: '' },
|
title: { type: String, default: '' },
|
||||||
allowMultipleSelection: { type: Boolean, default: false }, // 多选控制
|
allowMultipleSelection: { type: Boolean, default: false },
|
||||||
layout: { type: String, default: 'full' }, // 控制布局: 'full' 或 'half'
|
layout: { type: String, default: 'full' },
|
||||||
excludeOrgCode: { type: String, default: '' },//排除的机构(不展示)
|
excludeOrgCode: { type: String, default: '' },
|
||||||
showDirectiveMain: { type: Boolean, default: false },//指令库按钮
|
showDirectiveMain: { type: Boolean, default: false },
|
||||||
showDirectiveChoose: { type: Boolean, default: false }, // 新增:是否可以选择指令库
|
showDirectiveChoose: { type: Boolean, default: false },
|
||||||
showDMTip: { type: Boolean, default: false }, // 增加此属性可单独展示“标准指令库”提示
|
showDMTip: { type: Boolean, default: false },
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['handleOrgDetail', 'handleOrgChoose'])
|
const emit = defineEmits(['handleOrgDetail', 'handleOrgChoose'])
|
||||||
|
|
@ -84,41 +53,35 @@ const orgTableList = ref<any>({ records: [], total: 0 })
|
||||||
const queryParam = reactive<any>({})
|
const queryParam = reactive<any>({})
|
||||||
const pageParams = ref({ pageNo: 1, pageSize: props.pageSize })
|
const pageParams = ref({ pageNo: 1, pageSize: props.pageSize })
|
||||||
const directiveMainSelectedOrg = ref<any>(null)
|
const directiveMainSelectedOrg = ref<any>(null)
|
||||||
const dmOrg = ref('')//已设定标准指令库
|
const dmOrg = ref<any>('')
|
||||||
|
const selectedOrgs = ref<any[]>([])
|
||||||
|
|
||||||
// 当前选中的卡片 ID 数组
|
|
||||||
const selectedOrgs = ref<string[]>([])
|
|
||||||
|
|
||||||
/** 点击卡片选择 */
|
|
||||||
function handleCardClick(item: any) {
|
function handleCardClick(item: any) {
|
||||||
if (props.showDirectiveChoose) {
|
if (props.showDirectiveChoose) {
|
||||||
directiveMainSelectedOrg.value = item
|
directiveMainSelectedOrg.value = item
|
||||||
emit('handleOrgChoose', item)
|
emit('handleOrgChoose', item)
|
||||||
}
|
}
|
||||||
if (props.showChoose) { // 判断是否可以选择
|
if (props.showChoose) {
|
||||||
if (props.allowMultipleSelection) {
|
if (props.allowMultipleSelection) {
|
||||||
// 多选模式:点击时添加或移除该卡片
|
|
||||||
if (selectedOrgs.value.some(selected => selected.orgCode === item.orgCode)) {
|
if (selectedOrgs.value.some(selected => selected.orgCode === item.orgCode)) {
|
||||||
selectedOrgs.value = selectedOrgs.value.filter(selected => selected.orgCode !== item.orgCode)
|
selectedOrgs.value = selectedOrgs.value.filter(selected => selected.orgCode !== item.orgCode)
|
||||||
} else {
|
} else {
|
||||||
selectedOrgs.value.push(item) // 将整个机构信息添加到选中项
|
selectedOrgs.value.push(item)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 单选模式:直接选中该卡片
|
selectedOrgs.value = [item]
|
||||||
selectedOrgs.value = [item] // 只保留当前选中的机构
|
|
||||||
}
|
}
|
||||||
// emit('handleOrgChoose', selectedOrgs.value) // 传递完整的选中机构信息
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function commitOrgsInfo() {
|
function commitOrgsInfo() {
|
||||||
emit('handleOrgChoose', selectedOrgs.value) // 传递完整的选中机构信息
|
emit('handleOrgChoose', selectedOrgs.value)
|
||||||
}
|
}
|
||||||
/** 点击详情 */
|
|
||||||
function handleDetail(item: any) {
|
function handleDetail(item: any) {
|
||||||
emit('handleOrgDetail', item)
|
emit('handleOrgDetail', item)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 数据加载 */
|
|
||||||
function reload() {
|
function reload() {
|
||||||
directiveMainSelectedOrg.value = {}
|
directiveMainSelectedOrg.value = {}
|
||||||
queryParam.pageSize = pageParams.value.pageSize
|
queryParam.pageSize = pageParams.value.pageSize
|
||||||
|
|
@ -130,19 +93,16 @@ function reload() {
|
||||||
getOrgInfo(queryParam).then(res => {
|
getOrgInfo(queryParam).then(res => {
|
||||||
res.records = res.records.filter(o => o.orgCode != props.excludeOrgCode)
|
res.records = res.records.filter(o => o.orgCode != props.excludeOrgCode)
|
||||||
orgTableList.value = res
|
orgTableList.value = res
|
||||||
// 在reload函数中添加
|
|
||||||
if (props.showDirectiveChoose || props.showDMTip) {
|
if (props.showDirectiveChoose || props.showDMTip) {
|
||||||
const defaultSelected = res.records.find(item => item.izDirectiveMain === '0')
|
const defaultSelected = res.records.find(item => item.izDirectiveMain === '0')
|
||||||
if (defaultSelected) {
|
if (defaultSelected) {
|
||||||
dmOrg.value = defaultSelected
|
dmOrg.value = defaultSelected
|
||||||
// directiveMainSelectedOrg.value = defaultSelected
|
|
||||||
emit('handleOrgChoose', defaultSelected)
|
emit('handleOrgChoose', defaultSelected)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 重置搜索条件 */
|
|
||||||
function searchReset() {
|
function searchReset() {
|
||||||
queryParam.title = null
|
queryParam.title = null
|
||||||
if (props.layout == 'half') {
|
if (props.layout == 'half') {
|
||||||
|
|
@ -154,29 +114,23 @@ function searchReset() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//全选或清空
|
|
||||||
function checkAllOrEmpty(isCheckAll = true) {
|
function checkAllOrEmpty(isCheckAll = true) {
|
||||||
if (isCheckAll) {
|
if (isCheckAll) {
|
||||||
// 全选
|
|
||||||
orgTableList.value.records.forEach(item => {
|
orgTableList.value.records.forEach(item => {
|
||||||
// 只将没有在 selectedOrgs 中的项加入
|
|
||||||
if (!selectedOrgs.value.some(selected => selected.orgCode === item.orgCode)) {
|
if (!selectedOrgs.value.some(selected => selected.orgCode === item.orgCode)) {
|
||||||
selectedOrgs.value.push(item);
|
selectedOrgs.value.push(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// 清空已选择:将 selectedOrgs 设为空数组
|
|
||||||
selectedOrgs.value = [];
|
selectedOrgs.value = [];
|
||||||
}
|
}
|
||||||
// 触发父组件的 handleOrgChoose 事件,传递选中的机构
|
|
||||||
emit('handleOrgChoose', selectedOrgs.value);
|
emit('handleOrgChoose', selectedOrgs.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetSeleted(orgs) {
|
function resetSeleted(orgs: any[]) {
|
||||||
selectedOrgs.value = [...orgs]
|
selectedOrgs.value = [...orgs]
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始化
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
reload()
|
reload()
|
||||||
})
|
})
|
||||||
|
|
@ -190,61 +144,3 @@ defineExpose({
|
||||||
resetSeleted
|
resetSeleted
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
|
||||||
.zxClass {
|
|
||||||
font-size: 12px;
|
|
||||||
background: linear-gradient(to right, #1ea0fa, #017de9);
|
|
||||||
border-radius: 8px;
|
|
||||||
height: 25px;
|
|
||||||
color: white;
|
|
||||||
line-height: 25px;
|
|
||||||
padding: 0 8px;
|
|
||||||
/* 增加内边距 */
|
|
||||||
flex-shrink: 0;
|
|
||||||
/* 防止被压缩 */
|
|
||||||
}
|
|
||||||
|
|
||||||
.tbClass {
|
|
||||||
background: #f6f6f6;
|
|
||||||
padding: 8px;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.antTitle {
|
|
||||||
margin-top: 10px;
|
|
||||||
display: block;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ellipsis-one-lines {
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
|
|
||||||
.selected-card {
|
|
||||||
border: 2px solid #1890ff;
|
|
||||||
box-shadow: 0 0 8px rgba(24, 144, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.directive-selected-card {
|
|
||||||
border: 2px solid #1890FF;
|
|
||||||
box-shadow: 0 0 8px rgba(37, 149, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.org-card {
|
|
||||||
&:hover {
|
|
||||||
border-color: #55a9f8;
|
|
||||||
/* 这是悬停时的蓝色边框 */
|
|
||||||
box-shadow: 0 2px 8px rgba(37, 149, 255, 0.3);
|
|
||||||
/* 这是悬停时的淡蓝色阴影 */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep .ant-divider {
|
|
||||||
margin: 0 0 8px 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -36,34 +36,34 @@ export const columns: BasicColumn[] = [
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'directiveName',
|
dataIndex: 'directiveName',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '体型标签',
|
// title: '体型标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'bodyTagList',
|
// dataIndex: 'bodyTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
defaultHidden: false,
|
// defaultHidden: false,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: '情绪标签',
|
// title: '情绪标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'emotionTagList',
|
// dataIndex: 'emotionTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
defaultHidden: false,
|
// defaultHidden: false,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '收费价格',
|
title: '收费价格',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
|
@ -148,34 +148,34 @@ export const sourceColumns: BasicColumn[] = [
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'directiveName',
|
dataIndex: 'directiveName',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '体型标签',
|
// title: '体型标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'bodyTagList',
|
// dataIndex: 'bodyTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
// defaultHidden: true,
|
// // defaultHidden: true,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: '情绪标签',
|
// title: '情绪标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'emotionTagList',
|
// dataIndex: 'emotionTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
// defaultHidden: true,
|
// // defaultHidden: true,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '收费价格',
|
title: '收费价格',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
|
@ -248,34 +248,34 @@ export const targetSourceColumns: BasicColumn[] = [
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'directiveName',
|
dataIndex: 'directiveName',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '体型标签',
|
// title: '体型标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'bodyTagList',
|
// dataIndex: 'bodyTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
// defaultHidden: true,
|
// // defaultHidden: true,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: '情绪标签',
|
// title: '情绪标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'emotionTagList',
|
// dataIndex: 'emotionTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
// defaultHidden: true,
|
// // defaultHidden: true,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '收费价格',
|
title: '收费价格',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
|
@ -348,34 +348,34 @@ export const targetColumns: BasicColumn[] = [
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'directiveName',
|
dataIndex: 'directiveName',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '体型标签',
|
// title: '体型标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'bodyTagList',
|
// dataIndex: 'bodyTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
// defaultHidden: true,
|
// // defaultHidden: true,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: '情绪标签',
|
// title: '情绪标签',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
dataIndex: 'emotionTagList',
|
// dataIndex: 'emotionTagList',
|
||||||
ellipsis: false,
|
// ellipsis: false,
|
||||||
// defaultHidden: true,
|
// // defaultHidden: true,
|
||||||
format(text, record, index) {
|
// format(text, record, index) {
|
||||||
if (!!text) {
|
// if (!!text) {
|
||||||
return text.map((item) => item.tagName).join('、');
|
// return text.map((item) => item.tagName).join('、');
|
||||||
} else {
|
// } else {
|
||||||
return '-';
|
// return '-';
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '收费价格',
|
title: '收费价格',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<!-- <j-modal :title="title" width="75vw" :visible="visible" @cancel="handleCancel" cancelText="关闭" :maskClosable="false">
|
<!-- <j-modal :title="title" width="75vw" :visible="visible" @cancel="handleCancel" cancelText="关闭" :maskClosable="false">
|
||||||
<ConfigServiceDirectiveList ref="registerForm" v-if="visible" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigServiceDirectiveList>
|
<ConfigServiceDirectiveList ref="registerForm" v-if="visible" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigServiceDirectiveList>
|
||||||
</j-modal> -->
|
</j-modal> -->
|
||||||
<a-drawer :title="title" width="80vw" v-model:visible="visible" :closable="true"
|
<a-drawer :title="title" width="80vw" v-model:visible="visible" v-if="visible" :closable="true"
|
||||||
:footer-style="{ textAlign: 'right' }" @close="handleCancel">
|
:footer-style="{ textAlign: 'right' }" @close="handleCancel">
|
||||||
<ConfigServiceDirectiveList ref="registerForm" v-if="visible" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigServiceDirectiveList>
|
<ConfigServiceDirectiveList ref="registerForm" v-if="visible" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigServiceDirectiveList>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
|
|
|
||||||
|
|
@ -56,16 +56,16 @@
|
||||||
<a-drawer title="日志" width="85vw" v-model:visible="logsVisible"
|
<a-drawer title="日志" width="85vw" v-model:visible="logsVisible"
|
||||||
:bodyStyle="{ height: '70vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }"
|
:bodyStyle="{ height: '70vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }"
|
||||||
wrapClassName="org-list-modal" @cancel="handleCancelLogs">
|
wrapClassName="org-list-modal" @cancel="handleCancelLogs">
|
||||||
<a-row style="overflow-x: hidden !important; ">
|
<a-row style="overflow-x: hidden !important; background-color: white;">
|
||||||
<a-col :span="2" :push="22" style="margin-top: 15px;margin-left: 30px;">
|
<a-col :span="2" :push="22" style="margin-top: 18px;margin-left: 30px;">
|
||||||
<a-button type="primary" @click="handleRefreshLogs" title="刷新">
|
<a-button type="primary" @click="handleRefreshLogs" title="刷新">
|
||||||
刷新
|
刷新
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<AsyncListComponent ref="logsRef" :type="'directive'"></AsyncListComponent>
|
||||||
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<div style="padding:0px 8px;">
|
|
||||||
<AsyncListComponent ref="logsRef"></AsyncListComponent>
|
|
||||||
</div>
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<a-button @click="handleCancelLogs" type="primary" style="float:right;">关闭</a-button>
|
<a-button @click="handleCancelLogs" type="primary" style="float:right;">关闭</a-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -308,10 +308,11 @@ onMounted(() => {
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.jeecg-basic-table-form-container {
|
.jeecg-basic-table-form-container {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
margin-bottom: 18px;
|
||||||
|
|
||||||
.table-page-search-submitButtons {
|
.table-page-search-submitButtons {
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 24px;
|
margin-bottom: 0px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -326,7 +327,7 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-form-item:not(.ant-form-item-with-help) {
|
.ant-form-item:not(.ant-form-item-with-help) {
|
||||||
margin-bottom: 16px;
|
margin-bottom: 18px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,7 @@
|
||||||
<a-button type="link" @click="showSourceOrgListModal" size="small">请选择</a-button>
|
<a-button type="link" @click="showSourceOrgListModal" size="small">请选择</a-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="selected-orgs" v-if="!!orgInfo.length">
|
<div class="selected-orgs" v-if="!!orgInfo.length">
|
||||||
<a-card :headStyle="{ height: '60px', padding: '0 24px' }"
|
<a-card :headStyle="{ height: '60px', padding: '0 24px' }" :bodyStyle="{ padding: '24px 24px 4px 24px' }">
|
||||||
:bodyStyle="{ padding: '24px 24px 4px 24px' }">
|
|
||||||
<a-row style="font-weight: normal; margin-bottom: 12px;">
|
<a-row style="font-weight: normal; margin-bottom: 12px;">
|
||||||
<a-col :span="18" style="font-size: 14px;">
|
<a-col :span="18" style="font-size: 14px;">
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -83,7 +82,7 @@
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
<a-modal v-model:visible="sourceOrgListVisible" title="请选择源平台" width="90vw"
|
<a-modal v-model:visible="sourceOrgListVisible" title="请选择源平台" width="90vw"
|
||||||
:bodyStyle="{ height: '70vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }"
|
:bodyStyle="{ padding: '14px', height: '70vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }"
|
||||||
wrapClassName="org-list-modal" @cancel="handleCancelSource">
|
wrapClassName="org-list-modal" @cancel="handleCancelSource">
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<a-button @click="handleCancelSource" type="primary">取消</a-button>
|
<a-button @click="handleCancelSource" type="primary">取消</a-button>
|
||||||
|
|
@ -92,7 +91,8 @@
|
||||||
<OrgListCom class="step-content" ref="sourceOrgListComRef" @handleOrgChoose="handleSourceOrgChoose"
|
<OrgListCom class="step-content" ref="sourceOrgListComRef" @handleOrgChoose="handleSourceOrgChoose"
|
||||||
:showChoose="true" />
|
:showChoose="true" />
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<a-modal v-model:visible="targetOrgListVisible" title="请选择目标平台(复选)" width="90vw" @cancel="handleCancelTarget">
|
<a-modal v-model:visible="targetOrgListVisible" title="请选择目标平台(复选)" width="90vw" @cancel="handleCancelTarget"
|
||||||
|
:bodyStyle="{ padding: '14px', height: '70vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }">
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<a-button @click="handleCancelTarget" type="primary">取消</a-button>
|
<a-button @click="handleCancelTarget" type="primary">取消</a-button>
|
||||||
<a-button @click="handleGetTarget" type="primary">确认</a-button>
|
<a-button @click="handleGetTarget" type="primary">确认</a-button>
|
||||||
|
|
@ -417,6 +417,7 @@ defineExpose({
|
||||||
|
|
||||||
.org-card {
|
.org-card {
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: #55a9f8;
|
border-color: #55a9f8;
|
||||||
/* 这是悬停时的蓝色边框 */
|
/* 这是悬停时的蓝色边框 */
|
||||||
|
|
@ -428,6 +429,4 @@ defineExpose({
|
||||||
:deep .ant-divider {
|
:deep .ant-divider {
|
||||||
margin: 0 0 8px 0;
|
margin: 0 0 8px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -8,6 +8,13 @@
|
||||||
<a-radio value="1">否</a-radio>
|
<a-radio value="1">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</template>
|
</template>
|
||||||
|
<!-- 是否标准标签库 -->
|
||||||
|
<template #izElderTagMain="{ model, field }">
|
||||||
|
<a-radio-group v-model:value="model[field]" name="radioGroup">
|
||||||
|
<a-radio value="0">是</a-radio>
|
||||||
|
<a-radio value="1">否</a-radio>
|
||||||
|
</a-radio-group>
|
||||||
|
</template>
|
||||||
<!-- 省份 -->
|
<!-- 省份 -->
|
||||||
<template #province="{ model, field }">
|
<template #province="{ model, field }">
|
||||||
<j-dict-select-tag @change="provinceChanged(model)" v-model:value="model[field]"
|
<j-dict-select-tag @change="provinceChanged(model)" v-model:value="model[field]"
|
||||||
|
|
@ -93,6 +100,10 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data
|
||||||
field: 'izDirectiveMain',
|
field: 'izDirectiveMain',
|
||||||
show: !isChild,
|
show: !isChild,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: 'izElderTagMain',
|
||||||
|
show: !isChild,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
field: 'orgCategory',
|
field: 'orgCategory',
|
||||||
componentProps: { options: categoryOptions },
|
componentProps: { options: categoryOptions },
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,13 @@
|
||||||
<a-radio value="1">否</a-radio>
|
<a-radio value="1">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</template>
|
</template>
|
||||||
|
<!-- 是否标准标签库 -->
|
||||||
|
<template #izElderTagMain="{ model, field }">
|
||||||
|
<a-radio-group v-model:value="model[field]" name="radioGroup">
|
||||||
|
<a-radio value="0">是</a-radio>
|
||||||
|
<a-radio value="1">否</a-radio>
|
||||||
|
</a-radio-group>
|
||||||
|
</template>
|
||||||
<!-- 省份 -->
|
<!-- 省份 -->
|
||||||
<!-- <template #province="{ model, field }">
|
<!-- <template #province="{ model, field }">
|
||||||
<j-dict-select-tag @change="provinceChanged(model)" v-model:value="model[field]"
|
<j-dict-select-tag @change="provinceChanged(model)" v-model:value="model[field]"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue