Merge branch 'main' of https://git.1024tool.vip/zfc/guzhi
This commit is contained in:
commit
d4b2c801f4
@ -61,6 +61,7 @@ const handleConfirm = () => {
|
|||||||
if (!errors) {
|
if (!errors) {
|
||||||
emit('confirm', {
|
emit('confirm', {
|
||||||
...formData.value,
|
...formData.value,
|
||||||
|
attachments: fileList.value?.map((file) => file.url) || [],
|
||||||
id: props.invoiceData?.id,
|
id: props.invoiceData?.id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -93,15 +94,11 @@ const handleUploadFinish = ({ file, event }) => {
|
|||||||
const res = JSON.parse(event.target.response)
|
const res = JSON.parse(event.target.response)
|
||||||
// 只要返回了 url 字段,就认为上传成功
|
// 只要返回了 url 字段,就认为上传成功
|
||||||
if (res.code === 200 && res.data?.url) {
|
if (res.code === 200 && res.data?.url) {
|
||||||
// 显式查找 fileList 中的文件对象进行更新,确保响应式
|
file.url = res.data.url
|
||||||
const targetFile = fileList.value.find(f => f.id === file.id) || file
|
file.name = res.data.filename || file.name
|
||||||
targetFile.url = res.data.url
|
file.status = 'finished'
|
||||||
targetFile.name = res.data.filename || targetFile.name
|
|
||||||
targetFile.status = 'finished' // 手动标记为完成
|
|
||||||
|
|
||||||
// 更新 formData.attachments
|
|
||||||
updateAttachments()
|
|
||||||
$message.success('上传成功')
|
$message.success('上传成功')
|
||||||
|
return file
|
||||||
} else {
|
} else {
|
||||||
$message.error(res.message || '上传失败')
|
$message.error(res.message || '上传失败')
|
||||||
// 从列表中移除失败的文件
|
// 从列表中移除失败的文件
|
||||||
@ -114,25 +111,6 @@ const handleUploadFinish = ({ file, event }) => {
|
|||||||
const index = fileList.value.findIndex((item) => item.id === file.id)
|
const index = fileList.value.findIndex((item) => item.id === file.id)
|
||||||
if (index > -1) fileList.value.splice(index, 1)
|
if (index > -1) fileList.value.splice(index, 1)
|
||||||
}
|
}
|
||||||
return file
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新附件列表
|
|
||||||
const updateAttachments = () => {
|
|
||||||
// 只要有 url 的都算作有效附件
|
|
||||||
formData.value.attachments = fileList.value
|
|
||||||
.map(file => file.url)
|
|
||||||
.filter(url => !!url)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 移除文件
|
|
||||||
const handleRemove = ({ file }) => {
|
|
||||||
const index = fileList.value.findIndex(item => item.id === file.id)
|
|
||||||
if (index > -1) {
|
|
||||||
fileList.value.splice(index, 1)
|
|
||||||
updateAttachments()
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
@ -201,7 +179,6 @@ const modalTitle = props.mode === 'invoice' ? '开票' : '查看发票'
|
|||||||
:headers="uploadHeaders"
|
:headers="uploadHeaders"
|
||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
@finish="handleUploadFinish"
|
@finish="handleUploadFinish"
|
||||||
@remove="handleRemove"
|
|
||||||
:disabled="mode === 'view'"
|
:disabled="mode === 'view'"
|
||||||
>
|
>
|
||||||
<div class="upload-trigger">
|
<div class="upload-trigger">
|
||||||
|
|||||||
@ -230,7 +230,7 @@ async function handleInvoiceConfirm(formData) {
|
|||||||
email: formData.email,
|
email: formData.email,
|
||||||
subject: formData.email, // 用户要求 subject 传 email
|
subject: formData.email, // 用户要求 subject 传 email
|
||||||
body: formData.content, // 映射 content -> body
|
body: formData.content, // 映射 content -> body
|
||||||
file_url: formData.attachments?.[0] || '', // 映射 attachments -> file_url
|
file_url: formData.attachments, // 映射 attachments -> file_url
|
||||||
}
|
}
|
||||||
|
|
||||||
await api.sendInvoice(payload)
|
await api.sendInvoice(payload)
|
||||||
|
|||||||
@ -335,11 +335,11 @@ const handleCertificateConfirm = async (data) => {
|
|||||||
const certificateUrl = data.certificateFiles?.map(f => f.url).filter(Boolean) || []
|
const certificateUrl = data.certificateFiles?.map(f => f.url).filter(Boolean) || []
|
||||||
const reportUrl = data.reportFiles?.map(f => f.url).filter(Boolean) || []
|
const reportUrl = data.reportFiles?.map(f => f.url).filter(Boolean) || []
|
||||||
|
|
||||||
|
// 现在改为只能上传 1 张
|
||||||
const payload = {
|
const payload = {
|
||||||
...props.detailData,
|
...props.detailData,
|
||||||
certificate_url: certificateUrl,
|
certificate_url: certificateUrl?.[0],
|
||||||
report_url: reportUrl,
|
report_url: reportUrl?.[0],
|
||||||
status: 'success'
|
status: 'success'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -203,13 +203,12 @@ const handlePreview = (file) => {
|
|||||||
<div class="upload-content">
|
<div class="upload-content">
|
||||||
<NUpload
|
<NUpload
|
||||||
v-model:file-list="reportFileList"
|
v-model:file-list="reportFileList"
|
||||||
multiple
|
max="1"
|
||||||
list-type="image-card"
|
list-type="image-card"
|
||||||
:action="uploadUrl"
|
:action="uploadUrl"
|
||||||
:headers="uploadHeaders"
|
:headers="uploadHeaders"
|
||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
@finish="handleReportUploadFinish"
|
@finish="handleReportUploadFinish"
|
||||||
|
|
||||||
:disabled="!isUploadMode"
|
:disabled="!isUploadMode"
|
||||||
show-preview-button
|
show-preview-button
|
||||||
show-download-button
|
show-download-button
|
||||||
@ -225,13 +224,12 @@ const handlePreview = (file) => {
|
|||||||
<div class="upload-content">
|
<div class="upload-content">
|
||||||
<NUpload
|
<NUpload
|
||||||
v-model:file-list="certificateFileList"
|
v-model:file-list="certificateFileList"
|
||||||
multiple
|
|
||||||
list-type="image-card"
|
list-type="image-card"
|
||||||
:action="uploadUrl"
|
:action="uploadUrl"
|
||||||
:headers="uploadHeaders"
|
:headers="uploadHeaders"
|
||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
@finish="handleCertificateUploadFinish"
|
@finish="handleCertificateUploadFinish"
|
||||||
|
max="1"
|
||||||
:disabled="!isUploadMode"
|
:disabled="!isUploadMode"
|
||||||
show-preview-button
|
show-preview-button
|
||||||
show-download-button
|
show-download-button
|
||||||
|
|||||||
@ -62,7 +62,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<NInput v-model:value="modalForm.institution" placeholder="请输入所属机构/权利人" />
|
<NInput v-model:value="modalForm.institution" placeholder="请输入所属机构/权利人" />
|
||||||
</n-form-item-gi>
|
</n-form-item-gi>
|
||||||
<n-form-item-gi :span="12" label="统一社会信用代码/身份证号" path="credit_code">
|
<n-form-item-gi :span="12" label="统一社会信用代码/身份证号" path="credit_code_or_id">
|
||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex items-center gap-4">
|
<div class="flex items-center gap-4">
|
||||||
<span>统一社会信用代码/身份证号</span>
|
<span>统一社会信用代码/身份证号</span>
|
||||||
@ -74,7 +74,7 @@
|
|||||||
</n-tooltip>
|
</n-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<NInput v-model:value="modalForm.credit_code" placeholder="请输入统一社会信用代码/身份证号" />
|
<NInput v-model:value="modalForm.credit_code_or_id" placeholder="请输入统一社会信用代码/身份证号" />
|
||||||
</n-form-item-gi>
|
</n-form-item-gi>
|
||||||
<n-form-item-gi :span="12" label="所属行业" path="industry">
|
<n-form-item-gi :span="12" label="所属行业" path="industry">
|
||||||
<template #label>
|
<template #label>
|
||||||
@ -96,7 +96,7 @@
|
|||||||
/>
|
/>
|
||||||
</n-form-item-gi>
|
</n-form-item-gi>
|
||||||
<n-gi :span="12"></n-gi>
|
<n-gi :span="12"></n-gi>
|
||||||
<n-form-item-gi :span="24" label="业务/传承介绍" path="business_heritage_intro">
|
<n-form-item-gi :span="24" label="业务/传承介绍" path="biz_intro">
|
||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex items-center gap-4">
|
<div class="flex items-center gap-4">
|
||||||
<span>业务/传承介绍</span>
|
<span>业务/传承介绍</span>
|
||||||
@ -109,7 +109,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<n-input
|
<n-input
|
||||||
v-model:value="modalForm.business_heritage_intro"
|
v-model:value="modalForm.biz_intro"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="请在此处自由填写受评估单位/人的详细业务与项目情况。建议着重介绍与本次所评估非遗IP资产直接相关的背景信息,例如:主要业务范围、核心技艺、传承谱系、运营模式、市场定位、近年发展状况等。本部分是评估师理解评估对象价值内涵的重要依据,请务必详尽、客观地描述。"
|
placeholder="请在此处自由填写受评估单位/人的详细业务与项目情况。建议着重介绍与本次所评估非遗IP资产直接相关的背景信息,例如:主要业务范围、核心技艺、传承谱系、运营模式、市场定位、近年发展状况等。本部分是评估师理解评估对象价值内涵的重要依据,请务必详尽、客观地描述。"
|
||||||
:autosize="{
|
:autosize="{
|
||||||
@ -625,9 +625,9 @@ const historyList = ref([])
|
|||||||
const modalForm = reactive({
|
const modalForm = reactive({
|
||||||
asset_name: '',
|
asset_name: '',
|
||||||
institution: '',
|
institution: '',
|
||||||
credit_code: '',
|
credit_code_or_id: '',
|
||||||
industry: null,
|
industry: null,
|
||||||
business_heritage_intro: '',
|
biz_intro: '',
|
||||||
annual_revenue: '',
|
annual_revenue: '',
|
||||||
rd_investment: '',
|
rd_investment: '',
|
||||||
three_year_income: [],
|
three_year_income: [],
|
||||||
@ -667,14 +667,14 @@ const modalRules = {
|
|||||||
trigger: ['input', 'blur'],
|
trigger: ['input', 'blur'],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
credit_code: [
|
credit_code_or_id: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入统一社会信用代码/身份证号',
|
message: '请输入统一社会信用代码/身份证号',
|
||||||
trigger: ['input', 'blur'],
|
trigger: ['input', 'blur'],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
business_heritage_intro: [
|
biz_intro: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入业务/传承介绍',
|
message: '请输入业务/传承介绍',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user