浏览代码

reactor:地图选点优化;

zhangchong 1 年之前
父节点
当前提交
260482ccce

+ 2 - 2
src/components/LogicFlow/PropertySetting/summary.vue

@@ -110,7 +110,7 @@ const props = defineProps<{
 	modelValue: any;
 }>();
 // 注意:ref不能与model一样,相同的话表单双向绑定将会失效
-const form = reactive<any>({
+const form = reactive<Record<string, any>>({
   ...props.modelValue,  // 传入的数据
   handlerClassifiesOrgin: [], // 选择的数据
   handlerClassifies: [],  // 选择的数据
@@ -179,7 +179,7 @@ const checkChange = () => {
 };
 // 远程搜索用户名称
 // 指定用户列表
-const userList = ref<EmptyArrayType>();
+const userList = ref<any>();
 const remoteMethod = (query: string) => {
 	if (query !== '') {
 		loading.value = true;

+ 2 - 2
src/components/LogicFlow/PropertySetting/task.vue

@@ -109,7 +109,7 @@ const props = defineProps<{
 	modelValue: any;
 }>();
 // 注意:ref不能与model一样,相同的话表单双向绑定将会失效
-const form = reactive<any>({
+const form = reactive<Record<string, any>>({
   ...props.modelValue,  // 传入的数据
   handlerClassifiesOrgin: [], // 选择的数据
   handlerClassifies: [],  // 选择的数据
@@ -155,7 +155,7 @@ const changeOptions = (e: any) => {
 };
 // 远程搜索用户名称
 // 指定用户列表
-const userList = ref<EmptyArrayType>();
+const userList = ref<any>();
 const remoteMethod = (query: string) => {
   if (query !== '') {
     loading.value = true;

+ 11 - 7
src/components/ProcessApproval/index.vue

@@ -41,26 +41,25 @@
 							<el-form-item label="当前期满时间"> {{ formatDate(state.orderDetail.expiredTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
 						</el-col>
 						<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12">
-							<el-form-item label="延期申请数量">
+							<el-form-item label="延期申请数量" prop="timeLimitCount" :rules="[{ required: true, message: '请输入延期申请数量', trigger: 'blur' }]">
 								<el-row :gutter="10">
 									<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-										<el-form-item label="" prop="timeLimitCount" :rules="[{ required: true, message: '请输入延期申请数量', trigger: 'blur' }]">
 											<el-input-number
 												placeholder="延期申请数量"
 												v-model="state.delayForm.timeLimitCount"
 												controls-position="right"
 												class="w100"
+                        @input="computeTime"
 											></el-input-number>
-										</el-form-item>
 									</el-col>
 									<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 										<el-form-item
 											label=""
 											label-width="0"
-											prop="timeLimitCount"
+											prop="timeLimitUnit"
 											:rules="[{ required: true, message: '请选择延期申请单位', trigger: 'change' }]"
 										>
-											<el-select v-model="state.delayForm.timeLimitCount" placeholder="延期申请单位">
+											<el-select v-model="state.delayForm.timeLimitUnit" placeholder="延期申请单位" @change="computeTime">
 												<el-option v-for="item in timeTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
 											</el-select>
 										</el-form-item>
@@ -368,6 +367,7 @@ import {
 	workflowRedoParams,
 } from '/@/api/system/workflow';
 import { redoBaseData,redoApply } from '/@/api/business/redo';
+import {debounce, throttle} from '/@/utils/tools';
 
 // 引入组件
 const CommonAdvice = defineAsyncComponent(() => import('/@/components/CommonAdvice/index.vue')); // 常用意见
@@ -385,7 +385,7 @@ const state = reactive<any>({
 	},
 	delayForm: {
 		//延期申请表单
-		timeLimitCount: 0, // 延期申请数量
+		timeLimitCount: null, // 延期申请数量
 		content: '', // 延期申请理由
 		timeLimitUnit: '', // 延期申请单位
 	},
@@ -609,6 +609,11 @@ const chooseAdvice = (item: any) => {
 const chooseAdviceDelay = (item: any) => {
 	state.delayForm.content += item.content;
 };
+// 计算期满时间
+const computeTime =  debounce(() =>{
+  if(!state.delayForm.timeLimitCount || !state.delayForm.timeLimitUnit) return;
+  console.log(state.delayForm.timeLimitCount,state.delayForm.timeLimitUnit);
+},300)
 // 选择常用意见 填入填写框 甄别
 const chooseAdviceDiscern = (item: any) => {
 	state.discernForm.content += item.content;
@@ -618,7 +623,6 @@ const chooseAdviceRedo = (item: any) => {
 	state.redoForm.redoOpinion += item.content;
 };
 const afterSubmit = (emitType?: 'orderProcessSuccess' | 'orderProcessFailed', showMessage?: boolean) => {
-
 	state.loading = false;
 	closeDialog();
 	if (showMessage) ElMessage.success('操作成功');

+ 1 - 0
src/layout/navBars/breadcrumb/search.vue

@@ -9,6 +9,7 @@
 					ref="layoutMenuAutocompleteRef"
 					@select="onHandleSelect"
 					:fit-input-width="true"
+          value-key="path"
 				>
 					<template #prefix>
 						<el-icon class="el-input__icon">

+ 0 - 1
src/layout/navBars/breadcrumb/user.vue

@@ -513,7 +513,6 @@ onMounted(() => {
 		cursor: pointer;
 		color: var(--hotline-color-text-main);
 		&:hover {
-			background: var(--hotline-color-user-hover);
 			i {
 				display: inline-block;
 				animation: logoAnimation 0.3s ease-in-out;

+ 21 - 3
src/views/business/order/components/amap-select.vue

@@ -19,7 +19,17 @@
 
 <script setup>
 import AMapLoader from '@amap/amap-jsapi-loader';
-import { onMounted, ref, shallowRef, watch } from 'vue';
+import {computed, onMounted, ref, shallowRef, watch} from 'vue';
+import { storeToRefs } from 'pinia';
+import { useThemeConfig } from '/@/stores/themeConfig';
+
+const storesThemeConfig = useThemeConfig();
+const { themeConfig } = storeToRefs(storesThemeConfig);
+
+// 获取布局配置信息
+const getThemeConfig = computed(() => {
+  return themeConfig.value;
+});
 window._AMapSecurityConfig = {
 	securityJsCode: import.meta.env.VITE_AMAP_SECURITYJSCODE,
 };
@@ -90,6 +100,13 @@ const initMap = () => {
 				citylimit: false, // 是否强制限制在设置的城市内搜索
 				autoFitView: true,
 			});
+      if(getThemeConfig.value.isIsDark){
+        const styleName = "amap://styles/" + 'dark';
+        map.value.setMapStyle(styleName);
+      }else{
+        const styleName = "amap://styles/" + 'normal';
+        map.value.setMapStyle(styleName);
+      }
 		});
 	});
 };
@@ -153,7 +170,7 @@ const handleSelect = (item) => {
 };
 // 绘制地点marker
 const drawMarker = (val) => {
-	const { longitude, latitude } = location.value || val;
+	const { longitude, latitude,formattedAddress } = location.value || val;
 	if (marker) {
 		marker.setMap(null);
 	}
@@ -162,7 +179,8 @@ const drawMarker = (val) => {
 		anchor: 'bottom-center',
 	});
 	map.value.add(marker);
-	map.value.setZoomAndCenter(16, [longitude, latitude]);
+	map.value.setCenter([longitude, latitude]);
+  keyword.value = formattedAddress;
 };
 defineExpose({
 	location,