录入界面0.1
This commit is contained in:
parent
b2881fe530
commit
b765e16294
@ -46,8 +46,7 @@ declare namespace Api {
|
||||
custPhoneNo: string;
|
||||
/** 磁条卡更换登记id */
|
||||
magneticCardId: CommonType.IdType;
|
||||
magneticCardList: [];
|
||||
/** 综合收单商户名 */
|
||||
magneticCardList: { oldCardNo: string; newCardNo: string }[]; /** 综合收单商户名 */
|
||||
acquiringName: string;
|
||||
/** 综合收单商户号 */
|
||||
acquiringId: CommonType.IdType;
|
||||
@ -55,7 +54,7 @@ declare namespace Api {
|
||||
internetChannel: string;
|
||||
/** 交警处罚决定书 */
|
||||
trafficId: CommonType.IdType;
|
||||
trafficList: [];
|
||||
trafficList: { trafficNo: string; trafficAmt: number }[];
|
||||
/** 职工所属单位 */
|
||||
workplace: string;
|
||||
/** 公积金缴纳账户名称 */
|
||||
|
@ -74,6 +74,7 @@ declare module 'vue' {
|
||||
NButton: typeof import('naive-ui')['NButton']
|
||||
NCard: typeof import('naive-ui')['NCard']
|
||||
NCheckbox: typeof import('naive-ui')['NCheckbox']
|
||||
NCheckboxGroup: typeof import('naive-ui')['NCheckboxGroup']
|
||||
NCode: typeof import('naive-ui')['NCode']
|
||||
NCollapse: typeof import('naive-ui')['NCollapse']
|
||||
NCollapseItem: typeof import('naive-ui')['NCollapseItem']
|
||||
@ -125,6 +126,7 @@ declare module 'vue' {
|
||||
NStatistic: typeof import('naive-ui')['NStatistic']
|
||||
NSwitch: typeof import('naive-ui')['NSwitch']
|
||||
NTab: typeof import('naive-ui')['NTab']
|
||||
NTable: typeof import('naive-ui')['NTable']
|
||||
NTabPane: typeof import('naive-ui')['NTabPane']
|
||||
NTabs: typeof import('naive-ui')['NTabs']
|
||||
NTag: typeof import('naive-ui')['NTag']
|
||||
|
@ -3,6 +3,7 @@ import { computed, reactive, watch } from 'vue';
|
||||
import { fetchCreateSubcategory, fetchUpdateSubcategory } from '@/service/api/business/subcategory';
|
||||
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
|
||||
import { $t } from '@/locales';
|
||||
import {useDict} from "@/hooks/business/dict";
|
||||
|
||||
defineOptions({
|
||||
name: 'SubcategoryOperateDrawer'
|
||||
@ -110,6 +111,8 @@ async function handleSubmit() {
|
||||
emit('submitted');
|
||||
}
|
||||
|
||||
useDict('sys_normal_disable');
|
||||
|
||||
watch(visible, () => {
|
||||
if (visible.value) {
|
||||
handleUpdateModelWhenEdit();
|
||||
@ -131,7 +134,7 @@ watch(visible, () => {
|
||||
<NFormItem label="业务子类名称" path="name">
|
||||
<NInput v-model:value="model.name" placeholder="请输入业务子类名称" />
|
||||
</NFormItem>
|
||||
<NFormItem :label="$t('page.system.user.status')" path="status">
|
||||
<NFormItem label="状态" path="status">
|
||||
<DictRadio v-model:value="model.status" dict-code="sys_normal_disable" />
|
||||
</NFormItem>
|
||||
<NFormItem label="计价规则说明" path="pricingRule">
|
||||
|
@ -1,6 +1,8 @@
|
||||
<script setup lang="tsx">
|
||||
import {onMounted,ref, watch} from "vue";
|
||||
import { NDivider } from 'naive-ui';
|
||||
import { fetchBatchDeleteMarket, fetchGetMarketList } from '@/service/api/mps/market';
|
||||
import { fetchGetSubcategorySelect } from '@/service/api/business/subcategory';
|
||||
import { useAppStore } from '@/store/modules/app';
|
||||
import { useAuth } from '@/hooks/business/auth';
|
||||
import { useDownload } from '@/hooks/business/download';
|
||||
@ -9,9 +11,9 @@ import { $t } from '@/locales';
|
||||
import ButtonIcon from '@/components/custom/button-icon.vue';
|
||||
import MarketOperateDrawer from './modules/market-operate-drawer.vue';
|
||||
import MarketSearch from './modules/market-search.vue';
|
||||
import {computed, ref, watch} from "vue";
|
||||
import {useBoolean} from "~/packages/hooks";
|
||||
import MarketImportModal from './modules/market-import-modal.vue';
|
||||
import {useBoolean,useLoading} from "~/packages/hooks";
|
||||
|
||||
defineOptions({
|
||||
name: 'MarketList'
|
||||
});
|
||||
@ -417,11 +419,32 @@ function handleImport() {
|
||||
function handleExport() {
|
||||
download('/mps/market/export', searchParams, `营销数据管理_${new Date().getTime()}.xlsx`);
|
||||
}
|
||||
//获取子类目下拉框
|
||||
const { startLoading, endLoading } = useLoading();
|
||||
|
||||
const subcategoryIdOptions = ref<CommonType.Option<CommonType.IdType>[]>([]);
|
||||
|
||||
onMounted(() => {
|
||||
getSubcategoryOptions();
|
||||
});
|
||||
|
||||
async function getSubcategoryOptions() {
|
||||
startLoading();
|
||||
const { error, data } = await fetchGetSubcategorySelect();
|
||||
|
||||
if (!error) {
|
||||
subcategoryIdOptions.value = data.map(item => ({
|
||||
label: item.name,
|
||||
value: item.id
|
||||
}));
|
||||
}
|
||||
endLoading();
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto">
|
||||
<MarketSearch v-model:model="searchParams" @reset="resetSearchParams" @search="getDataByPage" />
|
||||
<MarketSearch v-model:model="searchParams" :subcategoryId-options="subcategoryIdOptions" @reset="resetSearchParams" @search="getDataByPage" />
|
||||
<NCard title="营销数据管理列表" :bordered="false" size="small" class="sm:flex-1-hidden card-wrapper">
|
||||
<template #header-extra>
|
||||
<TableHeaderOperation
|
||||
@ -469,6 +492,7 @@ function handleExport() {
|
||||
v-model:visible="drawerVisible"
|
||||
:operate-type="operateType"
|
||||
:row-data="editingData"
|
||||
:subcategory-id-options="subcategoryIdOptions"
|
||||
@submitted="getDataByPage"
|
||||
/>
|
||||
</NCard>
|
||||
|
@ -7,6 +7,7 @@ import {fetchGetMuUserSelect} from "@/service/api/system";
|
||||
import {useLoading} from "~/packages/hooks";
|
||||
import {fetchGetSubcategorySelect} from "@/service/api/business/subcategory";
|
||||
import {useAuthStore} from "@/store/modules/auth";
|
||||
import {useDict} from "@/hooks/business/dict";
|
||||
|
||||
defineOptions({
|
||||
name: 'MarketOperateDrawer'
|
||||
@ -17,9 +18,13 @@ interface Props {
|
||||
operateType: NaiveUI.TableOperateType;
|
||||
/** the edit row data */
|
||||
rowData?: Api.Mps.Market | null;
|
||||
/** 业务类型选项 */
|
||||
subcategoryIdOptions?: CommonType.Option<CommonType.IdType>[];
|
||||
}
|
||||
|
||||
const props = defineProps<Props>();
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
subcategoryIdOptions: () => []
|
||||
});
|
||||
|
||||
interface Emits {
|
||||
(e: 'submitted'): void;
|
||||
@ -31,6 +36,7 @@ const visible = defineModel<boolean>('visible', {
|
||||
default: false
|
||||
});
|
||||
|
||||
const {options: mpsCheckStatusOptions} = useDict('mps_check_status');
|
||||
|
||||
const { formRef, validate, restoreValidation } = useNaiveForm();
|
||||
const { createRequiredRule } = useFormRules();
|
||||
@ -55,7 +61,7 @@ function createDefaultModel(): Model {
|
||||
jbName: '',
|
||||
yxId: '',
|
||||
jbId: '',
|
||||
date: undefined,
|
||||
date: null,
|
||||
deptName: '',
|
||||
deptId: undefined,
|
||||
custType: '',
|
||||
@ -68,7 +74,7 @@ function createDefaultModel(): Model {
|
||||
acquiringName: '',
|
||||
acquiringId: '',
|
||||
internetChannel: '',
|
||||
trafficId: undefined,
|
||||
trafficId: null,
|
||||
trafficList: [],
|
||||
workplace: '',
|
||||
surplusAccountName: '',
|
||||
@ -131,19 +137,20 @@ async function handleSubmit() {
|
||||
}
|
||||
|
||||
window.$message?.success($t('common.updateSuccess'));
|
||||
closeDrawer();
|
||||
// closeDrawer();
|
||||
emit('submitted');
|
||||
}
|
||||
/* ------------------------处理营销人员列表start------------------------------- */
|
||||
const { startLoading: startUserLoading, endLoading: endUserLoading } = useLoading();
|
||||
const operatorIdOptions = ref<CommonType.Option<CommonType.IdType>[]>([]);
|
||||
const subcategoryIdOptions = ref<CommonType.Option<CommonType.IdType>[]>([]);
|
||||
// const subcategoryIdOptions = ref<CommonType.Option<CommonType.IdType>[]>([]);
|
||||
// 添加控制营销人员输入框显示的变量
|
||||
const showMarketingFields = ref(false);
|
||||
const showCustFields = ref(false);
|
||||
|
||||
onMounted(() => {
|
||||
getoperatorIdOptions();
|
||||
getsubcategoryIdOptions()
|
||||
// getsubcategoryIdOptions()
|
||||
});
|
||||
|
||||
async function getoperatorIdOptions() {
|
||||
@ -158,18 +165,18 @@ async function getoperatorIdOptions() {
|
||||
}
|
||||
endUserLoading();
|
||||
}
|
||||
async function getsubcategoryIdOptions() {
|
||||
startUserLoading();
|
||||
const { error, data } = await fetchGetSubcategorySelect();
|
||||
|
||||
if (!error) {
|
||||
subcategoryIdOptions.value = data.map(item => ({
|
||||
label: item.name,
|
||||
value: item.id
|
||||
}));
|
||||
}
|
||||
endUserLoading();
|
||||
}
|
||||
// async function getsubcategoryIdOptions() {
|
||||
// startUserLoading();
|
||||
// const { error, data } = await fetchGetSubcategorySelect();
|
||||
//
|
||||
// if (!error) {
|
||||
// subcategoryIdOptions.value = data.map(item => ({
|
||||
// label: item.name,
|
||||
// value: item.id
|
||||
// }));
|
||||
// }
|
||||
// endUserLoading();
|
||||
// }
|
||||
function handleJbNameUpdate(value: string, option: CommonType.Option<CommonType.IdType>) {
|
||||
model.jbId = value;
|
||||
model.jbName = option.label;
|
||||
@ -192,7 +199,21 @@ watch(showMarketingFields, (newValue) => {
|
||||
}
|
||||
});
|
||||
|
||||
// 监听客户类型变化,当切换为对公时清空电话和身份证号
|
||||
watch(() => model.custType, (newVal) => {
|
||||
if (newVal === '2') {
|
||||
// 当客户类型为对公时,清空电话和身份证号
|
||||
showCustFields.value = false;
|
||||
model.custPhoneNo = '';
|
||||
model.custId = '';
|
||||
}
|
||||
if (newVal === '1') {
|
||||
showCustFields.value = true;
|
||||
}
|
||||
});
|
||||
|
||||
// 判断业务类型
|
||||
const isdisplaycustinfo = ref(false);
|
||||
const isdisplaymagneticCardList = ref(false);
|
||||
const isdisplayacquiringName = ref(false);
|
||||
const isdisplayacquiringId = ref(false);
|
||||
@ -205,6 +226,7 @@ const isdisplayheatingNo = ref(false);
|
||||
watch(() => model.subcategoryName, (newVal) => {
|
||||
switch (newVal) {
|
||||
case '公积金缴纳账户':
|
||||
isdisplaycustinfo.value = false;
|
||||
isdisplaymagneticCardList.value = false;
|
||||
isdisplayacquiringName.value = false;
|
||||
isdisplayacquiringId.value = false;
|
||||
@ -219,54 +241,120 @@ watch(() => model.subcategoryName, (newVal) => {
|
||||
model.custType = '';
|
||||
model.custAcctNo = '';
|
||||
model.custPhoneNo = '';
|
||||
model.acquiringName = '';
|
||||
model.acquiringId = '';
|
||||
model.internetChannel = '';
|
||||
model.trafficList = [];
|
||||
model.workplace = '';
|
||||
model.surplusAccountName = '';
|
||||
model.heatingNo = '';
|
||||
break;
|
||||
case '磁条卡更换金融IC卡':
|
||||
isdisplaycustinfo.value = true;
|
||||
isdisplaymagneticCardList.value = true;
|
||||
isdisplayacquiringName.value = false;
|
||||
isdisplayacquiringId.value = false;
|
||||
isdisplayinternetChannel.value = false;
|
||||
isdisplaytrafficList.value = false;
|
||||
isdisplayworkplace.value = false;
|
||||
isdisplaysurplusAccountName.value = true;
|
||||
isdisplaysurplusAccountName.value = false;
|
||||
isdisplayheatingNo.value = false;
|
||||
|
||||
model.custId='';
|
||||
model.custName = '';
|
||||
model.custType = '';
|
||||
model.custAcctNo = '';
|
||||
model.custPhoneNo = '';
|
||||
model.acquiringName = '';
|
||||
model.acquiringId = '';
|
||||
model.internetChannel = '';
|
||||
model.trafficList = [];
|
||||
model.workplace = '';
|
||||
model.surplusAccountName = '';
|
||||
model.heatingNo = '';
|
||||
break;
|
||||
case '代收交警罚没款':
|
||||
isdisplaycustinfo.value = true;
|
||||
isdisplaymagneticCardList.value = false;
|
||||
isdisplayacquiringName.value = false;
|
||||
isdisplayacquiringId.value = false;
|
||||
isdisplayinternetChannel.value = false;
|
||||
isdisplaytrafficList.value = true;
|
||||
isdisplayworkplace.value = false;
|
||||
isdisplaysurplusAccountName.value = false;
|
||||
isdisplayheatingNo.value = false;
|
||||
break;
|
||||
case '新增综合收单商户(首月)':
|
||||
isdisplaycustinfo.value = true;
|
||||
isdisplaymagneticCardList.value = false;
|
||||
isdisplayacquiringName.value = true;
|
||||
isdisplayacquiringId.value = true;
|
||||
isdisplayinternetChannel.value = false;
|
||||
isdisplaytrafficList.value = false;
|
||||
isdisplayworkplace.value = false;
|
||||
isdisplaysurplusAccountName.value = false;
|
||||
isdisplayheatingNo.value = false;
|
||||
break;
|
||||
case '网上支付客户':
|
||||
isdisplaycustinfo.value = true;
|
||||
isdisplaymagneticCardList.value = false;
|
||||
isdisplayacquiringName.value = false;
|
||||
isdisplayacquiringId.value = false;
|
||||
isdisplayinternetChannel.value = true;
|
||||
isdisplaytrafficList.value = false;
|
||||
isdisplayworkplace.value = false;
|
||||
isdisplaysurplusAccountName.value = false;
|
||||
isdisplayheatingNo.value = false;
|
||||
break;
|
||||
case '营销职工社保卡':
|
||||
isdisplaycustinfo.value = true;
|
||||
isdisplaymagneticCardList.value = false;
|
||||
isdisplayacquiringName.value = false;
|
||||
isdisplayacquiringId.value = false;
|
||||
isdisplayinternetChannel.value = false;
|
||||
isdisplaytrafficList.value = false;
|
||||
isdisplayworkplace.value = true;
|
||||
isdisplaysurplusAccountName.value = false;
|
||||
isdisplayheatingNo.value = false;
|
||||
break;
|
||||
case '取暖费':
|
||||
isdisplaycustinfo.value = true;
|
||||
isdisplaymagneticCardList.value = false;
|
||||
isdisplayacquiringName.value = false;
|
||||
isdisplayacquiringId.value = false;
|
||||
isdisplayinternetChannel.value = false;
|
||||
isdisplaytrafficList.value = false;
|
||||
isdisplayworkplace.value = false;
|
||||
isdisplaysurplusAccountName.value = false;
|
||||
isdisplayheatingNo.value = true;
|
||||
break;
|
||||
default:
|
||||
// 隐藏营销人员字段
|
||||
showMarketingFields.value = false;
|
||||
isdisplaycustinfo.value = true;
|
||||
isdisplaymagneticCardList.value = false;
|
||||
isdisplayacquiringName.value = false;
|
||||
isdisplayacquiringId.value = false;
|
||||
isdisplayinternetChannel.value = false;
|
||||
isdisplaytrafficList.value = false;
|
||||
isdisplayworkplace.value = false;
|
||||
isdisplaysurplusAccountName.value = false;
|
||||
isdisplayheatingNo.value = false;
|
||||
break;
|
||||
}
|
||||
if (newVal === '磁条卡更换金融IC卡') {
|
||||
// 清空除magneticCardId外的其他营销字段
|
||||
model.acquiringName = '';
|
||||
model.acquiringId = '';
|
||||
model.internetChannel = '';
|
||||
model.trafficId = undefined;
|
||||
model.workplace = '';
|
||||
model.surplusAccountName = '';
|
||||
model.heatingNo = '';
|
||||
}
|
||||
model.magneticCardList = [];
|
||||
model.acquiringName = '';
|
||||
model.acquiringId = '';
|
||||
model.internetChannel = '';
|
||||
model.trafficList = [];
|
||||
model.workplace = '';
|
||||
model.surplusAccountName = '';
|
||||
model.heatingNo = '';
|
||||
});
|
||||
|
||||
// 添加删除磁条卡项的方法
|
||||
function removeMagneticCardItem(index: number) {
|
||||
if (model.magneticCardList) {
|
||||
model.magneticCardList.splice(index, 1);
|
||||
}
|
||||
}
|
||||
function addMagneticCardItem() {
|
||||
if (!model.magneticCardList) {
|
||||
model.magneticCardList = [];
|
||||
}
|
||||
model.magneticCardList.push({ oldCardNo: '', newCardNo: '' });
|
||||
}
|
||||
// 添加删除交警处罚决定书的方法
|
||||
function removeTrafficItem(index: number) {
|
||||
if (model.trafficList) {
|
||||
model.trafficList.splice(index, 1);
|
||||
}
|
||||
}
|
||||
function addTrafficItem() {
|
||||
if (!model.trafficList) {
|
||||
model.trafficList = [];
|
||||
}
|
||||
model.trafficList.push({ trafficNo: '', trafficAmt: 0 });
|
||||
}
|
||||
|
||||
watch(visible, () => {
|
||||
if (visible.value) {
|
||||
handleUpdateModelWhenEdit();
|
||||
@ -360,8 +448,8 @@ watch(visible, () => {
|
||||
<NFormItem label="日期" path="date">
|
||||
<NDatePicker
|
||||
v-model:formatted-value="model.date"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
clearable
|
||||
/>
|
||||
</NFormItem>
|
||||
@ -375,7 +463,7 @@ watch(visible, () => {
|
||||
</div>
|
||||
|
||||
<!-- 客户信息部分 -->
|
||||
<div v-if="!isSurplusAccountType" class="form-section">
|
||||
<div v-if="isdisplaycustinfo" class="form-section">
|
||||
<NDivider class="section-divider">客户信息</NDivider>
|
||||
<n-grid :cols="24" :x-gap="24" responsive="screen">
|
||||
<n-grid-item :span="24">
|
||||
@ -406,7 +494,7 @@ watch(visible, () => {
|
||||
/>
|
||||
</NFormItem>
|
||||
</n-grid-item>
|
||||
<n-grid-item :span="12">
|
||||
<n-grid-item v-if="showCustFields" :span="12">
|
||||
<NFormItem label="客户联系电话:" path="custPhoneNo">
|
||||
<NInput
|
||||
v-model:value="model.custPhoneNo"
|
||||
@ -415,7 +503,7 @@ watch(visible, () => {
|
||||
/>
|
||||
</NFormItem>
|
||||
</n-grid-item>
|
||||
<n-grid-item :span="12">
|
||||
<n-grid-item v-if="showCustFields" :span="12">
|
||||
<NFormItem label="客户身份证号:" path="custId">
|
||||
<NInput
|
||||
v-model:value="model.custId"
|
||||
@ -427,33 +515,116 @@ watch(visible, () => {
|
||||
</n-grid>
|
||||
</div>
|
||||
<NDivider class="section-divider">营销信息</NDivider>
|
||||
<NFormItem label="磁条卡更换登记id" path="magneticCardId">
|
||||
<NInput v-model:value="model.magneticCardId" placeholder="请输入磁条卡更换登记id" />
|
||||
<NFormItem v-if="isdisplaymagneticCardList" label="磁条卡更换登记">
|
||||
<NTable :bordered="true" :single-line="false">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>老卡号</th>
|
||||
<th>新卡号</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in model.magneticCardList" :key="index">
|
||||
<td>
|
||||
<NInput
|
||||
v-model:value="item.oldCardNo"
|
||||
placeholder="请输入老卡号"
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<NInput
|
||||
v-model:value="item.newCardNo"
|
||||
placeholder="请输入新卡号"
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<NButton text type="error" @click="removeMagneticCardItem(index)">
|
||||
删除
|
||||
</NButton>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" style="text-align: center;">
|
||||
<NButton text type="primary" @click="addMagneticCardItem()" block>
|
||||
添加卡号
|
||||
</NButton>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</NTable>
|
||||
</NFormItem>
|
||||
<NFormItem label="综合收单商户名" path="acquiringName">
|
||||
<NFormItem v-if="isdisplayacquiringName" label="综合收单商户名" path="acquiringName">
|
||||
<NInput v-model:value="model.acquiringName" placeholder="请输入综合收单商户名" />
|
||||
</NFormItem>
|
||||
<NFormItem label="综合收单商户号" path="acquiringId">
|
||||
<NFormItem v-if="isdisplayacquiringId" label="综合收单商户号" path="acquiringId">
|
||||
<NInput v-model:value="model.acquiringId" placeholder="请输入综合收单商户号" />
|
||||
</NFormItem>
|
||||
<NFormItem label="网上支付开通渠道" path="internetChannel">
|
||||
<NInput v-model:value="model.internetChannel" placeholder="请输入网上支付开通渠道" />
|
||||
<NFormItem v-if="isdisplayinternetChannel" label="网上支付开通渠道" path="internetChannel">
|
||||
<NCheckboxGroup v-model:value="model.internetChannel">
|
||||
<NSpace>
|
||||
<NCheckbox value="微信">微信</NCheckbox>
|
||||
<NCheckbox value="支付宝">支付宝</NCheckbox>
|
||||
<NCheckbox value="京东">京东</NCheckbox>
|
||||
<NCheckbox value="美团">美团</NCheckbox>
|
||||
<NCheckbox value="抖音">抖音</NCheckbox>
|
||||
<NCheckbox value="拼多多">拼多多</NCheckbox>
|
||||
<NCheckbox value="其他">其他</NCheckbox>
|
||||
</NSpace>
|
||||
</NCheckboxGroup>
|
||||
</NFormItem>
|
||||
<NFormItem label="交警处罚决定书" path="trafficId">
|
||||
<NInput v-model:value="model.trafficId" placeholder="请输入交警处罚决定书" />
|
||||
<NFormItem v-if="isdisplaytrafficList" label="交警处罚决定书">
|
||||
<NTable :bordered="true" :single-line="false">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>决定书编号</th>
|
||||
<th>处罚金额</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in model.trafficList || []" :key="index">
|
||||
<td>
|
||||
<NInput
|
||||
v-model:value="item.trafficNo"
|
||||
placeholder="请输入决定书编号"
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<NInputNumber
|
||||
v-model:value="item.trafficAmt"
|
||||
placeholder="请输入处罚金额"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<NButton text type="error" @click="removeTrafficItem(index)">
|
||||
删除
|
||||
</NButton>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" style="text-align: center;">
|
||||
<NButton text type="primary" @click="addTrafficItem()" block>
|
||||
添加决定书
|
||||
</NButton>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</NTable>
|
||||
</NFormItem>
|
||||
<NFormItem label="职工所属单位" path="workplace">
|
||||
<NFormItem v-if="isdisplayworkplace" label="职工所属单位" path="workplace">
|
||||
<NInput v-model:value="model.workplace" placeholder="请输入职工所属单位" />
|
||||
</NFormItem>
|
||||
<NFormItem label="公积金缴纳账户名称" path="surplusAccountName">
|
||||
<NFormItem v-if="isdisplaysurplusAccountName" label="公积金缴纳账户名称" path="surplusAccountName">
|
||||
<NInput v-model:value="model.surplusAccountName" placeholder="请输入公积金缴纳账户名称" />
|
||||
</NFormItem>
|
||||
<NFormItem label="取暖费户号" path="heatingNo">
|
||||
<NFormItem v-if="isdisplayheatingNo" label="取暖费户号" path="heatingNo">
|
||||
<NInput v-model:value="model.heatingNo" placeholder="请输入取暖费户号" />
|
||||
</NFormItem>
|
||||
<NDivider class="section-divider">核对信息</NDivider>
|
||||
<NFormItem label="核对标志(0未核对 1核对通过 9核对失败)" path="checkFlag">
|
||||
<NInput v-model:value="model.checkFlag" placeholder="请输入核对标志(0未核对 1核对通过 9核对失败)" />
|
||||
<NFormItem label="核对状态" path="checkFlag">
|
||||
<NSelect v-model:value="model.checkFlag" :options="mpsCheckStatusOptions" placeholder="请选择核对状态" />
|
||||
</NFormItem>
|
||||
<NFormItem label="核对时间" path="checkTime">
|
||||
<NDatePicker
|
||||
@ -475,8 +646,8 @@ watch(visible, () => {
|
||||
</NForm>
|
||||
<template #footer>
|
||||
<NSpace :size="16">
|
||||
<NButton @click="closeDrawer">{{ $t('common.cancel') }}</NButton>
|
||||
<NButton type="primary" @click="handleSubmit">{{ $t('common.confirm') }}</NButton>
|
||||
<NButton type="error" @click="closeDrawer">{{ $t('common.close') }}</NButton>
|
||||
<NButton type="primary" @click="handleSubmit">{{ $t('common.save') }}</NButton>
|
||||
</NSpace>
|
||||
</template>
|
||||
</NDrawerContent>
|
||||
|
@ -2,11 +2,21 @@
|
||||
import { ref } from 'vue';
|
||||
import { useNaiveForm } from '@/hooks/common/form';
|
||||
import { $t } from '@/locales';
|
||||
import {useDict} from "@/hooks/business/dict";
|
||||
|
||||
defineOptions({
|
||||
name: 'MarketSearch'
|
||||
});
|
||||
|
||||
interface Props {
|
||||
/** 业务类型选项 */
|
||||
subcategoryIdOptions?: CommonType.Option<CommonType.IdType>[];
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
subcategoryIdOptions: () => []
|
||||
});
|
||||
|
||||
interface Emits {
|
||||
(e: 'reset'): void;
|
||||
(e: 'search'): void;
|
||||
@ -16,6 +26,7 @@ const emit = defineEmits<Emits>();
|
||||
|
||||
const { formRef, validate, restoreValidation } = useNaiveForm();
|
||||
|
||||
const {options: mpsCheckStatusOptions} = useDict('mps_check_status');
|
||||
|
||||
const model = defineModel<Api.Mps.MarketSearchParams>('model', { required: true });
|
||||
|
||||
@ -38,107 +49,109 @@ async function search() {
|
||||
<NCollapseItem :title="$t('common.search')" name="user-search">
|
||||
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
||||
<NGrid responsive="screen" item-responsive>
|
||||
<NFormItemGi span="24 s:12 m:6" label="业务类型id" path="subcategoryId" class="pr-24px">
|
||||
<NInput v-model:value="model.subcategoryId" placeholder="请输入业务类型id" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="业务类型名称" path="subcategoryName" class="pr-24px">
|
||||
<NInput v-model:value="model.subcategoryName" placeholder="请输入业务类型名称" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="营销人员名称" path="yxName" class="pr-24px">
|
||||
<NInput v-model:value="model.yxName" placeholder="请输入营销人员名称" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="经办人员名称" path="jbName" class="pr-24px">
|
||||
<NInput v-model:value="model.jbName" placeholder="请输入经办人员名称" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="营销人员营销号" path="yxId" class="pr-24px">
|
||||
<NInput v-model:value="model.yxId" placeholder="请输入营销人员营销号" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="经办人员营销号" path="jbId" class="pr-24px">
|
||||
<NInput v-model:value="model.jbId" placeholder="请输入经办人员营销号" />
|
||||
<NFormItemGi span="24 s:12 m:8" label="业务类型名称" path="subcategoryName" class="pr-24px">
|
||||
<NSelect
|
||||
v-model:value="model.subcategoryName"
|
||||
filterable
|
||||
placeholder="选择业务类型"
|
||||
:options="subcategoryIdOptions"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="营销人员名称" path="yxName" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.yxName" placeholder="请输入营销人员名称" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="经办人员名称" path="jbName" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.jbName" placeholder="请输入经办人员名称" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="营销人员营销号" path="yxId" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.yxId" placeholder="请输入营销人员营销号" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="经办人员营销号" path="jbId" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.jbId" placeholder="请输入经办人员营销号" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<NFormItemGi span="24 s:12 m:6" label="数据日期" path="date" class="pr-24px">
|
||||
<NDatePicker
|
||||
v-model:formatted-value="model.date"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
clearable
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="部门名称" path="deptName" class="pr-24px">
|
||||
<NInput v-model:value="model.deptName" placeholder="请输入部门名称" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="部门id" path="deptId" class="pr-24px">
|
||||
<NInput v-model:value="model.deptId" placeholder="请输入部门id" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="客户类型(1-个人,2-对公)" path="custType" class="pr-24px">
|
||||
<NSelect
|
||||
v-model:value="model.custType"
|
||||
placeholder="请选择客户类型(1-个人,2-对公)"
|
||||
:options="[]"
|
||||
clearable
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="客户身份证号" path="custId" class="pr-24px">
|
||||
<NInput v-model:value="model.custId" placeholder="请输入客户身份证号" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="客户姓名" path="custName" class="pr-24px">
|
||||
<NInput v-model:value="model.custName" placeholder="请输入客户姓名" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="客户账号/卡号" path="custAcctNo" class="pr-24px">
|
||||
<NInput v-model:value="model.custAcctNo" placeholder="请输入客户账号/卡号" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="客户联系电话" path="custPhoneNo" class="pr-24px">
|
||||
<NInput v-model:value="model.custPhoneNo" placeholder="请输入客户联系电话" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="磁条卡更换登记id" path="magneticCardId" class="pr-24px">
|
||||
<NInput v-model:value="model.magneticCardId" placeholder="请输入磁条卡更换登记id" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="综合收单商户名" path="acquiringName" class="pr-24px">
|
||||
<NInput v-model:value="model.acquiringName" placeholder="请输入综合收单商户名" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="综合收单商户号" path="acquiringId" class="pr-24px">
|
||||
<NInput v-model:value="model.acquiringId" placeholder="请输入综合收单商户号" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="网上支付开通渠道" path="internetChannel" class="pr-24px">
|
||||
<NInput v-model:value="model.internetChannel" placeholder="请输入网上支付开通渠道" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="交警处罚决定书" path="trafficId" class="pr-24px">
|
||||
<NInput v-model:value="model.trafficId" placeholder="请输入交警处罚决定书" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="职工所属单位" path="workplace" class="pr-24px">
|
||||
<NInput v-model:value="model.workplace" placeholder="请输入职工所属单位" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="公积金缴纳账户名称" path="surplusAccountName" class="pr-24px">
|
||||
<NInput v-model:value="model.surplusAccountName" placeholder="请输入公积金缴纳账户名称" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="取暖费户号" path="heatingNo" class="pr-24px">
|
||||
<NInput v-model:value="model.heatingNo" placeholder="请输入取暖费户号" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="核对标志(0未核对 1核对通过 9核对失败)" path="checkFlag" class="pr-24px">
|
||||
<NInput v-model:value="model.checkFlag" placeholder="请输入核对标志(0未核对 1核对通过 9核对失败)" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="核对时间" path="checkTime" class="pr-24px">
|
||||
<NDatePicker
|
||||
v-model:formatted-value="model.checkTime"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
clearable
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="核对人员(人工核对时)" path="checkUser" class="pr-24px">
|
||||
<NInput v-model:value="model.checkUser" placeholder="请输入核对人员(人工核对时)" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="核对方式(0系统 1人工 2其他1 3其他2 4其他3)" path="checkType" class="pr-24px">
|
||||
<NSelect
|
||||
v-model:value="model.checkType"
|
||||
placeholder="请选择核对方式(0系统 1人工 2其他1 3其他2 4其他3)"
|
||||
:options="[]"
|
||||
clearable
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="24 s:12 m:6" label="核对结果" path="checkMsg" class="pr-24px">
|
||||
<NInput v-model:value="model.checkMsg" placeholder="请输入核对结果" />
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="部门名称" path="deptName" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.deptName" placeholder="请输入部门名称" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="部门id" path="deptId" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.deptId" placeholder="请输入部门id" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="客户类型(1-个人,2-对公)" path="custType" class="pr-24px">-->
|
||||
<!-- <NSelect-->
|
||||
<!-- v-model:value="model.custType"-->
|
||||
<!-- placeholder="请选择客户类型(1-个人,2-对公)"-->
|
||||
<!-- :options="[]"-->
|
||||
<!-- clearable-->
|
||||
<!-- />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="客户身份证号" path="custId" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.custId" placeholder="请输入客户身份证号" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="客户姓名" path="custName" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.custName" placeholder="请输入客户姓名" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="客户账号/卡号" path="custAcctNo" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.custAcctNo" placeholder="请输入客户账号/卡号" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="客户联系电话" path="custPhoneNo" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.custPhoneNo" placeholder="请输入客户联系电话" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="磁条卡更换登记id" path="magneticCardId" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.magneticCardId" placeholder="请输入磁条卡更换登记id" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="综合收单商户名" path="acquiringName" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.acquiringName" placeholder="请输入综合收单商户名" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="综合收单商户号" path="acquiringId" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.acquiringId" placeholder="请输入综合收单商户号" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="网上支付开通渠道" path="internetChannel" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.internetChannel" placeholder="请输入网上支付开通渠道" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="交警处罚决定书" path="trafficId" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.trafficId" placeholder="请输入交警处罚决定书" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="职工所属单位" path="workplace" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.workplace" placeholder="请输入职工所属单位" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="公积金缴纳账户名称" path="surplusAccountName" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.surplusAccountName" placeholder="请输入公积金缴纳账户名称" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="取暖费户号" path="heatingNo" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.heatingNo" placeholder="请输入取暖费户号" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<NFormItemGi span="24 s:12 m:8" label="核对标志" path="checkFlag" class="pr-24px">
|
||||
<NSelect v-model:value="model.checkFlag" :options="mpsCheckStatusOptions" placeholder="请选择核对状态" />
|
||||
</NFormItemGi>
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="核对时间" path="checkTime" class="pr-24px">-->
|
||||
<!-- <NDatePicker-->
|
||||
<!-- v-model:formatted-value="model.checkTime"-->
|
||||
<!-- type="datetime"-->
|
||||
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
|
||||
<!-- clearable-->
|
||||
<!-- />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="核对人员(人工核对时)" path="checkUser" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.checkUser" placeholder="请输入核对人员(人工核对时)" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="核对方式(0系统 1人工 2其他1 3其他2 4其他3)" path="checkType" class="pr-24px">-->
|
||||
<!-- <NSelect-->
|
||||
<!-- v-model:value="model.checkType"-->
|
||||
<!-- placeholder="请选择核对方式(0系统 1人工 2其他1 3其他2 4其他3)"-->
|
||||
<!-- :options="[]"-->
|
||||
<!-- clearable-->
|
||||
<!-- />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<!-- <NFormItemGi span="24 s:12 m:6" label="核对结果" path="checkMsg" class="pr-24px">-->
|
||||
<!-- <NInput v-model:value="model.checkMsg" placeholder="请输入核对结果" />-->
|
||||
<!-- </NFormItemGi>-->
|
||||
<NFormItemGi span="24" class="pr-24px">
|
||||
<NSpace class="w-full" justify="end">
|
||||
<NButton @click="reset">
|
||||
|
@ -33,7 +33,6 @@ public class BusinessSubcategoryBo extends BaseEntity {
|
||||
/**
|
||||
* 业务类型ID
|
||||
*/
|
||||
@NotNull(message = "业务类型ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String typeId;
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user