修改bug

This commit is contained in:
郑彪辉
2025-04-23 23:51:02 +08:00
parent 3e63f64875
commit 07ac63b5bb
952 changed files with 6465 additions and 79209 deletions

View File

@@ -3,41 +3,62 @@
<u-form labelPosition="left" :model="formData" errorType='toast' :rules="rules" ref="formRef" labelWidth="180rpx">
<view class="sidebar-margin card-template mt-[var(--top-m)] py-[20rpx]">
<view>
<u-form-item :label="t('name')" prop="name" required borderBottom>
<u-input fontSize="28rpx" v-model.trim="formData.name" border="none" clearable placeholderStyle="color: #888" :placeholder="t('namePlaceholder')"/>
<u-form-item :label="t('code')" prop="code" required borderBottom>
<u-input fontSize="28rpx" v-model.trim="formData.code" disabled clearable placeholderStyle="color: #888" :placeholder="t('codePlaceholderNew')"/>
</u-form-item>
</view>
<view class="mt-[16rpx]">
<u-form-item :label="t('name')" prop="name" required borderBottom>
<u-input fontSize="28rpx" v-model.trim="formData.name" clearable placeholderStyle="color: #888" :placeholder="t('namePlaceholder')"/>
</u-form-item>
</view>
<view class="mt-[16rpx]">
<up-form-item :label="'仓库'" prop="warehouse_id" required borderBottom>
<!-- #ifdef H5 -->
<zxz-uni-data-select v-model="formData.warehouse_id" :localdata="warehouseList" dataKey="name"
dataValue="id" clear placeholder="请选择仓库" @change="warehouseIdChange" />
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<wht-select v-model="formData.warehouse_id" :options="warehouseList" dataKey="name"
dataValue="id" clearable placeholder="请选择仓库" :height="38" @change="warehouseIdChange" />
<!-- #endif -->
</up-form-item>
</view>
<view class="mt-[16rpx]">
<u-form-item :label="t('contact')" prop="contact" required borderBottom>
<u-input fontSize="28rpx" v-model="formData.contact" :placeholder="t('contactPlaceholder')" border="none"></u-input>
<u-input fontSize="28rpx" v-model="formData.contact" :placeholder="t('contactPlaceholder')" ></u-input>
</u-form-item>
</view>
<view class="mt-[16rpx]">
<u-form-item :label="t('phone')" prop="phone" required borderBottom>
<u-input fontSize="28rpx" v-model.trim="formData.phone" type="number" maxlength="11" border="none" clearable :placeholder="t('phonePlaceholder')" placeholderStyle="color: #888"/>
<u-input fontSize="28rpx" v-model.trim="formData.phone" type="number" maxlength="11" clearable :placeholder="t('phonePlaceholder')" placeholderStyle="color: #888"/>
</u-form-item>
</view>
<view class="mt-[16rpx]">
<u-form-item :label="t('telephone')" prop="telephone" borderBottom>
<u-input fontSize="28rpx" v-model="formData.telephone" :placeholder="t('telephonePlaceholder')" border="none"></u-input>
<u-input fontSize="28rpx" v-model="formData.telephone" :placeholder="t('telephonePlaceholder')" ></u-input>
</u-form-item>
</view>
<view class="mt-[16rpx]">
<u-form-item :label="t('city')" prop="cityName" borderBottom>
<view class="flex w-full items-center h-[52rpx]" @click="selectArea">
<view v-if="!formData.cityName" class="text-[#888] text-[28rpx] flex-1">{{ t('cityPlaceholder') }}</view>
<view v-else class="text-[28rpx] flex-1 leading-[1.4]">{{ formData.cityName }}</view>
</view>
</u-form-item>
<up-form-item :label="'食堂审领人'" prop="salesman_id" borderBottom>
<!-- #ifdef H5 -->
<zxz-uni-data-select v-model="formData.salesman_id" :localdata="siteUser" dataKey="username"
dataValue="uid" clear placeholder="请选择食堂审领人" @change="salesmanIdChange" />
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<wht-select v-model="formData.salesman_id" :options="siteUser" dataKey="username"
dataValue="uid" clearable placeholder="请选择食堂审领人" :height="38" @change="salesmanIdChange" />
<!-- #endif -->
</up-form-item>
</view>
<view class="mt-[16rpx]">
<u-form-item :label="t('address')" prop="address" borderBottom>
<u-input fontSize="28rpx" v-model="formData.address" border="none" clearable maxlength="120" :placeholder="t('addressPlaceholder')" placeholderStyle="color: #888"/>
<u-input fontSize="28rpx" v-model="formData.address" clearable maxlength="120" :placeholder="t('addressPlaceholder')" placeholderStyle="color: #888"/>
</u-form-item>
</view>
<view class="mt-[16rpx]">
<u-form-item :label="t('description')" prop="description">
<u-textarea fontSize="28rpx" v-model="formData.description" :placeholder="t('descriptionPlaceholder')" border="none"></u-textarea>
<u-textarea fontSize="28rpx" v-model="formData.description" :placeholder="t('descriptionPlaceholder')" ></u-textarea>
</u-form-item>
</view>
</view>
@@ -56,10 +77,18 @@
<script setup lang="ts">
import { ref, reactive, computed } from 'vue'
import { onLoad, onReady, onShow } from '@dcloudio/uni-app';
import { t } from '@/locale'
import { addCustomer } from '@/addon/erp/api/base';
import { addCustomer,getusersList,getWarehouseSelect} from '@/addon/erp/api/base';
import { generatedCode } from '@/addon/erp/utils/common';
import { redirect } from '@/utils/common';
import { checkBtnPermission } from '@/utils/auth';
import useMemberStore from '@/stores/member'
interface Warehouse {
id: number;
name: string;
}
const memberStore = useMemberStore()
const formRef: any = ref(null)
const loading = ref(false)
@@ -67,14 +96,28 @@
const areaRef = ref()
const isSelectAddress = ref(false)
const warehouseList = ref<Warehouse[]>([]);
const rules = computed(() => {
return {
'name': {
// 'code': {
// type: 'string',
// required: true,
// message: t('codePlaceholderNew'),
// trigger: ['blur', 'change'],
// },
'name': {
type: 'string',
required: true,
message: t('namePlaceholder'),
trigger: ['blur', 'change'],
},
'warehouse_id': {
type: 'number',
required: true,
message: '请选择仓库',
trigger: ['change'],
},
'contact': {
type: 'string',
required: true,
@@ -109,16 +152,31 @@
telephone: '',
city: '',
cityName: '',
salesman_id: '',
warehouse_id: '',
address: '',
description: ''
})
onLoad((option : any) => {
getAllUserList()
getWarehouseSelectList()
})
const getWarehouseSelectList= ()=>{
getWarehouseSelect().then(res =>{
warehouseList.value=res.data|| []
})
}
const warehouseIdChange = (e : any) => {
formData.warehouse_id = e?.id ||''
if (formRef.value) {
formRef.value.validateField('warehouse_id');
}
}
const selectArea = () => {
isSelectAddress.value = true
areaRef.value.open()
}
const areaSelectComplete = (event: any) => {
let cityArr = [] as any[];
cityArr = [event.province.id || 0, event.city.id || 0, event.district.id || 0];
@@ -127,9 +185,31 @@
formData.cityName = `${event.province.name || ''}${event.city.name || ''}${event.district.name || ''}`
isSelectAddress.value = false;
}
/**
* 食堂审领人
*/
const siteUser = ref<any[]>([]);
const salesmanIdChange = (e : any) => {
formData.salesman_id = e?.uid || ''
if (formRef.value) {
formRef.value.validateField('salesman_id');
}
}
// 获取食堂审领人
const getAllUserList = () => {
getusersList({page:1,limit:120}).then((res : any) => {
siteUser.value = res.data.data || [];
}).catch(err => {
// 如果是4001没有绑定企业账号强制跳转绑定
if (err.code == 4001) {
redirect({ url: '/addon/erp/pages/member/bind' })
}
})
}
// 保存
const handSave = () => {
const handSave = async() => {
const hasPermission = await checkBtnPermission(memberStore.btnPermission, 'erp_base_customer_add')
if (!hasPermission) return
formRef.value.validate().then(() => {
if (loading.value) return
loading.value = true