From 1eaf10502b0c21bf243d052a3ebcfbcf47335bee Mon Sep 17 00:00:00 2001 From: Leo_Ding <2405260743@qq.com> Date: Fri, 7 Nov 2025 09:18:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/modules/contacts.js | 16 + src/locales/lang/zh-CN/menu.js | 1 + src/router/routes/severObj.js | 11 + src/views/login/platForm.vue | 31 +- .../contacts/components/EditDialog.vue | 136 ++++++++ src/views/serverObj/contacts/index.vue | 271 +++++++++++++++ .../serverList/components/BasicInfo.vue | 3 + .../serverList/components/ContactInfo.vue | 319 +++++++++++++++++- .../serverList/components/EditDialog.vue | 16 +- .../serverList/components/LineOrder2.vue | 12 +- .../serverList/components/TransferOut.vue | 7 +- .../serverList/components/detail.vue | 13 +- src/views/serverObj/serverList/index.vue | 17 +- .../serviceSites/components/EditDialog.vue | 12 +- 14 files changed, 810 insertions(+), 55 deletions(-) create mode 100644 src/apis/modules/contacts.js create mode 100644 src/views/serverObj/contacts/components/EditDialog.vue create mode 100644 src/views/serverObj/contacts/index.vue diff --git a/src/apis/modules/contacts.js b/src/apis/modules/contacts.js new file mode 100644 index 0000000..423c587 --- /dev/null +++ b/src/apis/modules/contacts.js @@ -0,0 +1,16 @@ +/** + * 区域模块接口 + */ +import request from '@/utils/request' +// 获取项目列表 +export const getProjectList = (params) => request.basic.get('/api/v1/concats', params) +// 获取单挑数据 +export const getItem = (id) => request.basic.get(`/api/v1/concats/${id}`) +// 添加条目 +export const createItem = (params) => request.basic.post('/api/v1/concats', params) +// 更新role +export const updateItem = (params) => request.basic.put(`/api/v1/concats/${params.id}`, params) +// 删除数据 +export const delItem = (id) => request.basic.delete(`/api/v1/concats/${id}`) + + diff --git a/src/locales/lang/zh-CN/menu.js b/src/locales/lang/zh-CN/menu.js index c4f3d1f..3459aab 100644 --- a/src/locales/lang/zh-CN/menu.js +++ b/src/locales/lang/zh-CN/menu.js @@ -77,4 +77,5 @@ export default { qualityLog:'质检记录', operatorMgt:'话务员管理', operator:'话务员列表', + contacts:'联系人管理', } diff --git a/src/router/routes/severObj.js b/src/router/routes/severObj.js index f25d26d..b477c90 100644 --- a/src/router/routes/severObj.js +++ b/src/router/routes/severObj.js @@ -100,6 +100,17 @@ export default [ keepAlive: true, permission: '*', }, + }, + { + path: 'contacts', + name: 'contacts', + component: 'serverObj/contacts/index.vue', + meta: { + title: '联系人管理', + isMenu: true, + keepAlive: true, + permission: '*', + }, } ], diff --git a/src/views/login/platForm.vue b/src/views/login/platForm.vue index f847191..72da4f9 100644 --- a/src/views/login/platForm.vue +++ b/src/views/login/platForm.vue @@ -2,7 +2,7 @@
-
+
@@ -32,7 +32,7 @@ 南通市通州区互联网+智慧养老居家上门服务项目
-
+
@@ -55,10 +55,10 @@
- {{ '< 返回' }} + {{ '< 返回' }}

请选择您的管理组织

