diff --git a/collect_information/.env.development b/collect_information/.env.development index d7a068a..4e393f7 100644 --- a/collect_information/.env.development +++ b/collect_information/.env.development @@ -1,7 +1,7 @@ # 配置文档参考 https://taro-docs.jd.com/docs/next/env-mode-config TARO_APP_ID="wx0acd1c4fcf94bdd3" -TARO_APP_BASE_API="http://172.10.10.93:8765" -# TARO_APP_BASE_API="https://www.hnjinglian.cn:5678" +# TARO_APP_BASE_API="http://172.10.10.93:8765" +TARO_APP_BASE_API="https://www.hnjinglian.cn:5678" diff --git a/collect_information/src/subPages/police/dailyInspection/dailyInspection.vue b/collect_information/src/subPages/police/dailyInspection/dailyInspection.vue index 2e59cc7..5d3a5d0 100644 --- a/collect_information/src/subPages/police/dailyInspection/dailyInspection.vue +++ b/collect_information/src/subPages/police/dailyInspection/dailyInspection.vue @@ -114,7 +114,7 @@ import { ref, computed, reactive, watch } from 'vue' import api from '@/request/index' import { useDailyStore } from '@/store/daily' -const picker_search = ref() +// const picker_search = ref() const starRating = ref([]) const store = useDailyStore() const daily = computed(() => store.getdailyinspection) @@ -166,7 +166,7 @@ const assessmentCriteriaRulesByCkProjectId = async function (ckProjectId) { // title: '加载中...', // mask: true, // }) - const res = await api.get(`/m2/sa/assessmentCriteriaRulesByCkProjectId`, { ckProjectId }) + const res = await api.get(`/mp/sa/assessmentCriteriaRulesByCkProjectId`, { ckProjectId }) res.data?.forEach((item) => { item.currentScore = 0 @@ -203,7 +203,7 @@ const assessmentCriteriaRulesByCkProjectId = async function (ckProjectId) { const selectorCheckedType = ref('') const selectorType = ref() const ckProjectListByType = async function (type) { - const res = await api.get(`/m2/sa/ckProjectListByType`, { type }) + const res = await api.get(`/mp/sa/ckProjectListByType`, { type }) console.log(res.data) if (res.data?.length === 0) { @@ -229,18 +229,18 @@ const onChangeType = function (e: any) { const selector = ref() const selectorCopy = ref() -const selectorChecked = ref('') -const onChange = function (e: any) { - try { - let index = Number(e.detail.value) - selectorChecked.value = selector.value?.[index].label as string - let type = selector.value?.[index].extData.type.value - ckProjectListByType(type) - _form.enterprisesUnitId = selector.value?.[index].value as string - } catch (error) { - console.log('🚀 ~ onChange ~ error:', error) - } -} +// const selectorChecked = ref('') +// const onChange = function (e: any) { +// try { +// let index = Number(e.detail.value) +// selectorChecked.value = selector.value?.[index].label as string +// let type = selector.value?.[index].extData.type.value +// ckProjectListByType(type) +// _form.enterprisesUnitId = selector.value?.[index].value as string +// } catch (error) { +// console.log('🚀 ~ onChange ~ error:', error) +// } +// } const getUnitEnterprisesUnitList = async function () { const res = await api.get(`/policeIndex/getUnitEnterprisesUnitList`) @@ -326,7 +326,7 @@ const onSubmit = async function () { } Object.assign(assessmentRecordParams, _form) assessmentRecordParams.assessmentRecordDetails = [...assessmentRecordDetails.value] - const result = await api.post('/m2/sa/submitAssessmentRecord', assessmentRecordParams) + const result = await api.post('/mp/sa/submitAssessmentRecord', assessmentRecordParams) clearData() //清空数据 if (result.code === 200) { diff --git a/collect_information/src/subPages/police/myEnterprisesUnit/projectDetails/projectDetails.vue b/collect_information/src/subPages/police/myEnterprisesUnit/projectDetails/projectDetails.vue index d71dd8a..01dde51 100644 --- a/collect_information/src/subPages/police/myEnterprisesUnit/projectDetails/projectDetails.vue +++ b/collect_information/src/subPages/police/myEnterprisesUnit/projectDetails/projectDetails.vue @@ -111,7 +111,7 @@ const projectDetailsTable = async () => { current: current.value, }, } - const resp = await api.post>('/miniProgramUser/securityUserPager', queryParams) + const resp = await api.post>('/mp/user/securityUserPager', queryParams) securityUserList.value = [...securityUserList.value, ...resp.data!.records] total.value = resp.data!.total isRefresher.value = false diff --git a/policeManagement/src/global.d.ts b/policeManagement/src/global.d.ts index cee3553..352bfeb 100644 --- a/policeManagement/src/global.d.ts +++ b/policeManagement/src/global.d.ts @@ -97,6 +97,9 @@ interface OptionsResponse { DeleteFlag: Option[]; } - +interface TypeEnum { + value: string; + label: string +} diff --git a/policeManagement/src/types/views/serviceManagement.ts b/policeManagement/src/types/views/serviceManagement.ts new file mode 100644 index 0000000..05aa507 --- /dev/null +++ b/policeManagement/src/types/views/serviceManagement.ts @@ -0,0 +1,24 @@ +import { BaseTableRowRecord } from "@/types/components/table"; + +export interface serviceProjectSaveOrUpdateParams_ extends BaseTableRowRecord { + snowFlakeId: string + enterprisesUnitId: string, + enterprisesUnitName: string, + projectManagerMiniProgramUserId: string, + projectManagerMiniProgramUserName: string, + name: string, + type: TypeEnum, + twoType: BaseEnum, + outsourceName: string, + isFiling: BaseEnum, + idNumber: string, + serviceArea: number, + buildingTotal: number, + houseTotal: number, + staffTotal: number, + securityUserTotal: number, + remark: string, + createUserName: string, + createTime: string, + enterprisesUnitAdministrativeDivisionCodes: Record +} diff --git a/policeManagement/src/views/query/publicUnit.vue b/policeManagement/src/views/query/publicUnit.vue index af77f39..9ad450f 100644 --- a/policeManagement/src/views/query/publicUnit.vue +++ b/policeManagement/src/views/query/publicUnit.vue @@ -1,12 +1,24 @@ @@ -18,7 +30,7 @@ import { AutoComplete, Button, Input, message, Modal, Space } from 'ant-design-v import { debounce } from 'lodash-es' import FormProMax from '@/components/form/FormProMax.vue' import api from '@/axios' -import { ref, reactive } from 'vue' +import { ref, reactive, computed, onMounted } from 'vue' import TableProMax from '@/components/table/TableProMax.vue' import { TableProMaxProps } from '@/types/components/table/index.ts' import { ComponentExposed } from 'vue-component-type-helpers' @@ -26,13 +38,13 @@ import { dictSelectNodes } from '@/config/dict.ts' import { publicUnitPagerQueryParams } from '@/types/views/publicUnit.ts' import { FormProMaxItemOptions } from '@/types/components/form//index.ts' import { FormExpose } from 'ant-design-vue/es/form/Form' +import { serviceProjectSaveOrUpdateParams_ } from '@/types/views/serviceManagement' type _FormType = EnterprisesUnitSaveOrUpdateParams & { contactPersonInfoName?: string contactPersonInfoTelephone?: string } type TableProps = TableProMaxProps -// const reqApi: TableProps['requestApi'] = (params) => api.post('/enterprisesUnit/pager', params) //分页 const reqApi: TableProps['requestApi'] = (params) => api.post('/eu/pager', params) //分页 const tableRef = ref>(null) const columns: TableProps['columns'] = [ @@ -162,8 +174,6 @@ const saveOrUpdateEnterprisesUnit = (params: _FormType, callback: Function) => { initMarker(_mapRef.value?.mapInstance) }} onSearch={debounce((val: string) => { - console.log('onSearch___________________', val) - //@ts-ignore const auto = new AMap.AutoComplete({ city: city, @@ -171,7 +181,6 @@ const saveOrUpdateEnterprisesUnit = (params: _FormType, callback: Function) => { citylimit: true, }) auto.search(val, (status, result) => { - console.log('🚀 ~ auto.search ~ status, result:', status, result) if (status === 'complete') { // 生成组件需要数据 autoAddress.value = result.tips?.map((e) => { @@ -281,7 +290,7 @@ const saveOrUpdateEnterprisesUnit = (params: _FormType, callback: Function) => { content: () => , onOk: async () => { await _formRef.value?.validate() - // const resp = await api.post('/enterprisesUnit/saveOrUpdate', { + const resp = await api.post('/eu/add_upd', { ..._formParams.value, contactPersonInfo: { @@ -292,7 +301,6 @@ const saveOrUpdateEnterprisesUnit = (params: _FormType, callback: Function) => { message.success(resp.message) await tableRef.value?.requestGetTableData() - // reqApi(params) callback && callback() }, }) @@ -313,4 +321,347 @@ const searchFormOptions = reactive({ label: '手机号', }, }) +type _TableProps = TableProMaxProps +const isRecruitSecurityHidden = ref(false) +const visible = ref(false) +const serviceTitle = ref('新增服务项目') +const idNumberDisabled = ref(true) +const formRef = ref(null) +const enterprisesUnitId = ref('') +const netType = computed(() => { + //@ts-ignore + return formParams.value.type === 'security' ? dictSelectNodes('ServiceProjectTwoType') : dictSelectNodes('UserType' as any) +}) +const formParams = ref<{ + snowFlakeId?: string + enterprisesUnitId: string + securityUnitId: string + administrativeDivisionCodes?: null + projectManagerMiniProgramUserId?: string + projectManagerMiniProgramUserName?: string + name: string + type: string + twoType?: number + outsourceName?: string + isFiling?: number + idNumber?: string + serviceArea?: number + buildingTotal?: number + houseTotal?: number + staffTotal?: number + securityUserTotal?: number + remark?: string +}>({ + name: '', + enterprisesUnitId: null, + type: 'security', + securityUnitId: null, +}) +const securityUnitIdList = ref([]) +const formItemOptions = ref>({ + name: { + type: 'input', + label: '服务项目名称', + required: true, + }, + + securityUnitId: { + type: 'select', + label: '保安单位', + required: true, + options: securityUnitIdList, + }, + type: { + type: 'radioGroup', + label: '服务类型', + //@ts-ignore + options: dictSelectNodes('ServiceProjectType'), + required: true, + componentsProps: { + onChange: (e) => { + if (e.target?.value === 'security') { + isRecruitSecurityHidden.value = false + formParams.value.twoType = null + } else { + formParams.value.twoType = null + isRecruitSecurityHidden.value = true + } + }, + }, + }, + twoType: { + required: true, + type: 'radioGroup', + label: '二级类型', + options: netType, + componentsProps: { + onChange: (e) => { + if (e.target.value !== 'outsource') { + idNumberDisabled.value = true + formParams.value.outsourceName = '' + } else { + idNumberDisabled.value = false + } + }, + }, + }, + outsourceName: { + type: 'input', + label: '外包公司名称', + hidden: idNumberDisabled as any, + }, + isFiling: { + required: true, + type: 'radioGroup', + label: '是否备案', + options: dictSelectNodes('IsOrNot'), + }, + idNumber: { + type: 'input', + label: '保安服务许可证', + }, + serviceArea: { + type: 'inputNumber', + label: '服务区域面积', + }, + buildingTotal: { + type: 'inputNumber', + label: '楼栋数量', + componentsProps: { + formatter: (value: any) => { + return Math.round(value) ? Math.round(value) : ('' as any) + }, + min: 0, + }, + }, + houseTotal: { + type: 'inputNumber', + label: '户数', + componentsProps: { + formatter: (value: any) => { + return Math.round(value) ? Math.round(value) : ('' as any) + }, + min: 0, + }, + }, + staffTotal: { + type: 'inputNumber', + label: '工作人员数量', + componentsProps: { + formatter: (value: any) => { + return Math.round(value) ? Math.round(value) : ('' as any) + }, + min: 0, + }, + }, + securityUserTotal: { + type: 'inputNumber', + label: '保安人员数量', + componentsProps: { + formatter: (value: any) => { + return Math.round(value) ? Math.round(value) : ('' as any) + }, + min: 0, + }, + }, + remark: { + type: 'inputTextArea', + label: '备注', + }, +}) + +const _tableRef = ref>(null) +const expandedRowRender: TableProMaxProps['expandedRowRender'] = ({ record }) => { + const _columns: _TableProps['columns'] = [ + { + dataIndex: 'name', + title: '服务项目名称', + }, + { + dataIndex: 'type', + title: '服务类型', + customRender: ({ text }) => {text?.label}, + }, + { + dataIndex: 'twoType', + title: '二级类型', + customRender: ({ text }) => {text?.label}, + }, + { + dataIndex: 'outsourceName', + title: '外包公司名称', + customRender: ({ record }) => { + if (record.twoType.value === 'outsource') { + return record.outsourceName + } + }, + }, + { + dataIndex: 'isFiling', + title: '是否备案', + customRender: ({ text }) => {text?.label}, + }, + { + dataIndex: 'idNumber', + title: '保安服务许可证', + }, + + { + dataIndex: 'serviceArea', + title: '服务区域面积', + }, + { + dataIndex: 'buildingTotal', + title: '楼栋数量', + }, + + { + dataIndex: 'houseTotal', + title: '户数', + }, + { + dataIndex: 'staffTotal', + title: '工作人员数量', + }, + { + dataIndex: 'securityUserTotal', + title: '保安人员数量', + }, + { + dataIndex: 'remark', + title: '备注', + }, + { + dataIndex: 'createUserInfo', + title: '创建人', + customRender: ({ record }) => { + return ( +
+

