项目列表和分包单位以及迁移人员
This commit is contained in:
		| @ -115,6 +115,9 @@ | ||||
|               <el-button link type="danger" icon="Avatar" @click="handleJoinBlacklist(scope.row)" v-hasPermi="['project:constructionBlacklist:add']"> | ||||
|                 黑名单 | ||||
|               </el-button> | ||||
|               <el-button link type="primary" icon="Switch" @click="handleChange(scope.row)" v-hasPermi="['project:constructionBlacklist:add']"> | ||||
|                 人员迁移 | ||||
|               </el-button> | ||||
|               <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['project:constructionUser:remove']"> | ||||
|                 删除 | ||||
|               </el-button> | ||||
| @ -265,6 +268,24 @@ | ||||
|     <el-dialog title="施工人员详情" v-model="showDetailDrawer"> | ||||
|       <construction-user-detail :user-id="currentUserId" /> | ||||
|     </el-dialog> | ||||
|     <el-dialog :title="skipName + '-人员迁移'" v-model="skip" width="500px"> | ||||
|       <el-form-item label="所属项目" label-width="130px"> | ||||
|         <el-select v-model="skipObject.projectId" @change="selectProject" placeholder="请选择所属项目" style="width: 240px"> | ||||
|           <el-option v-for="item in skipOptions" :key="item.id" :label="item.projectName" :value="item.id" /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="分包单位" label-width="130px"> | ||||
|         <el-select v-model="skipObject.contractorId" :disabled="!skipObject.projectId" placeholder="请选择分包单位" style="width: 240px"> | ||||
|           <el-option v-for="item in contractorList" :key="item.id" :label="item.name" :value="item.id" /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <template #footer> | ||||
|         <div class="dialog-footer"> | ||||
|           <el-button type="primary" @click="setUnits">确认</el-button> | ||||
|           <el-button @click="skip = false"> 取消 </el-button> | ||||
|         </div> | ||||
|       </template> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| @ -274,9 +295,18 @@ import { | ||||
|   delConstructionUser, | ||||
|   getConstructionUser, | ||||
|   listConstructionUser, | ||||
|   updateConstructionUser | ||||
|   updateConstructionUser, | ||||
|   getProjectContractorList, | ||||
|   transferConstructionUser | ||||
| } from '@/api/project/constructionUser'; | ||||
| import { ConstructionUserForm, ConstructionUserQuery, ConstructionUserVO } from '@/api/project/constructionUser/types'; | ||||
| import { | ||||
|   ConstructionUserForm, | ||||
|   ConstructionUserQuery, | ||||
|   ConstructionUserVO, | ||||
|   skipType, | ||||
|   skipOptionType, | ||||
|   skipTeamType | ||||
| } from '@/api/project/constructionUser/types'; | ||||
| import { useUserStoreHook } from '@/store/modules/user'; | ||||
| import { listContractor } from '@/api/project/contractor'; | ||||
| import { listProjectTeam } from '@/api/project/projectTeam'; | ||||
| @ -300,15 +330,25 @@ const ids = ref<Array<string | number>>([]); | ||||
| const single = ref(true); | ||||
| const multiple = ref(true); | ||||
| const total = ref(0); | ||||
|  | ||||
| const skip = ref(false); | ||||
| const queryFormRef = ref<ElFormInstance>(); | ||||
| const constructionUserFormRef = ref<ElFormInstance>(); | ||||
|  | ||||
| const skipName = ref(''); | ||||
| const dialog = reactive<DialogOption>({ | ||||
|   visible: false, | ||||
|   title: '' | ||||
| }); | ||||
|  | ||||
| //人员迁移条件 | ||||
| const skipObject: skipType = reactive({ | ||||
|   id: '', | ||||
|   projectId: '', | ||||
|   contractorId: '' | ||||
| }); | ||||
| const contractorList = ref<Array<skipTeamType>>([]); | ||||
| //项目列表 | ||||
| const skipOptions = ref<Array<skipOptionType>>([]); | ||||
|  | ||||
| const initFormData: ConstructionUserForm = { | ||||
|   id: undefined, | ||||
|   openid: undefined, | ||||
| @ -392,6 +432,21 @@ const getList = async () => { | ||||
|   loading.value = false; | ||||
| }; | ||||
|  | ||||
| const selectProject = (e: any) => { | ||||
|   //选中项目筛选出项目下的分包单位 | ||||
|   contractorList.value = skipOptions.value.filter((item) => item.id == e)[0].contractorList; | ||||
| }; | ||||
|  | ||||
| const setUnits = async () => { | ||||
|   //人员迁移 | ||||
|   console.log('🚀 ~ setUnits ~ skipObject:', skipObject); | ||||
|   let res = await transferConstructionUser(skipObject); | ||||
|   if (res.code == 200) { | ||||
|     ElMessage.success(res.msg); | ||||
|     skip.value = false; | ||||
|     getList(); | ||||
|   } | ||||
| }; | ||||
| const contractorOpt = ref(); | ||||
|  | ||||
| /** 查询当前项目下的分包公司列表 */ | ||||
| @ -489,6 +544,16 @@ const handleShowDrawer = (row?: ConstructionUserVO) => { | ||||
|   showDetailDrawer.value = true; | ||||
| }; | ||||
|  | ||||
| /** 人员迁移 */ | ||||
| const handleChange = async (row: ConstructionUserVO) => { | ||||
|   const _id = row?.id || ids.value[0]; | ||||
|   skipName.value = row?.userName; | ||||
|   skipObject.id = _id; | ||||
|   const res = await getProjectContractorList(); | ||||
|   skipOptions.value = res.data; | ||||
|   skip.value = true; | ||||
| }; | ||||
|  | ||||
| /** 提交按钮 */ | ||||
| const submitForm = () => { | ||||
|   constructionUserFormRef.value?.validate(async (valid: boolean) => { | ||||
|  | ||||
| @ -122,16 +122,6 @@ const contractorFormRef = ref<ElFormInstance>(); | ||||
| const userStore = useUserStoreHook(); | ||||
| // 从 store 中获取项目列表和当前选中的项目 | ||||
| const currentProject = computed(() => userStore.selectedProject); | ||||
| //监听项目改变 | ||||
| // watch( | ||||
| //   () => currentProject.value, | ||||
| //   (newId, oldId) => { | ||||
| //     /* ... */ | ||||
| //     queryParams.value.projectId=newId.id | ||||
| //     // getList() | ||||
|      | ||||
| //   } | ||||
| // ) | ||||
| const dialog = reactive<DialogOption>({ | ||||
|   visible: false, | ||||
|   title: '' | ||||
| @ -145,7 +135,8 @@ const initFormData: ContractorForm = { | ||||
|   custodian: undefined, | ||||
|   custodianPhone: undefined, | ||||
|   fileMap: undefined, | ||||
|   remark: undefined | ||||
|   remark: undefined, | ||||
|   projectId: currentProject.value.id | ||||
| }; | ||||
| const data = reactive<PageData<ContractorForm, ContractorQuery>>({ | ||||
|   form: { ...initFormData }, | ||||
| @ -172,7 +163,7 @@ const { queryParams, form, rules } = toRefs(data); | ||||
| /** 查询分包单位列表 */ | ||||
| const getList = async () => { | ||||
|   loading.value = true; | ||||
|    | ||||
|  | ||||
|   const res = await listContractor(queryParams.value); | ||||
|   contractorList.value = res.rows; | ||||
|   total.value = res.total; | ||||
|  | ||||
| @ -52,10 +52,14 @@ | ||||
|             <dict-tag :options="sys_normal_disable" :value="scope.row.status" /> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="项目类型" align="center" prop="type" /> | ||||
|         <el-table-column label="项目类别" align="center" prop="isType"> | ||||
|         <el-table-column label="项目类型" align="center" prop="projectType"> | ||||
|           <template #default="scope"> | ||||
|             <dict-tag :options="project_category_type" :value="scope.row.isType" /> | ||||
|             <dict-tag :options="project_type" :value="scope.row.projectType" /> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="项目类别" align="center" prop="projectCategory"> | ||||
|           <template #default="scope"> | ||||
|             <dict-tag :options="project_category_type" :value="scope.row.projectCategory" /> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="项目地址" align="center" prop="projectSite" /> | ||||
| @ -82,44 +86,136 @@ | ||||
|       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> | ||||
|     </el-card> | ||||
|     <!-- 添加或修改项目对话框 --> | ||||
|     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body> | ||||
|     <el-dialog :title="dialog.title" v-model="dialog.visible" width="770px" append-to-body> | ||||
|       <el-form ref="projectFormRef" :model="form" :rules="rules" label-width="100px"> | ||||
|         <el-form-item label="项目名称" prop="projectName"> | ||||
|           <el-input v-model="form.projectName" placeholder="请输入项目名称" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="项目简称" prop="shortName"> | ||||
|           <el-input v-model="form.shortName" placeholder="请输入项目简称" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="项目地址" prop="projectSite"> | ||||
|           <el-input v-model="form.projectSite" placeholder="请输入项目地址" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="负责人" prop="principal"> | ||||
|           <el-input v-model="form.principal" placeholder="请输入负责人" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="负责人电话" prop="principalPhone"> | ||||
|           <el-input v-model="form.principalPhone" placeholder="请输入负责人电话" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="实际容量" prop="actual"> | ||||
|           <el-input v-model="form.actual" placeholder="请输入实际容量" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="计划容量" prop="plan"> | ||||
|           <el-input v-model="form.plan" placeholder="请输入计划容量" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="开工时间" prop="onStreamTime"> | ||||
|           <el-date-picker clearable v-model="form.onStreamTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择开工时间" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="打卡范围" prop="punchRange"> | ||||
|           <el-input v-model="form.punchRange" placeholder="请输入打卡范围" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="设计总量" prop="designTotal"> | ||||
|           <el-input v-model="form.designTotal" placeholder="请输入设计总量" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="安全协议书" prop="securityAgreement"> | ||||
|           <file-upload v-model="form.securityAgreement" :limit="1" :file-type="['pdf']" :file-size="50" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="备注" prop="remark"> | ||||
|           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> | ||||
|         </el-form-item> | ||||
|         <div class="block-box"> | ||||
|           <div class="">基础信息</div> | ||||
|           <el-row :gutter="20"> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="项目名称" prop="projectName"> | ||||
|                 <el-input v-model="form.projectName" placeholder="请输入项目名称" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="项目简称" prop="shortName"> | ||||
|                 <el-input v-model="form.shortName" placeholder="请输入项目简称" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="负责人" prop="principal"> | ||||
|                 <el-input v-model="form.principal" placeholder="请输入负责人" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="负责人电话" prop="principalPhone"> | ||||
|                 <el-input v-model="form.principalPhone" placeholder="请输入负责人电话" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="项目类型" prop="projectType" label-width="100px"> | ||||
|                 <el-select v-model="form.projectType" placeholder="请选择项目类型" clearable> | ||||
|                   <el-option v-for="dict in project_type" :key="dict.value" :label="dict.label" :value="dict.value" /> | ||||
|                 </el-select> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="项目类别" prop="projectCategory" label-width="100px"> | ||||
|                 <el-select v-model="form.projectCategory" placeholder="请选择项目类别" clearable> | ||||
|                   <el-option v-for="dict in project_category_type" :key="dict.value" :label="dict.label" :value="dict.value" /> | ||||
|                 </el-select> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="开工时间" prop="onStreamTime"> | ||||
|                 <el-date-picker clearable v-model="form.onStreamTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择开工时间" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :push="3"> | ||||
|               <el-button type="primary" size="default" @click="amapStatus = true">获取经纬度</el-button> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="经度" prop="lng"> | ||||
|                 <el-input v-model="form.lng" disabled placeholder="请输入经度" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="纬度" prop="lat"> | ||||
|                 <el-input v-model="form.lat" disabled placeholder="请输入纬度" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="24" :offset="0"> | ||||
|               <el-form-item label="项目地址" prop="projectSite"> | ||||
|                 <el-input v-model="form.projectSite" disabled placeholder="请输入项目地址" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="计划容量" prop="plan"> | ||||
|                 <el-input v-model="form.plan" placeholder="请输入计划容量" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="实际容量" prop="actual"> | ||||
|                 <el-input v-model="form.actual" placeholder="请输入实际容量" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="设计总量" prop="designTotal"> | ||||
|                 <el-input v-model="form.designTotal" placeholder="请输入设计总量" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="24" :offset="0"> | ||||
|               <el-form-item label="备注" prop="remark"> | ||||
|                 <el-input v-model="form.remark" placeholder="请输入内容" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="项目排序" prop="remark"> | ||||
|                 <el-input-number v-model="form.sort" :min="0" :max="10000" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|         </div> | ||||
|         <div class="block-box"> | ||||
|           <div class="">打卡设置</div> | ||||
|           <el-row :gutter="20"> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="打卡开始时间" prop="playCardStart" label-width="110px"> | ||||
|                 <!-- <el-time-picker value-format="HH:mm" v-model="form.playCardStart" placeholder="请输入打卡开始时间" /> --> | ||||
|                 <el-time-select | ||||
|                   v-model="form.playCardStart" | ||||
|                   style="width: 100%" | ||||
|                   class="mr-4" | ||||
|                   placeholder="请输入打卡开始时间" | ||||
|                   value-format="HH:mm" | ||||
|                   start="00:00" | ||||
|                   step="00:15" | ||||
|                   end="23:59" | ||||
|                 /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="12" :offset="0"> | ||||
|               <el-form-item label="打卡结束时间" prop="playCardEnd" label-width="110px"> | ||||
|                 <!-- <el-time-picker value-format="HH:mm" v-model="form.playCardEnd" placeholder="请输入打卡结束时间" /> --> | ||||
|                 <el-time-select | ||||
|                   v-model="form.playCardEnd" | ||||
|                   style="width: 100%" | ||||
|                   :min-time="form.playCardStart" | ||||
|                   class="mr-4" | ||||
|                   placeholder="请输入打卡结束时间" | ||||
|                   value-format="HH:mm" | ||||
|                   start="00:00" | ||||
|                   step="00:15" | ||||
|                   end="23:59" | ||||
|                 /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="24" :offset="0"> | ||||
|               <el-form-item label="安全协议书" prop="securityAgreement"> | ||||
|                 <file-upload v-model="form.securityAgreement" :limit="1" :file-type="['pdf']" :file-size="50" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|         </div> | ||||
|       </el-form> | ||||
|       <template #footer> | ||||
|         <div class="dialog-footer"> | ||||
| @ -137,16 +233,29 @@ | ||||
|         </div> | ||||
|       </template> | ||||
|     </el-dialog> | ||||
|     <el-dialog v-model="amapStatus" title="获取经纬度" width="80%"> | ||||
|       <amap height="620px" @setLocation="setPoi"></amap> | ||||
|       <!-- <template #footer> | ||||
|         <div class="dialog-footer"> | ||||
|           <el-button v-loading="buttonLoading" type="primary" @click="amapStatus = false"> 确定</el-button> | ||||
|           <el-button @click="amapStatus = false">取消</el-button> | ||||
|         </div> | ||||
|       </template> --> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script setup name="Project" lang="ts"> | ||||
| import { addProject, delProject, getProject, listProject, updateProject } from '@/api/project/project'; | ||||
| import { ProjectForm, ProjectQuery, ProjectVO } from '@/api/project/project/types'; | ||||
|  | ||||
| import { ProjectForm, ProjectQuery, ProjectVO, locationType } from '@/api/project/project/types'; | ||||
| import amap from '@/components/amap/index.vue'; | ||||
| const { proxy } = getCurrentInstance() as ComponentInternalInstance; | ||||
| const { sys_normal_disable, project_category_type } = toRefs<any>(proxy?.useDict('sys_normal_disable', 'project_category_type')); | ||||
|  | ||||
| const { sys_normal_disable, project_category_type, project_type } = toRefs<any>( | ||||
|   proxy?.useDict('sys_normal_disable', 'project_category_type', 'project_type') | ||||
| ); | ||||
| const change = (val: any) => { | ||||
|   console.log(val, 1212, form.value.playCardStart); | ||||
| }; | ||||
| const projectList = ref<ProjectVO[]>([]); | ||||
| const buttonLoading = ref(false); | ||||
| const loading = ref(true); | ||||
| @ -155,7 +264,7 @@ const ids = ref<Array<string | number>>([]); | ||||
| const single = ref(true); | ||||
| const multiple = ref(true); | ||||
| const total = ref(0); | ||||
|  | ||||
| const amapStatus = ref(false); | ||||
| const queryFormRef = ref<ElFormInstance>(); | ||||
| const projectFormRef = ref<ElFormInstance>(); | ||||
| const dialog = reactive<DialogOption>({ | ||||
| @ -171,19 +280,22 @@ const initFormData: ProjectForm = { | ||||
|   status: undefined, | ||||
|   picUrl: undefined, | ||||
|   remark: undefined, | ||||
|   type: undefined, | ||||
|   isType: undefined, | ||||
|   projectType: undefined, | ||||
|   projectCategory: undefined, | ||||
|   deletedAt: undefined, | ||||
|   projectSite: undefined, | ||||
|   principal: undefined, | ||||
|   principalPhone: undefined, | ||||
|   actual: undefined, | ||||
|   lng: undefined, | ||||
|   lat: undefined, | ||||
|   plan: undefined, | ||||
|   onStreamTime: undefined, | ||||
|   punchRange: undefined, | ||||
|   playCardStart: undefined, | ||||
|   playCardEnd: undefined, | ||||
|   designTotal: undefined, | ||||
|   securityAgreement: undefined, | ||||
|   sort: undefined, | ||||
|   sort: 0, | ||||
|   showHidden: undefined, | ||||
|   isDelete: undefined | ||||
| }; | ||||
| @ -197,16 +309,19 @@ const data = reactive<PageData<ProjectForm, ProjectQuery>>({ | ||||
|     pId: undefined, | ||||
|     status: undefined, | ||||
|     picUrl: undefined, | ||||
|     type: undefined, | ||||
|     isType: undefined, | ||||
|     projectType: undefined, | ||||
|     projectCategory: undefined, | ||||
|     deletedAt: undefined, | ||||
|     projectSite: undefined, | ||||
|     principal: undefined, | ||||
|     principalPhone: undefined, | ||||
|     actual: undefined, | ||||
|     lng: undefined, | ||||
|     lat: undefined, | ||||
|     plan: undefined, | ||||
|     onStreamTime: undefined, | ||||
|     punchRange: undefined, | ||||
|     playCardStart: undefined, | ||||
|     playCardEnd: undefined, | ||||
|     designTotal: undefined, | ||||
|     securityAgreement: undefined, | ||||
|     sort: undefined, | ||||
| @ -215,10 +330,19 @@ const data = reactive<PageData<ProjectForm, ProjectQuery>>({ | ||||
|     params: {} | ||||
|   }, | ||||
|   rules: { | ||||
|     punchRange: [{ required: true, message: '打卡范围不能为空', trigger: 'blur' }], | ||||
|     playCardStart: [{ required: true, message: '打卡开始时间不能为空', trigger: 'blur' }], | ||||
|     playCardEnd: [{ required: true, message: '打卡结束时间不能为空', trigger: 'blur' }], | ||||
|     projectName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }], | ||||
|     shortName: [{ required: true, message: '项目简称不能为空', trigger: 'blur' }], | ||||
|     projectSite: [{ required: true, message: '项目地址不能为空', trigger: 'blur' }] | ||||
|     principalPhone: [{ required: true, message: '负责人电话不能为空', trigger: 'blur' }], | ||||
|     principal: [{ required: true, message: '负责人不能为空', trigger: 'blur' }], | ||||
|     projectType: [{ required: true, message: '项目类型不能为空', trigger: 'blur' }], | ||||
|     projectCategory: [{ required: true, message: '项目类别不能为空', trigger: 'blur' }], | ||||
|     projectSite: [{ required: true, message: '项目地址不能为空', trigger: 'blur' }], | ||||
|     actual: [{ required: true, message: '实际容量不能为空', trigger: 'blur' }], | ||||
|     lng: [{ required: true, message: '经度不能为空', trigger: 'blur' }], | ||||
|     lat: [{ required: true, message: '纬度不能为空', trigger: 'blur' }], | ||||
|     plan: [{ required: true, message: '计划容量不能为空', trigger: 'blur' }] | ||||
|   } | ||||
| }); | ||||
|  | ||||
| @ -243,6 +367,18 @@ const reset = () => { | ||||
|   projectFormRef.value?.resetFields(); | ||||
| }; | ||||
|  | ||||
| // 设置位置信息 | ||||
| const setPoi = (location: locationType) => { | ||||
|   if (location) { | ||||
|     console.log('🚀 ~ setPoi ~ poi:', location); | ||||
|     form.value.lng = location.lng; | ||||
|     form.value.lat = location.lat; | ||||
|     form.value.projectSite = location.projectSite; | ||||
|   } | ||||
|  | ||||
|   amapStatus.value = false; | ||||
| }; | ||||
|  | ||||
| /** 搜索按钮操作 */ | ||||
| const handleQuery = () => { | ||||
|   queryParams.value.pageNum = 1; | ||||
| @ -341,3 +477,17 @@ onMounted(() => { | ||||
|   getList(); | ||||
| }); | ||||
| </script> | ||||
| <style scoped> | ||||
| .block-box { | ||||
|   border: 1px solid #9eccfa; | ||||
|   border-radius: 6px; | ||||
|   padding: 10px 20px 0 10px; | ||||
|   margin-bottom: 20px; | ||||
| } | ||||
| .block-box > div { | ||||
|   color: #409eff; | ||||
|   font-weight: 700; | ||||
|   font-size: 14px; | ||||
|   margin-bottom: 10px; | ||||
| } | ||||
| </style> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user