Compare commits

..

No commits in common. "ce2d1cfb9a9658b21698c1007c7b1fb5363dc8c6" and "56764db28db40075f516e186a9b6e9b2ca5e61f9" have entirely different histories.

4 changed files with 592 additions and 599 deletions

View File

@ -1,12 +1,23 @@
<!-- AreaCascader.vue --> <!-- AreaCascader.vue -->
<template> <template>
<a-cascader v-model:value="modelValue" :options="options" :load-data="loadData" :placeholder="placeholder" <a-cascader
:style="style" :disabled="disabled" :show-search="showSearch" :allow-clear="allowClear" v-model:value="modelValue"
:change-on-select="changeOnSelect" :field-names="fieldNames" @change="handleChange" ref="cascaderRef" /> :options="options"
:load-data="loadData"
:placeholder="placeholder"
:style="style"
:disabled="disabled"
:show-search="showSearch"
:allow-clear="allowClear"
:change-on-select="changeOnSelect"
:field-names="fieldNames"
@change="handleChange"
ref="cascaderRef"
/>
</template> </template>
<script setup> <script setup>
import { ref, watch, nextTick, defineModel, onMounted,defineExpose } from 'vue'; import { ref, watch, nextTick, defineModel, onMounted } from 'vue';
import apis from '@/apis'; import apis from '@/apis';
import { useDicsStore } from '@/store'; import { useDicsStore } from '@/store';
@ -43,23 +54,20 @@ watch(
{ immediate: true } { immediate: true }
); );
// 🔁 modelValue
watch(
() => modelValue?.value,
async (val) => {
if (!val || !Array.isArray(val) || val.length <= 1) return;
//
await nextTick();
// 🔍
function findNodeInOptions(options, code) {
for (const opt of options) {
if (opt.code === code) return opt;
if (opt.children) {
const found = findNodeInOptions(opt.children, code);
if (found) return found;
}
}
return null;
}
async function initData(codes){
// //
for (let i = 1; i < codes.length; i++) { for (let i = 1; i < val.length; i++) {
const parentCode = codes[i - 1]; const parentCode = val[i - 1];
// const currentCode = val[i]; const currentCode = val[i];
// //
let targetNode; let targetNode;
if (i === 1) { if (i === 1) {
@ -78,7 +86,22 @@ async function initData(codes){
// //
await nextTick(); await nextTick();
} }
},
{ immediate: true } // 🔥
);
// 🔍
function findNodeInOptions(options, code) {
for (const opt of options) {
if (opt.code === code) return opt;
if (opt.children) {
const found = findNodeInOptions(opt.children, code);
if (found) return found;
}
}
return null;
} }
// 🌐 // 🌐
const loadData = async (selectedOptions) => { const loadData = async (selectedOptions) => {
const targetOption = selectedOptions[selectedOptions.length - 1]; const targetOption = selectedOptions[selectedOptions.length - 1];
@ -120,5 +143,4 @@ const loadData = async (selectedOptions) => {
const handleChange = (value, selectedOptions) => { const handleChange = (value, selectedOptions) => {
emit('change', value, selectedOptions?.map(opt => opt.label) || []); emit('change', value, selectedOptions?.map(opt => opt.label) || []);
}; };
defineExpose({initData})
</script> </script>

View File

@ -33,7 +33,7 @@
</span> </span>
</div> </div>
<div class="paltform_list"> <div class="paltform_list">
<div value="CALL_CENTER" class="paltform_icon" @click="handleSelect('hujiao')"> <div value="CALL_CENTER" class="paltform_icon">
<div class="paltform_icon_1"> <div class="paltform_icon_1">
<img :src="tel" alt="" srcset="" width="76" height="76" class="img"> <img :src="tel" alt="" srcset="" width="76" height="76" class="img">
</div> </div>
@ -45,7 +45,7 @@
</div> </div>
<p>监管平台</p> <p>监管平台</p>
</div> </div>
<div value="HOME_BED" class="paltform_icon" @click="handleSelect('yunying')"> <div value="HOME_BED" class="paltform_icon">
<div class="paltform_icon_1"> <div class="paltform_icon_1">
<img :src="yunying" alt="" srcset="" width="76" height="76"> <img :src="yunying" alt="" srcset="" width="76" height="76">
</div> </div>

View File

@ -1,8 +1,6 @@
<template> <template>
<a-modal :open="modal.open" :title="modal.title" :width="800" :confirm-loading="modal.confirmLoading" <a-modal :open="modal.open" :title="modal.title" :width="800" :confirm-loading="modal.confirmLoading"
:after-close="onAfterClose" :cancel-text="cancelText" @ok="handleOk" @cancel="handleCancel"> :after-close="onAfterClose" :cancel-text="cancelText" @ok="handleOk" @cancel="handleCancel">
<a-spin tip="Loading..." :spinning="spining">
<a-card>
<a-form ref="formRef" :model="formData" :rules="formRules"> <a-form ref="formRef" :model="formData" :rules="formRules">
<a-tabs v-model:activeKey="activeKey"> <a-tabs v-model:activeKey="activeKey">
<!-- 基本信息 --> <!-- 基本信息 -->
@ -36,8 +34,8 @@
{{ item.introduction }} {{ item.introduction }}
</a-select-option> </a-select-option>
</a-select> </a-select>
<a-input v-model:value="formData.identityNo" placeholder="请输入证件号码" <a-input v-model:value="formData.identityNo" placeholder="请输入证件号码" style="flex: 1;"
style="flex: 1;" @change="extractBirthDateFromIdCard" /> @change="extractBirthDateFromIdCard" />
</span> </span>
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -146,8 +144,8 @@
<a-form-item label="护理等级" name="archive.nursingLevel"> <a-form-item label="护理等级" name="archive.nursingLevel">
<a-select v-model:value="formData.archive.nursingLevel" placeholder="请选择护理等级" <a-select v-model:value="formData.archive.nursingLevel" placeholder="请选择护理等级"
allow-clear> allow-clear>
<a-select-option v-for="item in dicsStore.dictOptions.Care_Level" <a-select-option v-for="item in dicsStore.dictOptions.Care_Level" :key="item.dval"
:key="item.dval" :value="item.dval"> :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -156,8 +154,7 @@
<!-- 家庭地址 --> <!-- 家庭地址 -->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="家庭地址" :name="['archive', 'homeAreaCodes']"> <a-form-item label="家庭地址" :name="['archive', 'homeAreaCodes']">
<AreaCascader v-model:value="formData.archive.homeAreaCodes" @change="onAreaChange" <AreaCascader v-model:value="formData.archive.homeAreaCodes" @change="onAreaChange" />
ref="areaCascaderRef" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -175,16 +172,14 @@
<!-- 经度 --> <!-- 经度 -->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="经度" name="lat"> <a-form-item label="经度" name="lat">
<a-input-number v-model:value="formData.archive.lat" placeholder="请输入经度" <a-input-number v-model:value="formData.archive.lat" placeholder="请输入经度" style="width: 100%;"/>
style="width: 100%;" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- 纬度 --> <!-- 纬度 -->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="纬度" name="lag"> <a-form-item label="纬度" name="lag">
<a-input-number v-model:value="formData.archive.lag" placeholder="请输入纬度" <a-input-number v-model:value="formData.archive.lag" placeholder="请输入纬度" style="width: 100%;"/>
style="width: 100%;" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<gx-map @handleGetLng="handleGetLng" /> <gx-map @handleGetLng="handleGetLng" />
@ -226,8 +221,7 @@
<a-form-item label="统计分类" name="statisticsCategory"> <a-form-item label="统计分类" name="statisticsCategory">
<a-select v-model:value="formData.archive.statisticsCategory" placeholder="请选择统计分类" <a-select v-model:value="formData.archive.statisticsCategory" placeholder="请选择统计分类"
allow-clear> allow-clear>
<a-select-option <a-select-option v-for="item in dicsStore.dictOptions.Statistical_Classification"
v-for="item in dicsStore.dictOptions.Statistical_Classification"
:key="item.dval" :value="item.dval"> :key="item.dval" :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
</a-select-option> </a-select-option>
@ -238,8 +232,8 @@
<!-- 智力情况 --> <!-- 智力情况 -->
<a-col :span="8"> <a-col :span="8">
<a-form-item label="智力情况" name="intellectualSituation"> <a-form-item label="智力情况" name="intellectualSituation">
<a-select v-model:value="formData.archive.intellectualSituation" <a-select v-model:value="formData.archive.intellectualSituation" placeholder="请选择智力情况"
placeholder="请选择智力情况" allow-clear> allow-clear>
<a-select-option v-for="item in dicsStore.dictOptions.Intellectual_Condition" <a-select-option v-for="item in dicsStore.dictOptions.Intellectual_Condition"
:key="item.dval" :value="item.dval"> :key="item.dval" :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
@ -264,8 +258,8 @@
<!-- 老人子女探望情况 --> <!-- 老人子女探望情况 -->
<a-col :span="8"> <a-col :span="8">
<a-form-item label="老人子女探望情况" name="childrenVisitStatus"> <a-form-item label="老人子女探望情况" name="childrenVisitStatus">
<a-select v-model:value="formData.archive.childrenVisitStatus" <a-select v-model:value="formData.archive.childrenVisitStatus" placeholder="请选择老人子女探望情况"
placeholder="请选择老人子女探望情况" allow-clear> allow-clear>
<a-select-option v-for="item in dicsStore.dictOptions.Frequency_Visits" <a-select-option v-for="item in dicsStore.dictOptions.Frequency_Visits"
:key="item.dval" :value="item.dval"> :key="item.dval" :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
@ -279,8 +273,8 @@
<a-form-item label="是否人户分离" name="householdResidenceSeparation"> <a-form-item label="是否人户分离" name="householdResidenceSeparation">
<a-select v-model:value="formData.archive.householdResidenceSeparation" <a-select v-model:value="formData.archive.householdResidenceSeparation"
placeholder="请选择是否人户分离" allow-clear> placeholder="请选择是否人户分离" allow-clear>
<a-select-option v-for="item in dicsStore.dictOptions.Separation" <a-select-option v-for="item in dicsStore.dictOptions.Separation" :key="item.dval"
:key="item.dval" :value="item.dval"> :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -290,10 +284,9 @@
<!-- 民族 --> <!-- 民族 -->
<a-col :span="8"> <a-col :span="8">
<a-form-item label="民族" name="ethnicity"> <a-form-item label="民族" name="ethnicity">
<a-select v-model:value="formData.archive.ethnicity" placeholder="请选择民族" <a-select v-model:value="formData.archive.ethnicity" placeholder="请选择民族" allow-clear>
allow-clear> <a-select-option v-for="item in dicsStore.dictOptions.Ethnicity" :key="item.dval"
<a-select-option v-for="item in dicsStore.dictOptions.Ethnicity" :value="item.dval">
:key="item.dval" :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -355,8 +348,7 @@
<!-- 宗教信仰 --> <!-- 宗教信仰 -->
<a-col :span="8"> <a-col :span="8">
<a-form-item label="宗教信仰" name="religion"> <a-form-item label="宗教信仰" name="religion">
<a-select v-model:value="formData.archive.religion" placeholder="请选择宗教信仰" <a-select v-model:value="formData.archive.religion" placeholder="请选择宗教信仰" allow-clear>
allow-clear>
<a-select-option v-for="item in dicsStore.dictOptions.Religious_belief" <a-select-option v-for="item in dicsStore.dictOptions.Religious_belief"
:key="item.dval" :value="item.dval"> :key="item.dval" :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
@ -368,8 +360,7 @@
<!-- 职业情况 --> <!-- 职业情况 -->
<a-col :span="8"> <a-col :span="8">
<a-form-item label="职业情况" name="occupation"> <a-form-item label="职业情况" name="occupation">
<a-select v-model:value="formData.archive.occupation" placeholder="请选择职业情况" <a-select v-model:value="formData.archive.occupation" placeholder="请选择职业情况" allow-clear>
allow-clear>
<a-select-option v-for="item in dicsStore.dictOptions.Employment_Status" <a-select-option v-for="item in dicsStore.dictOptions.Employment_Status"
:key="item.dval" :value="item.dval"> :key="item.dval" :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
@ -381,8 +372,8 @@
<!-- 政治面貌 --> <!-- 政治面貌 -->
<a-col :span="8"> <a-col :span="8">
<a-form-item label="政治面貌" name="politicalAffiliation"> <a-form-item label="政治面貌" name="politicalAffiliation">
<a-select v-model:value="formData.archive.politicalAffiliation" <a-select v-model:value="formData.archive.politicalAffiliation" placeholder="请选择政治面貌"
placeholder="请选择政治面貌" allow-clear> allow-clear>
<a-select-option v-for="item in dicsStore.dictOptions.Political_affiliation" <a-select-option v-for="item in dicsStore.dictOptions.Political_affiliation"
:key="item.dval" :value="item.dval"> :key="item.dval" :value="item.dval">
{{ item.introduction }} {{ item.introduction }}
@ -406,8 +397,7 @@
<a-col :span='8'> <a-col :span='8'>
<a-form-item label="分类标签" name="labelsCode"> <a-form-item label="分类标签" name="labelsCode">
<a-select v-model:value="formData.labelsCode" allowClear mode="multiple"> <a-select v-model:value="formData.labelsCode" allowClear mode="multiple">
<a-select-option <a-select-option v-for="item in dicsStore.dictOptions.Service_Recipient_Category2"
v-for="item in dicsStore.dictOptions.Service_Recipient_Category2"
:key="item.dval" :value="item.dval">{{ :key="item.dval" :value="item.dval">{{
item.introduction }}</a-select-option> item.introduction }}</a-select-option>
</a-select> </a-select>
@ -446,25 +436,23 @@
<!-- 上传资料 --> <!-- 上传资料 -->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="上传资料" name="uploadedDocuments"> <a-form-item label="上传资料" name="uploadedDocuments">
<gx-upload v-model="formData.archive.idCardPhotos" <gx-upload v-model="formData.archive.idCardPhotos" accept-types=".jpg,.png,.webp,.xlsx,.docx,.doc"
accept-types=".jpg,.png,.webp,.xlsx,.docx,.doc" :fileNumber="10" /> :fileNumber="10" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</a-form> </a-form>
</a-card>
</a-spin>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { cloneDeep } from 'lodash-es' import { cloneDeep } from 'lodash-es'
import { ref, defineProps, nextTick } from 'vue' import { ref, defineProps } from 'vue'
import { config } from '@/config' import { config } from '@/config'
import apis from '@/apis' import apis from '@/apis'
import { useForm, useModal,useSpining } from '@/hooks' import { useForm, useModal } from '@/hooks'
import { useDicsStore } from '@/store' import { useDicsStore } from '@/store'
import AreaCascader from '@/components/AreaCascader/index.vue' import AreaCascader from '@/components/AreaCascader/index.vue'
import { validatePhone, validateEmail, validateIdCard } from '@/utils/validate' import { validatePhone, validateEmail, validateIdCard } from '@/utils/validate'
@ -472,14 +460,11 @@ import { getBirthDate, spliceUrl } from '@/utils/util'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import { FastBackwardFilled } from '@ant-design/icons-vue'
const emit = defineEmits(['ok']) const emit = defineEmits(['ok'])
const activeKey = ref('1') const activeKey = ref('1')
const { modal, showModal, hideModal, showLoading, hideLoading } = useModal() const { modal, showModal, hideModal, showLoading, hideLoading } = useModal()
const { formRecord, formData, formRef, formRules, resetForm } = useForm() const { formRecord, formData, formRef, formRules, resetForm } = useForm()
const areaCascaderRef = ref()
const cancelText = ref('取消') const cancelText = ref('取消')
const spining=ref(false)
formRules.value = { formRules.value = {
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }], name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
identityType: [{ required: true, message: '请选择证件类型', trigger: 'change' }], identityType: [{ required: true, message: '请选择证件类型', trigger: 'change' }],
@ -519,28 +504,16 @@ async function handleEdit(record = {}) {
type: 'edit', type: 'edit',
title: '编辑对象' title: '编辑对象'
}) })
try {
spining.value=true
const { data, success } = await apis.serverObj.getItem(record.id).catch() const { data, success } = await apis.serverObj.getItem(record.id).catch()
if (!success) { if (!success) {
spining.value=false
hideModal() hideModal()
return return
} }
formData.value = { ...data } formData.value = { ...data }
formData.value.birthDate = dayjs(data.birthDate) 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.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.uploadedDocuments = data.archive.uploadedDocuments ? data.archive.uploadedDocuments.map(item => config('http.apiBasic') + item) : []
formData.value.governmentPurchasedServiceStartDate = [dayjs(formData.value.starGovernmentService), dayjs(formData.value.endGovernmentService)] formData.value.governmentPurchasedServiceStartDate=[dayjs(formData.value.starGovernmentService),dayjs(formData.value.endGovernmentService)]
nextTick(() => {
areaCascaderRef.value.initData(data.archive.homeAreaCodes)
})
spining.value=false
} catch (error) {
console.log(error.message)
spining.value=false
}
} }
// utils/idCard.js // utils/idCard.js
function isValidIdCard(value) { function isValidIdCard(value) {
@ -607,11 +580,11 @@ function handleOk() {
labels: formData.value.labelsCode ? formData.value.labelsCode.map(item => dicsStore.getDictLabel('Service_Recipient_Category2', item)) : [], labels: formData.value.labelsCode ? formData.value.labelsCode.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.idCardPhotos = formData.value.archive.idCardPhotos&&formData.value.archive.idCardPhotos.length>0 ? formData.value.archive.idCardPhotos.map(item => spliceUrl(item)) : ['']
params.archive.uploadedDocuments = formData.value.archive.uploadedDocuments && formData.value.archive.uploadedDocuments.length > 0 ? formData.value.archive.uploadedDocuments.map(item => spliceUrl(item)) : [''] params.archive.uploadedDocuments = formData.value.archive.uploadedDocuments&&formData.value.archive.uploadedDocuments.length>0 ? formData.value.archive.uploadedDocuments.map(item => spliceUrl(item)) : ['']
if (formData.value.governmentPurchasedServiceStartDate && formData.value.governmentPurchasedServiceStartDate.length > 0) { if(formData.value.governmentPurchasedServiceStartDate&&formData.value.governmentPurchasedServiceStartDate.length>0){
params.archive.starGovernmentService = formData.value.governmentPurchasedServiceStartDate[0] params.archive.starGovernmentService=formData.value.governmentPurchasedServiceStartDate[0]
params.archive.endGovernmentService = formData.value.governmentPurchasedServiceStartDate[1] params.archive.endGovernmentService=formData.value.governmentPurchasedServiceStartDate[1]
} }
// //
if (params.identityType === '1' && !isValidIdCard(params.identityNo)) { if (params.identityType === '1' && !isValidIdCard(params.identityNo)) {
@ -627,7 +600,7 @@ function handleOk() {
break break
case 'edit': case 'edit':
console.log(params) console.log(params)
result = await apis.serverObj.updateItem(params.id, params).catch(() => { result = await apis.serverObj.updateItem(params.id,params).catch(() => {
throw new Error() throw new Error()
}) })
break break
@ -667,9 +640,23 @@ function onAreaHoldChange(value, labels) {
formData.value.archive.houseAreaLabels = [...labels] formData.value.archive.houseAreaLabels = [...labels]
} }
function handleGetLng(obj) { function handleGetLng(obj) {
formData.value.archive.lat = obj.lat formData.value.lat = obj.lat
formData.value.archive.lag = obj.lng formData.value.lag = obj.lng
} }
//
const handleCustomRequest = async (options) => {
const { file, onProgress, onSuccess, onError } = options;
try {
const formData = new FormData();
formData.append('file', file);
const { data } = await apis.common.uploadFile(formData);
const fullUrl = config('http.apiBasic') + data;
console.log(fullUrl)
} catch (err) {
message.error('上传失败');
}
};
/** /**
* 取消 * 取消
*/ */

View File

@ -2,7 +2,6 @@
<a-modal :open="modal.open" :title="modal.title" :width="800" :confirm-loading="modal.confirmLoading" <a-modal :open="modal.open" :title="modal.title" :width="800" :confirm-loading="modal.confirmLoading"
:after-close="onAfterClose" :cancel-text="cancelText" @ok="handleOk" @cancel="handleCancel"> :after-close="onAfterClose" :cancel-text="cancelText" @ok="handleOk" @cancel="handleCancel">
<a-card> <a-card>
<a-spin tip="Loading..." :spinning="spining">
<a-form ref="formRef" :model="formData" :rules="formRules"> <a-form ref="formRef" :model="formData" :rules="formRules">
<a-row :gutter="24"> <a-row :gutter="24">
<!-- 姓名 --> <!-- 姓名 -->
@ -26,8 +25,7 @@
<div style="margin-bottom: 20px;"> <div style="margin-bottom: 20px;">
<span style="margin-right: 10px;"><span style="color: red;">*</span> 服务项目:</span> <span style="margin-right: 10px;"><span style="color: red;">*</span> 服务项目:</span>
<!-- 显示已选项目 --> <!-- 显示已选项目 -->
<a-tag v-for="item in selectedServices" :key="item.id" closable <a-tag v-for="item in selectedServices" :key="item.id" closable @close="handleRemove(item)">
@close="handleRemove(item)">
{{ item.name }} {{ item.name }}
</a-tag> </a-tag>
<a-tag @click="showModal2" color="#108ee9" style="cursor: pointer;"> <a-tag @click="showModal2" color="#108ee9" style="cursor: pointer;">
@ -46,8 +44,7 @@
<a-col :span="12"> <a-col :span="12">
<a-form-item label="服务人员" name="servicePersonId"> <a-form-item label="服务人员" name="servicePersonId">
<a-select v-model:value="formData.servicePersonId"> <a-select v-model:value="formData.servicePersonId">
<a-select-option v-for="item in servicePersonList" :key="item.id" <a-select-option v-for="item in servicePersonList" :key="item.id" :value="item.id">
:value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -73,7 +70,7 @@
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="服务地址(如修改服务地址,请务必更新地图定位地址)" name="areaCodes"> <a-form-item label="服务地址(如修改服务地址,请务必更新地图定位地址)" name="areaCodes">
<AreaCascader v-model:value="formData.areaCodes" @change="onAreaChange" ref="areaCascaderRef"/> <AreaCascader v-model:value="formData.areaCodes" @change="onAreaChange" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -98,8 +95,6 @@
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
</a-spin>
</a-card> </a-card>
</a-modal> </a-modal>
<a-modal v-model:open="modalVisible" title="选择服务项目" @ok="handleConfirm" @cancel="handleCancel2" okText="确认" <a-modal v-model:open="modalVisible" title="选择服务项目" @ok="handleConfirm" @cancel="handleCancel2" okText="确认"
@ -144,8 +139,6 @@ const servicePersonList = ref([])
const gps = ref('') const gps = ref('')
const mapVisible = ref(false) const mapVisible = ref(false)
const stationList = ref([]) const stationList = ref([])
const spining = ref(false)
const areaCascaderRef=ref()
formRules.value = { formRules.value = {
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }], name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
identityType: [{ required: true, message: '请选择证件类型', trigger: 'change' }], identityType: [{ required: true, message: '请选择证件类型', trigger: 'change' }],
@ -289,17 +282,13 @@ async function handleEdit(record = {}, type) {
type: 'edit', type: 'edit',
title: '编辑对象' title: '编辑对象'
}) })
try {
spining.value = true
formData.value.orderType = type, //线2 线1] formData.value.orderType = type, //线2 线1]
formData.value.customerId = record.id formData.value.customerId = record.id
formData.value.name = record.name formData.value.name = record.name
formData.value.areaCodes = [...record.archive.homeAreaCodes] formData.value.areaCodes = record.archive.homeAreaCodes
formData.value.areaLabels = record.archive.homeAreaLabels formData.value.areaLabels = record.archive.homeAreaLabels
nextTick(() => {
areaCascaderRef.value.initData(record.archive.homeAreaCodes)
})
if (type == '2') { if (type == '2') {
formData.value.detailAddress = record.archive.homeDetailAddress formData.value.detailAddress = record.archive.homeDetailAddress
gps.value = record.region.join('') + record.archive.homeDetailAddress gps.value = record.region.join('') + record.archive.homeDetailAddress
formData.value.lat = record.archive.lag formData.value.lat = record.archive.lag
@ -307,11 +296,6 @@ async function handleEdit(record = {}, type) {
} }
getServiceStation() getServiceStation()
spining.value = false
} catch (error) {
spining.value = false
}
} }
async function getServiceStation() { async function getServiceStation() {
try { try {