创建人:{record.createUserInfo.name}

+ +

创建人单位:{record.createUserInfo.unitName}

+
+ ) + }, + }, + { + dataIndex: 'createTime', + title: '创建时间', + }, + { + dataIndex: 'opt', + title: '操作', + fixed: 'right', + + customRender({ record }) { + return ( + + { + visible.value = true + serviceTitle.value = '编辑服务项目' + idNumberDisabled.value = record.twoType.value !== 'outsource' + formParams.value.securityUnitId = record.securityUnitId //企事业单位id + formParams.value.enterprisesUnitId = record.enterprisesUnitId //企事业单位id + formParams.value.snowFlakeId = record.snowFlakeId //id + formParams.value.projectManagerMiniProgramUserId = record.projectManagerMiniProgramUserId //项目经理小程序用户id + formParams.value.name = record.name + formParams.value.type = record.type.value //服务类型 + formParams.value.twoType = record.twoType.value //二级类型 + formParams.value.outsourceName = record.outsourceName //外包公司名称 + formParams.value.isFiling = record.isFiling.value //是否备案 + formParams.value.remark = record.remark //备注 + formParams.value.idNumber = record.idNumber //证件号(保安服务许可证/备案证 + formParams.value.serviceArea = record.serviceArea //服务区域面积 + formParams.value.buildingTotal = record.buildingTotal //楼栋数量 + formParams.value.houseTotal = record.houseTotal //户数 + formParams.value.staffTotal = record.staffTotal //工作人员数量 + formParams.value.securityUserTotal = record.securityUserTotal //保安人员数量 + }} + > + 编辑 + + { + const resp = await api.delete('/m2/eu/deleteSpById', { + serviceProjectId: record.snowFlakeId, + }) + message.success(resp.message) + await _tableRef.value?.requestGetTableData() + }} + > + 删除 + + + ) + }, + }, + ] + const _reqApi: _TableProps['requestApi'] = async () => { + // @ts-ignore + return await api.get('/m2/eu/listSp', { enterprisesUnitId: record?.snowFlakeId }) + } + return ( + { + return ( + + + + ) + }, + }} + /> + ) +} + +const closeModal = async () => { + visible.value = false + formParams.value = { + securityUnitId: '', + enterprisesUnitId: '', + administrativeDivisionCodes: '', + name: '', + type: 'security', + idNumber: '', + serviceArea: null, + buildingTotal: null, + houseTotal: null, + staffTotal: null, + securityUserTotal: null, + remark: '', + } + formRef.value.resetFields() + enterprisesUnitId.value = '' + serviceTitle.value = '新增服务项目' + idNumberDisabled.value = false +} + +const submit = async () => { + await formRef.value.validate() + const serviceProjectSaveOrUpdateParams = { ...formParams.value } + const resp = await api.post('/m2/eu/add_upd_sp', serviceProjectSaveOrUpdateParams) + message.success(resp.message) + await _tableRef.value.requestGetTableData() + await closeModal() +} + +onMounted(async () => { + const res = await api.get('/management/listSecurityUnit') + securityUnitIdList.value = res.data +}) +const addService = function (record) { + formParams.value.enterprisesUnitId = record.snowFlakeId //企事业单位Id + visible.value = true +} diff --git a/securityManagement/src/views/login.vue b/securityManagement/src/views/login.vue index b2cabb2..fc4cdc6 100644 --- a/securityManagement/src/views/login.vue +++ b/securityManagement/src/views/login.vue @@ -2,13 +2,13 @@
Logo -
超级后台
+
保安后台