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',
|
||||
//新加的获取图形验证码的接口
|
||||
getInputCode = '/sys/randomImage',
|
||||
randomCode = '/sys/randomInputCode',
|
||||
//获取短信验证码的接口
|
||||
getCaptcha = '/sys/sms',
|
||||
//注册接口
|
||||
|
|
@ -114,6 +115,10 @@ export function getCodeInfo(currdatetime) {
|
|||
let url = Api.getInputCode + `/${currdatetime}`;
|
||||
return defHttp.get({ url: url });
|
||||
}
|
||||
export function randomCode(currdatetime) {
|
||||
let url = Api.randomCode + `/${currdatetime}`;
|
||||
return defHttp.get({ url: url });
|
||||
}
|
||||
/**
|
||||
* @description: 获取短信验证码
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -25,9 +25,32 @@
|
|||
</a-button>
|
||||
</div>
|
||||
</a-upload>
|
||||
<a-modal :open="previewVisible" width="80%" :footer="null" @cancel="handleCancel()">
|
||||
<img alt="example" style="width: 100%" :src="previewImage" />
|
||||
</a-modal>
|
||||
<!-- <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>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
|
|
@ -106,6 +129,7 @@
|
|||
//预览框状态
|
||||
const previewVisible = ref<boolean>(false);
|
||||
|
||||
|
||||
//计算是否开启多图上传
|
||||
const multiple = computed(() => {
|
||||
return props['fileMax'] > 1 || props['fileMax'] === 0;
|
||||
|
|
@ -227,7 +251,8 @@
|
|||
//如有需要新增 删除逻辑
|
||||
console.log(file);
|
||||
}
|
||||
|
||||
const previewImgRef = ref<HTMLImageElement | null>(null);
|
||||
const modalWidth = ref('auto');
|
||||
/**
|
||||
* 预览图片
|
||||
*/
|
||||
|
|
@ -247,6 +272,20 @@
|
|||
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 {
|
||||
state,
|
||||
attrs,
|
||||
|
|
@ -262,6 +301,9 @@
|
|||
handlePreview,
|
||||
handleCancel,
|
||||
handleChange,
|
||||
handleImageLoad,
|
||||
previewImgRef,
|
||||
modalWidth,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
|
@ -276,4 +318,27 @@
|
|||
margin-top: 8px;
|
||||
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>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,12 @@
|
|||
<span>{{ text }}</span>
|
||||
</a-button>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
|
|
@ -38,6 +44,10 @@
|
|||
import { UploadTypeEnum } from './upload.data';
|
||||
import { getFileAccessHttpUrl, getHeaders } from '/@/utils/common/compUtils';
|
||||
import UploadItemActions from './components/UploadItemActions.vue';
|
||||
import { useGlobSetting } from '/@/hooks/setting';
|
||||
import {encryptByBase64} from "@/utils/cipher";
|
||||
const glob = useGlobSetting();
|
||||
|
||||
|
||||
const { createMessage, createConfirm } = useMessage();
|
||||
const { prefixCls } = useDesign('j-upload');
|
||||
|
|
@ -357,6 +367,7 @@
|
|||
|
||||
// 预览文件、图片
|
||||
function onFilePreview(file) {
|
||||
console.log("🚀 ~ onFilePreview ~ file:", file)
|
||||
if (isImageMode.value) {
|
||||
createImgPreview({ imageList: [file.url], maskClosable: true });
|
||||
} 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) {
|
||||
emit('change', value);
|
||||
emit('update:value', value);
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
.ant-modal-body {
|
||||
padding: 0;
|
||||
background: url(../public/resource/img/modalback.png);
|
||||
background: url(../resource/img/modalback.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ enum Api {
|
|||
list = '/admin/orgapplyinfo/orgApplyInfo/list',
|
||||
save='/admin/orgapplyinfo/orgApplyInfo/add',
|
||||
edit='/admin/orgapplyinfo/orgApplyInfo/edit',
|
||||
editCg='/admin/orgapplyinfo/orgApplyInfo/editCg',
|
||||
submitContract='/admin/orgapplyinfo/orgApplyInfo/submitContract',
|
||||
deleteOne = '/admin/orgapplyinfo/orgApplyInfo/delete',
|
||||
deleteBatch = '/admin/orgapplyinfo/orgApplyInfo/deleteBatch',
|
||||
|
|
@ -80,6 +81,11 @@ export const saveOrUpdate = (params, isUpdate) => {
|
|||
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
||||
}
|
||||
|
||||
|
||||
export const editCg = (params, isUpdate) => {
|
||||
return defHttp.post({ url: Api.editCg, params }, { isTransformResponse: false });
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存并提交
|
||||
* @param params
|
||||
|
|
|
|||
|
|
@ -14,41 +14,49 @@ export const columns: BasicColumn[] = [
|
|||
title: '机构负责人',
|
||||
align: 'center',
|
||||
dataIndex: 'orgLeader',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '机构负责人电话',
|
||||
align: 'center',
|
||||
dataIndex: 'orgLeaderPhone',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '申请日期',
|
||||
align: 'center',
|
||||
dataIndex: 'createTime',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '房屋性质',
|
||||
align: 'center',
|
||||
dataIndex: 'orgPropertyType',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '面积',
|
||||
title: '面积(㎡)',
|
||||
align: 'center',
|
||||
dataIndex: 'orgBuildingArea',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '审批意见',
|
||||
title: '审核意见',
|
||||
align: 'center',
|
||||
dataIndex: 'status_dictText',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '当前阶段',
|
||||
align: 'center',
|
||||
dataIndex: 'buildStatus_dictText',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '工单状态',
|
||||
align: 'center',
|
||||
dataIndex: 'workOrderStatus_dictText',
|
||||
width: 120,
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@
|
|||
</a-col>
|
||||
<a-col :lg="6">
|
||||
<a-form-item name="status">
|
||||
<template #label><span title="审批意见">审批意见</span></template>
|
||||
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审批意见">
|
||||
<template #label><span title="审核意见">审核意见</span></template>
|
||||
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审核意见">
|
||||
<a-select-option value="1">待审核</a-select-option>
|
||||
<a-select-option value="2">审核通过</a-select-option>
|
||||
<a-select-option value="3">审核驳回</a-select-option>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<JFormContainer :disabled="disabled">
|
||||
<JFormContainer >
|
||||
<template #detail>
|
||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol"
|
||||
name="OrgApplyInfoForm">
|
||||
|
|
@ -9,76 +9,82 @@
|
|||
<a-col :span="24">
|
||||
<SectionDivider :title="'机构信息'" />
|
||||
</a-col>
|
||||
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="营业执照照片" v-bind="validateInfos.comBusinessLicense"
|
||||
id="OrgApplyInfoForm-comBusinessLicense" name="comBusinessLicense">
|
||||
<JImageUpload :fileMax="1" v-model:value="formData.comBusinessLicense" :disabled="true"></JImageUpload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="企业名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
|
||||
{{formData.comName}}
|
||||
</a-form-item>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="信用代码" v-bind="validateInfos.comCreditCode" id="OrgApplyInfoForm-comCreditCode"
|
||||
name="comCreditCode">
|
||||
{{formData.comCreditCode}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<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"
|
||||
name="comLegalPerson">
|
||||
{{formData.comLegalPerson}}
|
||||
</a-form-item>
|
||||
</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-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">
|
||||
{{formData.comCreditCode}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="企业法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson"
|
||||
name="comLegalPerson">
|
||||
{{formData.comLegalPerson}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
</a-row>
|
||||
|
||||
<a-row>
|
||||
|
||||
<a-col :span="12">
|
||||
<a-form-item label="机构负责人" v-bind="validateInfos.orgLeader" id="OrgApplyInfoForm-orgLeader"
|
||||
name="orgLeader">
|
||||
{{formData.orgLeader}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="机构负责人电话" v-bind="validateInfos.orgLeaderPhone" id="OrgApplyInfoForm-orgLeaderPhone"
|
||||
name="orgLeaderPhone">
|
||||
{{formData.orgLeaderPhone}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="机构房屋性质" v-bind="validateInfos.orgPropertyType" id="OrgApplyInfoForm-orgPropertyType"
|
||||
name="orgPropertyType">
|
||||
{{formData.orgPropertyType}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="机构建筑面积" v-bind="validateInfos.orgBuildingArea" id="OrgApplyInfoForm-orgBuildingArea"
|
||||
name="orgBuildingArea">
|
||||
{{formData.orgBuildingArea}} ㎡
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- <a-col :span="12">
|
||||
<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"
|
||||
name="orgAddress">
|
||||
{{formData.orgAddress}}
|
||||
</a-form-item>
|
||||
<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"
|
||||
name="orgLeader">
|
||||
{{formData.orgLeader}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="负责人电话" v-bind="validateInfos.orgLeaderPhone" id="OrgApplyInfoForm-orgLeaderPhone"
|
||||
name="orgLeaderPhone">
|
||||
{{formData.orgLeaderPhone}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="房屋性质" v-bind="validateInfos.orgPropertyType" id="OrgApplyInfoForm-orgPropertyType"
|
||||
name="orgPropertyType">
|
||||
{{formData.orgPropertyType}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="建筑面积" v-bind="validateInfos.orgBuildingArea" id="OrgApplyInfoForm-orgBuildingArea"
|
||||
name="orgBuildingArea">
|
||||
{{formData.orgBuildingArea}} ㎡
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="机构地址" v-bind="validateInfos.orgAddress" id="OrgApplyInfoForm-orgAddress"
|
||||
name="orgAddress">
|
||||
{{formData.orgAddress}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
|
|
@ -89,65 +95,73 @@
|
|||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="身份证正面" v-bind="validateInfos.cardZmPath" id="OrgApplyInfoForm-cardZmPath"
|
||||
name="cardZmPath">
|
||||
<JImageUpload :fileMax="1" v-model:value="formData.cardZmPath" :disabled="true"></JImageUpload>
|
||||
</a-form-item>
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="身份证正面" v-bind="validateInfos.cardZmPath" id="OrgApplyInfoForm-cardZmPath"
|
||||
name="cardZmPath">
|
||||
<JImageUpload :fileMax="1" v-model:value="formData.cardZmPath" :disabled="true"></JImageUpload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="姓名" v-bind="validateInfos.name" id="OrgApplyInfoForm-name" name="name">
|
||||
{{formData.name}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="性别" v-bind="validateInfos.sex" id="OrgApplyInfoForm-sex" name="sex">
|
||||
{{formData.sex}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="民族" v-bind="validateInfos.national" id="OrgApplyInfoForm-national" name="national">
|
||||
{{formData.national}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="出生日期" v-bind="validateInfos.birthDate" id="OrgApplyInfoForm-birthDate"
|
||||
name="birthDate">
|
||||
{{formData.birthDate?formData.birthDate.substring(0,10):""}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="身份证号" v-bind="validateInfos.idCard" id="OrgApplyInfoForm-idCard" name="idCard">
|
||||
{{formData.idCard}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="住址" v-bind="validateInfos.idCardAddress" id="OrgApplyInfoForm-idCardAddress"
|
||||
name="idCardAddress">
|
||||
{{formData.idCardAddress}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<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">
|
||||
{{formData.name}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="性别" v-bind="validateInfos.sex" id="OrgApplyInfoForm-sex" name="sex">
|
||||
{{formData.sex}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="身份证号" v-bind="validateInfos.idCard" id="OrgApplyInfoForm-idCard" name="idCard">
|
||||
{{formData.idCard}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="出生日期" v-bind="validateInfos.birthDate" id="OrgApplyInfoForm-birthDate"
|
||||
name="birthDate">
|
||||
{{formData.birthDate?formData.birthDate.substring(0,10):""}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<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="12">
|
||||
<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"
|
||||
name="idCardAddress">
|
||||
{{formData.idCardAddress}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="签发机关" v-bind="validateInfos.issuingAuthority" id="OrgApplyInfoForm-issuingAuthority"
|
||||
name="issuingAuthority">
|
||||
{{formData.issuingAuthority}}
|
||||
</a-form-item>
|
||||
<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"
|
||||
name="issuingAuthority">
|
||||
{{formData.issuingAuthority}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
|
|
@ -158,16 +172,16 @@
|
|||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<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-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-option value="2">审核通过</a-select-option>
|
||||
<a-select-option value="3">审核驳回</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</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-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>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
|
@ -181,9 +195,14 @@
|
|||
{{formData.auditTime}}
|
||||
</a-form-item>
|
||||
</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">
|
||||
<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-col>
|
||||
</a-row>
|
||||
|
|
@ -202,17 +221,17 @@
|
|||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="回复附件" >
|
||||
<JUpload v-model:value="formData.replyFile" :maxCount="1" disabled></JUpload>
|
||||
<a-form-item label="反馈附件" >
|
||||
<JUpload v-model:value="formData.replyFile" :maxCount="1" :buttonVisible="false" disabled></JUpload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="回复时间" >
|
||||
<a-form-item label="反馈时间" >
|
||||
{{formData.replyTime?formData.replyTime.substring(0,10):""}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="回复内容" >
|
||||
<a-form-item label="反馈内容" >
|
||||
{{formData.replyContent}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
|
@ -239,6 +258,9 @@ import TencentMap from '/@/components/TencentMap/TencentMap.vue';
|
|||
import JImageUpload from '/@/components/Form/src/jeecg/components/JImageUpload.vue';
|
||||
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
||||
import { t } from '/@/hooks/web/useI18n';
|
||||
import {encryptByBase64} from "@/utils/cipher";
|
||||
import { useGlobSetting } from '/@/hooks/setting';
|
||||
const glob = useGlobSetting();
|
||||
|
||||
const cityViewValue = ref('')
|
||||
const props = defineProps({
|
||||
|
|
@ -292,23 +314,26 @@ const formData = reactive<Record<string, any>>({
|
|||
orgDistrict_dictText: '',
|
||||
franchiseTime: null,
|
||||
contract:null,
|
||||
contractNote:null,
|
||||
replyContent: '',
|
||||
replyFile: '',
|
||||
replyTime: '',
|
||||
handleBy: '',
|
||||
workOrderStatus: '',
|
||||
workOrderStatus_dictText: '',
|
||||
auditBy:'',
|
||||
auditTime: '',
|
||||
|
||||
});
|
||||
const tempNullVal = ref('');
|
||||
const sfsh = ref<string>('0');
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 17 } });
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 8 } });
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
//表单验证
|
||||
const validatorRules = reactive({
|
||||
status: [{ required: true, message: '请选择审批结果!' },],
|
||||
status: [{ required: true, message: '请选择审核结果!' },],
|
||||
content: [
|
||||
{
|
||||
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;
|
||||
console.log("🚀 ~ edit ~ lsbl:", lsbl)
|
||||
if (tmpData.status != '2' && tmpData.status != '3') {
|
||||
tmpData.status = null
|
||||
}
|
||||
|
|
@ -406,7 +443,7 @@ async function submitForm() {
|
|||
}
|
||||
}
|
||||
if(model.status == '2'){
|
||||
model.buildStatus = 'approvalPass'//代表加盟审批通过
|
||||
model.buildStatus = 'approvalPass'//代表加盟审核通过
|
||||
}
|
||||
await saveOrUpdate(model, isUpdate.value)
|
||||
.then((res) => {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ function add() {
|
|||
* @param record
|
||||
*/
|
||||
function edit(record) {
|
||||
title.value = disableSubmit.value ? '详情' : '机构加盟申请审批';
|
||||
title.value = disableSubmit.value ? '详情' : '机构加盟申请审核';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.edit(record);
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@
|
|||
<SectionDivider :title="'机构信息'" />
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
|
||||
{{ formData.comName }}
|
||||
<a-form-item label="机构所在地">
|
||||
{{ cityViewValue }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="机构所在地">
|
||||
{{ cityViewValue }}
|
||||
<a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
|
||||
{{ formData.comName }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
|
|
@ -25,19 +25,19 @@
|
|||
</a-form-item>
|
||||
</a-col>
|
||||
<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">
|
||||
{{ formData.orgLeaderPhone }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<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">
|
||||
{{ formData.orgPropertyType }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<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">
|
||||
{{ formData.orgBuildingArea }}㎡
|
||||
</a-form-item>
|
||||
|
|
@ -81,7 +81,7 @@ 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 { saveOrUpdate, submitContract } from '../OrgApplyInfo.api';
|
||||
import { saveOrUpdate, submitContract,editCg } from '../OrgApplyInfo.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import JFormContainer from '/@/components/Form/src/container/JFormContainer.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 validatorRules = reactive({
|
||||
status: [{ required: true, message: '请选择审批结果!' },],
|
||||
status: [{ required: true, message: '请选择审核结果!' },],
|
||||
contract: [{ required: true, message: '请上传加盟合同!' },],
|
||||
contractNote: [{ required: true, message: '请填写备注信息!' },],
|
||||
});
|
||||
|
|
@ -239,7 +239,7 @@ async function saveForm() {
|
|||
}
|
||||
}
|
||||
}
|
||||
await saveOrUpdate(model, true)
|
||||
await editCg(model, true)
|
||||
.then((res) => {
|
||||
if (res.success) {
|
||||
createMessage.success(res.message);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ export const columns: BasicColumn[] = [
|
|||
dataIndex: 'orgBuildingArea',
|
||||
},
|
||||
{
|
||||
title: '审批意见',
|
||||
title: '审核意见',
|
||||
align: 'center',
|
||||
dataIndex: 'status_dictText',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -24,16 +24,16 @@
|
|||
class="query-group-cust" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6">
|
||||
<!-- <a-col :lg="6">
|
||||
<a-form-item name="status">
|
||||
<template #label><span title="审批意见">审批意见</span></template>
|
||||
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审批意见">
|
||||
<template #label><span title="审核意见">审核意见</span></template>
|
||||
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审核意见">
|
||||
<a-select-option value="4">待审核</a-select-option>
|
||||
<a-select-option value="2">审核通过</a-select-option>
|
||||
<a-select-option value="5">审核驳回</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-col> -->
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
||||
<a-col :lg="6">
|
||||
|
|
@ -195,7 +195,7 @@ function getTableAction(record) {
|
|||
// onClick: handleDetail.bind(null, record),
|
||||
// },
|
||||
{
|
||||
label: '审批',
|
||||
label: '审核',
|
||||
onClick: handleAudit.bind(null, record),
|
||||
auth: 'orgapplyinfo:nu_org_apply_info:edit',
|
||||
ifShow: record.status == '4'
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
<template>
|
||||
<div class="container">
|
||||
<div class="container2">
|
||||
<a-form ref="formRef" layout="horizontal" :model="formData" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="审批意见" name="status" v-bind="validateInfos.status">
|
||||
<a-select v-model:value="formData.status" style="width: 200px" placeholder="请选择审批意见">
|
||||
<a-form-item label="审核结果" name="status" v-bind="validateInfos.status">
|
||||
<a-select v-model:value="formData.status" style="width: 200px" placeholder="请选择审核结果">
|
||||
<a-select-option value="modifyPass">审核通过</a-select-option>
|
||||
<a-select-option value="modifyFail">审核驳回</a-select-option>
|
||||
</a-select>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
<a-row>
|
||||
<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"
|
||||
:scroll="{ y: '45vh' }" :rowClassName="setRowClassName">
|
||||
:rowClassName="setRowClassName">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.dataIndex === 'd1'">
|
||||
<span>{{ applyObj[record.d1] }}</span>
|
||||
|
|
@ -41,6 +41,14 @@
|
|||
v-if="column.dataIndex === 'd3' && (record.d1 == 'orgProvince' || record.d1 == 'orgCity' || record.d1 == 'orgDistrict')">
|
||||
<span>{{ provinceOptions[record.d3] }}</span>
|
||||
</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>
|
||||
</a-table>
|
||||
</a-col>
|
||||
|
|
@ -76,7 +84,7 @@ const formData = reactive<Record<string, any>>({
|
|||
pkId: ''
|
||||
});
|
||||
const validatorRules = reactive({
|
||||
status: [{ required: true, message: '请选择审批结果!' },],
|
||||
status: [{ required: true, message: '请选择审核结果!' },],
|
||||
content: [
|
||||
{
|
||||
validator: async (_rule, value) => {
|
||||
|
|
@ -121,6 +129,7 @@ const filteredTableData = computed(() => {
|
|||
&& item.d1 !== 'handleBy'
|
||||
&& item.d1 !== 'workOrderStatus'
|
||||
&& item.d1 !== 'workOrderId'
|
||||
&& item.d1 !== 'auditBy'
|
||||
|
||||
);
|
||||
});
|
||||
|
|
@ -221,7 +230,7 @@ defineExpose({
|
|||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.container {
|
||||
.container2 {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@
|
|||
name="OrgModifyInfoForm">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<SectionDivider :title="'入驻审批'" />
|
||||
<SectionDivider :title="'入驻审核'" />
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<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="请选择审批结果"
|
||||
<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="请选择审核结果"
|
||||
allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ function auditModify(data) {
|
|||
* @param record
|
||||
*/
|
||||
function edit(record) {
|
||||
title.value = disableSubmit.value ? '详情' : '机构信息变更审批';
|
||||
title.value = disableSubmit.value ? '详情' : '机构信息变更审核';
|
||||
infoVisible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.edit(record);
|
||||
|
|
|
|||
|
|
@ -18,9 +18,9 @@
|
|||
</a-col>
|
||||
<a-col :lg="6">
|
||||
<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"
|
||||
placeholder="请选择审批状态" allow-clear />
|
||||
placeholder="请选择审核状态" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6">
|
||||
|
|
@ -177,7 +177,7 @@ import JInput from "/@/components/Form/src/jeecg/components/JInput.vue";
|
|||
function getTableAction(record) {
|
||||
return [
|
||||
{
|
||||
label: '审批',
|
||||
label: '审核',
|
||||
onClick: handleEdit.bind(null, record),
|
||||
ifShow: record.status == '1'
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="NuEmployeesAdvisoryInfoForm">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<SectionDivider :title="'入驻审批'" />
|
||||
<SectionDivider :title="'入驻审核'" />
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<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="请选择审批结果"
|
||||
<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="请选择审核结果"
|
||||
allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ export const refundTimeTableData: any[] = [
|
|||
},
|
||||
{
|
||||
t1: '2017-10-01 14:10',
|
||||
t2: '申请审批通过',
|
||||
t2: '申请审核通过',
|
||||
t3: '成功',
|
||||
t4: '用户',
|
||||
t5: '1h',
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ export const refundTimeTableData: any[] = [
|
|||
},
|
||||
{
|
||||
t1: '2017-10-01 14:10',
|
||||
t2: '申请审批通过',
|
||||
t2: '申请审核通过',
|
||||
t3: '成功',
|
||||
t4: '用户',
|
||||
t5: '1h',
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ export const schemas: FormSchema[] = [
|
|||
{
|
||||
field: 'f4',
|
||||
component: 'Select',
|
||||
label: '审批人',
|
||||
label: '审核人',
|
||||
componentProps: {
|
||||
options: basicOptions,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ export const saveOrUpdate = (params, isUpdate) => {
|
|||
};
|
||||
|
||||
/**
|
||||
* 审批
|
||||
* 审核
|
||||
* @param params
|
||||
*/
|
||||
export const audit = (params) => {
|
||||
|
|
@ -94,7 +94,7 @@ export const asyncFunc = (params) => {
|
|||
};
|
||||
|
||||
/**
|
||||
* 审批通过后将指令资源同步给业务平台
|
||||
* 审核通过后将指令资源同步给业务平台
|
||||
* @param params
|
||||
*/
|
||||
export const syncMediaForBiz = (params) => {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<a-row v-show="isAudit">
|
||||
<a-col :span="12">
|
||||
<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">
|
||||
<a-select v-model:value="formData.statusVal" placeholder="请选择审核状态" style="width: 200px"
|
||||
:disabled="false">
|
||||
|
|
@ -388,7 +388,7 @@ function add() {
|
|||
/**
|
||||
* 编辑
|
||||
* isEditMedia_是否为编辑指令资源 (隐藏业务字段)
|
||||
* isAudit_是否为服务指令那个审批 (隐藏业务字段)
|
||||
* isAudit_是否为服务指令那个审核 (隐藏业务字段)
|
||||
*/
|
||||
function edit(record, isEditMedia_ = false, isAudit_ = false) {
|
||||
console.log("🌊 ~ edit ~ record:", record)
|
||||
|
|
@ -477,7 +477,7 @@ function submitAudit() {
|
|||
} else if (formData.statusVal == 'auditFaild') {
|
||||
formData.status = 3
|
||||
} else {
|
||||
createMessage.warning('请选择审批结果!')
|
||||
createMessage.warning('请选择审核结果!')
|
||||
return
|
||||
}
|
||||
audit(formData)
|
||||
|
|
|
|||
|
|
@ -59,11 +59,11 @@ function edit(record) {
|
|||
}
|
||||
|
||||
/**
|
||||
* 审批列表 - 审批
|
||||
* 审核列表 - 审核
|
||||
* @param record
|
||||
*/
|
||||
function audit(record) {
|
||||
title.value = '审批';
|
||||
title.value = '审核';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.edit(record, false, true);
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ function handleMedia(record: Recordable) {
|
|||
function getTableAction(record) {
|
||||
return [
|
||||
{
|
||||
label: '审批',
|
||||
label: '审核',
|
||||
onClick: handleAudit.bind(null, record),
|
||||
ifShow: record.status == '1'
|
||||
},
|
||||
|
|
|
|||
|
|
@ -53,7 +53,10 @@
|
|||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<div class="aui-inputClear">
|
||||
<div >
|
||||
<huakuai @verifySuccess="checkInputCode"/>
|
||||
</div>
|
||||
<!-- <div class="aui-inputClear">
|
||||
<a-row>
|
||||
<a-col :span="2">
|
||||
<span style="margin-top: 10px;display: block;"><img :src="icon3Img" alt="验证码" style="width: 20px;" /></span>
|
||||
|
|
@ -70,7 +73,7 @@
|
|||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</a-form>
|
||||
</div>
|
||||
|
|
@ -92,7 +95,7 @@
|
|||
</div>
|
||||
</template>
|
||||
<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 codeImg from '/@/assets/images/checkcode.png';
|
||||
import { Rule } from '/@/components/Form';
|
||||
|
|
@ -115,6 +118,7 @@
|
|||
import { useAppInject } from "/@/hooks/web/useAppInject";
|
||||
import { GithubFilled, WechatFilled, DingtalkCircleFilled, createFromIconfontCN } from '@ant-design/icons-vue';
|
||||
import CaptchaModal from '@/components/jeecg/captcha/CaptchaModal.vue';
|
||||
import huakuai from './huakuai.vue';
|
||||
import { useModal } from "@/components/Modal";
|
||||
import { ExceptionEnum } from "@/enums/exceptionEnum";
|
||||
|
||||
|
|
@ -133,6 +137,7 @@
|
|||
checkKey: null,
|
||||
});
|
||||
const rememberMe = ref<string>('0');
|
||||
const huakuaiOpen = ref<boolean>(false);
|
||||
//手机号登录还是账号登录
|
||||
const activeIndex = ref<string>('accountLogin');
|
||||
const type = ref<string>('login');
|
||||
|
|
@ -178,12 +183,19 @@
|
|||
formData.inputCode = '';
|
||||
|
||||
randCodeData.checkKey = 1629428467008;
|
||||
getCodeInfo(randCodeData.checkKey).then((res) => {
|
||||
randomCode(randCodeData.checkKey).then((res) => {
|
||||
console.log("🚀 ~ handleChangeCheckCode ~ res:", res)
|
||||
randCodeData.randCodeImage = res;
|
||||
randCodeData.requestCodeSuccess = true;
|
||||
formData.inputCode = res;
|
||||
});
|
||||
}
|
||||
|
||||
function checkInputCode(type){
|
||||
console.log("🚀 ~ checkCode ~ checkCode:",type)
|
||||
handleChangeCheckCode();
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换登录方式
|
||||
*/
|
||||
|
|
@ -372,7 +384,7 @@
|
|||
|
||||
onMounted(() => {
|
||||
//加载验证码
|
||||
handleChangeCheckCode();
|
||||
// handleChangeCheckCode();
|
||||
});
|
||||
</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) => {
|
||||
return defHttp.get({ url: Api.getUserTenantPageList, params });
|
||||
|
|
|
|||
|
|
@ -511,7 +511,7 @@ export const userTenantColumns: BasicColumn[] = [
|
|||
if (text === '1') {
|
||||
return '正常';
|
||||
} else if (text === '3') {
|
||||
return '审批中';
|
||||
return '审核中';
|
||||
} else {
|
||||
return '已拒绝';
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue