gaoluyang
16 小时以前 2a500686266b8fc6dae991c799800e37083a45c2
src/pages/cooperativeOffice/clientVisit/detail.vue
@@ -2,55 +2,57 @@
  <view class="client-visit-detail">
    <PageHeader title="客户拜访详情" @back="goBack" />
    
    <u-form @submit="handleSignIn" ref="formRef" label-width="110" input-align="right" error-message-align="right">
    <u-form @submit="handleSignIn" ref="formRef" label-width="90">
      <!-- 客户信息 -->
      <u-cell-group title="客户信息">
        <u-form-item label="客户名称" prop="customerName" required border-bottom>
          <u-input
            v-model="form.customerName"
            placeholder="请输入客户名称"
            readonly
          />
        </u-form-item>
        <u-form-item label="联系人" prop="contactPerson" border-bottom>
        <u-form-item label="联系人" prop="contact" border-bottom>
          <u-input
            v-model="form.contactPerson"
            v-model="form.contact"
            placeholder="请输入联系人"
            readonly
          />
        </u-form-item>
        <u-form-item label="联系电话" prop="contactPhone" border-bottom>
          <u-input
            v-model="form.contactPhone"
            placeholder="请输入联系电话"
            readonly
          />
        </u-form-item>
      </u-cell-group>
      <!-- 拜访信息 -->
      <u-cell-group title="拜访信息">
        <u-form-item label="拜访目的" prop="visitPurpose" required border-bottom>
        <u-form-item label="拜访目的" prop="purposeVisit" required border-bottom>
          <u-input
            v-model="form.visitPurpose"
            v-model="form.purposeVisit"
            placeholder="请输入拜访目的"
          />
        </u-form-item>
        <u-form-item label="拜访时间" prop="visitTime" required border-bottom>
        <u-form-item label="拜访时间" prop="purposeDate" required border-bottom>
          <u-input
            v-model="form.visitTime"
            v-model="form.purposeDate"
            placeholder="请选择拜访时间"
            readonly
            @click="showTimePicker"
          />
          <template #right>
               <up-icon
                  name="arrow-right"
                  @click="showTimePicker"
               ></up-icon>
            </template>
        </u-form-item>
        <u-form-item label="拜访地点" prop="visitLocation" required border-bottom>
        <u-form-item label="拜访地点" prop="visitAddress" required border-bottom>
          <u-input
            v-model="form.visitLocation"
            v-model="form.visitAddress"
            placeholder="请输入拜访地点"
          >
            <template #suffix>
              <u-icon name="map" @click.stop="getCurrentLocation" class="location-icon" />
              <u-icon name="map" @click="getCurrentLocation" class="location-icon" />
            </template>
          </u-input>
        </u-form-item>
@@ -77,19 +79,19 @@
    </u-form>
    <!-- 时间选择器 -->
    <u-popup v-model="showTime" mode="bottom">
      <u-datetime-picker
        v-model="currentTime"
        title="选择时间"
        @confirm="onTimeConfirm"
        @cancel="showTime = false"
      />
    </u-popup>
    <up-datetime-picker
               :show="showTime"
               v-model="currentTime"
               @confirm="onTimeConfirm"
               @cancel="showTime = false"
               mode="datetime"
            />
  </view>
</template>
<script setup>
// 替换 toast 方法
defineOptions({name: 'client-visit-detail'})
const showToast = (message) => {
  uni.showToast({
    title: message,
@@ -98,7 +100,6 @@
}
import { ref, onMounted } from 'vue'
import { onShow } from '@dcloudio/uni-app'
import PageHeader from '@/components/PageHeader.vue'
import { clientVisitSignIn } from '@/api/cooperativeOffice/clientVisit'
import useUserStore from "@/store/modules/user"
@@ -126,11 +127,13 @@
const formRef = ref(null)
// 时间相关
const currentTime = ref(new Date())
const currentTime = ref(Date.now())
const showTime = ref(false)
// 返回上一页
const goBack = () => {
  // 返回时清除本地存储的ID
  uni.removeStorageSync('clientVisit')
  uni.navigateBack()
}
@@ -140,10 +143,11 @@
}
// 确认时间选择
const onTimeConfirm = ({ selectedValues }) => {
  form.value.purposeDate = selectedValues.join('-')
  currentTime.value = selectedValues.join('-')
  showTime.value = false
const onTimeConfirm = (e) => {
  console.log(e)
  form.value.purposeDate = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')
   currentTime.value = e.value
   showTime.value = false;
}
// 获取当前位置
@@ -207,8 +211,6 @@
// 提交签到
const handleSignIn = async () => {
    console.log('form.value----', form.value);
  if (!form.value.customerName) {
    showToast('请输入客户名称')
    return
@@ -237,16 +239,14 @@
    Object.keys(source).forEach((k) => {
      submitData[k] = source[k]
    })
    console.log('提交数据:', submitData)
      console.log('submitData', submitData)
    const { code } = await clientVisitSignIn(submitData)
    console.log('code----', code);
    
    if (code === 200) {
      showToast('签到成功')
      setTimeout(() => {
        uni.navigateBack()
            goBack()
      }, 500)
    } else {
      loading.value = false
@@ -254,7 +254,6 @@
    }
  } catch (e) {
    loading.value = false
    showToast('签到失败,请检查网络连接')
    console.error('签到失败:', e)
  }
}
@@ -263,7 +262,7 @@
const initPageData = () => {
  // 设置默认拜访时间为当前时间
  form.value.purposeDate = dayjs().format('YYYY-MM-DD HH:mm:ss')
  currentTime.value = new Date()
  currentTime.value = Date.now()
  
  // 设置拜访人为当前登录用户的昵称
  form.value.visitingPeople = userStore.nickName || ''
@@ -275,6 +274,7 @@
</script>
<style scoped lang="scss">
@import '@/static/scss/form-common.scss';
.client-visit {
  min-height: 100vh;
  background: #f8f9fa;