Merge remote-tracking branch 'origin/main'

This commit is contained in:
luozhun 2024-12-19 14:15:42 +08:00
commit b086e5a49f
16 changed files with 66 additions and 50 deletions

View File

@ -71,7 +71,7 @@
<nut-dialog content="详情" v-model:visible="visible" @ok="onOk" @cancel="cancel"> <nut-dialog content="详情" v-model:visible="visible" @ok="onOk" @cancel="cancel">
<slot> <slot>
<view style="margin-bottom: 5px"> <view style="margin-bottom: 5px">
<view>姓名{{ securityNumberByIdCard?.name ? securityNumberByIdCard?.name : '无' }}</view> <view>姓名{{ securityNumberByIdCard.name ? securityNumberByIdCard.name : '无' }}</view>
<view>保安证件号{{ securityNumberByIdCard?.bayzh ? securityNumberByIdCard?.bayzh : '无' }}</view> <view>保安证件号{{ securityNumberByIdCard?.bayzh ? securityNumberByIdCard?.bayzh : '无' }}</view>
<view>身份证{{ securityNumberByIdCard?.sfzhm ? securityNumberByIdCard?.sfzhm : '无' }}</view> <view>身份证{{ securityNumberByIdCard?.sfzhm ? securityNumberByIdCard?.sfzhm : '无' }}</view>
</view> </view>
@ -90,17 +90,17 @@ import dayjs from 'dayjs'
import { SecurityUserFormParams, securityNumberByIdCard } from '@/types/subPages/projectManager/securityUserForm' import { SecurityUserFormParams, securityNumberByIdCard } from '@/types/subPages/projectManager/securityUserForm'
import { FormInstance } from '@nutui/nutui-taro' import { FormInstance } from '@nutui/nutui-taro'
import { generateSimpleObjectName, getResignedObjectUrl } from '@/utils' import { generateSimpleObjectName, getResignedObjectUrl } from '@/utils'
import {IconFont} from "@nutui/icons-vue-taro";
const SEX = enumSelectNodes('Sex') const SEX:any = enumSelectNodes('Sex')
const minioBaseUrl = process.env.TARO_APP_MINIO_URL const minioBaseUrl = process.env.TARO_APP_MINIO_URL
const BUCKET = process.env.TARO_APP_MINIO_BUCKET
const showPicker = ref(false) const showPicker = ref(false)
const Url = ref('') const Url = ref('')
const type = ref<'formInput' | 'QcCodeInput'>(null!) const type = ref<'formInput' | 'QcCodeInput'>(null!)
const formData = ref<SecurityUserFormParams>({} as any) const formData = ref<SecurityUserFormParams>({} as any)
const formRef = ref<FormInstance>(null!) const formRef = ref<FormInstance>(null!)
const visible = ref<boolean>(false) const visible = ref<boolean>(false)
const securityNumberByIdCard = ref<securityNumberByIdCard>() const securityNumberByIdCard = ref<securityNumberByIdCard | any>()
const uploadRef = ref<any>(null) const uploadRef = ref<any>(null)
const modelValue = ref('') const modelValue = ref('')
@ -144,27 +144,32 @@ useLoad((options) => {
const idCardBlur = async (e: any, num: number) => { const idCardBlur = async (e: any, num: number) => {
const value = e.idCard const value = e.idCard
if (value) { if (value) {
Taro.request({ if(BUCKET === 'police-security-dev'){
url: 'https://www.hnjinglian.cn:5678/common/querySecurityNumberByIdCard', Taro.request({
data: { url: 'https://www.hnjinglian.cn:5678/common/querySecurityNumberByIdCard',
idCard: value, data: {
}, idCard: value,
method: 'GET', },
success: ({ data }) => { method: 'GET',
visible.value = true success: ({ data }) => {
securityNumberByIdCard.value = data.data console.log(data.data)
}, visible.value = true
}) securityNumberByIdCard.value = data.data
return },
})
}else{
const resp = await api.get('/common/querySecurityNumberByIdCard',{ idCard: value})
visible.value = true
securityNumberByIdCard.value = resp?.data
}
} else { } else {
visible.value = false visible.value = false
console.log(value)
} }
cardBlur(value, num) cardBlur(value, num)
} }
const cardBlur = (e, num) => { const cardBlur = (e:any, num:number) => {
let value = '' let value: string
if (num === 0) { if (num === 0) {
value = e value = e
} else { } else {

View File

@ -4,10 +4,10 @@ export interface SecurityUserFormParams {
serviceProjectId: string; serviceProjectId: string;
name: string | undefined; name: string | undefined;
workPost?: string; workPost?: string;
telephone: value | null; telephone: value | any;
sex: number; sex: number | any;
nativePlace?: string; nativePlace?: string;
idCard: value | null; idCard: value | any;
dateOfBirth?: Date | null; dateOfBirth?: Date | null;
securityNumber?: string; securityNumber?: string;
photo?:string; photo?:string;
@ -21,8 +21,8 @@ export interface value{
originalValue?:string originalValue?:string
} }
export interface securityNumberByIdCard{ export interface securityNumberByIdCard {
name: string | undefined name: string | undefined
bayzh?: string bayzh?: string | undefined
sfzhm?: string sfzhm?: string | undefined
} }

View File

@ -6,6 +6,7 @@ type DictType =
| 'IsEnable' | 'IsEnable'
| 'IsOrNot' | 'IsOrNot'
| 'Sex' | 'Sex'
| 'EducationLevel'
export const initEnums = () => { export const initEnums = () => {
api.get<Record<DictType, SelectNodeVo<any>[]>>('/common/enums').then(resp => { api.get<Record<DictType, SelectNodeVo<any>[]>>('/common/enums').then(resp => {

View File

@ -131,6 +131,7 @@ export interface securityUnitIdListParams {
securityNumber?: string; securityNumber?: string;
noSecurityNumberDesc?: string; noSecurityNumberDesc?: string;
homeAddress?: string; homeAddress?: string;
educationLevel?: string;
} }
export interface securityUnitIdListPagerVo { export interface securityUnitIdListPagerVo {
snowFlakeId?: string; snowFlakeId?: string;

View File

@ -2,12 +2,12 @@
<div class="root"> <div class="root">
<div class="header"> <div class="header">
<img src="@/assets/vue.svg" alt="Logo" height="33" width="33" /> <img src="@/assets/vue.svg" alt="Logo" height="33" width="33" />
<div class="logo-text">超级后台</div> <div class="logo-text">公安后台</div>
</div> </div>
<div class="container"> <div class="container">
<div class="left-banner"></div> <div class="left-banner"></div>
<div class="login-card"> <div class="login-card">
<div class="title">欢迎来到超级后台</div> <div class="title">欢迎来到公安后台</div>
<a-tabs class="account-tab" v-model:active-key="activeKey"> <a-tabs class="account-tab" v-model:active-key="activeKey">
<a-tab-pane :key="0" tab="账号登录"> <a-tab-pane :key="0" tab="账号登录">
<TelephoneLogin :account="account" :password="password" /> <TelephoneLogin :account="account" :password="password" />

View File

@ -34,6 +34,7 @@ const _formParams = reactive<securityUnitIdListParams>({
noSecurityNumberDesc: '', noSecurityNumberDesc: '',
homeAddress: '', homeAddress: '',
remark: '', remark: '',
educationLevel: '',
}) })
const cardBlur = () => { const cardBlur = () => {
let value = _formParams.idCard let value = _formParams.idCard
@ -87,6 +88,7 @@ const saveOrUpdateEnterprisesUnit = (callback: Function, params, type: string) =
_formParams.telephone = params.telephone.originalValue _formParams.telephone = params.telephone.originalValue
_formParams.workPost = params.workPost _formParams.workPost = params.workPost
_formParams.sex = params.sex.value _formParams.sex = params.sex.value
_formParams.educationLevel = params.educationLevel.value
_formParams.nativePlace = params.nativePlace _formParams.nativePlace = params.nativePlace
_formParams.idCard = params.idCard.originalValue _formParams.idCard = params.idCard.originalValue
_formParams.dateOfBirth = params.dateOfBirth _formParams.dateOfBirth = params.dateOfBirth
@ -135,10 +137,18 @@ const saveOrUpdateEnterprisesUnit = (callback: Function, params, type: string) =
required: true, required: true,
options: [...dictSelectNodes('Sex')], options: [...dictSelectNodes('Sex')],
}, },
educationLevel: {
type: 'radioGroup',
label: '文化程度',
required: true,
options: [...dictSelectNodes('EducationLevel')],
},
securityNumber: { securityNumber: {
type: 'input', type: 'input',
label: '保安证号', label: '保安证号',
required: true, // required: true,
}, },
dateOfBirth: { dateOfBirth: {
type: 'datePicker', type: 'datePicker',
@ -207,6 +217,8 @@ const clearForm = () => {
_formParams.noSecurityNumberDesc = '' _formParams.noSecurityNumberDesc = ''
_formParams.homeAddress = '' _formParams.homeAddress = ''
_formParams.remark = '' _formParams.remark = ''
_formParams.educationLevel = ''
} }
export const showEnterprisesUnit = (record_) => { export const showEnterprisesUnit = (record_) => {
// console.log('🚀 ~ showEnterprisesUnit ~ record_:', record_) // console.log('🚀 ~ showEnterprisesUnit ~ record_:', record_)

View File

@ -96,6 +96,7 @@ const columns: TableProps['columns'] = [
}, },
{ {
dataIndex: 'remark', dataIndex: 'remark',
title: '备注',
width: 120, width: 120,
ellipsis: true, ellipsis: true,
}, },

View File

@ -1,4 +1,4 @@
VITE_APP_NAME=超级后台 VITE_APP_NAME=保安后台
VITE_APP_ENV=development VITE_APP_ENV=development
VITE_APP_PORT=1000 VITE_APP_PORT=1000
VITE_DROP_CONSOLE=false VITE_DROP_CONSOLE=false

View File

@ -1,4 +1,4 @@
VITE_APP_NAME=超级后台 VITE_APP_NAME=保安后台
VITE_APP_ENV=production VITE_APP_ENV=production
VITE_APP_PORT=1001 VITE_APP_PORT=1001
VITE_DROP_CONSOLE=true VITE_DROP_CONSOLE=true

View File

@ -1,6 +1,6 @@
{ {
"name": "supermanagement", "name": "securitymanagement",
"appName": "超级后台", "appName": "保安后台",
"private": true, "private": true,
"version": "1.0.0", "version": "1.0.0",
"type": "module", "type": "module",

View File

@ -258,6 +258,8 @@ const idNumberDisabled = ref<boolean>(true)
const netType = computed(() => { const netType = computed(() => {
return formParams.value.type === 'security' ? dictSelectNodes("ServiceProjectTwoType") : dictSelectNodes("UserType" as any) return formParams.value.type === 'security' ? dictSelectNodes("ServiceProjectTwoType") : dictSelectNodes("UserType" as any)
}) })
const formItemOptions = ref<FormProMaxItemOptions<serviceProjectSaveOrUpdateParams>>({ const formItemOptions = ref<FormProMaxItemOptions<serviceProjectSaveOrUpdateParams>>({
name: { name: {
type: 'input', type: 'input',
@ -287,10 +289,14 @@ const formItemOptions = ref<FormProMaxItemOptions<serviceProjectSaveOrUpdatePara
required: true, required: true,
options:enterprisesUnitIdList, options:enterprisesUnitIdList,
componentsProps:{ componentsProps:{
allowClear:true, allowClear:true,
showSearch:true,
onChange:async (value:string)=>{ onChange:async (value:string)=>{
console.log(value) console.log(value)
enterprisesUnitId.value = value enterprisesUnitId.value = value
},
filterOption:(input: string, option: any)=>{
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
} }
} }
}, },

View File

@ -1,20 +1,10 @@
<template> <template>
<AdministrativeDivisionsTree v-model:value="value" :show-search="{ filter }" @change="searchAdministrativeDivisionTree"></AdministrativeDivisionsTree> <div >
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import AdministrativeDivisionsTree from "@/components/tree/AdministrativeDivisionsTree.vue";
import {ref} from "vue";
import {ShowSearchType} from "ant-design-vue/es/cascader";
const value = ref([ "110000", "110100", "110116", "110116005" ])
const filter: ShowSearchType['filter'] = (inputValue, path) => {
return path?.some(option => option.label.toLowerCase().indexOf(inputValue?.toLowerCase()) > -1);
};
const searchAdministrativeDivisionTree = (e:Array<string>)=>{
value.value = e as any
}
</script> </script>

View File

@ -1,4 +1,4 @@
VITE_APP_NAME=保安管理 VITE_APP_NAME=超级管理
VITE_APP_ENV=development VITE_APP_ENV=development
VITE_APP_PORT=1000 VITE_APP_PORT=1000
VITE_DROP_CONSOLE=false VITE_DROP_CONSOLE=false

View File

@ -1,4 +1,4 @@
VITE_APP_NAME=保安管理 VITE_APP_NAME=超级管理
VITE_APP_ENV=production VITE_APP_ENV=production
VITE_APP_PORT=1001 VITE_APP_PORT=1001
VITE_DROP_CONSOLE=true VITE_DROP_CONSOLE=true

View File

@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<script type="module" src="/src/assets/iconfont/iconfont.js"></script> <script type="module" src="/src/assets/iconfont/iconfont.js"></script>
<title>保安管理</title> <title>超级管理</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

View File

@ -1,6 +1,6 @@
{ {
"name": "super_management", "name": "super_management",
"appName": "保安管理", "appName": "超级管理后台",
"private": true, "private": true,
"version": "1.0.0", "version": "1.0.0",
"type": "module", "type": "module",