diff --git a/.env.dev b/.env.dev index 10dc3f5..0ae82ce 100644 --- a/.env.dev +++ b/.env.dev @@ -13,6 +13,7 @@ VITE_ROUTER_HISTORY=hash # api VITE_API_BASIC='http://10.10.1.39:8040' +VITE_API_UPLOAD='http://115.239.217.220:9458' VITE_API_HTTP=/api/v1/ # storage VITE_STORAGE_NAMESPACE = gin-admin_local_ \ No newline at end of file diff --git a/.env.pre b/.env.pre index 61289fe..e2ecae3 100644 --- a/.env.pre +++ b/.env.pre @@ -13,6 +13,6 @@ VITE_ROUTER_HISTORY=hash # api VITE_API_BASIC=/ VITE_API_HTTP=/api/v1/ - +VITE_API_UPLOAD='http://115.239.217.220:9458' # storage VITE_STORAGE_NAMESPACE=admin_pre_ diff --git a/.env.prod b/.env.prod index 7ddd3d8..fd2f4af 100644 --- a/.env.prod +++ b/.env.prod @@ -13,6 +13,6 @@ VITE_ROUTER_HISTORY=hash # api VITE_API_BASIC=/ VITE_API_HTTP=/api/v1/ - +VITE_API_UPLOAD='http://115.239.217.220:9458' # storage VITE_STORAGE_NAMESPACE=ginadmin_ diff --git a/src/apis/modules/common.js b/src/apis/modules/common.js index 1e9fa48..2092c50 100644 --- a/src/apis/modules/common.js +++ b/src/apis/modules/common.js @@ -1,5 +1,6 @@ import request from '@/utils/request' - +import axios from 'axios' +import { config } from '@/config' // 获取地区 export const getRegion = (params) => request.basic.get('/region', params) @@ -9,7 +10,12 @@ export const getDictByType = (type) => request.basic.get(`/api/v1/dictionaries?c export const getAreaList = (params) => request.basic.get('/api/v1/areas', params) export const getChildAreaList = (id) => request.basic.get(`/api/v1/areas/${id}`) //上传图片 -export const uploadFile=(params)=>request.basic.post('/api/v1/upload',params,{ +// export const uploadFile=(params)=>request.basic.post('/upload',params,{ +// headers: { +// 'Content-Type': 'multipart/form-data' +// }, +// }) + export const uploadFile=(params)=>axios.post(`${config('http.apiUpload')}/upload`,params,{ headers: { 'Content-Type': 'multipart/form-data' }, diff --git a/src/components/GxUpload/index.vue b/src/components/GxUpload/index.vue index 0e9516f..53ff758 100644 --- a/src/components/GxUpload/index.vue +++ b/src/components/GxUpload/index.vue @@ -143,8 +143,8 @@ const handleCustomRequest = async (options) => { formData.append('file', file); const { data } = await apis.common.uploadFile(formData); - const fullUrl = config('http.apiBasic') + data; - + const fullUrl = config('http.apiUpload') + data.saved_path; + console.log('上传成功,文件URL:', fullUrl); // 正确构造文件对象 onSuccess({ uid: file.uid, @@ -155,7 +155,7 @@ const handleCustomRequest = async (options) => { }, file); // 触发成功事件 - emit('uploadSuccess', data); + emit('uploadSuccess', { url: fullUrl }); } catch (err) { onError(err); message.error('上传失败'); diff --git a/src/components/Upload/UploadInput.vue b/src/components/Upload/UploadInput.vue index 203c387..7a4a10e 100644 --- a/src/components/Upload/UploadInput.vue +++ b/src/components/Upload/UploadInput.vue @@ -1,44 +1,38 @@ + \ No newline at end of file diff --git a/src/config/http.js b/src/config/http.js index 391ca69..d5fef39 100644 --- a/src/config/http.js +++ b/src/config/http.js @@ -2,6 +2,7 @@ import { env } from '@/utils/util' export default { apiBasic: env('apiBasic'), + apiUpload: env('apiUpload'), code: { success: true, }, diff --git a/src/views/serverObj/serverList/components/EditDialog.vue b/src/views/serverObj/serverList/components/EditDialog.vue index 88ff9d5..c3f4c4f 100644 --- a/src/views/serverObj/serverList/components/EditDialog.vue +++ b/src/views/serverObj/serverList/components/EditDialog.vue @@ -539,8 +539,8 @@ async function handleEdit(record = {}) { } formData.value = { ...data } formData.value.birthDate = dayjs(data.birthDate) - formData.value.archive.idCardPhotos = data.archive.idCardPhotos ? data.archive.idCardPhotos.map(item => config('http.apiBasic') + item) : [] - formData.value.archive.uploadedDocuments = data.archive.uploadedDocuments ? data.archive.uploadedDocuments.map(item => config('http.apiBasic') + item) : [] + formData.value.archive.idCardPhotos = data.archive.idCardPhotos ? data.archive.idCardPhotos.map(item => config('http.apiUpload') + item) : [] + formData.value.archive.uploadedDocuments = data.archive.uploadedDocuments ? data.archive.uploadedDocuments.map(item => config('http.apiUpload') + item) : [] formData.value.governmentPurchasedServiceStartDate = [dayjs(formData.value.starGovernmentService), dayjs(formData.value.endGovernmentService)] nextTick(() => { areaCascaderRef.value.initData(data.archive.homeAreaCodes) diff --git a/src/views/serverObj/serverList/components/LineOrder.vue b/src/views/serverObj/serverList/components/LineOrder.vue index 8a30879..9ded07b 100644 --- a/src/views/serverObj/serverList/components/LineOrder.vue +++ b/src/views/serverObj/serverList/components/LineOrder.vue @@ -287,7 +287,7 @@ const handleCustomRequest = async (options) => { const formData = new FormData(); formData.append('file', file); const { data } = await apis.common.uploadFile(formData); - const fullUrl = config('http.apiBasic') + data; + const fullUrl = config('http.apiUpload') + data; console.log(fullUrl) } catch (err) { message.error('上传失败'); diff --git a/src/views/serviceStaff/serviceStaffList/components/EditDialog.vue b/src/views/serviceStaff/serviceStaffList/components/EditDialog.vue index 51be41d..dbacd15 100644 --- a/src/views/serviceStaff/serviceStaffList/components/EditDialog.vue +++ b/src/views/serviceStaff/serviceStaffList/components/EditDialog.vue @@ -36,6 +36,13 @@ + + + + + {{ item.introduction }} + + @@ -170,12 +177,12 @@ - + - + @@ -199,6 +206,7 @@ import dayjs from 'dayjs' import { getBirthDate, spliceUrl } from '@/utils/util' import { validatePhone, validateEmail, validateIdCard } from '@/utils/validate' import storage from '@/utils/storage' +import UploadInput from '@/components/Upload/UploadInput.vue' const emit = defineEmits(['ok']) const { modal, showModal, hideModal, showLoading, hideLoading } = useModal() const { formRecord, formData, formRef, formRules, resetForm } = useForm() @@ -219,6 +227,7 @@ formRules.value = { */ function handleCreate() { formData.value.gender = '1' + formData.value.status = '1' formData.value.companyId = storage.local.getItem('companyId') formData.value.stationId = storage.local.getItem('stationId') showModal({ @@ -269,12 +278,12 @@ async function handleEdit(record = {}) { if (formData.value.laborContractStartAt && formData.value.laborContractEndAt) { formData.value.laborContract = [dayjs(formData.value.laborContractStartAt), dayjs(formData.value.laborContractEndAt)] } - formData.value.imgs = (data.imgs && data.imgs.length > 0) ? data.imgs.map(item => config('http.apiBasic') + item) : [] - formData.value.attachments = (data.attachments && data.attachments.length > 0) ? data.attachments.map(item => config('http.apiBasic') + item) : [] + formData.value.imgs = (data.imgs && data.imgs.length > 0) ? data.imgs.map(item => config('http.apiUpload') + item) : [] + formData.value.attachments = (data.attachments && data.attachments.length > 0) ? data.attachments.map(item => config('http.apiUpload') + item) : [] formData.value.commissionRate = formData.value.commissionRate ?? formData.value.commissionRate * 100 - formData.value.birthDate2 = dayjs(data.birthDate).format('YYYY-DD-MM') + formData.value.birthDate2 = dayjs(data.birthDay).format('YYYY-DD-MM') nextTick(() => { - areaCascaderRef.value.initData(data.archive.homeAreaCodes) + areaCascaderRef.value.initData(data.sAreaCodes||[]) }) } catch (error) { @@ -294,13 +303,14 @@ function handleOk() { showLoading() let params = { ...formData.value, - birthDate: new Date(formData.value.birthDate) + birthDay: formData.value.birthDate2 } if (formData.value.laborContract && formData.value.laborContract.length > 0) { params.laborContractStartAt = formData.value.laborContract[0] params.laborContractEndAt = formData.value.laborContract[1] } + console.log(formData.value.imgs) params.imgs = (formData.value.imgs && formData.value.imgs.length) > 0 ? formData.value.imgs.map(item => spliceUrl(item)) : [] params.attachments = (formData.value.attachments && formData.value.attachments.length) > 0 ? formData.value.attachments.map(item => spliceUrl(item)) : [] params.commissionRate = formData.value.commissionRate ?? formData.value.commissionRate / 100 diff --git a/src/views/serviceStaff/serviceStaffList/components/detail.vue b/src/views/serviceStaff/serviceStaffList/components/detail.vue index d884463..4c2f480 100644 --- a/src/views/serviceStaff/serviceStaffList/components/detail.vue +++ b/src/views/serviceStaff/serviceStaffList/components/detail.vue @@ -4,74 +4,90 @@
+ style="width:250px;margin-top: 20px;border-right: 1px solid #f0f0f0;display: flex;flex-direction: column;align-items: center;">

