Merge branch 'master' of http://47.115.223.229:8888/yangjun/hldy_vue
This commit is contained in:
commit
11373acd11
Binary file not shown.
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 612 KiB |
|
|
@ -23,6 +23,7 @@ enum Api {
|
||||||
GetPermCode = '/sys/permission/getPermCode',
|
GetPermCode = '/sys/permission/getPermCode',
|
||||||
//新加的获取图形验证码的接口
|
//新加的获取图形验证码的接口
|
||||||
getInputCode = '/sys/randomImage',
|
getInputCode = '/sys/randomImage',
|
||||||
|
randomCode = '/sys/randomInputCode',
|
||||||
//获取短信验证码的接口
|
//获取短信验证码的接口
|
||||||
getCaptcha = '/sys/sms',
|
getCaptcha = '/sys/sms',
|
||||||
//注册接口
|
//注册接口
|
||||||
|
|
@ -114,6 +115,10 @@ export function getCodeInfo(currdatetime) {
|
||||||
let url = Api.getInputCode + `/${currdatetime}`;
|
let url = Api.getInputCode + `/${currdatetime}`;
|
||||||
return defHttp.get({ url: url });
|
return defHttp.get({ url: url });
|
||||||
}
|
}
|
||||||
|
export function randomCode(currdatetime) {
|
||||||
|
let url = Api.randomCode + `/${currdatetime}`;
|
||||||
|
return defHttp.get({ url: url });
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description: 获取短信验证码
|
* @description: 获取短信验证码
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,31 @@
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
<a-modal :open="previewVisible" width="80%" :footer="null" @cancel="handleCancel()">
|
<!-- <img alt="example" style="width: 100%" :src="previewImage" /> -->
|
||||||
<img alt="example" style="width: 100%" :src="previewImage" />
|
<!-- <a-modal :open="previewVisible" width="70%" class="imgView" :footer="null" @cancel="handleCancel()">
|
||||||
|
<div class="img-container">
|
||||||
|
<img
|
||||||
|
alt="example"
|
||||||
|
class="preview-img"
|
||||||
|
:src="previewImage"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</a-modal> -->
|
||||||
|
|
||||||
|
<a-modal
|
||||||
|
:open="previewVisible"
|
||||||
|
:width="modalWidth"
|
||||||
|
:bodyStyle="{ padding: 0, display: 'flex', justifyContent: 'center', alignItems: 'center' }"
|
||||||
|
:footer="null"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
:style="{ maxWidth: '90vw' }"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
ref="previewImgRef"
|
||||||
|
class="preview-img"
|
||||||
|
:src="previewImage"
|
||||||
|
@load="handleImageLoad"
|
||||||
|
/>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -106,6 +129,7 @@
|
||||||
//预览框状态
|
//预览框状态
|
||||||
const previewVisible = ref<boolean>(false);
|
const previewVisible = ref<boolean>(false);
|
||||||
|
|
||||||
|
|
||||||
//计算是否开启多图上传
|
//计算是否开启多图上传
|
||||||
const multiple = computed(() => {
|
const multiple = computed(() => {
|
||||||
return props['fileMax'] > 1 || props['fileMax'] === 0;
|
return props['fileMax'] > 1 || props['fileMax'] === 0;
|
||||||
|
|
@ -227,7 +251,8 @@
|
||||||
//如有需要新增 删除逻辑
|
//如有需要新增 删除逻辑
|
||||||
console.log(file);
|
console.log(file);
|
||||||
}
|
}
|
||||||
|
const previewImgRef = ref<HTMLImageElement | null>(null);
|
||||||
|
const modalWidth = ref('auto');
|
||||||
/**
|
/**
|
||||||
* 预览图片
|
* 预览图片
|
||||||
*/
|
*/
|
||||||
|
|
@ -247,6 +272,20 @@
|
||||||
previewVisible.value = false;
|
previewVisible.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 图片加载完成后计算宽高
|
||||||
|
const handleImageLoad = () => {
|
||||||
|
if (!previewImgRef.value) return;
|
||||||
|
|
||||||
|
const img = previewImgRef.value;
|
||||||
|
const maxWidth = window.innerWidth * 0.9; // 最大宽度为屏幕90%
|
||||||
|
const maxHeight = window.innerHeight * 0.8; // 最大高度为屏幕80%
|
||||||
|
|
||||||
|
// 计算适应比例
|
||||||
|
const ratio = Math.min(maxWidth / img.naturalWidth, maxHeight / img.naturalHeight, 1);
|
||||||
|
modalWidth.value = `${img.naturalWidth * ratio}px`;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
state,
|
state,
|
||||||
attrs,
|
attrs,
|
||||||
|
|
@ -262,6 +301,9 @@
|
||||||
handlePreview,
|
handlePreview,
|
||||||
handleCancel,
|
handleCancel,
|
||||||
handleChange,
|
handleChange,
|
||||||
|
handleImageLoad,
|
||||||
|
previewImgRef,
|
||||||
|
modalWidth,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -276,4 +318,27 @@
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
/* 确保 Modal 内容区域填满 */
|
||||||
|
.imgView .ant-modal-body {
|
||||||
|
height: 80vh; /* 限制模态框高度,避免超出屏幕 */
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 图片容器 */
|
||||||
|
.img-container {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 图片自适应 */
|
||||||
|
.preview-img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
object-fit: contain; /* 保持比例,不拉伸 */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,12 @@
|
||||||
<span>{{ text }}</span>
|
<span>{{ text }}</span>
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
|
<template v-if="bindProps.fileType=='pdf' && maxCount=='1'">
|
||||||
|
<a style="border:1px solid #d9d9d9;width:60px;text-align:center;border-radius:4px;padding:2px 5px;" @click="handleView({url:getFileAccessHttpUrl(bindProps.value)})">
|
||||||
|
<Icon icon="ant-design:search-outlined" style="color: rgb(140, 134, 134)" />
|
||||||
|
<span class="ant-upload-text" style="color: rgb(140, 134, 134)" >预览</span>
|
||||||
|
</a>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -38,6 +44,10 @@
|
||||||
import { UploadTypeEnum } from './upload.data';
|
import { UploadTypeEnum } from './upload.data';
|
||||||
import { getFileAccessHttpUrl, getHeaders } from '/@/utils/common/compUtils';
|
import { getFileAccessHttpUrl, getHeaders } from '/@/utils/common/compUtils';
|
||||||
import UploadItemActions from './components/UploadItemActions.vue';
|
import UploadItemActions from './components/UploadItemActions.vue';
|
||||||
|
import { useGlobSetting } from '/@/hooks/setting';
|
||||||
|
import {encryptByBase64} from "@/utils/cipher";
|
||||||
|
const glob = useGlobSetting();
|
||||||
|
|
||||||
|
|
||||||
const { createMessage, createConfirm } = useMessage();
|
const { createMessage, createConfirm } = useMessage();
|
||||||
const { prefixCls } = useDesign('j-upload');
|
const { prefixCls } = useDesign('j-upload');
|
||||||
|
|
@ -357,6 +367,7 @@
|
||||||
|
|
||||||
// 预览文件、图片
|
// 预览文件、图片
|
||||||
function onFilePreview(file) {
|
function onFilePreview(file) {
|
||||||
|
console.log("🚀 ~ onFilePreview ~ file:", file)
|
||||||
if (isImageMode.value) {
|
if (isImageMode.value) {
|
||||||
createImgPreview({ imageList: [file.url], maskClosable: true });
|
createImgPreview({ imageList: [file.url], maskClosable: true });
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -364,6 +375,18 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预览
|
||||||
|
*/
|
||||||
|
function handleView(record) {
|
||||||
|
if (record && record.url) {
|
||||||
|
console.log('glob.onlineUrl', glob.viewUrl);
|
||||||
|
let url = encodeURIComponent(encryptByBase64(record.url));
|
||||||
|
let previewUrl = `${glob.viewUrl}?url=` + url;
|
||||||
|
window.open(previewUrl, '_blank');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function emitValue(value) {
|
function emitValue(value) {
|
||||||
emit('change', value);
|
emit('change', value);
|
||||||
emit('update:value', value);
|
emit('update:value', value);
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
.ant-modal-body {
|
.ant-modal-body {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background: url(../public/resource/img/modalback.png);
|
background: url(../resource/img/modalback.png);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ enum Api {
|
||||||
list = '/admin/orgapplyinfo/orgApplyInfo/list',
|
list = '/admin/orgapplyinfo/orgApplyInfo/list',
|
||||||
save='/admin/orgapplyinfo/orgApplyInfo/add',
|
save='/admin/orgapplyinfo/orgApplyInfo/add',
|
||||||
edit='/admin/orgapplyinfo/orgApplyInfo/edit',
|
edit='/admin/orgapplyinfo/orgApplyInfo/edit',
|
||||||
|
editCg='/admin/orgapplyinfo/orgApplyInfo/editCg',
|
||||||
submitContract='/admin/orgapplyinfo/orgApplyInfo/submitContract',
|
submitContract='/admin/orgapplyinfo/orgApplyInfo/submitContract',
|
||||||
deleteOne = '/admin/orgapplyinfo/orgApplyInfo/delete',
|
deleteOne = '/admin/orgapplyinfo/orgApplyInfo/delete',
|
||||||
deleteBatch = '/admin/orgapplyinfo/orgApplyInfo/deleteBatch',
|
deleteBatch = '/admin/orgapplyinfo/orgApplyInfo/deleteBatch',
|
||||||
|
|
@ -80,6 +81,11 @@ export const saveOrUpdate = (params, isUpdate) => {
|
||||||
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const editCg = (params, isUpdate) => {
|
||||||
|
return defHttp.post({ url: Api.editCg, params }, { isTransformResponse: false });
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存并提交
|
* 保存并提交
|
||||||
* @param params
|
* @param params
|
||||||
|
|
|
||||||
|
|
@ -14,41 +14,49 @@ export const columns: BasicColumn[] = [
|
||||||
title: '机构负责人',
|
title: '机构负责人',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'orgLeader',
|
dataIndex: 'orgLeader',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '机构负责人电话',
|
title: '机构负责人电话',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'orgLeaderPhone',
|
dataIndex: 'orgLeaderPhone',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '申请日期',
|
title: '申请日期',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'createTime',
|
dataIndex: 'createTime',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '房屋性质',
|
title: '房屋性质',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'orgPropertyType',
|
dataIndex: 'orgPropertyType',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '面积',
|
title: '面积(㎡)',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'orgBuildingArea',
|
dataIndex: 'orgBuildingArea',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '审批意见',
|
title: '审核意见',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'status_dictText',
|
dataIndex: 'status_dictText',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '当前阶段',
|
title: '当前阶段',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'buildStatus_dictText',
|
dataIndex: 'buildStatus_dictText',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '工单状态',
|
title: '工单状态',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'workOrderStatus_dictText',
|
dataIndex: 'workOrderStatus_dictText',
|
||||||
|
width: 120,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
<a-form-item name="status">
|
<a-form-item name="status">
|
||||||
<template #label><span title="审批意见">审批意见</span></template>
|
<template #label><span title="审核意见">审核意见</span></template>
|
||||||
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审批意见">
|
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审核意见">
|
||||||
<a-select-option value="1">待审核</a-select-option>
|
<a-select-option value="1">待审核</a-select-option>
|
||||||
<a-select-option value="2">审核通过</a-select-option>
|
<a-select-option value="2">审核通过</a-select-option>
|
||||||
<a-select-option value="3">审核驳回</a-select-option>
|
<a-select-option value="3">审核驳回</a-select-option>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<JFormContainer :disabled="disabled">
|
<JFormContainer >
|
||||||
<template #detail>
|
<template #detail>
|
||||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol"
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol"
|
||||||
name="OrgApplyInfoForm">
|
name="OrgApplyInfoForm">
|
||||||
|
|
@ -9,78 +9,84 @@
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<SectionDivider :title="'机构信息'" />
|
<SectionDivider :title="'机构信息'" />
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
|
</a-row>
|
||||||
|
<a-row>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="营业执照照片" v-bind="validateInfos.comBusinessLicense"
|
<a-form-item label="营业执照照片" v-bind="validateInfos.comBusinessLicense"
|
||||||
id="OrgApplyInfoForm-comBusinessLicense" name="comBusinessLicense">
|
id="OrgApplyInfoForm-comBusinessLicense" name="comBusinessLicense">
|
||||||
<JImageUpload :fileMax="1" v-model:value="formData.comBusinessLicense" :disabled="true"></JImageUpload>
|
<JImageUpload :fileMax="1" v-model:value="formData.comBusinessLicense" :disabled="true"></JImageUpload>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
<a-col :span="24">
|
||||||
<a-row>
|
<a-form-item label="信用代码" v-bind="validateInfos.comCreditCode" id="OrgApplyInfoForm-comCreditCode"
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="企业名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
|
|
||||||
{{formData.comName}}
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="企业注册地址" v-bind="validateInfos.comRegisterAddress"
|
|
||||||
id="OrgApplyInfoForm-comRegisterAddress" name="comRegisterAddress">
|
|
||||||
{{formData.comRegisterAddress}}
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="企业信用代码" v-bind="validateInfos.comCreditCode" id="OrgApplyInfoForm-comCreditCode"
|
|
||||||
name="comCreditCode">
|
name="comCreditCode">
|
||||||
{{formData.comCreditCode}}
|
{{formData.comCreditCode}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
|
<a-form-item label="企业名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
|
||||||
|
{{formData.comName}}
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="企业法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson"
|
<a-form-item label="企业法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson"
|
||||||
name="comLegalPerson">
|
name="comLegalPerson">
|
||||||
{{formData.comLegalPerson}}
|
{{formData.comLegalPerson}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="注册地址" v-bind="validateInfos.comRegisterAddress"
|
||||||
|
id="OrgApplyInfoForm-comRegisterAddress" name="comRegisterAddress">
|
||||||
|
{{formData.comRegisterAddress}}
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
</a-row>
|
</a-row>
|
||||||
|
</a-col>
|
||||||
<a-row>
|
|
||||||
|
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="机构所在地" v-bind="validateInfos.cityViewValue" id="OrgApplyInfoForm-cityViewValue"
|
||||||
|
name="cityViewValue">
|
||||||
|
{{cityViewValue}}
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="机构负责人" v-bind="validateInfos.orgLeader" id="OrgApplyInfoForm-orgLeader"
|
<a-form-item label="机构负责人" v-bind="validateInfos.orgLeader" id="OrgApplyInfoForm-orgLeader"
|
||||||
name="orgLeader">
|
name="orgLeader">
|
||||||
{{formData.orgLeader}}
|
{{formData.orgLeader}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="机构负责人电话" v-bind="validateInfos.orgLeaderPhone" id="OrgApplyInfoForm-orgLeaderPhone"
|
<a-form-item label="负责人电话" v-bind="validateInfos.orgLeaderPhone" id="OrgApplyInfoForm-orgLeaderPhone"
|
||||||
name="orgLeaderPhone">
|
name="orgLeaderPhone">
|
||||||
{{formData.orgLeaderPhone}}
|
{{formData.orgLeaderPhone}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="机构房屋性质" v-bind="validateInfos.orgPropertyType" id="OrgApplyInfoForm-orgPropertyType"
|
<a-form-item label="房屋性质" v-bind="validateInfos.orgPropertyType" id="OrgApplyInfoForm-orgPropertyType"
|
||||||
name="orgPropertyType">
|
name="orgPropertyType">
|
||||||
{{formData.orgPropertyType}}
|
{{formData.orgPropertyType}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="机构建筑面积" v-bind="validateInfos.orgBuildingArea" id="OrgApplyInfoForm-orgBuildingArea"
|
<a-form-item label="建筑面积" v-bind="validateInfos.orgBuildingArea" id="OrgApplyInfoForm-orgBuildingArea"
|
||||||
name="orgBuildingArea">
|
name="orgBuildingArea">
|
||||||
{{formData.orgBuildingArea}} ㎡
|
{{formData.orgBuildingArea}} ㎡
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!-- <a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="机构所在地">
|
|
||||||
{{cityViewValue}}
|
|
||||||
</a-form-item>
|
|
||||||
</a-col> -->
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="机构地址" v-bind="validateInfos.orgAddress" id="OrgApplyInfoForm-orgAddress"
|
<a-form-item label="机构地址" v-bind="validateInfos.orgAddress" id="OrgApplyInfoForm-orgAddress"
|
||||||
name="orgAddress">
|
name="orgAddress">
|
||||||
{{formData.orgAddress}}
|
{{formData.orgAddress}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
|
@ -89,67 +95,75 @@
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="身份证正面" v-bind="validateInfos.cardZmPath" id="OrgApplyInfoForm-cardZmPath"
|
<a-form-item label="身份证正面" v-bind="validateInfos.cardZmPath" id="OrgApplyInfoForm-cardZmPath"
|
||||||
name="cardZmPath">
|
name="cardZmPath">
|
||||||
<JImageUpload :fileMax="1" v-model:value="formData.cardZmPath" :disabled="true"></JImageUpload>
|
<JImageUpload :fileMax="1" v-model:value="formData.cardZmPath" :disabled="true"></JImageUpload>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="身份证反面" v-bind="validateInfos.cardFmPath" id="OrgApplyInfoForm-cardFmPath"
|
|
||||||
name="cardFmPath">
|
|
||||||
<JImageUpload :fileMax="1" v-model:value="formData.cardFmPath" :disabled="true"></JImageUpload>
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="姓名" v-bind="validateInfos.name" id="OrgApplyInfoForm-name" name="name">
|
<a-form-item label="姓名" v-bind="validateInfos.name" id="OrgApplyInfoForm-name" name="name">
|
||||||
{{formData.name}}
|
{{formData.name}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="性别" v-bind="validateInfos.sex" id="OrgApplyInfoForm-sex" name="sex">
|
<a-form-item label="性别" v-bind="validateInfos.sex" id="OrgApplyInfoForm-sex" name="sex">
|
||||||
{{formData.sex}}
|
{{formData.sex}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="身份证号" v-bind="validateInfos.idCard" id="OrgApplyInfoForm-idCard" name="idCard">
|
<a-form-item label="民族" v-bind="validateInfos.national" id="OrgApplyInfoForm-national" name="national">
|
||||||
{{formData.idCard}}
|
{{formData.national}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="出生日期" v-bind="validateInfos.birthDate" id="OrgApplyInfoForm-birthDate"
|
<a-form-item label="出生日期" v-bind="validateInfos.birthDate" id="OrgApplyInfoForm-birthDate"
|
||||||
name="birthDate">
|
name="birthDate">
|
||||||
{{formData.birthDate?formData.birthDate.substring(0,10):""}}
|
{{formData.birthDate?formData.birthDate.substring(0,10):""}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="有效开始日期" v-bind="validateInfos.startTime" id="OrgApplyInfoForm-startTime"
|
<a-form-item label="身份证号" v-bind="validateInfos.idCard" id="OrgApplyInfoForm-idCard" name="idCard">
|
||||||
name="startTime">
|
{{formData.idCard}}
|
||||||
{{formData.startTime?formData.startTime.substring(0,10):""}}
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="有效结束日期" v-bind="validateInfos.endTime" id="OrgApplyInfoForm-endTime" name="endTime">
|
|
||||||
{{formData.endTime?formData.endTime.substring(0,10):""}}
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="民族" v-bind="validateInfos.national" id="OrgApplyInfoForm-national" name="national">
|
|
||||||
{{formData.national}}
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-item label="住址" v-bind="validateInfos.idCardAddress" id="OrgApplyInfoForm-idCardAddress"
|
<a-form-item label="住址" v-bind="validateInfos.idCardAddress" id="OrgApplyInfoForm-idCardAddress"
|
||||||
name="idCardAddress">
|
name="idCardAddress">
|
||||||
{{formData.idCardAddress}}
|
{{formData.idCardAddress}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="身份证反面" v-bind="validateInfos.cardFmPath" id="OrgApplyInfoForm-cardFmPath"
|
||||||
|
name="cardFmPath">
|
||||||
|
<JImageUpload :fileMax="1" v-model:value="formData.cardFmPath" :disabled="true"></JImageUpload>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="有效开始日期" v-bind="validateInfos.startTime" id="OrgApplyInfoForm-startTime"
|
||||||
|
name="startTime">
|
||||||
|
{{formData.startTime?formData.startTime.substring(0,10):""}}
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="有效结束日期" v-bind="validateInfos.endTime" id="OrgApplyInfoForm-endTime" name="endTime">
|
||||||
|
{{formData.endTime?formData.endTime.substring(0,10):""}}
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="签发机关" v-bind="validateInfos.issuingAuthority" id="OrgApplyInfoForm-issuingAuthority"
|
<a-form-item label="签发机关" v-bind="validateInfos.issuingAuthority" id="OrgApplyInfoForm-issuingAuthority"
|
||||||
name="issuingAuthority">
|
name="issuingAuthority">
|
||||||
{{formData.issuingAuthority}}
|
{{formData.issuingAuthority}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
|
@ -158,16 +172,16 @@
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="审批意见" v-bind="validateInfos.status" id="OrgApplyInfoForm-status" name="status">
|
<a-form-item label="审核意见" v-bind="validateInfos.status" id="OrgApplyInfoForm-status" name="status">
|
||||||
<a-select v-model:value="formData.status" style="width: 200px" placeholder="请选择审批意见" :disabled="sfsh!='1'">
|
<a-select v-model:value="formData.status" style="width: 200px" placeholder="请选择审核意见" :disabled="sfsh!='1'">
|
||||||
<a-select-option value="2">审核通过</a-select-option>
|
<a-select-option value="2">审核通过</a-select-option>
|
||||||
<a-select-option value="3">审核驳回</a-select-option>
|
<a-select-option value="3">审核驳回</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12" v-show="formData.status == '3'">
|
<a-col :span="12" v-show="formData.status == '3' || formData.content">
|
||||||
<a-form-item label="驳回原因" v-bind="validateInfos.content" id="OrgApplyInfoForm-content" name="content">
|
<a-form-item label="驳回原因" v-bind="validateInfos.content" id="OrgApplyInfoForm-content" name="content">
|
||||||
<a-textarea :autosize="{ minRows: 3 }" maxlength="50" show-count v-model:value="formData.content"
|
<a-textarea :autosize="{ minRows: 3 }" maxlength="50" show-count v-model:value="formData.content" :disabled="formData.status != '3'"
|
||||||
allow-clear placeholder="请输入驳回原因"></a-textarea>
|
allow-clear placeholder="请输入驳回原因"></a-textarea>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
@ -181,9 +195,14 @@
|
||||||
{{formData.auditTime}}
|
{{formData.auditTime}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12" v-show="formData.buildStatus == '3' || formData.contract">
|
<a-col :span="12" v-show="formData.contract">
|
||||||
<a-form-item label="加盟合同" v-bind="validateInfos.contract" id="OrgApplyInfoForm-contract">
|
<a-form-item label="加盟合同" v-bind="validateInfos.contract" id="OrgApplyInfoForm-contract">
|
||||||
<JUpload v-model:value="formData.contract" :maxCount="1"></JUpload>
|
<JUpload v-model:value="formData.contract" :maxCount="1" :buttonVisible="false" disabled="true" fileType="pdf"></JUpload>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12" v-if="formData.contractNote">
|
||||||
|
<a-form-item label="备注信息" v-bind="validateInfos.contractNote" id="OrgApplyInfoForm-contractNote">
|
||||||
|
{{formData.contractNote}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
@ -202,17 +221,17 @@
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="回复附件" >
|
<a-form-item label="反馈附件" >
|
||||||
<JUpload v-model:value="formData.replyFile" :maxCount="1" disabled></JUpload>
|
<JUpload v-model:value="formData.replyFile" :maxCount="1" :buttonVisible="false" disabled></JUpload>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="回复时间" >
|
<a-form-item label="反馈时间" >
|
||||||
{{formData.replyTime?formData.replyTime.substring(0,10):""}}
|
{{formData.replyTime?formData.replyTime.substring(0,10):""}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="回复内容" >
|
<a-form-item label="反馈内容" >
|
||||||
{{formData.replyContent}}
|
{{formData.replyContent}}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
@ -239,6 +258,9 @@ import TencentMap from '/@/components/TencentMap/TencentMap.vue';
|
||||||
import JImageUpload from '/@/components/Form/src/jeecg/components/JImageUpload.vue';
|
import JImageUpload from '/@/components/Form/src/jeecg/components/JImageUpload.vue';
|
||||||
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
||||||
import { t } from '/@/hooks/web/useI18n';
|
import { t } from '/@/hooks/web/useI18n';
|
||||||
|
import {encryptByBase64} from "@/utils/cipher";
|
||||||
|
import { useGlobSetting } from '/@/hooks/setting';
|
||||||
|
const glob = useGlobSetting();
|
||||||
|
|
||||||
const cityViewValue = ref('')
|
const cityViewValue = ref('')
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|
@ -292,23 +314,26 @@ const formData = reactive<Record<string, any>>({
|
||||||
orgDistrict_dictText: '',
|
orgDistrict_dictText: '',
|
||||||
franchiseTime: null,
|
franchiseTime: null,
|
||||||
contract:null,
|
contract:null,
|
||||||
|
contractNote:null,
|
||||||
replyContent: '',
|
replyContent: '',
|
||||||
replyFile: '',
|
replyFile: '',
|
||||||
replyTime: '',
|
replyTime: '',
|
||||||
handleBy: '',
|
handleBy: '',
|
||||||
workOrderStatus: '',
|
workOrderStatus: '',
|
||||||
workOrderStatus_dictText: '',
|
workOrderStatus_dictText: '',
|
||||||
|
auditBy:'',
|
||||||
|
auditTime: '',
|
||||||
|
|
||||||
});
|
});
|
||||||
const tempNullVal = ref('');
|
const tempNullVal = ref('');
|
||||||
const sfsh = ref<string>('0');
|
const sfsh = ref<string>('0');
|
||||||
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: 8 } });
|
||||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 17 } });
|
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||||
const confirmLoading = ref<boolean>(false);
|
const confirmLoading = ref<boolean>(false);
|
||||||
//表单验证
|
//表单验证
|
||||||
const validatorRules = reactive({
|
const validatorRules = reactive({
|
||||||
status: [{ required: true, message: '请选择审批结果!' },],
|
status: [{ required: true, message: '请选择审核结果!' },],
|
||||||
content: [
|
content: [
|
||||||
{
|
{
|
||||||
validator: async (_rule, value) => {
|
validator: async (_rule, value) => {
|
||||||
|
|
@ -335,6 +360,17 @@ const disabled = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预览
|
||||||
|
*/
|
||||||
|
function handleView(record) {
|
||||||
|
if (record && record.url) {
|
||||||
|
console.log('glob.onlineUrl', glob.viewUrl);
|
||||||
|
let url = encodeURIComponent(encryptByBase64(record.url));
|
||||||
|
let previewUrl = `${glob.viewUrl}?url=` + url;
|
||||||
|
window.open(previewUrl, '_blank');
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 新增
|
||||||
*/
|
*/
|
||||||
|
|
@ -355,6 +391,7 @@ function edit(record) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
var lsbl = tmpData.status;
|
var lsbl = tmpData.status;
|
||||||
|
console.log("🚀 ~ edit ~ lsbl:", lsbl)
|
||||||
if (tmpData.status != '2' && tmpData.status != '3') {
|
if (tmpData.status != '2' && tmpData.status != '3') {
|
||||||
tmpData.status = null
|
tmpData.status = null
|
||||||
}
|
}
|
||||||
|
|
@ -406,7 +443,7 @@ async function submitForm() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(model.status == '2'){
|
if(model.status == '2'){
|
||||||
model.buildStatus = 'approvalPass'//代表加盟审批通过
|
model.buildStatus = 'approvalPass'//代表加盟审核通过
|
||||||
}
|
}
|
||||||
await saveOrUpdate(model, isUpdate.value)
|
await saveOrUpdate(model, isUpdate.value)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ function add() {
|
||||||
* @param record
|
* @param record
|
||||||
*/
|
*/
|
||||||
function edit(record) {
|
function edit(record) {
|
||||||
title.value = disableSubmit.value ? '详情' : '机构加盟申请审批';
|
title.value = disableSubmit.value ? '详情' : '机构加盟申请审核';
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
registerForm.value.edit(record);
|
registerForm.value.edit(record);
|
||||||
|
|
|
||||||
|
|
@ -9,13 +9,13 @@
|
||||||
<SectionDivider :title="'机构信息'" />
|
<SectionDivider :title="'机构信息'" />
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
|
<a-form-item label="机构所在地">
|
||||||
{{ formData.comName }}
|
{{ cityViewValue }}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="机构所在地">
|
<a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
|
||||||
{{ cityViewValue }}
|
{{ formData.comName }}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|
@ -25,19 +25,19 @@
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="机构负责人电话" v-bind="validateInfos.orgLeaderPhone" id="OrgApplyInfoForm-orgLeaderPhone"
|
<a-form-item label="负责人电话" v-bind="validateInfos.orgLeaderPhone" id="OrgApplyInfoForm-orgLeaderPhone"
|
||||||
name="orgLeaderPhone">
|
name="orgLeaderPhone">
|
||||||
{{ formData.orgLeaderPhone }}
|
{{ formData.orgLeaderPhone }}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="机构房屋性质" v-bind="validateInfos.orgPropertyType" id="OrgApplyInfoForm-orgPropertyType"
|
<a-form-item label="房屋性质" v-bind="validateInfos.orgPropertyType" id="OrgApplyInfoForm-orgPropertyType"
|
||||||
name="orgPropertyType">
|
name="orgPropertyType">
|
||||||
{{ formData.orgPropertyType }}
|
{{ formData.orgPropertyType }}
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="机构建筑面积" v-bind="validateInfos.orgBuildingArea" id="OrgApplyInfoForm-orgBuildingArea"
|
<a-form-item label="建筑面积" v-bind="validateInfos.orgBuildingArea" id="OrgApplyInfoForm-orgBuildingArea"
|
||||||
name="orgBuildingArea">
|
name="orgBuildingArea">
|
||||||
{{ formData.orgBuildingArea }}㎡
|
{{ formData.orgBuildingArea }}㎡
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
@ -81,7 +81,7 @@ import { defHttp } from '/@/utils/http/axios';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import { getValueType } from '/@/utils';
|
import { getValueType } from '/@/utils';
|
||||||
import { saveOrUpdate, submitContract } from '../OrgApplyInfo.api';
|
import { saveOrUpdate, submitContract,editCg } from '../OrgApplyInfo.api';
|
||||||
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 TencentMap from '/@/components/TencentMap/TencentMap.vue';
|
import TencentMap from '/@/components/TencentMap/TencentMap.vue';
|
||||||
|
|
@ -151,7 +151,7 @@ const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 17 } });
|
||||||
const confirmLoading = ref<boolean>(false);
|
const confirmLoading = ref<boolean>(false);
|
||||||
//表单验证
|
//表单验证
|
||||||
const validatorRules = reactive({
|
const validatorRules = reactive({
|
||||||
status: [{ required: true, message: '请选择审批结果!' },],
|
status: [{ required: true, message: '请选择审核结果!' },],
|
||||||
contract: [{ required: true, message: '请上传加盟合同!' },],
|
contract: [{ required: true, message: '请上传加盟合同!' },],
|
||||||
contractNote: [{ required: true, message: '请填写备注信息!' },],
|
contractNote: [{ required: true, message: '请填写备注信息!' },],
|
||||||
});
|
});
|
||||||
|
|
@ -239,7 +239,7 @@ async function saveForm() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await saveOrUpdate(model, true)
|
await editCg(model, true)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
createMessage.success(res.message);
|
createMessage.success(res.message);
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ export const columns: BasicColumn[] = [
|
||||||
dataIndex: 'orgBuildingArea',
|
dataIndex: 'orgBuildingArea',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '审批意见',
|
title: '审核意见',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'status_dictText',
|
dataIndex: 'status_dictText',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -24,16 +24,16 @@
|
||||||
class="query-group-cust" />
|
class="query-group-cust" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<!-- <a-col :lg="6">
|
||||||
<a-form-item name="status">
|
<a-form-item name="status">
|
||||||
<template #label><span title="审批意见">审批意见</span></template>
|
<template #label><span title="审核意见">审核意见</span></template>
|
||||||
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审批意见">
|
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审核意见">
|
||||||
<a-select-option value="4">待审核</a-select-option>
|
<a-select-option value="4">待审核</a-select-option>
|
||||||
<a-select-option value="2">审核通过</a-select-option>
|
<a-select-option value="2">审核通过</a-select-option>
|
||||||
<a-select-option value="5">审核驳回</a-select-option>
|
<a-select-option value="5">审核驳回</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</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">
|
||||||
|
|
@ -195,7 +195,7 @@ function getTableAction(record) {
|
||||||
// onClick: handleDetail.bind(null, record),
|
// onClick: handleDetail.bind(null, record),
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
label: '审批',
|
label: '审核',
|
||||||
onClick: handleAudit.bind(null, record),
|
onClick: handleAudit.bind(null, record),
|
||||||
auth: 'orgapplyinfo:nu_org_apply_info:edit',
|
auth: 'orgapplyinfo:nu_org_apply_info:edit',
|
||||||
ifShow: record.status == '4'
|
ifShow: record.status == '4'
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container2">
|
||||||
<a-form ref="formRef" layout="horizontal" :model="formData" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form ref="formRef" layout="horizontal" :model="formData" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="审批意见" name="status" v-bind="validateInfos.status">
|
<a-form-item label="审核结果" name="status" v-bind="validateInfos.status">
|
||||||
<a-select v-model:value="formData.status" style="width: 200px" placeholder="请选择审批意见">
|
<a-select v-model:value="formData.status" style="width: 200px" placeholder="请选择审核结果">
|
||||||
<a-select-option value="modifyPass">审核通过</a-select-option>
|
<a-select-option value="modifyPass">审核通过</a-select-option>
|
||||||
<a-select-option value="modifyFail">审核驳回</a-select-option>
|
<a-select-option value="modifyFail">审核驳回</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24" style="padding-top: 10px;padding-left: 30px;padding-right: 30px;">
|
<a-col :span="24" style="padding-top: 10px;padding-left: 30px;padding-right: 30px;">
|
||||||
<a-table :dataSource="filteredTableData" :columns="columns" :pagination="false" bordered size="small"
|
<a-table :dataSource="filteredTableData" :columns="columns" :pagination="false" bordered size="small"
|
||||||
:scroll="{ y: '45vh' }" :rowClassName="setRowClassName">
|
:rowClassName="setRowClassName">
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.dataIndex === 'd1'">
|
<template v-if="column.dataIndex === 'd1'">
|
||||||
<span>{{ applyObj[record.d1] }}</span>
|
<span>{{ applyObj[record.d1] }}</span>
|
||||||
|
|
@ -41,6 +41,14 @@
|
||||||
v-if="column.dataIndex === 'd3' && (record.d1 == 'orgProvince' || record.d1 == 'orgCity' || record.d1 == 'orgDistrict')">
|
v-if="column.dataIndex === 'd3' && (record.d1 == 'orgProvince' || record.d1 == 'orgCity' || record.d1 == 'orgDistrict')">
|
||||||
<span>{{ provinceOptions[record.d3] }}</span>
|
<span>{{ provinceOptions[record.d3] }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
<template
|
||||||
|
v-if="column.dataIndex === 'd2' && record.d1 == 'orgBuildingArea' ">
|
||||||
|
<span>{{ record.d2 }}㎡</span>
|
||||||
|
</template>
|
||||||
|
<template
|
||||||
|
v-if="column.dataIndex === 'd3' && record.d1 == 'orgBuildingArea' ">
|
||||||
|
<span>{{ record.d3 }}㎡</span>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
@ -76,7 +84,7 @@ const formData = reactive<Record<string, any>>({
|
||||||
pkId: ''
|
pkId: ''
|
||||||
});
|
});
|
||||||
const validatorRules = reactive({
|
const validatorRules = reactive({
|
||||||
status: [{ required: true, message: '请选择审批结果!' },],
|
status: [{ required: true, message: '请选择审核结果!' },],
|
||||||
content: [
|
content: [
|
||||||
{
|
{
|
||||||
validator: async (_rule, value) => {
|
validator: async (_rule, value) => {
|
||||||
|
|
@ -121,6 +129,7 @@ const filteredTableData = computed(() => {
|
||||||
&& item.d1 !== 'handleBy'
|
&& item.d1 !== 'handleBy'
|
||||||
&& item.d1 !== 'workOrderStatus'
|
&& item.d1 !== 'workOrderStatus'
|
||||||
&& item.d1 !== 'workOrderId'
|
&& item.d1 !== 'workOrderId'
|
||||||
|
&& item.d1 !== 'auditBy'
|
||||||
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
@ -221,7 +230,7 @@ defineExpose({
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.container {
|
.container2 {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@
|
||||||
name="OrgModifyInfoForm">
|
name="OrgModifyInfoForm">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<SectionDivider :title="'入驻审批'" />
|
<SectionDivider :title="'入驻审核'" />
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="审批" v-bind="validateInfos.status" id="OrgModifyInfoForm-status" name="status">
|
<a-form-item label="审核" v-bind="validateInfos.status" id="OrgModifyInfoForm-status" name="status">
|
||||||
<j-dict-select-tag v-model:value="formData.status" dictCode="org_apply_status" placeholder="请选择审批结果"
|
<j-dict-select-tag v-model:value="formData.status" dictCode="org_apply_status" placeholder="请选择审核结果"
|
||||||
allow-clear />
|
allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ function auditModify(data) {
|
||||||
* @param record
|
* @param record
|
||||||
*/
|
*/
|
||||||
function edit(record) {
|
function edit(record) {
|
||||||
title.value = disableSubmit.value ? '详情' : '机构信息变更审批';
|
title.value = disableSubmit.value ? '详情' : '机构信息变更审核';
|
||||||
infoVisible.value = true;
|
infoVisible.value = true;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
registerForm.value.edit(record);
|
registerForm.value.edit(record);
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,9 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
<a-form-item name="status">
|
<a-form-item name="status">
|
||||||
<template #label><span title="审批状态">审批状态</span></template>
|
<template #label><span title="审核状态">审核状态</span></template>
|
||||||
<j-dict-select-tag type="list" v-model:value="queryParam.status" dictCode="org_apply_status"
|
<j-dict-select-tag type="list" v-model:value="queryParam.status" dictCode="org_apply_status"
|
||||||
placeholder="请选择审批状态" allow-clear />
|
placeholder="请选择审核状态" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
|
|
@ -177,7 +177,7 @@ import JInput from "/@/components/Form/src/jeecg/components/JInput.vue";
|
||||||
function getTableAction(record) {
|
function getTableAction(record) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
label: '审批',
|
label: '审核',
|
||||||
onClick: handleEdit.bind(null, record),
|
onClick: handleEdit.bind(null, record),
|
||||||
ifShow: record.status == '1'
|
ifShow: record.status == '1'
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@
|
||||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="NuEmployeesAdvisoryInfoForm">
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="NuEmployeesAdvisoryInfoForm">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<SectionDivider :title="'入驻审批'" />
|
<SectionDivider :title="'入驻审核'" />
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="审批" v-bind="validateInfos.status" id="OrgApplyInfoForm-status" name="status">
|
<a-form-item label="审核" v-bind="validateInfos.status" id="OrgApplyInfoForm-status" name="status">
|
||||||
<j-dict-select-tag type="radio" v-model:value="formData.status" dictCode="org_apply_status" placeholder="请选择审批结果"
|
<j-dict-select-tag type="radio" v-model:value="formData.status" dictCode="org_apply_status" placeholder="请选择审核结果"
|
||||||
allow-clear />
|
allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ export const refundTimeTableData: any[] = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
t1: '2017-10-01 14:10',
|
t1: '2017-10-01 14:10',
|
||||||
t2: '申请审批通过',
|
t2: '申请审核通过',
|
||||||
t3: '成功',
|
t3: '成功',
|
||||||
t4: '用户',
|
t4: '用户',
|
||||||
t5: '1h',
|
t5: '1h',
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ export const refundTimeTableData: any[] = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
t1: '2017-10-01 14:10',
|
t1: '2017-10-01 14:10',
|
||||||
t2: '申请审批通过',
|
t2: '申请审核通过',
|
||||||
t3: '成功',
|
t3: '成功',
|
||||||
t4: '用户',
|
t4: '用户',
|
||||||
t5: '1h',
|
t5: '1h',
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ export const schemas: FormSchema[] = [
|
||||||
{
|
{
|
||||||
field: 'f4',
|
field: 'f4',
|
||||||
component: 'Select',
|
component: 'Select',
|
||||||
label: '审批人',
|
label: '审核人',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
options: basicOptions,
|
options: basicOptions,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ export const saveOrUpdate = (params, isUpdate) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批
|
* 审核
|
||||||
* @param params
|
* @param params
|
||||||
*/
|
*/
|
||||||
export const audit = (params) => {
|
export const audit = (params) => {
|
||||||
|
|
@ -94,7 +94,7 @@ export const asyncFunc = (params) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批通过后将指令资源同步给业务平台
|
* 审核通过后将指令资源同步给业务平台
|
||||||
* @param params
|
* @param params
|
||||||
*/
|
*/
|
||||||
export const syncMediaForBiz = (params) => {
|
export const syncMediaForBiz = (params) => {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<a-row v-show="isAudit">
|
<a-row v-show="isAudit">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-config-provider :disabled="false">
|
<a-config-provider :disabled="false">
|
||||||
<a-form-item label="服务指令审批" v-bind="validateInfos.statusVal" id="ConfigServiceDirectiveForm-statusVal"
|
<a-form-item label="服务指令审核" v-bind="validateInfos.statusVal" id="ConfigServiceDirectiveForm-statusVal"
|
||||||
name="statusVal">
|
name="statusVal">
|
||||||
<a-select v-model:value="formData.statusVal" placeholder="请选择审核状态" style="width: 200px"
|
<a-select v-model:value="formData.statusVal" placeholder="请选择审核状态" style="width: 200px"
|
||||||
:disabled="false">
|
:disabled="false">
|
||||||
|
|
@ -388,7 +388,7 @@ function add() {
|
||||||
/**
|
/**
|
||||||
* 编辑
|
* 编辑
|
||||||
* isEditMedia_是否为编辑指令资源 (隐藏业务字段)
|
* isEditMedia_是否为编辑指令资源 (隐藏业务字段)
|
||||||
* isAudit_是否为服务指令那个审批 (隐藏业务字段)
|
* isAudit_是否为服务指令那个审核 (隐藏业务字段)
|
||||||
*/
|
*/
|
||||||
function edit(record, isEditMedia_ = false, isAudit_ = false) {
|
function edit(record, isEditMedia_ = false, isAudit_ = false) {
|
||||||
console.log("🌊 ~ edit ~ record:", record)
|
console.log("🌊 ~ edit ~ record:", record)
|
||||||
|
|
@ -477,7 +477,7 @@ function submitAudit() {
|
||||||
} else if (formData.statusVal == 'auditFaild') {
|
} else if (formData.statusVal == 'auditFaild') {
|
||||||
formData.status = 3
|
formData.status = 3
|
||||||
} else {
|
} else {
|
||||||
createMessage.warning('请选择审批结果!')
|
createMessage.warning('请选择审核结果!')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
audit(formData)
|
audit(formData)
|
||||||
|
|
|
||||||
|
|
@ -59,11 +59,11 @@ function edit(record) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批列表 - 审批
|
* 审核列表 - 审核
|
||||||
* @param record
|
* @param record
|
||||||
*/
|
*/
|
||||||
function audit(record) {
|
function audit(record) {
|
||||||
title.value = '审批';
|
title.value = '审核';
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
registerForm.value.edit(record, false, true);
|
registerForm.value.edit(record, false, true);
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ function handleMedia(record: Recordable) {
|
||||||
function getTableAction(record) {
|
function getTableAction(record) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
label: '审批',
|
label: '审核',
|
||||||
onClick: handleAudit.bind(null, record),
|
onClick: handleAudit.bind(null, record),
|
||||||
ifShow: record.status == '1'
|
ifShow: record.status == '1'
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,10 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<div class="aui-inputClear">
|
<div >
|
||||||
|
<huakuai @verifySuccess="checkInputCode"/>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="aui-inputClear">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="2">
|
<a-col :span="2">
|
||||||
<span style="margin-top: 10px;display: block;"><img :src="icon3Img" alt="验证码" style="width: 20px;" /></span>
|
<span style="margin-top: 10px;display: block;"><img :src="icon3Img" alt="验证码" style="width: 20px;" /></span>
|
||||||
|
|
@ -70,7 +73,7 @@
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -92,7 +95,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup name="login-mini">
|
<script lang="ts" setup name="login-mini">
|
||||||
import { getCaptcha, getCodeInfo } from '/@/api/sys/user';
|
import { getCaptcha, randomCode } from '/@/api/sys/user';
|
||||||
import { computed, onMounted, reactive, ref, toRaw, unref } from 'vue';
|
import { computed, onMounted, reactive, ref, toRaw, unref } from 'vue';
|
||||||
import codeImg from '/@/assets/images/checkcode.png';
|
import codeImg from '/@/assets/images/checkcode.png';
|
||||||
import { Rule } from '/@/components/Form';
|
import { Rule } from '/@/components/Form';
|
||||||
|
|
@ -115,6 +118,7 @@
|
||||||
import { useAppInject } from "/@/hooks/web/useAppInject";
|
import { useAppInject } from "/@/hooks/web/useAppInject";
|
||||||
import { GithubFilled, WechatFilled, DingtalkCircleFilled, createFromIconfontCN } from '@ant-design/icons-vue';
|
import { GithubFilled, WechatFilled, DingtalkCircleFilled, createFromIconfontCN } from '@ant-design/icons-vue';
|
||||||
import CaptchaModal from '@/components/jeecg/captcha/CaptchaModal.vue';
|
import CaptchaModal from '@/components/jeecg/captcha/CaptchaModal.vue';
|
||||||
|
import huakuai from './huakuai.vue';
|
||||||
import { useModal } from "@/components/Modal";
|
import { useModal } from "@/components/Modal";
|
||||||
import { ExceptionEnum } from "@/enums/exceptionEnum";
|
import { ExceptionEnum } from "@/enums/exceptionEnum";
|
||||||
|
|
||||||
|
|
@ -133,6 +137,7 @@
|
||||||
checkKey: null,
|
checkKey: null,
|
||||||
});
|
});
|
||||||
const rememberMe = ref<string>('0');
|
const rememberMe = ref<string>('0');
|
||||||
|
const huakuaiOpen = ref<boolean>(false);
|
||||||
//手机号登录还是账号登录
|
//手机号登录还是账号登录
|
||||||
const activeIndex = ref<string>('accountLogin');
|
const activeIndex = ref<string>('accountLogin');
|
||||||
const type = ref<string>('login');
|
const type = ref<string>('login');
|
||||||
|
|
@ -178,12 +183,19 @@
|
||||||
formData.inputCode = '';
|
formData.inputCode = '';
|
||||||
|
|
||||||
randCodeData.checkKey = 1629428467008;
|
randCodeData.checkKey = 1629428467008;
|
||||||
getCodeInfo(randCodeData.checkKey).then((res) => {
|
randomCode(randCodeData.checkKey).then((res) => {
|
||||||
|
console.log("🚀 ~ handleChangeCheckCode ~ res:", res)
|
||||||
randCodeData.randCodeImage = res;
|
randCodeData.randCodeImage = res;
|
||||||
randCodeData.requestCodeSuccess = true;
|
randCodeData.requestCodeSuccess = true;
|
||||||
|
formData.inputCode = res;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkInputCode(type){
|
||||||
|
console.log("🚀 ~ checkCode ~ checkCode:",type)
|
||||||
|
handleChangeCheckCode();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 切换登录方式
|
* 切换登录方式
|
||||||
*/
|
*/
|
||||||
|
|
@ -372,7 +384,7 @@
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
//加载验证码
|
//加载验证码
|
||||||
handleChangeCheckCode();
|
// handleChangeCheckCode();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,170 @@
|
||||||
|
<template>
|
||||||
|
<!-- 滑动验证码容器 -->
|
||||||
|
<div class="slider-container" ref="containerRef">
|
||||||
|
<!-- 滑动遮罩层,显示滑动进度 -->
|
||||||
|
<div class="slider-mask" :style="{ width: sliderMaskWidth }" />
|
||||||
|
<!-- 滑块按钮 -->
|
||||||
|
<div
|
||||||
|
class="slider"
|
||||||
|
ref="sliderRef"
|
||||||
|
@mousedown="handleDragStart"
|
||||||
|
:class="{ 'slider-success': verified }"
|
||||||
|
:style="{ left: sliderLeft }"
|
||||||
|
>
|
||||||
|
<!-- 滑块图标 -->
|
||||||
|
<Icon icon="ant-design:double-right-outlined" :size="20" />
|
||||||
|
</div>
|
||||||
|
<!-- 提示文本 -->
|
||||||
|
<div class="slider-text" :class="{ 'slider-text-success': verified }">
|
||||||
|
{{ verified ? "验证通过" : "将滑块拖动至右侧完成验证" }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, defineEmits, onUnmounted } from "vue"
|
||||||
|
|
||||||
|
const emit = defineEmits(["verifySuccess"])
|
||||||
|
|
||||||
|
// DOM 引用
|
||||||
|
const containerRef = ref<HTMLElement | null>(null) // 容器元素引用
|
||||||
|
const sliderRef = ref<HTMLElement | null>(null) // 滑块元素引用
|
||||||
|
|
||||||
|
// 状态变量
|
||||||
|
const sliderLeft = ref("0px") // 滑块左侧位置
|
||||||
|
const sliderMaskWidth = ref("0px") // 遮罩层宽度
|
||||||
|
const verified = ref(false) // 验证状态
|
||||||
|
|
||||||
|
// 拖动相关变量
|
||||||
|
let startX = 0 // 开始拖动时的 X 坐标
|
||||||
|
let sliderLeft_temp = 0 // 临时存储滑块位置
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始拖动处理
|
||||||
|
* @param e 鼠标事件对象
|
||||||
|
*/
|
||||||
|
const handleDragStart = (e: MouseEvent) => {
|
||||||
|
if (verified.value) return // 如果已验证通过,不再处理
|
||||||
|
startX = e.clientX
|
||||||
|
sliderLeft_temp = parseInt(sliderLeft.value)
|
||||||
|
// 添加鼠标移动和松开事件监听
|
||||||
|
document.addEventListener("mousemove", handleDragMove)
|
||||||
|
document.addEventListener("mouseup", handleDragEnd)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拖动过程处理
|
||||||
|
* @param e 鼠标事件对象
|
||||||
|
*/
|
||||||
|
const handleDragMove = (e: MouseEvent) => {
|
||||||
|
if (verified.value) return
|
||||||
|
const container = containerRef.value
|
||||||
|
if (!container) return
|
||||||
|
|
||||||
|
// 计算拖动距离
|
||||||
|
const diff = e.clientX - startX
|
||||||
|
const containerWidth = container.offsetWidth
|
||||||
|
const sliderWidth = sliderRef.value?.offsetWidth || 0
|
||||||
|
const maxLeft = containerWidth - sliderWidth
|
||||||
|
|
||||||
|
// 计算新位置并限制范围
|
||||||
|
let newLeft = sliderLeft_temp + diff
|
||||||
|
if (newLeft < 0) newLeft = 0
|
||||||
|
if (newLeft > maxLeft) newLeft = maxLeft
|
||||||
|
|
||||||
|
// 更新滑块和遮罩层位置
|
||||||
|
sliderLeft.value = newLeft + "px"
|
||||||
|
sliderMaskWidth.value = newLeft + sliderWidth / 2 + "px"
|
||||||
|
|
||||||
|
// 检查是否验证成功
|
||||||
|
if (newLeft === maxLeft) {
|
||||||
|
verified.value = true
|
||||||
|
emit("verifySuccess", true) // 触发验证成功
|
||||||
|
handleDragEnd()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束拖动处理
|
||||||
|
*/
|
||||||
|
const handleDragEnd = () => {
|
||||||
|
if (!verified.value) {
|
||||||
|
// 如果未验证成功,重置位置
|
||||||
|
sliderLeft.value = "0px"
|
||||||
|
sliderMaskWidth.value = "0px"
|
||||||
|
}
|
||||||
|
// 移除事件监听
|
||||||
|
document.removeEventListener("mousemove", handleDragMove)
|
||||||
|
document.removeEventListener("mouseup", handleDragEnd)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组件卸载时清理事件监听
|
||||||
|
onUnmounted(() => {
|
||||||
|
document.removeEventListener("mousemove", handleDragMove)
|
||||||
|
document.removeEventListener("mouseup", handleDragEnd)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
/* 滑动验证码容器样式 */
|
||||||
|
.slider-container {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 42px;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
border: 1px solid #e4e7ed;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 滑动遮罩层样式 */
|
||||||
|
.slider-mask {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #d1e9fc;
|
||||||
|
border-radius: 8px;
|
||||||
|
transition: width 0.1s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 滑块按钮样式 */
|
||||||
|
.slider {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 60px;
|
||||||
|
height: 42px;
|
||||||
|
background: #e1dede;
|
||||||
|
border-radius: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.2s;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 验证成功时滑块样式 */
|
||||||
|
.slider-success {
|
||||||
|
background-color: #1ea0fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 提示文本样式 */
|
||||||
|
.slider-text {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
user-select: none;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #9cb3c5;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 验证成功时文本样式 */
|
||||||
|
.slider-text-success {
|
||||||
|
color: #1ea0fa;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -236,7 +236,7 @@ export const putCancelQuit = (params, handleSuccess) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 待审批获取列表数据
|
* 待审核获取列表数据
|
||||||
*/
|
*/
|
||||||
export const getUserTenantPageList = (params) => {
|
export const getUserTenantPageList = (params) => {
|
||||||
return defHttp.get({ url: Api.getUserTenantPageList, params });
|
return defHttp.get({ url: Api.getUserTenantPageList, params });
|
||||||
|
|
|
||||||
|
|
@ -511,7 +511,7 @@ export const userTenantColumns: BasicColumn[] = [
|
||||||
if (text === '1') {
|
if (text === '1') {
|
||||||
return '正常';
|
return '正常';
|
||||||
} else if (text === '3') {
|
} else if (text === '3') {
|
||||||
return '审批中';
|
return '审核中';
|
||||||
} else {
|
} else {
|
||||||
return '已拒绝';
|
return '已拒绝';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue