优化:
1、取消新增报告时,我方领导必填项
This commit is contained in:
@@ -1,67 +1,66 @@
|
||||
<template>
|
||||
<uni-forms ref="formRef" :model="formData" label-width="100px" label-position="top">
|
||||
<uni-forms-item label="客户人员" name="customerUserList" class="f-c-right">
|
||||
<uni-easyinput v-model="formData.customerUserList" placeholder="请选择客户人员" name="input"
|
||||
:disabled="isDisabled"
|
||||
@focus="chooseClientUser"></uni-easyinput>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="我方参与人" name="myUserList" class="f-c-right">
|
||||
<uni-easyinput v-model="formData.myUserList" placeholder="请选择我方参与人" name="input"
|
||||
:disabled="isDisabled"
|
||||
@focus="chooseMyUser"></uni-easyinput>
|
||||
</uni-forms-item>
|
||||
<uni-forms ref="formRef" :model="formData" label-width="100px" label-position="top">
|
||||
<uni-forms-item label="客户人员" name="customerUserList" class="f-c-right">
|
||||
<uni-easyinput v-model="formData.customerUserList" placeholder="请选择客户人员" name="input"
|
||||
:disabled="isDisabled"
|
||||
@focus="chooseClientUser"></uni-easyinput>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="我方参与人" name="myUserList" class="f-c-right">
|
||||
<uni-easyinput v-model="formData.myUserList" placeholder="请选择我方参与人" name="input"
|
||||
:disabled="isDisabled"
|
||||
@focus="chooseMyUser"></uni-easyinput>
|
||||
</uni-forms-item>
|
||||
|
||||
<uni-forms-item label="住宿天数" name="stayDays">
|
||||
<picker
|
||||
@change="handlePickerChange"
|
||||
:value="stayDaysIndex"
|
||||
:range="stayDaysOptions"
|
||||
:disabled="isDisabled"
|
||||
>
|
||||
<view class="picker-container">
|
||||
<view class="picker-display">
|
||||
{{ stayDaysOptions[stayDaysIndex] }}
|
||||
<uni-forms-item label="住宿天数" name="stayDays">
|
||||
<picker
|
||||
@change="handlePickerChange"
|
||||
:value="stayDaysIndex"
|
||||
:range="stayDaysOptions"
|
||||
:disabled="isDisabled"
|
||||
>
|
||||
<view class="picker-container">
|
||||
<view class="picker-display">
|
||||
{{ stayDaysOptions[stayDaysIndex] }}
|
||||
</view>
|
||||
<uni-icons type="arrowdown" size="16" color="#666"></uni-icons>
|
||||
</view>
|
||||
<uni-icons type="arrowdown" size="16" color="#666"></uni-icons>
|
||||
</view>
|
||||
</picker>
|
||||
</uni-forms-item>
|
||||
</picker>
|
||||
</uni-forms-item>
|
||||
|
||||
<uni-forms-item label="活动文字" name="activeTxt" class="uni-forms-item is-direction-top is-top">
|
||||
<uni-easyinput type="textarea" autoHeight v-model="formData.activeTxt" placeholder="请输入" 活动文字
|
||||
class="form-texarea" />
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
<view class="footer-con">
|
||||
<button class="btn-default" type="default" @click="handleDeleteVisistDetailItem" size="mini">删 除</button>
|
||||
<button class="btn-primary" type="primary" @click="submitForm" size="mini">保存/修改</button>
|
||||
</view>
|
||||
<uni-forms-item label="活动文字" name="activeTxt" class="uni-forms-item is-direction-top is-top">
|
||||
<uni-easyinput type="textarea" autoHeight v-model="formData.activeTxt" placeholder="请输入" 活动文字
|
||||
class="form-texarea"/>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
<view class="footer-con">
|
||||
<button class="btn-default" type="default" @click="handleDeleteVisistDetailItem" size="mini">删 除</button>
|
||||
<button class="btn-primary" type="primary" @click="submitForm" size="mini">保存/修改</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup name="lyVisitComponent">
|
||||
import { ref, reactive } from 'vue'
|
||||
import {ref, reactive} from 'vue'
|
||||
import cache from '../../../../../utils/cache'
|
||||
import { onShow, onUnload } from '@dcloudio/uni-app';
|
||||
import { addVisistDetail, deleVisistDetailItem, getVisistDetailItem } from '../../../../../api/crm/activity/activity';
|
||||
import {onShow, onUnload} from '@dcloudio/uni-app';
|
||||
import {addVisistDetail, deleVisistDetailItem, getVisistDetailItem} from '../../../../../api/crm/activity/activity';
|
||||
|
||||
let customerUserList = ref([])
|
||||
let myUserList = ref([])
|
||||
let activeTxt = ref('')
|
||||
let isDisabled = ref(false)
|
||||
const props = defineProps({
|
||||
cusName: String, //客户单位名称
|
||||
cusId: Number,//客户ID
|
||||
visistId: Number,//活动ID
|
||||
status: String //状态
|
||||
cusName: String, //客户单位名称
|
||||
cusId: Number,//客户ID
|
||||
visistId: Number,//活动ID
|
||||
status: String //状态
|
||||
})
|
||||
|
||||
|
||||
|
||||
// 表单数据
|
||||
const formData = ref({
|
||||
customerUserList,
|
||||
myUserList,
|
||||
activeTxt
|
||||
customerUserList,
|
||||
myUserList,
|
||||
activeTxt
|
||||
});
|
||||
|
||||
// 表单ref
|
||||
@@ -69,150 +68,151 @@ const formRef = ref(null);
|
||||
|
||||
//删除明细项的内容
|
||||
let lyDeleteForm = reactive({})
|
||||
|
||||
function handleDeleteVisistDetailItem() {
|
||||
lyDeleteForm.treeName = '联谊活动'
|
||||
lyDeleteForm.visistId = props.visistId
|
||||
deleVisistDetailItem(lyDeleteForm).then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '删除成功',
|
||||
duration: 2000
|
||||
});
|
||||
//响应成功,删除缓存记录
|
||||
handleDelete()
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
});
|
||||
}
|
||||
})
|
||||
lyDeleteForm.treeName = '联谊活动'
|
||||
lyDeleteForm.visistId = props.visistId
|
||||
deleVisistDetailItem(lyDeleteForm).then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '删除成功',
|
||||
duration: 2000
|
||||
});
|
||||
//响应成功,删除缓存记录
|
||||
handleDelete()
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 删除内容
|
||||
let handleDelete = () => {
|
||||
formData.value.customerUserList = null
|
||||
formData.value.myUserList = null
|
||||
formData.value.activeTxt = null
|
||||
if (cache.get('checkedLYClientList') != null) {
|
||||
cache.remove('checkedYWClientList');
|
||||
}
|
||||
if (cache.get('checkedLYMyUserList') != null) {
|
||||
cache.remove('checkedLYMyUserList');
|
||||
}
|
||||
formData.value.customerUserList = null
|
||||
formData.value.myUserList = null
|
||||
formData.value.activeTxt = null
|
||||
stayDaysIndex.value = 0
|
||||
if (cache.get('checkedLYClientList') != null) {
|
||||
cache.remove('checkedYWClientList');
|
||||
}
|
||||
if (cache.get('checkedLYMyUserList') != null) {
|
||||
cache.remove('checkedLYMyUserList');
|
||||
}
|
||||
}
|
||||
|
||||
//删除缓存
|
||||
let handleDeleteLocal = () => {
|
||||
cache.remove('checkedLYClientList');
|
||||
cache.remove('checkedLYMyUserList');
|
||||
cache.remove('checkedLYClientList');
|
||||
cache.remove('checkedLYMyUserList');
|
||||
}
|
||||
|
||||
let lyForm = reactive({})
|
||||
// 保存/修改
|
||||
const submitForm = async () => {
|
||||
try {
|
||||
// 验证表单
|
||||
await formRef.value.validate();
|
||||
// 验证通过后的操作
|
||||
uni.showToast({
|
||||
title: '验证通过',
|
||||
icon: 'success'
|
||||
});
|
||||
lyForm.treeName = '联谊活动'
|
||||
lyForm.cusId = props.cusId
|
||||
lyForm.visistId = props.visistId
|
||||
try {
|
||||
// 验证表单
|
||||
await formRef.value.validate();
|
||||
// 验证通过后的操作
|
||||
uni.showToast({
|
||||
title: '验证通过',
|
||||
icon: 'success'
|
||||
});
|
||||
lyForm.treeName = '联谊活动'
|
||||
lyForm.cusId = props.cusId
|
||||
lyForm.visistId = props.visistId
|
||||
|
||||
if (Array.isArray(myUserList.value)) {
|
||||
lyForm.ourPersonnel = myUserList.value.join(',')
|
||||
} else {
|
||||
lyForm.ourPersonnel = myUserList.value
|
||||
}
|
||||
|
||||
if (Array.isArray(customerUserList.value)) {
|
||||
lyForm.cusPersonnel = customerUserList.value.join(',')
|
||||
} else {
|
||||
lyForm.cusPersonnel = customerUserList.value
|
||||
}
|
||||
|
||||
lyForm.bandResult = activeTxt.value
|
||||
lyForm.multiple = stayDaysIndex.value+1
|
||||
// 提交服务器进行新增
|
||||
addVisistDetail(lyForm).then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '提交成功',
|
||||
duration: 2000
|
||||
});
|
||||
//响应成功,删除缓存记录
|
||||
handleDeleteLocal()
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
});
|
||||
}
|
||||
})
|
||||
} catch (err) {
|
||||
console.log('表单验证失败:', err);
|
||||
if (Array.isArray(myUserList.value)) {
|
||||
lyForm.ourPersonnel = myUserList.value.join(',')
|
||||
} else {
|
||||
lyForm.ourPersonnel = myUserList.value
|
||||
}
|
||||
|
||||
if (Array.isArray(customerUserList.value)) {
|
||||
lyForm.cusPersonnel = customerUserList.value.join(',')
|
||||
} else {
|
||||
lyForm.cusPersonnel = customerUserList.value
|
||||
}
|
||||
|
||||
lyForm.bandResult = activeTxt.value
|
||||
lyForm.multiple = stayDaysIndex.value + 1
|
||||
// 提交服务器进行新增
|
||||
addVisistDetail(lyForm).then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '提交成功',
|
||||
duration: 2000
|
||||
});
|
||||
//响应成功,删除缓存记录
|
||||
handleDeleteLocal()
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
});
|
||||
}
|
||||
})
|
||||
} catch (err) {
|
||||
console.log('表单验证失败:', err);
|
||||
}
|
||||
};
|
||||
|
||||
//页面渲染完成后,查询catch的get
|
||||
onShow(() => {
|
||||
|
||||
if (cache.get('checkedLYClientList') != null && cache.get('checkedLYClientList') != []) {
|
||||
customerUserList.value = cache.get('checkedLYClientList')
|
||||
}
|
||||
if (cache.get('checkedLYClientList') != null && cache.get('checkedLYClientList') != []) {
|
||||
customerUserList.value = cache.get('checkedLYClientList')
|
||||
}
|
||||
|
||||
if (cache.get('checkedLYMyUserList') != null && cache.get('checkedLYMyUserList') != []) {
|
||||
myUserList.value = cache.get('checkedLYMyUserList')
|
||||
}
|
||||
console.log(props.status,'获取的状态')
|
||||
if (cache.get('checkedLYMyUserList') != null && cache.get('checkedLYMyUserList') != []) {
|
||||
myUserList.value = cache.get('checkedLYMyUserList')
|
||||
}
|
||||
console.log(props.status, '获取的状态')
|
||||
|
||||
if(props.status=='完成'){
|
||||
isDisabled.value = true
|
||||
}else{
|
||||
isDisabled.value = false
|
||||
}
|
||||
if (props.status == '完成') {
|
||||
isDisabled.value = true
|
||||
} else {
|
||||
isDisabled.value = false
|
||||
}
|
||||
})
|
||||
|
||||
//查询日常走访的内容
|
||||
let queryLYForm = reactive({})
|
||||
let getLYVisitReportDetailContent = () => {
|
||||
queryLYForm.visistId = props.visistId
|
||||
queryLYForm.cusId = props.cusId
|
||||
queryLYForm.treeName = '联谊活动'
|
||||
getVisistDetailItem(queryLYForm).then(res => {
|
||||
if (res.rows[0] != null) {
|
||||
customerUserList.value = res.rows[0].customerPersonnel
|
||||
myUserList.value = res.rows[0].ourPersonnel
|
||||
stayDaysIndex.value = res.rows[0].multiple-1
|
||||
activeTxt.value = res.rows[0].bandResult
|
||||
}
|
||||
})
|
||||
queryLYForm.visistId = props.visistId
|
||||
queryLYForm.cusId = props.cusId
|
||||
queryLYForm.treeName = '联谊活动'
|
||||
getVisistDetailItem(queryLYForm).then(res => {
|
||||
if (res.rows[0] != null) {
|
||||
customerUserList.value = res.rows[0].customerPersonnel
|
||||
myUserList.value = res.rows[0].ourPersonnel
|
||||
stayDaysIndex.value = res.rows[0].multiple - 1
|
||||
activeTxt.value = res.rows[0].bandResult
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
//页面卸载之后,删除缓存信息
|
||||
onUnload(() => {
|
||||
handleDeleteLocal()
|
||||
handleDeleteLocal()
|
||||
})
|
||||
|
||||
|
||||
//选择客户人员
|
||||
function chooseClientUser() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/business/CRM/marketActivity/customerUserList?cusName=' + props.cusName + '&chooseType=联谊活动'
|
||||
})
|
||||
uni.navigateTo({
|
||||
url: '/pages/business/CRM/marketActivity/customerUserList?cusName=' + props.cusName + '&chooseType=联谊活动'
|
||||
})
|
||||
}
|
||||
|
||||
//选择我方参与人
|
||||
function chooseMyUser() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/business/CRM/marketActivity/myUserList?chooseType=联谊活动'
|
||||
})
|
||||
uni.navigateTo({
|
||||
url: '/pages/business/CRM/marketActivity/myUserList?chooseType=联谊活动'
|
||||
})
|
||||
}
|
||||
|
||||
// 住宿天数
|
||||
@@ -221,13 +221,13 @@ const stayDaysIndex = ref(0) // 默认未选择
|
||||
|
||||
const handlePickerChange = (e) => {
|
||||
stayDaysIndex.value = e.detail.value
|
||||
console.log("天数数字:",stayDaysIndex.value+1)
|
||||
console.log("天数数字:", stayDaysIndex.value + 1)
|
||||
}
|
||||
|
||||
// 明确暴露给父组件的方法
|
||||
defineExpose({
|
||||
handleDelete,
|
||||
getLYVisitReportDetailContent
|
||||
handleDelete,
|
||||
getLYVisitReportDetailContent
|
||||
})
|
||||
|
||||
</script>
|
||||
@@ -235,55 +235,55 @@ defineExpose({
|
||||
|
||||
<style scoped lang="scss">
|
||||
.all-body {
|
||||
/* #ifdef APP-PLUS */
|
||||
top: 150rpx;
|
||||
height: calc(100vh - 75px);
|
||||
/* #endif */
|
||||
/* #ifndef APP-PLUS */
|
||||
top: 120rpx;
|
||||
height: calc(100vh);
|
||||
/* #endif */
|
||||
/* #ifdef APP-PLUS */
|
||||
top: 150rpx;
|
||||
height: calc(100vh - 75px);
|
||||
/* #endif */
|
||||
/* #ifndef APP-PLUS */
|
||||
top: 120rpx;
|
||||
height: calc(100vh);
|
||||
/* #endif */
|
||||
}
|
||||
|
||||
.search {
|
||||
display: flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.search .btn-search {
|
||||
border: none;
|
||||
background: none;
|
||||
line-height: normal;
|
||||
color: #fff;
|
||||
line-height: 56rpx !important;
|
||||
padding: 10rpx 0 0;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background: none;
|
||||
line-height: normal;
|
||||
color: #fff;
|
||||
line-height: 56rpx !important;
|
||||
padding: 10rpx 0 0;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.search .btn-search::after {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.search .custom-search {
|
||||
width: 80%;
|
||||
width: 80%;
|
||||
|
||||
}
|
||||
|
||||
.search .custom-search.uni-searchbar {
|
||||
padding-right: 0 !important;
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
|
||||
.scroll-h {
|
||||
/* #ifdef APP-PLUS */
|
||||
height: calc(100vh - 120px);
|
||||
/* #endif */
|
||||
/* #ifndef APP-PLUS */
|
||||
height: calc(100vh - 110px);
|
||||
/* #endif */
|
||||
/* #ifdef APP-PLUS */
|
||||
height: calc(100vh - 120px);
|
||||
/* #endif */
|
||||
/* #ifndef APP-PLUS */
|
||||
height: calc(100vh - 110px);
|
||||
/* #endif */
|
||||
}
|
||||
|
||||
.white-bg {
|
||||
padding-bottom: 10rpx;
|
||||
padding-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.picker-container {
|
||||
|
||||
Reference in New Issue
Block a user