Browse Source

增加成本提交判重

master
wang 2 months ago
parent
commit
050c18be31
  1. BIN
      dist.zip
  2. 22
      src/constants/system/review-const.js
  3. 1
      src/views/business/erp/cost/firm-reports-form.vue
  4. 6
      src/views/business/erp/letter/letter-list.vue
  5. 66
      src/views/business/erp/service/service-applications-list.vue
  6. 50
      src/views/business/erp/service/service-applications-report-list.vue

BIN
dist.zip

Binary file not shown.

22
src/constants/system/review-const.js

@ -1,5 +1,5 @@
/*
* 审核状态
* 服务列表状态
*/
export const REVIEW_ENUM = {
NOSUBMIT: {
@ -39,7 +39,27 @@ export const QUARTER_ENUM = {
desc: '第四季度',
},
};
/*
* 服务审核状态
*/
export const SERVICEC_REVIEW_ENUM = {
APPROVAL: {
value: 1,
desc: '待审核',
},
PASS: {
value: 3,
desc: '已通过',
},
REFUSE: {
value: 4,
desc: '拒绝',
},
};
export default {
REVIEW_ENUM,
QUARTER_ENUM,
SERVICEC_REVIEW_ENUM,
}

1
src/views/business/erp/cost/firm-reports-form.vue

@ -321,7 +321,6 @@
await formRef.value.validateFields(['declareQuarter', 'declareYear', 'revenue', 'publicWelfareCost']);
form.approvalStatus = '0'; // 稿
await save();
message.success('保存草稿成功');
} catch (err) {
message.error('请填写必填字段后再保存草稿!');
}

6
src/views/business/erp/letter/letter-list.vue

@ -167,8 +167,8 @@
<div v-if="proofFileList.length > 0" style="margin-top: 8px; color: #52c41a; font-size: 12px;">
已选择文件: {{ proofFileList[0].name }}
</div>
<div style="margin-top: 8px; color: #999; font-size: 12px;">
支持格式图片JPG/PNG文件大小不超过10MB
<div style="margin-top: 8px; color: #ff0000; font-size: 12px;">
支持格式图片JPG/PNG/jepg文件大小不超过10MB
</div>
</a-form-item>
</a-form>
@ -281,7 +281,7 @@ import AgreementModal from '/@/views/system/home/components/agreement.vue';
const isImage = file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png';
if (!isImage) {
message.error('只能上传PDF、Word文档或图片文件!');
message.error('只能上传图片文件!');
return false;
}

66
src/views/business/erp/service/service-applications-list.vue

