添加后注册流程
This commit is contained in:
parent
906e4c7318
commit
17d2fa5e33
3
.env
3
.env
|
@ -19,4 +19,7 @@ VITE_GLOB_APP_OPEN_QIANKUN=true
|
||||||
# 文件预览地址
|
# 文件预览地址
|
||||||
VITE_GLOB_ONLINE_VIEW_URL=http://fileview.jeecg.com/onlinePreview
|
VITE_GLOB_ONLINE_VIEW_URL=http://fileview.jeecg.com/onlinePreview
|
||||||
|
|
||||||
|
# 运维服务器接口地址
|
||||||
|
VITE_GLOB_INSTITUTIONS_URL=http://192.168.2.19:8080/nursing-unit/
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
|
@ -15,4 +15,6 @@ export enum PageEnum {
|
||||||
TOKEN_LOGIN = '/tokenLogin',
|
TOKEN_LOGIN = '/tokenLogin',
|
||||||
// h5白名单
|
// h5白名单
|
||||||
H5_ADVISORYINFO = '/h5/advisoryInfo',
|
H5_ADVISORYINFO = '/h5/advisoryInfo',
|
||||||
|
// h5白名单
|
||||||
|
H5_REGISTER_ADVISORY = '/h5/registerAdvisory',
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ export const useGlobSetting = (): Readonly<GlobConfig> => {
|
||||||
VITE_GLOB_APP_OPEN_QIANKUN,
|
VITE_GLOB_APP_OPEN_QIANKUN,
|
||||||
VITE_GLOB_DOMAIN_URL,
|
VITE_GLOB_DOMAIN_URL,
|
||||||
VITE_GLOB_ONLINE_VIEW_URL,
|
VITE_GLOB_ONLINE_VIEW_URL,
|
||||||
|
VITE_GLOB_INSTITUTIONS_URL,
|
||||||
|
|
||||||
// 【JEECG作为乾坤子应用】
|
// 【JEECG作为乾坤子应用】
|
||||||
VITE_GLOB_QIANKUN_MICRO_APP_NAME,
|
VITE_GLOB_QIANKUN_MICRO_APP_NAME,
|
||||||
|
@ -40,6 +41,7 @@ export const useGlobSetting = (): Readonly<GlobConfig> => {
|
||||||
urlPrefix: VITE_GLOB_API_URL_PREFIX,
|
urlPrefix: VITE_GLOB_API_URL_PREFIX,
|
||||||
uploadUrl: VITE_GLOB_DOMAIN_URL,
|
uploadUrl: VITE_GLOB_DOMAIN_URL,
|
||||||
viewUrl: VITE_GLOB_ONLINE_VIEW_URL,
|
viewUrl: VITE_GLOB_ONLINE_VIEW_URL,
|
||||||
|
institutionsUrl:VITE_GLOB_INSTITUTIONS_URL,
|
||||||
|
|
||||||
// 【JEECG作为乾坤子应用】是否以乾坤子应用模式启动
|
// 【JEECG作为乾坤子应用】是否以乾坤子应用模式启动
|
||||||
isQiankunMicro: VITE_GLOB_QIANKUN_MICRO_APP_NAME != null && VITE_GLOB_QIANKUN_MICRO_APP_NAME !== '',
|
isQiankunMicro: VITE_GLOB_QIANKUN_MICRO_APP_NAME != null && VITE_GLOB_QIANKUN_MICRO_APP_NAME !== '',
|
||||||
|
|
|
@ -24,12 +24,13 @@ const SYS_FILES_PATH = PageEnum.SYS_FILES_PATH;
|
||||||
// 邮件中的跳转地址,对应此路由,携带token免登录直接去办理页面
|
// 邮件中的跳转地址,对应此路由,携带token免登录直接去办理页面
|
||||||
const TOKEN_LOGIN = PageEnum.TOKEN_LOGIN;
|
const TOKEN_LOGIN = PageEnum.TOKEN_LOGIN;
|
||||||
const H5_ADVISORYINFO = PageEnum.H5_ADVISORYINFO;
|
const H5_ADVISORYINFO = PageEnum.H5_ADVISORYINFO;
|
||||||
|
const H5_REGISTER_ADVISORY = PageEnum.H5_REGISTER_ADVISORY;
|
||||||
|
|
||||||
const ROOT_PATH = RootRoute.path;
|
const ROOT_PATH = RootRoute.path;
|
||||||
|
|
||||||
//update-begin---author:wangshuai ---date:20220629 for:[issues/I5BG1I]vue3不支持auth2登录------------
|
//update-begin---author:wangshuai ---date:20220629 for:[issues/I5BG1I]vue3不支持auth2登录------------
|
||||||
//update-begin---author:wangshuai ---date:20221111 for: [VUEN-2472]分享免登录------------
|
//update-begin---author:wangshuai ---date:20221111 for: [VUEN-2472]分享免登录------------
|
||||||
const whitePathList: PageEnum[] = [LOGIN_PATH, OAUTH2_LOGIN_PAGE_PATH,SYS_FILES_PATH, TOKEN_LOGIN, H5_ADVISORYINFO ];
|
const whitePathList: PageEnum[] = [LOGIN_PATH, OAUTH2_LOGIN_PAGE_PATH,SYS_FILES_PATH, TOKEN_LOGIN, H5_ADVISORYINFO,H5_REGISTER_ADVISORY ];
|
||||||
//update-end---author:wangshuai ---date:20221111 for: [VUEN-2472]分享免登录------------
|
//update-end---author:wangshuai ---date:20221111 for: [VUEN-2472]分享免登录------------
|
||||||
//update-end---author:wangshuai ---date:20220629 for:[issues/I5BG1I]vue3不支持auth2登录------------
|
//update-end---author:wangshuai ---date:20220629 for:[issues/I5BG1I]vue3不支持auth2登录------------
|
||||||
|
|
||||||
|
|
|
@ -65,14 +65,24 @@ export const TokenLoginRoute: AppRouteRecordRaw = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//h5页面首页
|
||||||
|
export const H5_REGISTER_ADVISORY: AppRouteRecordRaw = {
|
||||||
|
path: '/h5/registerAdvisory',
|
||||||
|
name: 'registerAdvisory',
|
||||||
|
component: () => import('../../views/biz/NuBizAdvisoryInfo/h5/RegisterAdvisoryInfo.vue'),
|
||||||
|
meta: {
|
||||||
|
title: "选择入住",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
//h5页面首页
|
//h5页面首页
|
||||||
export const H5_ADVISORYINFO: AppRouteRecordRaw = {
|
export const H5_ADVISORYINFO: AppRouteRecordRaw = {
|
||||||
path: '/h5/advisoryInfo',
|
path: '/h5/advisoryInfo',
|
||||||
name: 'advisoryInfo',
|
name: 'advisoryInfo',
|
||||||
component: () => import('/@/views/biz/NuBizAdvisoryInfo/h5/NuBizAdvisoryInfoList.vue'),
|
component: () => import('../../views/biz/NuBizAdvisoryInfo/h5/AdvisoryInfo.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: "选择入住",
|
title: "选择入住",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
// Basic routing without permission
|
// Basic routing without permission
|
||||||
export const basicRoutes = [LoginRoute, RootRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE, TokenLoginRoute, Oauth2LoginRoute,H5_ADVISORYINFO];
|
export const basicRoutes = [LoginRoute, RootRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE, TokenLoginRoute, Oauth2LoginRoute,H5_REGISTER_ADVISORY,H5_ADVISORYINFO];
|
||||||
|
|
|
@ -36,6 +36,7 @@ export function getAppEnvConfig() {
|
||||||
VITE_GLOB_APP_CAS_BASE_URL,
|
VITE_GLOB_APP_CAS_BASE_URL,
|
||||||
VITE_GLOB_DOMAIN_URL,
|
VITE_GLOB_DOMAIN_URL,
|
||||||
VITE_GLOB_ONLINE_VIEW_URL,
|
VITE_GLOB_ONLINE_VIEW_URL,
|
||||||
|
VITE_GLOB_INSTITUTIONS_URL,
|
||||||
|
|
||||||
// 【JEECG作为乾坤子应用】
|
// 【JEECG作为乾坤子应用】
|
||||||
VITE_GLOB_QIANKUN_MICRO_APP_NAME,
|
VITE_GLOB_QIANKUN_MICRO_APP_NAME,
|
||||||
|
@ -59,6 +60,7 @@ export function getAppEnvConfig() {
|
||||||
VITE_GLOB_APP_CAS_BASE_URL,
|
VITE_GLOB_APP_CAS_BASE_URL,
|
||||||
VITE_GLOB_DOMAIN_URL,
|
VITE_GLOB_DOMAIN_URL,
|
||||||
VITE_GLOB_ONLINE_VIEW_URL,
|
VITE_GLOB_ONLINE_VIEW_URL,
|
||||||
|
VITE_GLOB_INSTITUTIONS_URL,
|
||||||
|
|
||||||
// 【JEECG作为乾坤子应用】
|
// 【JEECG作为乾坤子应用】
|
||||||
VITE_GLOB_QIANKUN_MICRO_APP_NAME,
|
VITE_GLOB_QIANKUN_MICRO_APP_NAME,
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
<template>
|
<template>
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<JFormContainer >
|
<JFormContainer class="advisoryClass">
|
||||||
<template #detail>
|
<template #detail>
|
||||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="NuBizAdvisoryInfoForm">
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="NuBizAdvisoryInfoForm">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="选择机构" v-bind="validateInfos.sysOrgCode" id="NuBizAdvisoryInfoForm-sysOrgCode" name="sysOrgCode">
|
<a-form-item label="选择机构" v-bind="validateInfos.sysOrgCode" id="NuBizAdvisoryInfoForm-sysOrgCode" name="sysOrgCode">
|
||||||
<j-dict-select-tag type='radio' v-model:value="formData.sysOrgCode" dictCode="advisory_type" placeholder="请选择机构" allow-clear />
|
<a-radio-group v-model:value="formData.sysOrgCode" @change="handleChangeRadio">
|
||||||
|
<template v-for="item in institutionsSource" :key="`${item.id}`">
|
||||||
|
<a-radio :value="item.id">
|
||||||
|
{{ item.departName }}
|
||||||
|
</a-radio>
|
||||||
|
</template>
|
||||||
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
@ -30,7 +36,7 @@
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" style="text-align: center;">
|
<a-col :span="24" style="text-align: center;">
|
||||||
<a-button type="primary">提交</a-button>
|
<a-button type="primary" @click="handleSubmit()">提交</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
@ -47,6 +53,8 @@
|
||||||
import { getValueType } from '/@/utils';
|
import { getValueType } from '/@/utils';
|
||||||
import { Form } from 'ant-design-vue';
|
import { Form } from 'ant-design-vue';
|
||||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||||
|
import { useGlobSetting } from "/@/hooks/setting";
|
||||||
|
import axios from 'axios';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
formDisabled: { type: Boolean, default: false },
|
formDisabled: { type: Boolean, default: false },
|
||||||
formData: { type: Object, default: () => ({})},
|
formData: { type: Object, default: () => ({})},
|
||||||
|
@ -55,6 +63,8 @@
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const useForm = Form.useForm;
|
const useForm = Form.useForm;
|
||||||
const emit = defineEmits(['register', 'ok']);
|
const emit = defineEmits(['register', 'ok']);
|
||||||
|
const glob = useGlobSetting()
|
||||||
|
const institutionsSource = ref([]);
|
||||||
const formData = reactive<Record<string, any>>({
|
const formData = reactive<Record<string, any>>({
|
||||||
id: '',
|
id: '',
|
||||||
name: '',
|
name: '',
|
||||||
|
@ -64,6 +74,9 @@
|
||||||
advisoryType: '1',
|
advisoryType: '1',
|
||||||
status: '1',
|
status: '1',
|
||||||
content: '',
|
content: '',
|
||||||
|
serverUrl: '',
|
||||||
|
openId: '',
|
||||||
|
wechatName: '',
|
||||||
});
|
});
|
||||||
const { createMessage } = useMessage();
|
const { createMessage } = useMessage();
|
||||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||||
|
@ -74,14 +87,70 @@
|
||||||
name: [{ required: true, message: '请输入姓名!' }],
|
name: [{ required: true, message: '请输入姓名!' }],
|
||||||
sysOrgCode: [{ required: true, message: '请选择入住机构!' }],
|
sysOrgCode: [{ required: true, message: '请选择入住机构!' }],
|
||||||
advisoryType: [{ required: true, message: '请选择咨询类型!' }],
|
advisoryType: [{ required: true, message: '请选择咨询类型!' }],
|
||||||
tel: [{ required: true, message: '请输入联系电话!' }],
|
tel: [{ required: true, message: '请输入联系电话!' }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '联系电话错误!' }],
|
||||||
sex: [{ required: true, message: '请选择性别!' }],
|
sex: [{ required: true, message: '请选择性别!' }],
|
||||||
});
|
});
|
||||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||||
|
|
||||||
|
//选中机构后获取serverUrl地址
|
||||||
|
function handleChangeRadio(item){
|
||||||
|
const checkId = item.target.value;
|
||||||
|
const checkData = institutionsSource.value.filter(item => item.id === checkId);
|
||||||
|
if(checkData.length>0){
|
||||||
|
const serverUrl = checkData[0].serverUrl;
|
||||||
|
formData.serverUrl = serverUrl;
|
||||||
|
}
|
||||||
|
console.log('formData--->',formData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//提交信息
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
// 触发表单验证
|
||||||
|
await validate();
|
||||||
|
} catch ({ errorFields }) {
|
||||||
|
if (errorFields) {
|
||||||
|
const firstField = errorFields[0];
|
||||||
|
if (firstField) {
|
||||||
|
formRef.value.scrollToField(firstField.name, { behavior: 'smooth', block: 'center' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Promise.reject(errorFields);
|
||||||
|
}
|
||||||
|
//时间格式化
|
||||||
|
let model = formData;
|
||||||
|
//循环数据
|
||||||
|
for (let data in model) {
|
||||||
|
//如果该数据是数组并且是字符串类型
|
||||||
|
if (model[data] instanceof Array) {
|
||||||
|
let valueType = getValueType(formRef.value.getProps, data);
|
||||||
|
//如果是字符串类型的需要变成以逗号分割的字符串
|
||||||
|
if (valueType === 'string') {
|
||||||
|
model[data] = model[data].join(',');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
model.openId = "公众号openId";
|
||||||
|
model.wechatName = "公众号姓名";
|
||||||
|
console.log('model--->',model);
|
||||||
|
const serverUrl = formData.serverUrl;
|
||||||
|
axios.post(serverUrl+"/h5Api/nuBizAdvisoryInfo/add",model).then(response => {
|
||||||
|
var data = response.data;
|
||||||
|
if(data.code === 200){
|
||||||
|
createMessage.success("操作成功");
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
const institutionsUrl = glob.institutionsUrl+"/sys/sysDepart/queryInstitutionsList";
|
||||||
|
axios.get(institutionsUrl).then(response => {
|
||||||
|
institutionsSource.value = response.data;
|
||||||
|
}).catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -90,4 +159,9 @@
|
||||||
.antd-modal-form {
|
.antd-modal-form {
|
||||||
padding: 14px;
|
padding: 14px;
|
||||||
}
|
}
|
||||||
|
.advisoryClass{
|
||||||
|
background-image: url(/@/assets/images/advisory.jpg);
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -1,113 +0,0 @@
|
||||||
<template>
|
|
||||||
<view>
|
|
||||||
<!--标题和返回-->
|
|
||||||
<cu-custom :bgColor="NavBarColor" isBack :backRouterName="backRouteName">
|
|
||||||
<block slot="backText">返回</block>
|
|
||||||
<block slot="content">咨询信息</block>
|
|
||||||
</cu-custom>
|
|
||||||
<!--表单区域-->
|
|
||||||
<view>
|
|
||||||
<form>
|
|
||||||
<view class="cu-form-group">
|
|
||||||
<view class="flex align-center">
|
|
||||||
<view class="title"><text space="ensp">咨询人姓名:</text></view>
|
|
||||||
<input placeholder="请输入咨询人姓名" v-model="model.name"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="cu-form-group">
|
|
||||||
<view class="flex align-center">
|
|
||||||
<view class="title"><text space="ensp">性别:</text></view>
|
|
||||||
<input placeholder="请输入性别" v-model="model.sex"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="cu-form-group">
|
|
||||||
<view class="flex align-center">
|
|
||||||
<view class="title"><text space="ensp">联系电话:</text></view>
|
|
||||||
<input placeholder="请输入联系电话" v-model="model.tel"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="cu-form-group">
|
|
||||||
<view class="flex align-center">
|
|
||||||
<view class="title"><text space="ensp">咨询类型 1入住nu 2入驻机构 3我要加盟:</text></view>
|
|
||||||
<input placeholder="请输入咨询类型 1入住nu 2入驻机构 3我要加盟" v-model="model.advisoryType"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="cu-form-group">
|
|
||||||
<view class="flex align-center">
|
|
||||||
<view class="title"><text space="ensp">状态 1审核中 2审核完成 3驳回:</text></view>
|
|
||||||
<input placeholder="请输入状态 1审核中 2审核完成 3驳回" v-model="model.status"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="cu-form-group">
|
|
||||||
<view class="flex align-center">
|
|
||||||
<view class="title"><text space="ensp">审核备注:</text></view>
|
|
||||||
<input placeholder="请输入审核备注" v-model="model.content"/>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="padding">
|
|
||||||
<button class="cu-btn block bg-blue margin-tb-sm lg" @click="onSubmit">
|
|
||||||
<text v-if="loading" class="cuIcon-loading2 cuIconfont-spin"></text>提交
|
|
||||||
</button>
|
|
||||||
</view>
|
|
||||||
</form>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// import myDate from '@/components/my-componets/my-date.vue'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "NuBizAdvisoryInfoForm",
|
|
||||||
// components:{ myDate },
|
|
||||||
props:{
|
|
||||||
formData:{
|
|
||||||
type:Object,
|
|
||||||
default:()=>{},
|
|
||||||
required:false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data(){
|
|
||||||
return {
|
|
||||||
CustomBar: this.CustomBar,
|
|
||||||
NavBarColor: this.NavBarColor,
|
|
||||||
loading:false,
|
|
||||||
model: {},
|
|
||||||
backRouteName:'index',
|
|
||||||
url: {
|
|
||||||
queryById: "/NuBizAdvisoryInfo/nuBizAdvisoryInfo/queryById",
|
|
||||||
add: "/NuBizAdvisoryInfo/nuBizAdvisoryInfo/add",
|
|
||||||
edit: "/NuBizAdvisoryInfo/nuBizAdvisoryInfo/edit",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created(){
|
|
||||||
this.initFormData();
|
|
||||||
},
|
|
||||||
methods:{
|
|
||||||
initFormData(){
|
|
||||||
if(this.formData){
|
|
||||||
let dataId = this.formData.dataId;
|
|
||||||
this.$http.get(this.url.queryById,{params:{id:dataId}}).then((res)=>{
|
|
||||||
if(res.data.success){
|
|
||||||
console.log("表单数据",res);
|
|
||||||
this.model = res.data.result;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onSubmit() {
|
|
||||||
let myForm = {...this.model};
|
|
||||||
this.loading = true;
|
|
||||||
let url = myForm.id?this.url.edit:this.url.add;
|
|
||||||
this.$http.post(url,myForm).then(res=>{
|
|
||||||
console.log("res",res)
|
|
||||||
this.loading = false
|
|
||||||
this.$Router.push({name:this.backRouteName})
|
|
||||||
}).catch(()=>{
|
|
||||||
this.loading = false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
|
@ -0,0 +1,167 @@
|
||||||
|
<template>
|
||||||
|
<a-spin :spinning="confirmLoading">
|
||||||
|
<JFormContainer class="advisoryClass">
|
||||||
|
<template #detail>
|
||||||
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="NuBizAdvisoryInfoForm">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="选择机构" v-bind="validateInfos.sysOrgCode" id="NuBizAdvisoryInfoForm-sysOrgCode" name="sysOrgCode">
|
||||||
|
<a-radio-group v-model:value="formData.sysOrgCode" @change="handleChangeRadio">
|
||||||
|
<template v-for="item in institutionsSource" :key="`${item.id}`">
|
||||||
|
<a-radio :value="item.id">
|
||||||
|
{{ item.departName }}
|
||||||
|
</a-radio>
|
||||||
|
</template>
|
||||||
|
</a-radio-group>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="咨询类型" v-bind="validateInfos.advisoryType" id="NuBizAdvisoryInfoForm-advisoryType" name="advisoryType">
|
||||||
|
<j-dict-select-tag type='radio' v-model:value="formData.advisoryType" dictCode="advisory_type" placeholder="请选择咨询类型" allow-clear />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="咨询人姓名" v-bind="validateInfos.name" id="NuBizAdvisoryInfoForm-name" name="name">
|
||||||
|
<a-input v-model:value="formData.name" placeholder="请输入咨询人姓名" allow-clear ></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="性别" v-bind="validateInfos.sex" id="NuBizAdvisoryInfoForm-sex" name="sex">
|
||||||
|
<j-dict-select-tag type='radio' v-model:value="formData.sex" dictCode="sex" placeholder="请选择性别" allow-clear />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="联系电话" v-bind="validateInfos.tel" id="NuBizAdvisoryInfoForm-tel" name="tel">
|
||||||
|
<a-input v-model:value="formData.tel" placeholder="请输入联系电话" allow-clear ></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24" style="text-align: center;">
|
||||||
|
<a-button type="primary" @click="handleSubmit()">提交</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
</JFormContainer>
|
||||||
|
</a-spin>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted } from 'vue';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
|
import { getValueType } from '/@/utils';
|
||||||
|
import { Form } from 'ant-design-vue';
|
||||||
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
||||||
|
import { useGlobSetting } from "/@/hooks/setting";
|
||||||
|
import axios from 'axios';
|
||||||
|
const props = defineProps({
|
||||||
|
formDisabled: { type: Boolean, default: false },
|
||||||
|
formData: { type: Object, default: () => ({})},
|
||||||
|
formBpm: { type: Boolean, default: true }
|
||||||
|
});
|
||||||
|
const formRef = ref();
|
||||||
|
const useForm = Form.useForm;
|
||||||
|
const emit = defineEmits(['register', 'ok']);
|
||||||
|
const glob = useGlobSetting()
|
||||||
|
const institutionsSource = ref([]);
|
||||||
|
const formData = reactive<Record<string, any>>({
|
||||||
|
id: '',
|
||||||
|
name: '',
|
||||||
|
sex: '1',
|
||||||
|
sysOrgCode: '',
|
||||||
|
tel: '',
|
||||||
|
advisoryType: '1',
|
||||||
|
status: '1',
|
||||||
|
content: '',
|
||||||
|
serverUrl: '',
|
||||||
|
openId: '',
|
||||||
|
wechatName: '',
|
||||||
|
});
|
||||||
|
const { createMessage } = useMessage();
|
||||||
|
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||||
|
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||||
|
const confirmLoading = ref<boolean>(false);
|
||||||
|
//表单验证
|
||||||
|
const validatorRules = reactive({
|
||||||
|
name: [{ required: true, message: '请输入姓名!' }],
|
||||||
|
sysOrgCode: [{ required: true, message: '请选择入住机构!' }],
|
||||||
|
advisoryType: [{ required: true, message: '请选择咨询类型!' }],
|
||||||
|
tel: [{ required: true, message: '请输入联系电话!' }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '联系电话错误!' }],
|
||||||
|
sex: [{ required: true, message: '请选择性别!' }],
|
||||||
|
});
|
||||||
|
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||||
|
|
||||||
|
//选中机构后获取serverUrl地址
|
||||||
|
function handleChangeRadio(item){
|
||||||
|
const checkId = item.target.value;
|
||||||
|
const checkData = institutionsSource.value.filter(item => item.id === checkId);
|
||||||
|
if(checkData.length>0){
|
||||||
|
const serverUrl = checkData[0].serverUrl;
|
||||||
|
formData.serverUrl = serverUrl;
|
||||||
|
}
|
||||||
|
console.log('formData--->',formData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//提交信息
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
// 触发表单验证
|
||||||
|
await validate();
|
||||||
|
} catch ({ errorFields }) {
|
||||||
|
if (errorFields) {
|
||||||
|
const firstField = errorFields[0];
|
||||||
|
if (firstField) {
|
||||||
|
formRef.value.scrollToField(firstField.name, { behavior: 'smooth', block: 'center' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Promise.reject(errorFields);
|
||||||
|
}
|
||||||
|
//时间格式化
|
||||||
|
let model = formData;
|
||||||
|
//循环数据
|
||||||
|
for (let data in model) {
|
||||||
|
//如果该数据是数组并且是字符串类型
|
||||||
|
if (model[data] instanceof Array) {
|
||||||
|
let valueType = getValueType(formRef.value.getProps, data);
|
||||||
|
//如果是字符串类型的需要变成以逗号分割的字符串
|
||||||
|
if (valueType === 'string') {
|
||||||
|
model[data] = model[data].join(',');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
model.openId = "公众号openId";
|
||||||
|
model.wechatName = "公众号姓名";
|
||||||
|
console.log('model--->',model);
|
||||||
|
const serverUrl = formData.serverUrl;
|
||||||
|
axios.post(serverUrl+"/h5Api/nuBizAdvisoryInfo/add",model).then(response => {
|
||||||
|
var data = response.data;
|
||||||
|
if(data.code === 200){
|
||||||
|
createMessage.success("操作成功");
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
const institutionsUrl = glob.institutionsUrl+"/sys/sysDepart/queryInstitutionsList";
|
||||||
|
axios.get(institutionsUrl).then(response => {
|
||||||
|
institutionsSource.value = response.data;
|
||||||
|
}).catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.antd-modal-form {
|
||||||
|
padding: 14px;
|
||||||
|
}
|
||||||
|
.advisoryClass{
|
||||||
|
background-image: url(/@/assets/images/advisory.jpg);
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -6,27 +6,27 @@
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="咨询人姓名" v-bind="validateInfos.name" id="NuBizAdvisoryInfoForm-name" name="name">
|
<a-form-item label="咨询人姓名" v-bind="validateInfos.name" id="NuBizAdvisoryInfoForm-name" name="name">
|
||||||
<a-input v-model:value="formData.name" placeholder="请输入咨询人姓名" allow-clear ></a-input>
|
<a-input v-model:value="formData.name" placeholder="请输入咨询人姓名" allow-clear disabled></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="性别" v-bind="validateInfos.sex" id="NuBizAdvisoryInfoForm-sex" name="sex">
|
<a-form-item label="性别" v-bind="validateInfos.sex" id="NuBizAdvisoryInfoForm-sex" name="sex">
|
||||||
<j-dict-select-tag type='radio' v-model:value="formData.sex" dictCode="sex" placeholder="请选择性别" allow-clear />
|
<j-dict-select-tag type='radio' v-model:value="formData.sex" dictCode="sex" disabled placeholder="请选择性别" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="联系电话" v-bind="validateInfos.tel" id="NuBizAdvisoryInfoForm-tel" name="tel">
|
<a-form-item label="联系电话" v-bind="validateInfos.tel" id="NuBizAdvisoryInfoForm-tel" name="tel">
|
||||||
<a-input v-model:value="formData.tel" placeholder="请输入联系电话" allow-clear ></a-input>
|
<a-input v-model:value="formData.tel" placeholder="请输入联系电话" allow-clear disabled></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="咨询类型 1入住nu 2入驻机构 3我要加盟" v-bind="validateInfos.advisoryType" id="NuBizAdvisoryInfoForm-advisoryType" name="advisoryType">
|
<a-form-item label="咨询类型" v-bind="validateInfos.advisoryType" id="NuBizAdvisoryInfoForm-advisoryType" name="advisoryType">
|
||||||
<j-dict-select-tag type='radio' v-model:value="formData.advisoryType" dictCode="advisory_type" placeholder="请选择咨询类型 1入住nu 2入驻机构 3我要加盟" allow-clear />
|
<j-dict-select-tag type='radio' v-model:value="formData.advisoryType" dictCode="advisory_type" placeholder="请选择咨询类型" allow-clear disabled/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="状态 1审核中 2审核完成 3驳回" v-bind="validateInfos.status" id="NuBizAdvisoryInfoForm-status" name="status">
|
<a-form-item label="审核状态" v-bind="validateInfos.status" id="NuBizAdvisoryInfoForm-status" name="status">
|
||||||
<j-dict-select-tag type='radio' v-model:value="formData.status" dictCode="advisory_approval" placeholder="请选择状态 1审核中 2审核完成 3驳回" allow-clear />
|
<j-dict-select-tag type='radio' v-model:value="formData.status" dictCode="advisory_approval" placeholder="请选择状态" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
|
|
@ -44,15 +44,14 @@
|
||||||
</a></template>
|
</a></template>
|
||||||
<!-- 人员信息 -->
|
<!-- 人员信息 -->
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="12">
|
<a-col :span="8" style="padding: 0 8px;">
|
||||||
<img
|
<img
|
||||||
width="150px"
|
width="100%"
|
||||||
height="150px"
|
|
||||||
:src="handleHeadPath(item.headPath)"
|
:src="handleHeadPath(item.headPath)"
|
||||||
@error="setDefaultImage"
|
@error="setDefaultImage"
|
||||||
/>
|
/>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="16">
|
||||||
<p>入职日期: {{item.entryTime}}</p>
|
<p>入职日期: {{item.entryTime}}</p>
|
||||||
<p>身份证号: {{item.idCard}}</p>
|
<p>身份证号: {{item.idCard}}</p>
|
||||||
<p>联系电话: {{item.tel}}</p>
|
<p>联系电话: {{item.tel}}</p>
|
||||||
|
|
|
@ -165,6 +165,7 @@ export interface GlobConfig {
|
||||||
isQiankunMicro: boolean;
|
isQiankunMicro: boolean;
|
||||||
// 【JEECG作为乾坤子应用】乾坤子应用入口
|
// 【JEECG作为乾坤子应用】乾坤子应用入口
|
||||||
qiankunMicroAppEntry?: string;
|
qiankunMicroAppEntry?: string;
|
||||||
|
institutionsUrl: string;
|
||||||
}
|
}
|
||||||
export interface GlobEnvConfig {
|
export interface GlobEnvConfig {
|
||||||
// Site title
|
// Site title
|
||||||
|
@ -187,6 +188,8 @@ export interface GlobEnvConfig {
|
||||||
VITE_GLOB_UPLOAD_URL?: string;
|
VITE_GLOB_UPLOAD_URL?: string;
|
||||||
// view url
|
// view url
|
||||||
VITE_GLOB_ONLINE_VIEW_URL?: string;
|
VITE_GLOB_ONLINE_VIEW_URL?: string;
|
||||||
|
// institutions url
|
||||||
|
VITE_GLOB_INSTITUTIONS_URL : string;
|
||||||
|
|
||||||
// 【JEECG作为乾坤子应用】填写后将作为乾坤子应用启动,主应用注册时AppName需保持一致
|
// 【JEECG作为乾坤子应用】填写后将作为乾坤子应用启动,主应用注册时AppName需保持一致
|
||||||
VITE_GLOB_QIANKUN_MICRO_APP_NAME?: string;
|
VITE_GLOB_QIANKUN_MICRO_APP_NAME?: string;
|
||||||
|
|
Loading…
Reference in New Issue