- +
@@ -85,7 +85,6 @@ const { locale, t } = useI18n() defineOptions({ name: 'PlatForm', }) -const ishow = ref(true) const appStore = useAppStore() const routerStore = useRouterStore() const userStore = useUserStore() @@ -98,18 +97,18 @@ onBeforeMount(() => { document.body.className = 'body-bg' }) async function handleSelect(type) { - // if (type === 'hujiao') { - // storage.local.setItem('platform', type) - // await appStore.init() - // goIndex() - // } else { - // currentPlatForm.value = type - // ishow.value = false - // } - currentPlatForm.value = type - ishow.value = false + if (type === 'yunying') { + currentPlatForm.value = 'yunying' + + } else { + storage.local.setItem('platform', type) + await appStore.init() + goIndex() + } + } async function goIndex() { + console.log('goIndex') const indexRoute = getFirstValidRoute() console.log(indexRoute) if (!indexRoute) return @@ -134,7 +133,7 @@ function getFirstValidRoute() { return indexRoute } async function handleChange(e) { - storage.local.setItem('platform',currentPlatForm.value) + storage.local.setItem('platform', 'yunying') storage.local.setItem('stationId', e) await appStore.init() goIndex() diff --git a/src/views/serverObj/contacts/components/EditDialog.vue b/src/views/serverObj/contacts/components/EditDialog.vue new file mode 100644 index 0000000..33b0919 --- /dev/null +++ b/src/views/serverObj/contacts/components/EditDialog.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/views/serverObj/contacts/index.vue b/src/views/serverObj/contacts/index.vue new file mode 100644 index 0000000..ab528c2 --- /dev/null +++ b/src/views/serverObj/contacts/index.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/src/views/serverObj/serverList/components/BasicInfo.vue b/src/views/serverObj/serverList/components/BasicInfo.vue index 3316399..53a0a07 100644 --- a/src/views/serverObj/serverList/components/BasicInfo.vue +++ b/src/views/serverObj/serverList/components/BasicInfo.vue @@ -5,6 +5,9 @@
出生日期: {{ dayjs(formData.birthDate).format('YYYY-MM-DD') || '-' }}
+ +
所属站点: {{ formData.stationName || '-' }}
+
关爱巡访电话: {{ formData.careVisitPhone || '-' }}
diff --git a/src/views/serverObj/serverList/components/ContactInfo.vue b/src/views/serverObj/serverList/components/ContactInfo.vue index 3ae3658..ffcbdba 100644 --- a/src/views/serverObj/serverList/components/ContactInfo.vue +++ b/src/views/serverObj/serverList/components/ContactInfo.vue @@ -1,6 +1,323 @@ + + diff --git a/src/views/serverObj/serverList/components/EditDialog.vue b/src/views/serverObj/serverList/components/EditDialog.vue index e828f0d..f2eeed3 100644 --- a/src/views/serverObj/serverList/components/EditDialog.vue +++ b/src/views/serverObj/serverList/components/EditDialog.vue @@ -14,7 +14,11 @@ - + + + + + @@ -421,8 +425,8 @@ - - + dicsStore.getDictLabel('Service_Recipient_Category2', item)) : [], - + labels: formData.value.labelCodes ? formData.value.labelCodes.map(item => dicsStore.getDictLabel('Service_Recipient_Category2', item)) : [], } params.archive.idCardPhotos = formData.value.archive.idCardPhotos && formData.value.archive.idCardPhotos.length > 0 ? formData.value.archive.idCardPhotos.map(item => spliceUrl(item)) : [] params.archive.uploadedDocuments = uploadedDocuments.value && uploadedDocuments.value.length > 0 ? uploadedDocuments.value.map(item => spliceUrl(item)) : [] @@ -687,6 +692,7 @@ function handleGetLng(obj) { * 取消 */ function handleCancel() { + formData.value = {archive: {}} hideModal() } diff --git a/src/views/serverObj/serverList/components/LineOrder2.vue b/src/views/serverObj/serverList/components/LineOrder2.vue index 6ce19ea..71155f5 100644 --- a/src/views/serverObj/serverList/components/LineOrder2.vue +++ b/src/views/serverObj/serverList/components/LineOrder2.vue @@ -13,12 +13,8 @@ - - - - {{ item.name }} - - + + @@ -287,13 +283,15 @@ function handleCreate() { async function handleEdit(record = {}, type) { showModal({ type: 'edit', - title: '编辑对象' + title: type == '1' ? '线上工单' : '线下工单' }) try { spining.value = true formData.value.orderType = type, //线下2 线上1] formData.value.customerId = record.id formData.value.name = record.name + formData.value.stationName = record.stationName + formData.value.stationId = record.stationId formData.value.areaCodes = [...record.archive.homeAreaCodes] formData.value.areaLabels = record.archive.homeAreaLabels nextTick(() => { diff --git a/src/views/serverObj/serverList/components/TransferOut.vue b/src/views/serverObj/serverList/components/TransferOut.vue index f970295..bc9e202 100644 --- a/src/views/serverObj/serverList/components/TransferOut.vue +++ b/src/views/serverObj/serverList/components/TransferOut.vue @@ -72,10 +72,11 @@ formData.value = {} /** * 新建 */ -function handleCreate(id) { +function handleCreate(id,stationId) { formData.value.directionType = 'Transfer' formData.value.direction = 'Out' formData.value.customerId = id + formData.value.stationId = stationId showModal({ type: 'create', @@ -101,9 +102,7 @@ function handleOk() { } if (params.directionType === 'Death') { params.passWayAt = dayjs(formData.value.passWayAt) - } else { - formData.value.stationId = storage.local.getItem('stationId') - } + } let result = null switch (modal.value.type) { case 'create': diff --git a/src/views/serverObj/serverList/components/detail.vue b/src/views/serverObj/serverList/components/detail.vue index 748f966..c6174e9 100644 --- a/src/views/serverObj/serverList/components/detail.vue +++ b/src/views/serverObj/serverList/components/detail.vue @@ -23,7 +23,6 @@

-
@@ -32,10 +31,8 @@
- - - +
@@ -107,7 +104,7 @@ const getBasicInfo = async () => { if (!success) { return } - + idCardPhotos.value = data.archive.idCardPhotos ? data.archive.idCardPhotos.map(item => config('http.apiUpload') + item) : [] console.log('idCardPhotos.value', idCardPhotos.value) return data; @@ -116,6 +113,8 @@ const getDisabledPersonInfo = async () => { return { ceshi: '残疾人信息' }; } + + // Tab 切换时调用子组件方法 const handleTabChange = async (key) => { switch (tabsList[key - 1]) { @@ -126,7 +125,7 @@ const handleTabChange = async (key) => { formData.value = await getBasicInfo(); break; case '联系人信息': - formData.value = await getBasicInfo(); + formData.value = { customerId: recordId.value }; break; case '附件': case '病史信息': diff --git a/src/views/serverObj/serverList/index.vue b/src/views/serverObj/serverList/index.vue index 1a2d2ef..a49a0aa 100644 --- a/src/views/serverObj/serverList/index.vue +++ b/src/views/serverObj/serverList/index.vue @@ -299,9 +299,6 @@ - @@ -343,7 +340,7 @@ v-if="platForm !== 'yunying'"> 线上工单 - + 转出 @@ -436,16 +433,18 @@ const columns = [ }, { title: '是否政府购买服务', - dataIndex: 'governmentPurchasedService', - key: 'governmentPurchasedService', + dataIndex: 'archive.starGovernmentService', + key: 'archive.starGovernmentService', + customRender: ({ record }) => record.archive?.starGovernmentService ? '是' : '否', align: 'center', width: 150, }, { title: '服务对象分类', - dataIndex: 'serviceRecipientCategory', - key: 'serviceRecipientCategory', + dataIndex: 'labels', + key: 'labels', align: 'center', + customRender: ({ record }) => record?.labels?.join('/'), width: 120, }, { @@ -652,7 +651,7 @@ async function getPageList() { if (config('http.code.success') === success) { listData.value = data paginationState.total = total - totalCount.value = total + totalCount.value = total||0 } } catch (error) { diff --git a/src/views/serviceMenu/serviceSites/components/EditDialog.vue b/src/views/serviceMenu/serviceSites/components/EditDialog.vue index 145c0ab..d3011f4 100644 --- a/src/views/serviceMenu/serviceSites/components/EditDialog.vue +++ b/src/views/serviceMenu/serviceSites/components/EditDialog.vue @@ -26,8 +26,8 @@ - - + + ({ id: undefined, name: '', parent_id: '', - nodeType: '', + organizationId: '', code: '', type: '', manager: '', @@ -328,7 +328,7 @@ const initFormData = () => ({ formData.value = initFormData() const rules = { - nodeType: [{ required: true, message: '请选择所在节点', trigger: 'change' }], + organizationId: [{ required: true, message: '请选择所在节点', trigger: 'change' }], name: [{ required: true, message: '请输入站点名称', trigger: 'blur' }], code: [{ required: true, message: '请输入机构代码', trigger: 'blur' }], type: [{ required: true, message: '请选择站点类型', trigger: 'change' }], @@ -413,7 +413,7 @@ async function loadRecord(id, forView = false) { ...initFormData(), id: record.id, name: record.name || '', - nodeType: org.name || '', + organizationId: org.organizationId || '', code: org.orgCode || '', type: stationTypeValue, manager: org.concatName || '', @@ -453,7 +453,7 @@ function handleOk() { try { const params = { Name: values.name, - OrganizationID: values.nodeType, + organizationId: values.organizationId, OrgCode: values.code, StationType: (() => { const typeItem = dicsStore.dictOptions.Station_Type?.find(