@ -14,44 +14,51 @@
<a-form-item label="执业机构" v-if="isAssociationRole || isCeo" class="smart-query-form-item">
<DepartmentTreeSelect style="width: 250px" v-model:value="queryForm.firmId" placeholder="请选择执业机构" />
</a-form-item>
<a-form-item label="律师名称" v-if="isAssociationRole || isFirmRole || isCeo" class="smart-query-form-item">
<a-form-item label="律师名称" v-if="isCtoRole || isCeo" class="smart-query-form-item">
<a-select
v-model:value="queryForm.userId"
style="width: 150px"
style="width: 200px"
placeholder="请选择律师"
:showSearch="true"
:allowClear="true"
:filterOption="filterLawyerOption"
optionFilterProp="children"
@focus="loadAllEmployees"
>
<a-select-option v-for="item in employeeList" :key="item.employeeId" :value="item.employeeId">
{{ item.actualName }}
<template v-if="item.departmentName">{{ item.departmentName }}</template>
<template v-if="item.positionName"> - {{ item.positionName }}</template>
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="服务开始时间" class="smart-query-form-item">
<a-date-picker style="width: 150px" v-model:value="queryForm.serviceStart" placeholder="开始时间" />
</a-form-item>
<a-form-item label="服务结束时间" class="smart-query-form-item">
<a-date-picker style="width: 150px" v-model:value="queryForm.serviceEnd" placeholder="结束时间" />
</a-form-item>
<a-form-item label="组织单位名称" class="smart-query-form-item">
<a-input style="width: 150px" v-model:value="queryForm.organizerName" placeholder="组织单位名称" />
<a-form-item label="职务" v-if="isCtoRole || isCeo" class="smart-query-form-item">
<PositionSelect
v-model:value="queryForm.positionId"
placeholder="请选择职务"
style="width: 250px"
/>
</a-form-item>
<a-form-item label="执业机构审核状态" v-if="isCtoRole" class="smart-query-form-item">
<a-select style="width: 150px" v-model:value="queryForm.firmAuditStatus" placeholder="请选择审核状态">
<a-select-option v-for="status in Object.values(REVIEW_ENUM)" :key="status.value" :value="status.value">
{{ status.desc }}
</a-select-option>
<a-form-item label="执业机构审核状态" v-if="isCtoRole || isFirmRole" class="smart-query-form-item">
<a-select style="width: 160px" v-model:value="queryForm.firmAuditStatus" placeholder="请选择审核状态">
<a-select-option value="">全部</a-select-option>
<a-select-option value="3">已审核</a-select-option>
<a-select-option value="1">未审核</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="协会审核状态" v-if="isCeo" class="smart-query-form-item">
<a-select style="width: 150px" v-model:value="queryForm.associationAuditStatus" placeholder="请选择审核状态">
<a-select-option v-for="status in Object.values(REVIEW_ENUM)" :key="status.value" :value="status.value">
{{ status.desc }}
</a-select-option>
<a-form-item label="协会审核状态" class="smart-query-form-item">
<a-select style="width: 160px" v-model:value="queryForm.associationAuditStatus" placeholder="请选择审核状态">
<a-select-option value="">全部</a-select-option>
<a-select-option value="3">已审核</a-select-option>
<a-select-option value="1">未审核</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="执业机构审核时间" v-if="isCtoRole || isFirmRole" class="smart-query-form-item">
<a-range-picker style="width: 240px" v-model:value="queryForm.firmAuditTimeRange" placeholder="" />
</a-form-item>
<a-form-item class="smart-query-form-item smart-margin-left10">
<a-button v-privilege="'serviceApplications:query'" type="primary" @click="onSearch">
<template #icon>
@ -301,8 +308,9 @@ import { smartSentry } from '/@/lib/smart-sentry';
import TableOperator from '/@/components/support/table-operator/index.vue';
import ServiceApplicationsForm from './service-applications-form.vue';
import DepartmentTreeSelect from '/@/components/system/department-tree-select/index.vue';
import PositionSelect from '/@/components/system/position-select/index.vue';
import { employeeApi } from '/@/api/system/employee-api';
import { REVIEW_ENUM } from '/@/constants/system/review-const';
import { REVIEW_ENUM, SERVICEC_REVIEW_ENUM} from '/@/constants/system/review-const';
import { PlusOutlined, DeleteOutlined, SendOutlined, ImportOutlined, ExportOutlined, DownloadOutlined, UploadOutlined, CheckCircleOutlined } from '@ant-design/icons-vue';
import { loginApi } from '/@/api/system/login-api';
import AgreementModal from '/@/views/system/home/components/agreement-modal.vue';
@ -369,7 +377,7 @@ import AgreementModal from '/@/views/system/home/components/agreement-modal.vue'
dataIndex: 'firmAuditStatus',
ellipsis: true,
customRender: ({ text }) => {
const status = Object.values(REVIEW_ENUM).find(item => item.value === text);
const status = Object.values(SERVICEC_REVIEW_ENUM).find(item => item.value === text);
return status ? status.desc : text;
},
},
@ -388,7 +396,7 @@ import AgreementModal from '/@/views/system/home/components/agreement-modal.vue'
dataIndex: 'associationAuditStatus',
ellipsis: true,
customRender: ({ text }) => {
const status = Object.values(REVIEW_ENUM).find(item => item.value === text);
const status = Object.values(SERVICEC_REVIEW_ENUM).find(item => item.value === text);
return status ? status.desc : text;
},
},
@ -418,11 +426,11 @@ import AgreementModal from '/@/views/system/home/components/agreement-modal.vue'
pageSize: 10,
firmId: undefined, // ID
userId: undefined, // ID
serviceStart: undefined, //
serviceEnd: undefined, //
positionId: undefined, // ID
organizerName: undefined, //
managerName: undefined, //
firmAuditStatus: undefined, //
firmAuditTimeRange: undefined, //
associationAuditStatus: undefined, //
selfFirmFilter: undefined, //
};
@ -569,6 +577,14 @@ import AgreementModal from '/@/views/system/home/components/agreement-modal.vue'
return false;
}
//
function filterLawyerOption(input, option) {
const optionText = option.children.join('').toLowerCase();
return optionText.includes(input.toLowerCase());
}
//
async function handleBatchAudit() {
if (!batchAuditForm.auditResult) {

50
src/views/business/erp/service/service-applications-report-list.vue

@ -14,44 +14,26 @@
<a-form-item label="执业机构" v-if="isAssociationRole || isCeo" class="smart-query-form-item">
<DepartmentTreeSelect style="width: 250px" v-model:value="queryForm.firmId" placeholder="请选择执业机构" />
</a-form-item>
<a-form-item label="律师名称" v-if="isAssociationRole || isFirmRole || isCeo" class="smart-query-form-item">
<a-select
v-model:value="queryForm.userId"
style="width: 150px"
placeholder="请选择律师"
:showSearch="true"
:allowClear="true"
@focus="loadAllEmployees"
>
<a-select-option v-for="item in employeeList" :key="item.employeeId" :value="item.employeeId">
{{ item.actualName }}
<template v-if="item.departmentName"> {{ item.departmentName }} </template>
</a-select-option>
<a-form-item label="执业机构审核状态" v-if="!isCeo" class="smart-query-form-item">
<a-select style="width: 160px" v-model:value="queryForm.firmAuditStatus" placeholder="请选择审核状态">
<a-select-option value="">全部</a-select-option>
<a-select-option value="3">已审核</a-select-option>
<a-select-option value="1">未审核</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="服务开始时间" class="smart-query-form-item">
<a-date-picker style="width: 150px" v-model:value="queryForm.serviceStart" placeholder="开始时间" />
</a-form-item>
<a-form-item label="服务结束时间" class="smart-query-form-item">
<a-date-picker style="width: 150px" v-model:value="queryForm.serviceEnd" placeholder="结束时间" />
</a-form-item>
<a-form-item label="组织单位名称" class="smart-query-form-item">
<a-input style="width: 150px" v-model:value="queryForm.organizerName" placeholder="组织单位名称" />
</a-form-item>
<a-form-item label="执业机构审核状态" v-if="isCtoRole" class="smart-query-form-item">
<a-select style="width: 150px" v-model:value="queryForm.firmAuditStatus" placeholder="请选择审核状态">
<a-select-option v-for="status in Object.values(REVIEW_ENUM)" :key="status.value" :value="status.value">
{{ status.desc }}
</a-select-option>
<a-form-item label="协会审核状态" class="smart-query-form-item">
<a-select style="width: 160px" v-model:value="queryForm.associationAuditStatus" placeholder="请选择审核状态">
<a-select-option value="">全部</a-select-option>
<a-select-option value="3">已审核</a-select-option>
<a-select-option value="1">未审核</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="协会审核状态" v-if="isCeo" class="smart-query-form-item">
<a-select style="width: 150px" v-model:value="queryForm.associationAuditStatus" placeholder="请选择审核状态">
<a-select-option v-for="status in Object.values(REVIEW_ENUM)" :key="status.value" :value="status.value">
{{ status.desc }}
</a-select-option>
</a-select>
<a-form-item label="执业机构审核时间" v-if="isCtoRole || isFirmRole" class="smart-query-form-item">
<a-range-picker style="width: 240px" v-model:value="queryForm.firmAuditTimeRange" placeholder="" />
</a-form-item>
<a-form-item class="smart-query-form-item smart-margin-left10">
<a-button type="primary" @click="onSearch">
@ -269,7 +251,7 @@ import TableOperator from '/@/components/support/table-operator/index.vue';
import ServiceApplicationsForm from './service-applications-form.vue';
import DepartmentTreeSelect from '/@/components/system/department-tree-select/index.vue';
import { employeeApi } from '/@/api/system/employee-api';
import { REVIEW_ENUM } from '/@/constants/system/review-const';
import { REVIEW_ENUM,SERVICEC_REVIEW_ENUM } from '/@/constants/system/review-const';
import { PlusOutlined, DeleteOutlined, SendOutlined, ImportOutlined, ExportOutlined, DownloadOutlined, UploadOutlined, CheckCircleOutlined } from '@ant-design/icons-vue';
import { loginApi } from '/@/api/system/login-api';
import AgreementModal from '/@/views/system/home/components/agreement-modal.vue';

Loading…
Cancel
Save