mirror of
https://gitee.com/krxd/shuyuan.git
synced 2026-04-08 05:15:54 +08:00
refactor(erp): 调整客户添加页面样式和功能
- 优化客户添加页面的输入框样式 - 更新仓库选择和区域选择功能 - 修复电话号码验证逻辑 - 调整产品列表和选择组件的显示 - 修改区域选择组件的样式 - 更新私钥文件
This commit is contained in:
@@ -1,27 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
<template>
|
||||
<view class="bg-[var(--page-bg-color)] min-h-[100vh] overflow-hidden form-edit" :style="themeColor()">
|
||||
<u-form labelPosition="left" :model="formData" errorType='toast' :rules="rules" ref="formRef" labelWidth="180rpx">
|
||||
<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>
|
||||
<!-- <view>
|
||||
<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-input fontSize="28rpx" v-model.trim="formData.name" clearable placeholderStyle="color: #888"
|
||||
:placeholder="t('namePlaceholder')" />
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="mt-[16rpx]">
|
||||
@@ -26,17 +28,20 @@
|
||||
</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')" ></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" 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')" ></u-input>
|
||||
<u-input fontSize="28rpx" v-model="formData.telephone"
|
||||
:placeholder="t('telephonePlaceholder')"></u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="mt-[16rpx]">
|
||||
@@ -53,71 +58,75 @@
|
||||
</view>
|
||||
<view class="mt-[16rpx]">
|
||||
<u-form-item :label="t('address')" prop="address" borderBottom>
|
||||
<u-input fontSize="28rpx" v-model="formData.address" 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')" ></u-textarea>
|
||||
<u-textarea fontSize="28rpx" v-model="formData.description"
|
||||
:placeholder="t('descriptionPlaceholder')"></u-textarea>
|
||||
</u-form-item>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</u-form>
|
||||
<view class="w-full footer" v-if="hasPermission('erp_base_customer_add')">
|
||||
<view class="py-[var(--top-m)] px-[var(--sidebar-m)] footer w-full fixed bottom-0 left-0 right-0 box-border">
|
||||
<button hover-class="none" class="!bg-[var(--primary-color)] text-[#fff] h-[80rpx] leading-[80rpx] rounded-[100rpx] text-[26rpx] font-500"
|
||||
@click="handSave" :disabled="loading" :class="{'opacity-50': loading}">{{t('save')}}</button>
|
||||
<view
|
||||
class="py-[var(--top-m)] px-[var(--sidebar-m)] footer w-full fixed bottom-0 left-0 right-0 box-border">
|
||||
<button hover-class="none"
|
||||
class="!bg-[var(--primary-color)] text-[#fff] h-[80rpx] leading-[80rpx] rounded-[100rpx] text-[26rpx] font-500"
|
||||
@click="handSave" :disabled="loading" :class="{'opacity-50': loading}">{{t('save')}}</button>
|
||||
</view>
|
||||
</view>
|
||||
<area-select ref="areaRef" @complete="areaSelectComplete" :area-id="0"/>
|
||||
<area-select ref="areaRef" @complete="areaSelectComplete" :area-id="0" />
|
||||
</view>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed } from 'vue'
|
||||
import { onLoad, onReady, onShow } from '@dcloudio/uni-app';
|
||||
import { t } from '@/locale'
|
||||
import { addCustomer,getusersList,getWarehouseSelect} 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 useMemberStore from '@/stores/member'
|
||||
import usePermission from '@/utils/usePermission'
|
||||
const { hasPermission } = usePermission()
|
||||
interface Warehouse {
|
||||
id: number;
|
||||
name: string;
|
||||
id : number;
|
||||
name : string;
|
||||
}
|
||||
const memberStore = useMemberStore()
|
||||
|
||||
const formRef: any = ref(null)
|
||||
|
||||
const formRef : any = ref(null)
|
||||
const loading = ref(false)
|
||||
|
||||
|
||||
const areaRef = ref()
|
||||
const isSelectAddress = ref(false)
|
||||
|
||||
|
||||
const warehouseList = ref<Warehouse[]>([]);
|
||||
|
||||
const rules = computed(() => {
|
||||
return {
|
||||
// 'code': {
|
||||
// type: 'string',
|
||||
// required: true,
|
||||
// message: t('codePlaceholderNew'),
|
||||
// trigger: ['blur', 'change'],
|
||||
// },
|
||||
return {
|
||||
// 'code': {
|
||||
// type: 'string',
|
||||
// required: true,
|
||||
// message: t('codePlaceholderNew'),
|
||||
// trigger: ['blur', 'change'],
|
||||
// },
|
||||
'name': {
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: t('namePlaceholder'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: t('namePlaceholder'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
'warehouse_id': {
|
||||
type: 'number',
|
||||
required: true,
|
||||
message: '请选择仓库',
|
||||
trigger: ['change'],
|
||||
type: 'number',
|
||||
required: true,
|
||||
message: '请选择仓库',
|
||||
trigger: ['change'],
|
||||
},
|
||||
'contact': {
|
||||
type: 'string',
|
||||
@@ -126,24 +135,24 @@
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
'phone': [
|
||||
{
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: t('phonePlaceholder'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
{
|
||||
validator(rule: any, value: any, callback: any) {
|
||||
let mobile = /^1[3-9]\d{9}$/;
|
||||
if (!mobile.test(value)){
|
||||
callback(new Error(t('mobileError')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: t('phonePlaceholder'),
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
{
|
||||
validator(rule : any, value : any, callback : any) {
|
||||
let mobile = new RegExp('^1[3-9]\d{9}$');
|
||||
if (!mobile.test(value)) {
|
||||
callback(new Error(t('mobileError')))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
const formData = reactive({
|
||||
code: generatedCode("CT"),
|
||||
@@ -158,32 +167,32 @@
|
||||
address: '',
|
||||
description: ''
|
||||
})
|
||||
|
||||
|
||||
onLoad((option : any) => {
|
||||
getAllUserList()
|
||||
getWarehouseSelectList()
|
||||
})
|
||||
const getWarehouseSelectList= ()=>{
|
||||
getWarehouseSelect().then(res =>{
|
||||
warehouseList.value=res.data|| []
|
||||
const getWarehouseSelectList = () => {
|
||||
getWarehouseSelect().then(res => {
|
||||
warehouseList.value = res.data || []
|
||||
})
|
||||
}
|
||||
const warehouseIdChange = (e : any) => {
|
||||
formData.warehouse_id = e?.id ||''
|
||||
formData.warehouse_id = e?.id || ''
|
||||
if (formRef.value) {
|
||||
formRef.value.validateField('warehouse_id');
|
||||
}
|
||||
}
|
||||
const selectArea = () => {
|
||||
isSelectAddress.value = true
|
||||
areaRef.value.open()
|
||||
areaRef.value.open()
|
||||
}
|
||||
const areaSelectComplete = (event: any) => {
|
||||
const areaSelectComplete = (event : any) => {
|
||||
let cityArr = [] as any[];
|
||||
cityArr = [event.province.id || 0, event.city.id || 0, event.district.id || 0];
|
||||
|
||||
formData.city = cityArr.join(',');
|
||||
formData.cityName = `${event.province.name || ''}${event.city.name || ''}${event.district.name || ''}`
|
||||
|
||||
formData.city = cityArr.join(',');
|
||||
formData.cityName = `${event.province.name || ''}${event.city.name || ''}${event.district.name || ''}`
|
||||
isSelectAddress.value = false;
|
||||
}
|
||||
/**
|
||||
@@ -198,7 +207,7 @@
|
||||
}
|
||||
// 获取食堂审领人
|
||||
const getAllUserList = () => {
|
||||
getusersList({page:1,limit:120}).then((res : any) => {
|
||||
getusersList({ page: 1, limit: 120 }).then((res : any) => {
|
||||
siteUser.value = res.data.data || [];
|
||||
}).catch(err => {
|
||||
// 如果是4001,没有绑定企业账号,强制跳转绑定
|
||||
@@ -208,36 +217,38 @@
|
||||
})
|
||||
}
|
||||
// 保存
|
||||
const handSave = async() => {
|
||||
const handSave = async () => {
|
||||
formRef.value.validate().then(() => {
|
||||
if (loading.value) return
|
||||
loading.value = true
|
||||
|
||||
addCustomer(formData).then((res: any) => {
|
||||
if (loading.value) return
|
||||
loading.value = true
|
||||
|
||||
addCustomer(formData).then((res : any) => {
|
||||
loading.value = false
|
||||
if(res.code == 1){
|
||||
if (res.code == 1) {
|
||||
redirect({ url: '/addon/erp/pages/base/customer/list' })
|
||||
}
|
||||
}).catch((err) => {
|
||||
}).catch((err) => {
|
||||
// 如果是4001,没有绑定企业账号,强制跳转绑定
|
||||
if(err.code == 4001){
|
||||
if (err.code == 4001) {
|
||||
redirect({ url: '/addon/erp/pages/member/bind' })
|
||||
}
|
||||
loading.value = false
|
||||
})
|
||||
loading.value = false
|
||||
})
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.form-edit :deep(.u-form-item__body__left__content__label){
|
||||
.form-edit :deep(.u-form-item__body__left__content__label) {
|
||||
font-size: 28rpx !important;
|
||||
}
|
||||
.form-edit :deep(.u-form-item__body__right){
|
||||
display:flex;
|
||||
|
||||
.form-edit :deep(.u-form-item__body__right) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.footer{
|
||||
|
||||
.footer {
|
||||
height: calc(100rpx + var(--top-m) + var(--top-m) + constant(safe-area-inset-bottom)) !important;
|
||||
height: calc(100rpx + var(--top-m) + var(--top-m) + env(safe-area-inset-bottom)) !important;
|
||||
}
|
||||
|
||||
@@ -34,10 +34,10 @@
|
||||
{{ t('spec') }}:<text
|
||||
class="ml-[20rpx] text-[var(--primary-color)]">{{item.spec}}</text>
|
||||
</view>
|
||||
<view class="flex justify-start mb-[18rpx] text-[12px] text-[#6a6a6a]">
|
||||
<!-- <view class="flex justify-start mb-[18rpx] text-[12px] text-[#6a6a6a]">
|
||||
{{ t('inventory') }}:<text
|
||||
class="ml-[20rpx] text-[var(--primary-color)]">{{item.inventory}}</text>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="flex justify-start mb-[18rpx] text-[12px] text-[#6a6a6a]">
|
||||
{{ t('productUnitId') }}:<text
|
||||
class="ml-[20rpx] text-[var(--primary-color)]">{{item.productUnit?.name}}</text>
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
{{ t('spec') }}:<text
|
||||
class="ml-[20rpx] text-[var(--primary-color)]">{{item.spec}}</text>
|
||||
</view>
|
||||
<view class="flex justify-start mb-[18rpx] text-[12px] text-[#6a6a6a]">
|
||||
<!-- <view class="flex justify-start mb-[18rpx] text-[12px] text-[#6a6a6a]">
|
||||
{{ t('inventory') }}:<text
|
||||
class="ml-[20rpx] text-[var(--primary-color)]">{{item.inventory}}</text>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="flex justify-start mb-[18rpx] text-[12px] text-[#6a6a6a]">
|
||||
{{ t('productUnitId') }}:<text
|
||||
class="ml-[20rpx] text-[var(--primary-color)]">{{item.productUnit?.name}}</text>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
@click="selected.city = item">{{ item.name }}</view>
|
||||
</view>
|
||||
<view v-if="areaList.district.length" v-show="currSelect == 'district'">
|
||||
<view v-for="item in areaList.district" class="h-[80rpx] flex items-center " :class="{'text-[var(--primary-color)]': selected.district && selected.district.id == item.id }"
|
||||
<view v-for="item in areaList.district" class="h-[80rpx] flex items-center" :class="{'text-[var(--primary-color)]': selected.district && selected.district.id == item.id }"
|
||||
@click="selected.district = item">{{ item.name }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
"urlCheck" : true,
|
||||
"es6" : true,
|
||||
"postcss" : true,
|
||||
"minified" : true
|
||||
"minified" : false
|
||||
},
|
||||
"usingComponents" : true,
|
||||
"permission" : {
|
||||
|
||||
Reference in New Issue
Block a user