姓名:{{ formData.name }}

-

性别:{{ formData.gender==1?'男':'女' }}

-

身份证号:{{ formData.idNumber }}

-

手机号:{{ formData.contact1 }}

+

性别:{{ formData.gender == 1 ? '男' : '女' }}

+

身份证号:{{ formData.idCard }}

+

手机号:{{ formData.phone }}

+

状态: {{ dicsStore.getDictLabel('STAFF_STATUS', formData.status) }}

- -
出生日期: {{ formData.birthDate || '-' }}
+ +
出生日期: {{ formData.birthday || '-' }}
-
参保情况: {{ formData.socialSecurityCardNumber || '-' }}
+
参保情况: {{ dicsStore.getDictLabel('INSURANCE_STATUS', + formData.insuranceStatus) || '-' }}
-
护理人员类型: {{ dicsStore.getDictLabel('STAFF_TYPE',formData.serviceType)}}
+
学历: {{ dicsStore.getDictLabel('Level_Education', + formData.education) || '-' }}
- -
用工形式: {{ formData.idNumber || '-' }}
+
护理人员类型: {{ + dicsStore.getDictLabel('STAFF_TYPE', formData.serviceType) }}
-
负责区域: {{ formData.nursingLevel || '-' }}
+
用工形式: {{ dicsStore.getDictLabel('USE_TYPE', + formData.workType) || '-' }}
+ + -
提成比例: {{ formData.healthStatus || '-' }}
+
提成比例: {{ formData.commissionRate + '%' || '-' }}
-
入职日期: {{ formData.survivalStatus || '-' }}
+
入职日期: {{ dayjs(formData.joinAt).format('YYYY-MM-DD') || '-' + }}
-
资格证照名称: {{ formData.serviceStatus || '-' }}
+
资格证照名称: {{ formData.qualificationName || '-' }}
-
资格证照等级: {{ formData.serviceForm || '-' }}
+
资格证照等级: {{ dicsStore.getDictLabel('QUA_LV', + formData.qualificationLV) || '-' }}
-
银行卡号: {{ formData.serviceForm || '-' }}
+
银行卡号: {{ formData.bankNo || '-' }}
-
开户行名称: {{ formData.serviceForm || '-' }}
+
开户行名称: {{ formData.bankName || '-' }}
-
家庭住址: {{ formData.serviceForm || '-' }}
+
补贴类型: {{ dicsStore.getDictLabel('SUBSIDY_TYPE', + formData.subsidyType) || '-' }}
- - + +
负责区域: {{ formData.sAreaLabels ? + formData.sAreaLabels.join('/') + : '-' }}
+
+ +
家庭住址: {{ formData.areaLabels ? formData.areaLabels.join('/') + : + '-' }}
+
+ +
备注: {{ formData.remark || '-' }}
+
+
- 证件照: -
- + 附件: +
- -
附件: {{ formData.serviceForm || '-' }}
-
- -
备注: {{ formData.serviceForm || '-' }}
-
+
@@ -86,7 +102,7 @@ import { ref, computed, defineAsyncComponent, defineExpose, getCurrentInstance, import { config } from '@/config' import apis from '@/apis' import { useForm, useModal } from '@/hooks' - +import dayjs from 'dayjs' import { useDicsStore } from '@/store' const emit = defineEmits(['ok']) const activeKey = ref('1') @@ -111,14 +127,19 @@ function handleCreate() { /** * 编辑 */ -function handleEdit(record = {}) { - console.log('record', record) +async function handleEdit(record = {}) { showModal({ type: 'edit', title: '服务人员详情', }) - formRecord.value = record - formData.value = cloneDeep(record) + const { data, success } = await apis.serviceStaffList.getItem(record.id).catch() + if (!success) { + hideModal() + return + } + formData.value = data + formData.value.imgList = data.imgs ? data.imgs.map(item => config('http.apiUpload') + item) : [] + formData.value.attachments = (data.attachments && data.attachments.length > 0) ? data.attachments.map(item => config('http.apiUpload') + item) : [] } const callback = (val) => { console.log(val); @@ -173,7 +194,8 @@ function handleCancel() { * 关闭后 */ function onAfterClose() { - resetForm() + // resetForm() + formData.value = {} hideLoading() } diff --git a/src/views/serviceStaff/serviceStaffList/index.vue b/src/views/serviceStaff/serviceStaffList/index.vue index 18ee3c3..e984479 100644 --- a/src/views/serviceStaff/serviceStaffList/index.vue +++ b/src/views/serviceStaff/serviceStaffList/index.vue @@ -77,11 +77,18 @@