fix:修复完善创建授权页面逻辑
This commit is contained in:
1 parent
8ab50aa927
commit
961be26353
1 file changed
+261
-79
@@ -48,7 +48,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="customerCode"
|
v-model="customerCode"
|
||||||
placeholder="自动生成或手动输入"
|
placeholder="自动生成或手动输入"
|
||||||
readonly
|
disabled
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="createdBy"
|
v-model="createdBy"
|
||||||
placeholder="当前登录用户"
|
placeholder="当前登录用户"
|
||||||
readonly
|
disabled
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -76,19 +76,33 @@
|
|||||||
<div class="license-form">
|
<div class="license-form">
|
||||||
<h3 class="section-title">授权配置</h3>
|
<h3 class="section-title">授权配置</h3>
|
||||||
|
|
||||||
<!-- 第三行:授权期限,起止时间 -->
|
<!-- 第三行:授权期限类型,起止时间 -->
|
||||||
<div class="fields-row">
|
<div class="fields-row">
|
||||||
<el-form-item label="授权期限" prop="validity_days" required class="field-item">
|
<el-form-item label="授权期限" prop="validity_type" required class="field-item">
|
||||||
<el-input-number
|
<el-select
|
||||||
v-model="formData.validity_days"
|
v-model="validityType"
|
||||||
:min="1"
|
placeholder="请选择授权期限类型"
|
||||||
:max="36500"
|
|
||||||
placeholder="请输入授权期限(天)"
|
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
@change="handleValidityTypeChange"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
label="永久"
|
||||||
|
value="permanent"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="有限"
|
||||||
|
value="limited"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="起止时间" prop="date_range" required class="field-item">
|
<el-form-item
|
||||||
|
v-if="validityType === 'limited'"
|
||||||
|
label="起止时间"
|
||||||
|
prop="date_range"
|
||||||
|
required
|
||||||
|
class="field-item"
|
||||||
|
>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRange"
|
v-model="dateRange"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
@@ -101,6 +115,18 @@
|
|||||||
@change="handleDateRangeChange"
|
@change="handleDateRangeChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="validityType === 'permanent'"
|
||||||
|
label="有效期天数"
|
||||||
|
class="field-item"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
:value="'永久(365000天)'"
|
||||||
|
readonly
|
||||||
|
style="width: 100%"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 第四行:最大激活设备数,部署类型,加密类型 -->
|
<!-- 第四行:最大激活设备数,部署类型,加密类型 -->
|
||||||
@@ -119,6 +145,7 @@
|
|||||||
v-model="formData.deployment_type"
|
v-model="formData.deployment_type"
|
||||||
placeholder="请选择部署类型"
|
placeholder="请选择部署类型"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
@change="handleDeploymentTypeChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="option in deploymentTypeOptions"
|
v-for="option in deploymentTypeOptions"
|
||||||
@@ -157,9 +184,11 @@ import { useRouter, useRoute } from 'vue-router'
|
|||||||
import { createLicense, updateLicense, getLicenseDetail, type AuthorizationCodeCreateRequest, type LicenseUpdateRequest } from '@/api/license'
|
import { createLicense, updateLicense, getLicenseDetail, type AuthorizationCodeCreateRequest, type LicenseUpdateRequest } from '@/api/license'
|
||||||
import { getCustomers, type Customer } from '@/api/customer'
|
import { getCustomers, type Customer } from '@/api/customer'
|
||||||
import { getEnumOptions, type RawEnumItem } from '@/api/enum'
|
import { getEnumOptions, type RawEnumItem } from '@/api/enum'
|
||||||
|
import { useUserStore } from '@/store/modules/user'
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
// 表单引用
|
// 表单引用
|
||||||
const formRef = ref<FormInstance>()
|
const formRef = ref<FormInstance>()
|
||||||
@@ -190,6 +219,7 @@ const formData = reactive<AuthorizationCodeCreateRequest>({
|
|||||||
const customerCode = ref('')
|
const customerCode = ref('')
|
||||||
const createdBy = ref('')
|
const createdBy = ref('')
|
||||||
const dateRange = ref<[string, string] | null>(null)
|
const dateRange = ref<[string, string] | null>(null)
|
||||||
|
const validityType = ref<'permanent' | 'limited'>('limited')
|
||||||
|
|
||||||
// 计算属性
|
// 计算属性
|
||||||
const isEdit = computed(() => {
|
const isEdit = computed(() => {
|
||||||
@@ -199,23 +229,72 @@ const isEdit = computed(() => {
|
|||||||
// 表单验证规则
|
// 表单验证规则
|
||||||
const formRules: FormRules = {
|
const formRules: FormRules = {
|
||||||
customer_id: [
|
customer_id: [
|
||||||
{ required: true, message: '请选择客户', trigger: 'change' }
|
{ required: true, message: '请选择客户', trigger: 'change' },
|
||||||
],
|
{
|
||||||
customer_code: [
|
validator: (_rule: any, value: any, callback: any) => {
|
||||||
{ required: true, message: '客户ID不能为空', trigger: 'blur' }
|
if (value && customerOptions.value.length > 0) {
|
||||||
],
|
const selectedCustomer = customerOptions.value.find(c => c.id === value)
|
||||||
created_by: [
|
if (!selectedCustomer) {
|
||||||
{ required: true, message: '创建人不能为空', trigger: 'blur' }
|
callback(new Error('请从下拉列表中选择有效的客户'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
],
|
],
|
||||||
description: [
|
description: [
|
||||||
{ required: true, message: '请输入备注信息', trigger: 'blur' }
|
{ required: true, message: '请输入备注信息', trigger: 'blur' },
|
||||||
|
{ min: 1, max: 500, message: '备注信息长度应在1-500个字符之间', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
validity_days: [
|
validity_type: [
|
||||||
{ required: true, message: '请输入授权期限', trigger: 'blur' },
|
{ required: true, message: '请选择授权期限类型', trigger: 'change' }
|
||||||
{ type: 'number', min: 1, max: 36500, message: '授权期限必须在1-36500天之间', trigger: 'blur' }
|
|
||||||
],
|
],
|
||||||
date_range: [
|
date_range: [
|
||||||
{ required: true, message: '请选择起止时间', trigger: 'change' }
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择起止时间',
|
||||||
|
trigger: 'change',
|
||||||
|
validator: (_rule: any, _value: any, callback: any) => {
|
||||||
|
if (validityType.value === 'limited' && (!dateRange.value || dateRange.value.length !== 2)) {
|
||||||
|
callback(new Error('请选择起止时间'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validator: (_rule: any, _value: any, callback: any) => {
|
||||||
|
if (validityType.value === 'limited' && dateRange.value && dateRange.value.length === 2) {
|
||||||
|
const startDate = new Date(dateRange.value[0])
|
||||||
|
const endDate = new Date(dateRange.value[1])
|
||||||
|
const today = new Date()
|
||||||
|
today.setHours(0, 0, 0, 0)
|
||||||
|
|
||||||
|
if (startDate < today) {
|
||||||
|
callback(new Error('开始日期不能早于今天'))
|
||||||
|
} else if (endDate <= startDate) {
|
||||||
|
callback(new Error('结束日期必须晚于开始日期'))
|
||||||
|
} else {
|
||||||
|
// 检查日期范围是否超过合理范围(比如10年)
|
||||||
|
const maxDays = 3650 // 10年
|
||||||
|
const diffTime = endDate.getTime() - startDate.getTime()
|
||||||
|
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
|
||||||
|
if (diffDays > maxDays) {
|
||||||
|
callback(new Error('授权期限不能超过10年'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
],
|
],
|
||||||
deployment_type: [
|
deployment_type: [
|
||||||
{ required: true, message: '请选择部署类型', trigger: 'change' }
|
{ required: true, message: '请选择部署类型', trigger: 'change' }
|
||||||
@@ -225,7 +304,23 @@ const formRules: FormRules = {
|
|||||||
],
|
],
|
||||||
max_activations: [
|
max_activations: [
|
||||||
{ required: true, message: '请输入最大激活设备数', trigger: 'blur' },
|
{ required: true, message: '请输入最大激活设备数', trigger: 'blur' },
|
||||||
{ type: 'number', min: 1, message: '最大激活设备数必须大于0', trigger: 'blur' }
|
{
|
||||||
|
type: 'number',
|
||||||
|
min: 1,
|
||||||
|
max: 999999,
|
||||||
|
message: '最大激活设备数必须在1-999999之间',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validator: (_rule: any, value: any, callback: any) => {
|
||||||
|
if (value && !Number.isInteger(Number(value))) {
|
||||||
|
callback(new Error('最大激活设备数必须为整数'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,26 +329,31 @@ const loadEnumOptions = async () => {
|
|||||||
try {
|
try {
|
||||||
// 加载部署类型选项
|
// 加载部署类型选项
|
||||||
const deploymentResponse = await getEnumOptions('deployment_type')
|
const deploymentResponse = await getEnumOptions('deployment_type')
|
||||||
deploymentTypeOptions.value = deploymentResponse.data.items
|
if (deploymentResponse.code === '000000') {
|
||||||
|
deploymentTypeOptions.value = deploymentResponse.data.items
|
||||||
|
} else {
|
||||||
|
throw new Error(deploymentResponse.message || '加载部署类型选项失败')
|
||||||
|
}
|
||||||
|
|
||||||
// 加载加密类型选项
|
// 加载加密类型选项
|
||||||
const encryptionResponse = await getEnumOptions('encryption_type')
|
const encryptionResponse = await getEnumOptions('encryption_type')
|
||||||
encryptionTypeOptions.value = encryptionResponse.data.items
|
if (encryptionResponse.code === '000000') {
|
||||||
} catch (error) {
|
encryptionTypeOptions.value = encryptionResponse.data.items
|
||||||
|
} else {
|
||||||
|
throw new Error(encryptionResponse.message || '加载加密类型选项失败')
|
||||||
|
}
|
||||||
|
} catch (error: any) {
|
||||||
console.error('加载枚举选项失败:', error)
|
console.error('加载枚举选项失败:', error)
|
||||||
// 使用默认选项
|
let errorMessage = error.backendMessage || error.response?.data?.message || error.message
|
||||||
deploymentTypeOptions.value = [
|
if (errorMessage) {
|
||||||
{ key: 'standalone', display: '单机版' },
|
ElMessage.error('加载枚举选项失败: ' + errorMessage)
|
||||||
{ key: 'cloud', display: '云端版' },
|
} else {
|
||||||
{ key: 'hybrid', display: '混合版' }
|
ElMessage.error('加载枚举选项失败,请稍后重试')
|
||||||
]
|
}
|
||||||
encryptionTypeOptions.value = [
|
|
||||||
{ key: 'standard', display: '标准加密' },
|
|
||||||
{ key: 'advanced', display: '高级加密' }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 搜索关联客户
|
||||||
const searchCustomers = async (query: string) => {
|
const searchCustomers = async (query: string) => {
|
||||||
if (!query) {
|
if (!query) {
|
||||||
customerOptions.value = []
|
customerOptions.value = []
|
||||||
@@ -268,42 +368,73 @@ const searchCustomers = async (query: string) => {
|
|||||||
customer_name: query
|
customer_name: query
|
||||||
})
|
})
|
||||||
customerOptions.value = response.data.list
|
customerOptions.value = response.data.list
|
||||||
} catch (error) {
|
} catch (error: any) {
|
||||||
console.error('搜索客户失败:', error)
|
console.error('搜索客户失败:', error)
|
||||||
ElMessage.error('搜索客户失败')
|
let errorMessage = error.backendMessage || error.response?.data?.message || error.message
|
||||||
|
if (errorMessage) {
|
||||||
|
ElMessage.error('搜索客户失败: ' + errorMessage)
|
||||||
|
} else {
|
||||||
|
ElMessage.error('搜索客户失败,请稍后重试')
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
customerLoading.value = false
|
customerLoading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 表单初始化
|
||||||
const loadCustomerInfo = () => {
|
const loadCustomerInfo = () => {
|
||||||
// 从路由参数获取客户信息
|
// 从路由参数获取客户信息
|
||||||
const customerId = route.query.customerId as string
|
// const customerId = route.query.customerId as string
|
||||||
const customerName = route.query.customerName as string
|
// const customerName = route.query.customerName as string
|
||||||
|
|
||||||
if (customerId && customerName) {
|
// if (customerId && customerName) {
|
||||||
formData.customer_id = customerId
|
// formData.customer_id = customerId
|
||||||
customerOptions.value = [{
|
// customerOptions.value = [{
|
||||||
id: customerId,
|
// id: customerId,
|
||||||
customer_name: customerName,
|
// customer_name: customerName,
|
||||||
customer_code: '',
|
// customer_code: '',
|
||||||
customer_type: '',
|
// customer_type: '',
|
||||||
customer_type_display: '',
|
// customer_type_display: '',
|
||||||
contact_person: '',
|
// contact_person: '',
|
||||||
email: '',
|
// email: '',
|
||||||
customer_level: '',
|
// customer_level: '',
|
||||||
customer_level_display: '',
|
// customer_level_display: '',
|
||||||
status: '',
|
// status: '',
|
||||||
status_display: '',
|
// status_display: '',
|
||||||
created_at: '',
|
// created_at: '',
|
||||||
updated_at: '',
|
// updated_at: '',
|
||||||
created_by: '',
|
// created_by: '',
|
||||||
updated_by: ''
|
// updated_by: ''
|
||||||
} as Customer]
|
// } as Customer]
|
||||||
|
// }
|
||||||
|
|
||||||
|
// 设置创建人(从用户store获取当前登录用户)
|
||||||
|
if (userStore.userInfo) {
|
||||||
|
createdBy.value = userStore.userInfo.username
|
||||||
|
} else {
|
||||||
|
createdBy.value = '未知用户'
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// 设置创建人(这里可以从用户store获取当前登录用户)
|
|
||||||
createdBy.value = '当前用户' // TODO: 从用户store获取
|
// 处理授权期限类型变化
|
||||||
|
const handleValidityTypeChange = (type: 'permanent' | 'limited') => {
|
||||||
|
if (type === 'permanent') {
|
||||||
|
formData.validity_days = 365000
|
||||||
|
dateRange.value = null
|
||||||
|
} else {
|
||||||
|
// 有限期限时,如果已有日期范围,重新计算天数
|
||||||
|
if (dateRange.value && dateRange.value.length === 2) {
|
||||||
|
const startDate = new Date(dateRange.value[0])
|
||||||
|
const endDate = new Date(dateRange.value[1])
|
||||||
|
const diffTime = endDate.getTime() - startDate.getTime()
|
||||||
|
formData.validity_days = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理部署类型变化
|
||||||
|
const handleDeploymentTypeChange = () => {
|
||||||
|
// 部署类型变化时的处理逻辑(如需要可以在这里添加)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理日期范围变化
|
// 处理日期范围变化
|
||||||
@@ -316,15 +447,17 @@ const handleDateRangeChange = (dates: [string, string] | null) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据id获取授权详情
|
||||||
const loadLicenseDetail = async () => {
|
const loadLicenseDetail = async () => {
|
||||||
if (!isEdit.value) return
|
if (!isEdit.value) return
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const id = route.params.id as string
|
const id = route.params.id as string
|
||||||
const response = await getLicenseDetail(id)
|
const response = await getLicenseDetail(id)
|
||||||
const data = response.data
|
|
||||||
|
|
||||||
if (data) {
|
if (response.code === '000000' && response.data) {
|
||||||
|
const data = response.data
|
||||||
|
|
||||||
// 填充表单数据
|
// 填充表单数据
|
||||||
formData.customer_id = data.customer_id || ''
|
formData.customer_id = data.customer_id || ''
|
||||||
formData.description = data.description || ''
|
formData.description = data.description || ''
|
||||||
@@ -334,15 +467,35 @@ const loadLicenseDetail = async () => {
|
|||||||
|
|
||||||
// 设置独立字段
|
// 设置独立字段
|
||||||
customerCode.value = (data as any).customer_code || data.customer_id || ''
|
customerCode.value = (data as any).customer_code || data.customer_id || ''
|
||||||
createdBy.value = (data as any).created_by || '当前用户'
|
// 编辑模式下显示原始创建人,如果没有则显示当前用户
|
||||||
|
createdBy.value = (data as any).created_by || (userStore.userInfo ? userStore.userInfo.username : '未知用户')
|
||||||
|
|
||||||
// 计算有效期天数和设置日期范围
|
// 计算有效期天数和设置日期范围
|
||||||
if (data.start_date && data.end_date) {
|
if (data.start_date && data.end_date) {
|
||||||
const startDate = new Date(data.start_date)
|
const startDate = new Date(data.start_date)
|
||||||
const endDate = new Date(data.end_date)
|
const endDate = new Date(data.end_date)
|
||||||
const diffTime = endDate.getTime() - startDate.getTime()
|
const diffTime = endDate.getTime() - startDate.getTime()
|
||||||
formData.validity_days = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
|
const days = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
|
||||||
dateRange.value = [data.start_date, data.end_date]
|
formData.validity_days = days
|
||||||
|
|
||||||
|
// 根据天数判断是永久还是有限
|
||||||
|
if (days >= 365000) {
|
||||||
|
validityType.value = 'permanent'
|
||||||
|
dateRange.value = null
|
||||||
|
} else {
|
||||||
|
validityType.value = 'limited'
|
||||||
|
dateRange.value = [data.start_date, data.end_date]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 如果没有日期信息,根据validity_days判断
|
||||||
|
const validityDays = (data as any).validity_days
|
||||||
|
if (validityDays && validityDays >= 365000) {
|
||||||
|
validityType.value = 'permanent'
|
||||||
|
formData.validity_days = 365000
|
||||||
|
} else {
|
||||||
|
validityType.value = 'limited'
|
||||||
|
formData.validity_days = validityDays || 365
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置客户选项
|
// 设置客户选项
|
||||||
@@ -365,17 +518,26 @@ const loadLicenseDetail = async () => {
|
|||||||
updated_by: ''
|
updated_by: ''
|
||||||
} as Customer]
|
} as Customer]
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error(response.message || '获取授权详情失败')
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error: any) {
|
||||||
console.error('加载授权详情失败:', error)
|
console.error('加载授权详情失败:', error)
|
||||||
ElMessage.error('加载授权详情失败')
|
let errorMessage = error.backendMessage || error.response?.data?.message || error.message
|
||||||
|
if (errorMessage) {
|
||||||
|
ElMessage.error('加载授权详情失败: ' + errorMessage)
|
||||||
|
} else {
|
||||||
|
ElMessage.error('加载授权详情失败,请稍后重试')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 提交(新增/更新)授权数据
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (!formRef.value) return
|
if (!formRef.value) return
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// 执行表单验证
|
||||||
await formRef.value.validate()
|
await formRef.value.validate()
|
||||||
|
|
||||||
submitting.value = true
|
submitting.value = true
|
||||||
@@ -396,24 +558,39 @@ const handleSubmit = async () => {
|
|||||||
reason: '管理员更新授权配置'
|
reason: '管理员更新授权配置'
|
||||||
}
|
}
|
||||||
|
|
||||||
await updateLicense(id, updateData)
|
const response = await updateLicense(id, updateData)
|
||||||
ElMessage.success('更新成功')
|
if (response.code === '000000') {
|
||||||
|
ElMessage.success(response.message || '更新成功')
|
||||||
|
// 返回列表页面
|
||||||
|
router.back()
|
||||||
|
} else {
|
||||||
|
throw new Error(response.message || '更新失败')
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 创建授权
|
// 创建授权
|
||||||
await createLicense(formData)
|
const response = await createLicense(formData)
|
||||||
ElMessage.success('创建成功')
|
if (response.code === '000000') {
|
||||||
|
ElMessage.success(response.message || '创建成功')
|
||||||
|
// 返回列表页面
|
||||||
|
router.back()
|
||||||
|
} else {
|
||||||
|
throw new Error(response.message || '创建失败')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error: any) {
|
||||||
// 返回列表页面
|
|
||||||
router.back()
|
|
||||||
} catch (error) {
|
|
||||||
console.error('提交失败:', error)
|
console.error('提交失败:', error)
|
||||||
ElMessage.error('提交失败')
|
let errorMessage = error.backendMessage || error.response?.data?.message || error.message
|
||||||
|
if (errorMessage) {
|
||||||
|
ElMessage.error('提交失败: ' + errorMessage)
|
||||||
|
} else {
|
||||||
|
ElMessage.error('提交失败,请稍后重试')
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
submitting.value = false
|
submitting.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 取消函数
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
ElMessageBox.confirm('确定要取消吗?未保存的更改将丢失。', '提示', {
|
ElMessageBox.confirm('确定要取消吗?未保存的更改将丢失。', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
@@ -432,7 +609,12 @@ watch(() => formData.customer_id, (newCustomerId) => {
|
|||||||
const selectedCustomer = customerOptions.value.find(c => c.id === newCustomerId)
|
const selectedCustomer = customerOptions.value.find(c => c.id === newCustomerId)
|
||||||
if (selectedCustomer) {
|
if (selectedCustomer) {
|
||||||
customerCode.value = selectedCustomer.customer_code || selectedCustomer.id
|
customerCode.value = selectedCustomer.customer_code || selectedCustomer.id
|
||||||
|
} else {
|
||||||
|
// 如果没有找到客户,清空客户代码
|
||||||
|
customerCode.value = ''
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
customerCode.value = ''
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user