This commit is contained in:
shengchanzhe 2024-01-14 19:36:58 +08:00
parent 0d22ab7346
commit dce022f174
116 changed files with 2653 additions and 1314 deletions

1
.gitignore vendored
View File

@ -30,3 +30,4 @@ components.d.ts
*.sln
*.sw?
.env.development

View File

@ -56,25 +56,31 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入账日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="入账日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择入账日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择入账日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="购入日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="购入日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择购入日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择购入日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出厂日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="出厂日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择出厂日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择出厂日期">
</el-date-picker>
</el-form-item>
@ -130,7 +136,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -138,7 +148,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -153,7 +164,7 @@
<el-table :data="tablist1">
<el-table-column label="序号">
<template #default="{ row }">
<el-button @click="handleAdd(row)" size="small">+</el-button>
<el-button @click="handleDelete(row)" size="small">-</el-button>
</template>
@ -372,7 +383,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -439,7 +450,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -74,9 +74,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="送修日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="送修日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择送修日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择送修日期">
</el-date-picker>
</el-form-item>
@ -96,7 +98,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="送修前照片" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -104,7 +110,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -252,7 +259,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -319,7 +326,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -34,9 +34,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="领用日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="领用日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择领用日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择领用日期">
</el-date-picker>
</el-form-item>
@ -58,7 +60,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -66,7 +72,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -288,7 +295,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -355,7 +362,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -23,9 +23,11 @@
<el-col :span="8">
<el-form-item label="折旧日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="折旧日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss">
</el-date-picker>
</el-form-item>
@ -46,7 +48,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -54,7 +60,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -290,7 +297,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -357,7 +364,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -74,25 +74,31 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出厂日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="出厂日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择出厂日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择出厂日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="购入日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="购入日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择购入日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择购入日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处置日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="处置日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择处置日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择处置日期">
</el-date-picker>
</el-form-item>
@ -118,7 +124,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="送修前照片" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -126,7 +136,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -274,7 +285,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -341,7 +352,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -27,18 +27,22 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="申请日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="希望到货日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="希望到货日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
</el-date-picker>
</el-form-item>
@ -54,7 +58,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -62,7 +70,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -296,7 +305,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -363,7 +372,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -42,7 +42,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -50,7 +54,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -277,7 +282,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -344,7 +349,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -73,25 +73,31 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出厂日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="出厂日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择出厂日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择出厂日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="购入日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="购入日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择购入日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择购入日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报废日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="报废日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择报废日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择报废日期">
</el-date-picker>
</el-form-item>
@ -111,7 +117,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="送修前照片" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -119,7 +129,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -269,7 +280,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -336,7 +347,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -13,7 +13,8 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="合同编号" prop="contract_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同编号" prop="contract_id" @click="showDialog1 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_no" clearable readonly placeholder="请选择合同" />
</el-form-item>
</el-col>
@ -37,9 +38,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="开票日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择开票日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择开票日期">
</el-date-picker>
</el-form-item>
@ -51,9 +54,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期次" prop="period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="期次" prop="period"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -71,20 +76,23 @@
<el-form-item label="税率" prop="tax_rate">
<el-select class="flex-1" v-model="formData.tax_rate" clearable placeholder="请选择税率">
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发票类型" prop="contacts">
<el-select class="flex-1" v-model="formData.invoice_type" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.invoice_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票金额(含税)" prop="invoicing_amount">
<el-input v-model="formData.invoicing_amount" clearable placeholder="请输入开票金额(含税)" @input="amountinput" />
<el-input v-model="formData.invoicing_amount" clearable placeholder="请输入开票金额(含税)"
@input="amountinput" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -125,7 +133,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -133,7 +145,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -197,7 +210,8 @@
</el-col> <el-col :span="8">
<el-form-item label="邮寄时间" prop="mailing_time">
<el-date-picker class="flex-1 !flex" v-model="formData.mailing_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择邮寄时间">
<el-date-picker class="flex-1 !flex" v-model="formData.mailing_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择邮寄时间">
</el-date-picker>
</el-form-item>
@ -355,7 +369,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -420,7 +434,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -23,9 +23,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="询价日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="询价日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择询价日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择询价日期">
</el-date-picker>
</el-form-item>
@ -47,7 +49,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -55,7 +61,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -265,7 +272,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -330,7 +337,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -94,7 +98,8 @@
<el-col :span="24">
<el-form-item label="询价日期" prop="require">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择询价日期">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择询价日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -114,7 +119,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -122,7 +131,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -238,7 +248,7 @@ const formData = reactive({
name: "",
happen_date: "",
type: "",
file: '',
file: [],
remark: "",
dept_id: '',
org_id: "",
@ -297,7 +307,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -28,8 +28,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="盘点日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择询价日期">
<el-form-item label="盘点日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择询价日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -50,7 +52,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -58,7 +64,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -268,7 +275,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -333,7 +340,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -35,9 +35,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="入库日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择入库日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择入库日期">
</el-date-picker>
</el-form-item>
@ -55,7 +57,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -63,7 +69,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -258,7 +265,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -323,7 +330,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -29,17 +29,21 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="申请日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="希望到货日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="希望到货日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
</el-date-picker>
</el-form-item>
@ -49,7 +53,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -57,7 +65,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -209,7 +218,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -274,7 +283,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -17,9 +17,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出库日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="出库日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择出库日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择出库日期">
</el-date-picker>
</el-form-item>
@ -183,7 +185,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -248,7 +250,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -22,9 +22,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入库日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="入库日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择入库日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择入库日期">
</el-date-picker>
</el-form-item>
@ -182,7 +184,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -247,7 +249,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -41,9 +41,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="调拨日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="调拨日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择调拨日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择调拨日期">
</el-date-picker>
</el-form-item>
@ -61,7 +63,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -69,7 +75,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -290,7 +297,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -355,7 +362,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -41,9 +41,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="调拨日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="调拨日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择调拨日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择调拨日期">
</el-date-picker>
</el-form-item>
@ -61,7 +63,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -69,7 +75,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -290,7 +297,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -355,7 +362,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -23,9 +23,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处理日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="处理日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择处理日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择处理日期">
</el-date-picker>
</el-form-item>
@ -43,7 +45,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -51,7 +57,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -276,7 +283,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -341,7 +348,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -89,7 +89,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -97,7 +101,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -307,7 +312,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -372,7 +377,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -29,17 +29,21 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="申请日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="希望到货日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="希望到货日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
</el-date-picker>
</el-form-item>
@ -49,7 +53,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -57,7 +65,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -209,7 +218,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -274,7 +283,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -34,9 +34,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出库日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="出库日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择出库日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择出库日期">
</el-date-picker>
</el-form-item>
@ -238,7 +240,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -303,7 +305,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -26,9 +26,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出库日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="出库日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择出库日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择出库日期">
</el-date-picker>
</el-form-item>
@ -54,7 +56,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -62,7 +68,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -285,7 +292,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -350,7 +357,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -50,9 +50,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="入库日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="入库日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择入库日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择入库日期">
</el-date-picker>
</el-form-item>
@ -143,7 +145,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -151,7 +157,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -303,7 +310,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -368,7 +375,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -29,17 +29,21 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="申请日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择申请日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="希望到货日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="希望到货日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择希望到货日期">
</el-date-picker>
</el-form-item>
@ -49,7 +53,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -57,7 +65,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -209,7 +218,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -274,7 +283,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -59,9 +59,11 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="退库日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="退库日期" prop="invoicing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择退库日期">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择退库日期">
</el-date-picker>
</el-form-item>
@ -77,7 +79,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -85,7 +91,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -308,7 +315,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -373,7 +380,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -8,18 +8,23 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="请选择部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="请选择部门" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="(item, index) in list2" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list2" :key="index" :label="item.name"
:value="item.id" />
</el-select></el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="customer_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-form-item label="客户名称" prop="customer_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-input v-model="customer_name" readonly clearable placeholder="请选择客户" />
</el-form-item>
@ -51,24 +56,29 @@
<el-col :span="8">
<el-form-item label="合同类型" prop="contract_type">
<el-select v-model="contract_type" clearable disabled placeholder="系统自动填写">
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="收票日期" prop="receipt_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.receipt_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择收票日期">
<el-form-item label="收票日期" prop="receipt_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.receipt_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择收票日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="票据编号" prop="bill_sn" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="票据编号" prop="bill_sn"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.bill_sn" clearable placeholder="请输入票据编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收票银行" prop="bank_account_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="收票银行" prop="bank_account_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="acceptance_bank" clearable placeholder="请输入收票银行" />
</el-form-item>
@ -81,9 +91,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="汇票类型" prop="bill_type" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="汇票类型" prop="bill_type"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-radio-group v-model="formData.bill_type" placeholder="请选择汇票类型">
<el-radio v-for="(item, index) in dictData.bill_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.bill_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -93,27 +105,33 @@
</el-col>
<el-col :span="8">
<el-form-item label="汇票承兑银行" prop="draft_acceptance_bank" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="汇票承兑银行" prop="draft_acceptance_bank"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.draft_acceptance_bank" clearable placeholder="请输入汇票承兑银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="汇票到期日期" prop="bill_due_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.bill_due_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择汇票到期日期">
<el-form-item label="汇票到期日期" prop="bill_due_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.bill_due_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择汇票到期日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款金额" prop="receipt_amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.receipt_amount" clearable placeholder="请输入收款金额" @input="amountinput" />
<el-form-item label="收款金额" prop="receipt_amount"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.receipt_amount" clearable placeholder="请输入收款金额"
@input="amountinput" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款金额大写" prop="receipt_amount_daxie" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="收款金额大写" prop="receipt_amount_daxie"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.receipt_amount_daxie" readonly clearable placeholder="请输入收款金额大写" />
</el-form-item>
@ -129,7 +147,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field87">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -137,7 +159,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -327,7 +350,7 @@ const formData = reactive({
receipt_amount: "",
receipt_amount_daxie: "",
remark: "",
annex: ""
annex: []
})
@ -391,7 +414,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}

View File

@ -25,11 +25,13 @@
<el-row>
<el-col :span="8">
<el-form-item label="供应商编码" prop="supplier_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="供应商编码" prop="supplier_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="supplier_name" readonly clearable placeholder="请选择供应商" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="供应商编码" prop="supplier_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="供应商编码" prop="supplier_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="supplier_code" disabled clearable placeholder="系统自动填写" />
</el-form-item> </el-col>
@ -38,16 +40,19 @@
<el-input v-model="formData.contract_no" clearable placeholder="由系统自动生成" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_name" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="合同名称" prop="contract_name"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.contract_name" clearable placeholder="请输入合同名称" />
</el-form-item> </el-col>
<el-col :span="24">
<el-form-item label="采购分类" prop="procurement_type" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="采购分类" prop="procurement_type"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.procurement_type" placeholder="请选择采购分类">
<el-radio v-for="(item, index) in dictData.procurement_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.procurement_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -58,9 +63,11 @@
<el-input v-model="formData.asset_apply_no" clearable placeholder="请输入资产申请单号" />
</el-form-item> </el-col>
<el-col :span="24">
<el-form-item label="付款方式" prop="pay_type" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="付款方式" prop="pay_type"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.pay_type" placeholder="请选择付款方式">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -68,30 +75,37 @@
<el-col :span="8">
<el-form-item label="开始日期" prop="start_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-form-item label="开始日期" prop="start_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束日期" prop="end_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-form-item label="结束日期" prop="end_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="签约日期" prop="signing_date">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同金额" prop="amount" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="合同金额" prop="amount"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.amount" clearable placeholder="请输入合同金额" @input="amountinput" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合同金额大写" prop="amount_daxie" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="合同金额大写" prop="amount_daxie"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.amount_daxie" disabled clearable placeholder="系统自动填写" />
</el-form-item> </el-col>
<el-col :span="24">
@ -108,7 +122,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -116,7 +134,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -248,7 +267,7 @@ const formData = reactive({
amount_daxie: "",
main_content: "",
remark: "",
annex: ""
annex: []
})
const customEvent = (e: any) => {
supplier_name.value = e.supplier_name
@ -306,7 +325,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -258,7 +258,7 @@ const formData = reactive({
project_assurance: '',
bid_project_overview: '',
project_desc: '',
annex: '',
annex: [],
approve_id: 0
})
@ -309,7 +309,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -292,8 +292,6 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
// formData.annex = JSON.stringify(formDataannex.map(item => item.uri))
await formRef.value?.validate()
const data = { ...formData }

View File

@ -21,7 +21,8 @@
</div>
<el-row>
<el-col :span="8">
<el-form-item label="标书编号" prop="buy_bidding_document_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="标书编号" prop="buy_bidding_document_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="bid_document_no" clearable readonly placeholder="请选择标书编号" />
</el-form-item>
</el-col>
@ -31,12 +32,14 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="buy_bidding_document_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="客户名称" prop="buy_bidding_document_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="bid_document_no" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="buy_bidding_document_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="buy_bidding_document_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -136,12 +139,17 @@
<el-input v-model="formData.technical_protocol_deviation" clearable placeholder="请输入技术协议偏差" />
</el-form-item></el-col> <el-col :span="8">
<el-form-item label="协议偏差处理方案" prop="protocol_deviation_handling_plan">
<el-input v-model="formData.protocol_deviation_handling_plan" clearable placeholder="请输入协议偏差处理方案" />
<el-input v-model="formData.protocol_deviation_handling_plan" clearable
placeholder="请输入协议偏差处理方案" />
</el-form-item></el-col>
<el-col :span="24">
<el-form-item label="技术审查附件" prop="technical_review_annex">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four1" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four1" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -149,7 +157,8 @@
<div>
<div v-for="(item, index) in formDataannex1" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn1(index)">x</span>
</div>
</div>
@ -167,12 +176,14 @@
</el-form-item></el-col> <el-col :span="8">
<el-form-item label="税率" prop="tax_rate">
<el-select class="flex-1" v-model="formData.tax_rate" clearable placeholder="请选择税率">
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item></el-col> <el-col :span="8">
<el-form-item label="付款方式" prop="pay_type">
<el-select class="flex-1" v-model="formData.pay_type" clearable placeholder="请选择付款方式">
<el-option v-for="(item, index) in dictData.pay_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item></el-col> <el-col :span="8">
<el-form-item label="付款比例" prop="pay_rate">
@ -182,11 +193,16 @@
<el-input v-model="formData.business_contract_deviation" clearable placeholder="请输入商务合同偏差" />
</el-form-item></el-col> <el-col :span="8">
<el-form-item label="偏差处理方案" prop="business_contract_deviation_handling_plan">
<el-input v-model="formData.business_contract_deviation_handling_plan" clearable placeholder="请输入偏差处理方案" />
<el-input v-model="formData.business_contract_deviation_handling_plan" clearable
placeholder="请输入偏差处理方案" />
</el-form-item></el-col> <el-col :span="24">
<el-form-item label="商务审查附件" prop="business_contract_deviation_annex">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four2" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four2" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -194,7 +210,8 @@
<div>
<div v-for="(item, index) in formDataannex2" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn2(index)">x</span>
</div>
</div>
@ -237,12 +254,14 @@
<el-table-column label="成本单价" prop="cost_price">
<template #default="{ row, $index }">
<el-input v-model="row.cost_price" type="number" @input="jiprice2(row, $index)" /> </template>
<el-input v-model="row.cost_price" type="number" @input="jiprice2(row, $index)" />
</template>
</el-table-column>
<el-table-column label="金额" prop="cost_amount">
<template #default="{ row }">
<el-input v-model="row.cost_amount" type="number" disabled placeholder="系统自动计算" /> </template>
<el-input v-model="row.cost_amount" type="number" disabled placeholder="系统自动计算" />
</template>
</el-table-column>
<el-table-column label="点数" prop="points">
<template #default="{ row }">
@ -250,7 +269,8 @@
</el-table-column>
<el-table-column label="报价单价" prop="sale_price">
<template #default="{ row, $index }">
<el-input v-model="row.sale_price" type="number" @input="jiprice3(row, $index)" /> </template>
<el-input v-model="row.sale_price" type="number" @input="jiprice3(row, $index)" />
</template>
</el-table-column>
<el-table-column label="报价金额" prop="total_amount">
<template #default="{ row }">
@ -435,15 +455,15 @@ const formData = reactive({
project_introduction: '',
technical_protocol_deviation: '',
protocol_deviation_handling_plan: '',
technical_review_annex: '',
technical_review_annex: [],
business_review_total_amount: 0,
tax_rate: '',
pay_type: '',
pay_rate: '',
business_contract_deviation: '',
business_contract_deviation_handling_plan: '',
business_contract_deviation_annex: '',
quotation_detail: ''
business_contract_deviation_annex: [],
quotation_detail: []
})
//
@ -585,10 +605,10 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex1.length > 0) {
formData.technical_review_annex = JSON.stringify(formDataannex1.map(item => item.uri))
formData.technical_review_annex = formDataannex1.map(item => item.uri)
}
if (formDataannex2.length > 0) {
formData.business_contract_deviation_annex = JSON.stringify(formDataannex2.map(item => item.uri))
formData.business_contract_deviation_annex = formDataannex2.map(item => item.uri)
}
if (tableData.value.length > 0) {
let data1 = tableData.value.map((item) => ({
@ -598,7 +618,7 @@ const handleSubmit = async () => {
cost_price: item.cost_price,
sale_price: item.sale_price
}))
formData.quotation_detail = JSON.stringify(data1)
formData.quotation_detail = data1
}

View File

@ -28,7 +28,8 @@
<el-form-item label="是否中标" prop="is_successful">
<el-select v-model="formData.is_successful" clearable placeholder="请选择是否中标">
<el-option v-for="(item, index) in dictData.is_successful" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.is_successful" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
@ -45,7 +46,10 @@
</el-form-item>
<el-form-item label="附件" prop="annex">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -53,7 +57,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -138,7 +143,7 @@ const formData = reactive({
bidder_company: '',
bidder_amount: '',
bid_summary: '',
annex: '',
annex: [],
})
//
@ -228,7 +233,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()

View File

@ -11,7 +11,8 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="投标编号" prop="bidding_decision_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="投标编号" prop="bidding_decision_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="document_no" clearable placeholder="请选择投标编号" />
</el-form-item>
</el-col>
@ -38,20 +39,23 @@
</el-col>
<el-col :span="8">
<el-form-item label="投标时间" prop="bidding_time">
<el-date-picker class="flex-1 !flex" v-model="bidding_time" clearable type="date" value-format="YYYY-MM-DD" disabled placeholder="系统自动填写">
<el-date-picker class="flex-1 !flex" v-model="bidding_time" clearable type="date"
value-format="YYYY-MM-DD" disabled placeholder="系统自动填写">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预计退还时间" prop="refund_date">
<el-date-picker class="flex-1 !flex" v-model="formData.refund_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.refund_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="保证金金额" prop="refund_amount">
<el-input v-model="refund_amount" clearable disabled placeholder="系统自动填写" @input="amountinput" />
<el-input v-model="refund_amount" clearable disabled placeholder="系统自动填写"
@input="amountinput" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -62,7 +66,8 @@
<el-col :span="24">
<el-form-item label="付款方式" prop="pay_type">
<el-radio-group v-model="formData.pay_type" placeholder="请选择付款方式">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -77,7 +82,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -85,7 +94,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -98,20 +108,23 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="账号" prop="account" @click="showDialog2 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="账号" prop="account" @click="showDialog2 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.account" clearable placeholder="请输入账号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户银行" prop="deposit_bank" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="开户银行" prop="deposit_bank"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.deposit_bank" clearable placeholder="请输入开户银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户名称" prop="account_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="开户名称" prop="account_name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.account_name" clearable placeholder="请输入开户名称" />
</el-form-item>
@ -226,7 +239,7 @@ const formData = reactive({
pay_type: '',
refund_date: "",
remark: "",
annex: "",
annex: [],
deposit_bank: "",
account_name: "",
account: ""
@ -284,7 +297,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -12,23 +12,27 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="项目名称" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="project_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="项目编码" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工序步骤号" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="工序步骤号" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="process_step_no" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工序步骤" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="工序步骤" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="process_step" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -42,26 +46,32 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="质量控制点" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="质量控制点" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="quality_control_points" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划开始日期" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="plan_start_date" clearable type="date" value-format="YYYY-MM-DD" disabled placeholder="系统自动填写">
<el-form-item label="计划开始日期" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="plan_start_date" clearable type="date"
value-format="YYYY-MM-DD" disabled placeholder="系统自动填写">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划结束日期" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="plan_end_date" clearable type="date" value-format="YYYY-MM-DD " disabled placeholder="系统自动填写">
<el-form-item label="计划结束日期" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="plan_end_date" clearable type="date"
value-format="YYYY-MM-DD " disabled placeholder="系统自动填写">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班组长" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="班组长" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_member_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -72,12 +82,14 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="作业量" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="作业量" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="workload" type="number" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="剩余作业量" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="剩余作业量" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="residue_workload" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -87,8 +99,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="填报日期" prop="plan_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="filluserdate" clearable type="date" value-format="YYYY-MM-DD " disabled placeholder="系统自动填写">
<el-form-item label="填报日期" prop="plan_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="filluserdate" clearable type="date"
value-format="YYYY-MM-DD " disabled placeholder="系统自动填写">
</el-date-picker>
</el-form-item>
</el-col>
@ -111,7 +125,8 @@
</template>
</el-table-column>
<el-table-column label="身份证号" prop="name2">
<template #default="{ row }"> <el-input v-model="row.name2" readonly /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.name2" readonly />
</template></el-table-column>
<el-table-column label="工种" prop="name3">
<template #default="{ row }"> <el-input v-model="row.name3" /> </template></el-table-column>
@ -308,9 +323,9 @@ const popupTitle = computed(() => {
const formData = reactive({
id: '',
plan_id: '',
file: '',
file: [],
remark: '',
person_detail: '',
person_detail: [],
})
@ -368,14 +383,14 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.file = formDataannex.map((item: any) => item.uri)
}
if (tableData.value.length > 0) {
formData.person_detail = JSON.stringify(tableData.value.map(({ name1, name2, name3, ...rest }) => rest))
formData.person_detail = tableData.value.map(({ name1, name2, name3, ...rest }) => rest)
}
if (formData.file.length > 0) {
formData.file = JSON.stringify(formData.file)
formData.file = formData.file
}
await formRef.value?.validate()

View File

@ -3,16 +3,20 @@
<popup ref="popupRef" :title="popupTitle" :async="true" width="650px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id" @change="area_change">
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
@change="area_change">
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item>
<el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item>
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable readonly placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目编码" prop="project_id">
@ -25,12 +29,15 @@
<el-input v-model="customer_demand_name" clearable readonly placeholder="选择需求" @click="xuDialog" />
</el-form-item>
<el-form-item label="竞争对手名称" prop="competitor_name">
<el-input v-model="formData.competitor_name" clearable placeholder="请输入竞争对手名称" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="formData.competitor_name" clearable placeholder="请输入竞争对手名称"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
<el-form-item label="竞争对手联系人" prop="competitor_contacts">
<el-input v-model="formData.competitor_contacts" clearable placeholder="请输入竞争对手联系人" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="formData.competitor_contacts" clearable placeholder="请输入竞争对手联系人"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
<el-form-item label="联系人电话" prop="competitor_contacts_phone" :rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-form-item label="联系人电话" prop="competitor_contacts_phone"
:rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-input v-model="formData.competitor_contacts_phone" clearable placeholder="请输入联系人电话" />
</el-form-item>
@ -47,7 +54,10 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item>
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -55,7 +65,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -190,7 +201,7 @@ const formData = reactive({
competitor_advantages: '',
competitor_disadvantages: '',
remark: '',
annex: '',
annex: [],
})
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
@ -249,7 +260,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -13,16 +13,19 @@
</div>
<el-row>
<el-col :span="8">
<el-form-item label="客户" prop="custom_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="客户" prop="custom_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" readonly clearable placeholder="请选择客户" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="buy_bidding_document_id" @click="tanchuan" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="buy_bidding_document_id" @click="tanchuan"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="buy_bidding_document_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目编码" prop="buy_bidding_document_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item></el-col>
<el-col :span="8">
@ -30,25 +33,33 @@
<el-input v-model="bidding_code" readonly clearable placeholder="请选择投标编号" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同名称" prop="contract_name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.contract_name" clearable placeholder="请输入合同名称" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="合同编号" prop="contract_code" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同编号" prop="contract_code"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.contract_code" clearable placeholder="请输入合同编号" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="合同类型" prop="contract_type" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="合同类型" prop="contract_type"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.contract_type" clearable placeholder="请选择合同类型">
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item></el-col><el-col :span="8">
<el-form-item label="合同计价方式" prop="contract_pricing_method" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.contract_pricing_method" clearable placeholder="请选择合同计价方式">
<el-option v-for="(item, index) in dictData.contract_pricing_method" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-form-item label="合同计价方式" prop="contract_pricing_method"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.contract_pricing_method" clearable
placeholder="请选择合同计价方式">
<el-option v-for="(item, index) in dictData.contract_pricing_method" :key="index"
:label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item></el-col><el-col :span="8">
<el-form-item label="甲方" prop="party_a" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="甲方" prop="party_a"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.party_a" clearable placeholder="请输入甲方" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="甲方通讯地址" prop="party_a_contact_address">
@ -57,16 +68,19 @@
<el-form-item label="甲方主要负责人" prop="party_a_diretor">
<el-input v-model="formData.party_a_diretor" clearable placeholder="请输入甲方主要负责人" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="甲方电话" prop="party_a_phone" :rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-form-item label="甲方电话" prop="party_a_phone"
:rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-input v-model="formData.party_a_phone" clearable placeholder="请输入甲方电话" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="甲方手机" prop="party_a_mobile">
<el-input v-model="formData.party_a_mobile" clearable placeholder="请输入甲方手机" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="甲方邮箱" prop="party_a_email" :rules="[{ validator: userEmail, trigger: 'blur' }]">
<el-form-item label="甲方邮箱" prop="party_a_email"
:rules="[{ validator: userEmail, trigger: 'blur' }]">
<el-input v-model="formData.party_a_email" clearable placeholder="请输入甲方邮箱" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="乙方" prop="party_b" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="乙方" prop="party_b"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.party_b" clearable placeholder="请输入乙方" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="乙方通讯地址" prop="party_b_contact_address">
@ -75,29 +89,35 @@
<el-form-item label="乙方主要负责人" prop="party_b_diretor">
<el-input v-model="formData.party_b_diretor" clearable placeholder="请输入乙方主要负责人" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="乙方电话" prop="party_b_phone" :rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-form-item label="乙方电话" prop="party_b_phone"
:rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-input v-model="formData.party_b_phone" clearable placeholder="请输入乙方电话" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="乙方手机" prop="party_b_mobile">
<el-input v-model="formData.party_b_mobile" clearable placeholder="请输入乙方手机" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="乙方邮箱" prop="party_b_email" :rules="[{ validator: userEmail, trigger: 'blur' }]">
<el-form-item label="乙方邮箱" prop="party_b_email"
:rules="[{ validator: userEmail, trigger: 'blur' }]">
<el-input v-model="formData.party_b_email" clearable placeholder="请输入乙方邮箱" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="金额" prop="amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="金额" prop="amount"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount" clearable placeholder="请输入金额" @input="amountinput" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="金额大写" prop="amount_daxie">
<el-input v-model="amount_daxie" disabled clearable placeholder="系统自动填写" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="业务负责人" prop="business_director" @click="userclick" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="业务负责人" prop="business_director" @click="userclick"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="business_director_name" readonly clearable placeholder="请输入业务负责人" />
</el-form-item></el-col>
<el-col :span="24">
<el-form-item label="合同状态" prop="contract_status" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="合同状态" prop="contract_status"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.contract_status" placeholder="请选择合同状态">
<el-radio v-for="(item, index) in dictData.contract_status" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.contract_status" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -105,13 +125,17 @@
</el-col>
<el-col :span="8">
<el-form-item label="合同有效期" prop="expire" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.expire" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择合同有效期">
<el-form-item label="合同有效期" prop="expire"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.expire" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择合同有效期">
</el-date-picker>
</el-form-item></el-col><el-col :span="8">
<el-form-item label="签约日期" prop="contract_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.contract_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择签约日期">
<el-form-item label="签约日期" prop="contract_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.contract_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择签约日期">
</el-date-picker>
</el-form-item></el-col><el-col :span="8">
@ -122,7 +146,11 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item></el-col><el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -130,7 +158,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -149,13 +178,15 @@
<el-table-column label="期次" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name"
:value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column label="计划回款日期" prop="return_date">
<template #default="{ row }">
<el-date-picker v-model="row.return_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择签订日期">
<el-date-picker v-model="row.return_date" clearable type="date" value-format="YYYY-MM-DD"
placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="金额" prop="amount">
@ -402,14 +433,14 @@ const formData = reactive({
party_b_mobile: '',
party_b_email: '',
amount: '',
returned_money: '',
returned_money: [],
business_director: '',
contract_status: '',
expire: '',
contract_date: '',
main_content: '',
remark: '',
annex: '',
annex: [],
})
@ -466,16 +497,16 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
if (paymentList.length > 0) {
formData.returned_money = JSON.stringify(paymentList.map((item) => ({
formData.returned_money = paymentList.map((item) => ({
'id': item.id,
'period': item.period,
'remark': item.remark,
'amount': item.amount,
'return_date': item.return_date,
})))
}))
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -14,30 +14,40 @@
<el-row>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同名称" prop="contract_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_name" readonly clearable placeholder="请选择项目合同" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="合同编号" prop="contract_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_code" disabled clearable placeholder="请选择合同" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-form-item label="合同编号" prop="contract_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_code" disabled clearable placeholder="请选择合同"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="项目名称" prop="contract_id">
<el-input v-model="project_name" clearable disabled placeholder="请选择合同" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_name" clearable disabled placeholder="请选择合同"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="客户名称" prop="contract_id">
<el-input v-model="custom_name" clearable disabled placeholder="请选择合同" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="custom_name" clearable disabled placeholder="请选择合同"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="合同类型" prop="contract_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同类型" prop="contract_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="contract_type" clearable disabled placeholder="请选择合同类型">
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同计价方式" prop="contract_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="contract_pricing_method" disabled clearable placeholder="请选择合同计价方式">
<el-option v-for="(item, index) in dictData.contract_pricing_method" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-form-item label="合同计价方式" prop="contract_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="contract_pricing_method" disabled clearable
placeholder="请选择合同计价方式">
<el-option v-for="(item, index) in dictData.contract_pricing_method" :key="index"
:label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -45,7 +55,8 @@
<el-col :span="8">
<el-form-item label="业务负责人" prop="contract_id">
<el-input v-model="business_director" readonly clearable placeholder="请选择人员" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="business_director" readonly clearable placeholder="请选择人员"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="洽商单名称" prop="negotiation_name">
@ -59,7 +70,8 @@
</el-form-item></el-col><el-col :span="24">
<el-form-item label="洽商类别" prop="negotiation_type">
<el-radio-group v-model="formData.negotiation_type" placeholder="请选择洽商类别">
<el-radio v-for="(item, index) in dictData.negotiation_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.negotiation_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -74,7 +86,8 @@
<el-input v-model="formData.warranty_amount" clearable placeholder="请输入洽商质保金额" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="洽商质保到期时间" prop="warranty_expire_date">
<el-date-picker class="flex-1 !flex" v-model="formData.warranty_expire_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择洽商质保到期时间">
<el-date-picker class="flex-1 !flex" v-model="formData.warranty_expire_date" clearable
type="date" value-format="YYYY-MM-DD" placeholder="选择洽商质保到期时间">
</el-date-picker>
</el-form-item></el-col><el-col :span="8">
@ -92,7 +105,11 @@
</el-form-item></el-col><el-col :span="24">
<el-form-item label="签证报价表" prop="negotiation_quotation">
<!-- <el-input v-model="formData.negotiation_quotation" clearable placeholder="请输入签证报价表" /> -->
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four1" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four1" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -100,14 +117,19 @@
<div>
<div v-for="(item, index) in formDataannex1" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn1(index)">x</span>
</div>
</div>
</el-form-item></el-col><el-col :span="24">
<el-form-item label="洽商依据" prop="negotiation_basis">
<!-- <el-input v-model="formData.negotiation_basis" clearable placeholder="请输入洽商依据" /> -->
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four2" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four2" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -115,7 +137,8 @@
<div>
<div v-for="(item, index) in formDataannex2" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn2(index)">x</span>
</div>
</div>
@ -227,8 +250,8 @@ const formData = reactive({
negotiation_content: '',
negotiation_detail: '',
negotiation_quotation: '',
negotiation_basis: '',
negotiation_quotation: [],
negotiation_basis: [],
})
//
@ -377,10 +400,10 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex1.length > 0) {
formData.negotiation_quotation = JSON.stringify(formDataannex1.map((item) => item.uri))
formData.negotiation_quotation = formDataannex1.map((item) => item.uri)
}
if (formDataannex2.length > 0) {
formData.negotiation_basis = JSON.stringify(formDataannex2.map((item) => item.uri))
formData.negotiation_basis = formDataannex2.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -25,13 +25,15 @@
<el-col :span="8">
<el-form-item label="年份" prop="years">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="制单时间" prop="document_preparation_time">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -43,21 +45,28 @@
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注"
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" :key="index" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<div v-for="(item, index) in formDataannex" :key="index"
style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item.uri" target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -86,7 +95,8 @@
<el-table-column label="二级科目" prop="name2">
<template #default="{ row }"> <el-input v-model="row.name2" /> </template></el-table-column>
<el-table-column label="1月" prop="month1">
<template #default="{ row }"> <el-input v-model="row.month1" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month1" type="number" />
</template></el-table-column>
<el-table-column label="2月" prop="month2">
<template #default="{ row }">
@ -95,7 +105,8 @@
</el-table-column>
<el-table-column label="3月" prop="month3">
<template #default="{ row }"> <el-input v-model="row.month3" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month3" type="number" />
</template></el-table-column>
<el-table-column label="4月" prop="month4">
<template #default="{ row }">
@ -235,7 +246,7 @@ const formData = reactive({
years: "",
document_preparation_time: "",
remark: "",
annex: "",
annex: [],
detail: [
]
@ -437,7 +448,7 @@ const handleSubmit = async () => {
Object.assign(formData.detail, arr1)
}
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
@ -479,7 +490,6 @@ defineExpose({
:deep(.my-label) {
width: 150px;
}
</style>
}</style>

View File

@ -25,13 +25,15 @@
<el-col :span="8">
<el-form-item label="年份" prop="years">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="制单时间" prop="document_preparation_time">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -43,21 +45,28 @@
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注"
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" :key="index" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<div v-for="(item, index) in formDataannex" :key="index"
style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item.uri" target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -86,7 +95,8 @@
<el-table-column label="二级科目" prop="name2">
<template #default="{ row }"> <el-input v-model="row.name2" /> </template></el-table-column>
<el-table-column label="1月" prop="month1">
<template #default="{ row }"> <el-input v-model="row.month1" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month1" type="number" />
</template></el-table-column>
<el-table-column label="2月" prop="month2">
<template #default="{ row }">
@ -95,7 +105,8 @@
</el-table-column>
<el-table-column label="3月" prop="month3">
<template #default="{ row }"> <el-input v-model="row.month3" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month3" type="number" />
</template></el-table-column>
<el-table-column label="4月" prop="month4">
<template #default="{ row }">
@ -235,7 +246,7 @@ const formData = reactive({
years: "",
document_preparation_time: "",
remark: "",
annex: "",
annex: [],
detail: [
]
@ -442,7 +453,7 @@ const handleSubmit = async () => {
Object.assign(formData.detail, arr1)
}
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
@ -484,7 +495,6 @@ defineExpose({
:deep(.my-label) {
width: 150px;
}
</style>
}</style>

View File

@ -25,13 +25,15 @@
<el-col :span="8">
<el-form-item label="年份" prop="years">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="制单时间" prop="document_preparation_time">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -43,21 +45,28 @@
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注"
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" :key="index" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<div v-for="(item, index) in formDataannex" :key="index"
style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item.uri" target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -86,7 +95,8 @@
<el-table-column label="二级科目" prop="name2">
<template #default="{ row }"> <el-input v-model="row.name2" /> </template></el-table-column>
<el-table-column label="1月" prop="month1">
<template #default="{ row }"> <el-input v-model="row.month1" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month1" type="number" />
</template></el-table-column>
<el-table-column label="2月" prop="month2">
<template #default="{ row }">
@ -95,7 +105,8 @@
</el-table-column>
<el-table-column label="3月" prop="month3">
<template #default="{ row }"> <el-input v-model="row.month3" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month3" type="number" />
</template></el-table-column>
<el-table-column label="4月" prop="month4">
<template #default="{ row }">
@ -235,7 +246,7 @@ const formData = reactive({
years: "",
document_preparation_time: "",
remark: "",
annex: "",
annex: [],
detail: [
]
@ -442,7 +453,7 @@ const handleSubmit = async () => {
Object.assign(formData.detail, arr1)
}
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
@ -484,7 +495,6 @@ defineExpose({
:deep(.my-label) {
width: 150px;
}
</style>
}</style>

View File

@ -15,21 +15,26 @@
<div class="tit">客户基本资料</div>
<el-row>
<el-col :span="8">
<el-form-item label="客户姓名" prop="name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.name" placeholder="请输入本文行单客户姓名" clearable :style="{ width: '100%' }"></el-input>
<el-form-item label="客户姓名" prop="name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.name" placeholder="请输入本文行单客户姓名" clearable
:style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户属性" prop="custom_type" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="客户属性" prop="custom_type"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.custom_type" clearable placeholder="请选择客户属性">
<el-option v-for="(item, index) in dictData.custom_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.custom_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上级公司" prop="parent_company">
<el-input v-model="companyname" readonly placeholder="请输入上级公司" clearable :style="{ width: '100%' }" @click="showDialog = true">
<el-input v-model="companyname" readonly placeholder="请输入上级公司" clearable
:style="{ width: '100%' }" @click="showDialog = true">
<template #append>
<el-button>选择</el-button>
</template>
@ -37,38 +42,48 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="phone" :rules="[{ required: true, validator: checkPhone, trigger: 'blur' }]">
<el-form-item label="电话" prop="phone"
:rules="[{ required: true, validator: checkPhone, trigger: 'blur' }]">
<el-input v-model="formData.phone" placeholder="请输入电话" clearable :style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="信用度" prop="credit_rating" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="信用度" prop="credit_rating"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-radio-group v-model="formData.credit_rating" placeholder="请选择信用度">
<el-radio v-for="(item, index) in dictData.credit_rating" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.credit_rating" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="省" prop="province" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.province" clearable placeholder="请选择省" @change="province_change">
<el-option v-for="(item, index) in datas.provinceOptions" :key="index" :label="item.province_name" :value="parseInt(item.province_code)" />
<el-form-item label="省" prop="province"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.province" clearable placeholder="请选择省"
@change="province_change">
<el-option v-for="(item, index) in datas.provinceOptions" :key="index"
:label="item.province_name" :value="parseInt(item.province_code)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="市" prop="city" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="市" prop="city"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.city" clearable placeholder="请选择市" @change="city_change">
<el-option v-for="(item, index) in datas.cityOptions" :key="index" :label="item.city_name" :value="parseInt(item.city_code)" />
<el-option v-for="(item, index) in datas.cityOptions" :key="index"
:label="item.city_name" :value="parseInt(item.city_code)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="区" prop="area" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="区" prop="area"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.area" clearable placeholder="请选择区" @change="area_change">
<el-option v-for="(item, index) in datas.areaOptions" :key="index" :label="item.area_name" :value="parseInt(item.area_code)" />
<el-option v-for="(item, index) in datas.areaOptions" :key="index"
:label="item.area_name" :value="parseInt(item.area_code)" />
</el-select>
</el-form-item>
</el-col>
@ -79,7 +94,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="notes">
<el-input v-model="formData.notes" type="textarea" placeholder="请输入备注" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
<el-input v-model="formData.notes" type="textarea" placeholder="请输入备注"
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -90,38 +106,47 @@
<div class="tit">主要负责人</div>
<el-row>
<el-col :span="8">
<el-form-item label="姓名" prop="master_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.master_name" placeholder="请输入姓名" clearable :style="{ width: '100%' }">
<el-form-item label="姓名" prop="master_name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.master_name" placeholder="请输入姓名" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职位" prop="master_position">
<el-input v-model="formData.master_position" placeholder="请输入职位" clearable :style="{ width: '100%' }">
<el-input v-model="formData.master_position" placeholder="请输入职位" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机" prop="master_phone" :rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-input v-model="formData.master_phone" placeholder="请输入手机" clearable :style="{ width: '100%' }">
<el-form-item label="手机" prop="master_phone"
:rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-input v-model="formData.master_phone" placeholder="请输入手机" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮箱" prop="master_email" :rules="[{ validator: userEmail, trigger: 'blur' }]">
<el-input v-model="formData.master_email" placeholder="请输入邮箱" clearable :style="{ width: '100%' }">
<el-form-item label="邮箱" prop="master_email"
:rules="[{ validator: userEmail, trigger: 'blur' }]">
<el-input v-model="formData.master_email" placeholder="请输入邮箱" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="座机" prop="master_telephone">
<el-input v-model="formData.master_telephone" placeholder="请输入座机" clearable :style="{ width: '100%' }">
<el-input v-model="formData.master_telephone" placeholder="请输入座机" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="master_notes">
<el-input v-model="formData.master_notes" placeholder="请输入备注" clearable :style="{ width: '100%' }">
<el-input v-model="formData.master_notes" placeholder="请输入备注" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
@ -172,16 +197,24 @@
<template #default="{ row, $index }">
<!-- <el-input v-model="row.annex" /> -->
<div>
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }"
ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div v-if="row.annex">
<div v-for="(item, index) in row.annex" style="margin-left: 5px;display: block;">
<div v-for="(item, index) in row.annex"
style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn1(row, index)">x</span>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item" target="_blank">文件{{ index + 1 }}</a>
<span style="cursor: pointer;margin-left: 5px;"
@click="delFileFn1(row, index)">x</span>
</div>
</div>
</div>
@ -229,37 +262,43 @@
<el-row>
<el-col :span="8">
<el-form-item label="开票公司" prop="company_name">
<el-input v-model="formData.company_name" placeholder="请输入开票公司" clearable :style="{ width: '100%' }">
<el-input v-model="formData.company_name" placeholder="请输入开票公司" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人识别" prop="company_tin">
<el-input v-model="formData.company_tin" placeholder="请输入纳税人识别" clearable :style="{ width: '100%' }">
<el-input v-model="formData.company_tin" placeholder="请输入纳税人识别" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户地址" prop="bank_open_address">
<el-input v-model="formData.bank_open_address" placeholder="请输入开户地址" clearable :style="{ width: '100%' }">
<el-input v-model="formData.bank_open_address" placeholder="请输入开户地址" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="公司电话" prop="company_telephone">
<el-input v-model="formData.company_telephone" placeholder="请输入公司电话" clearable :style="{ width: '100%' }">
<el-input v-model="formData.company_telephone" placeholder="请输入公司电话" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户银行" prop="bank_name">
<el-input v-model="formData.bank_name" placeholder="请输入开户银行" clearable :style="{ width: '100%' }">
<el-input v-model="formData.bank_name" placeholder="请输入开户银行" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="银行账号" prop="bank_account">
<el-input v-model="formData.bank_account" placeholder="请输入银行账号" clearable :style="{ width: '100%' }">
<el-input v-model="formData.bank_account" placeholder="请输入银行账号" clearable
:style="{ width: '100%' }">
</el-input>
</el-form-item>
</el-col>
@ -429,7 +468,7 @@ const formData = reactive({
bank_name: '',
bank_account: '',
status: '',
other_contacts: '',
other_contacts: [],
area: ""
})
@ -512,7 +551,7 @@ const getDetail = async (row: Record<string, any>) => {
const handleSubmit = async () => {
console.log()
if (mode.value == 'add' && otherList.length > 0 && Object.keys(otherList[0]).length > 0) {
formData.other_contacts = JSON.stringify(otherList)
formData.other_contacts = otherList
}
await formRef.value?.validate()
@ -538,10 +577,10 @@ const handleClose = () => {
//
function province_change(value: string) {
function province_change (value: string) {
getCityList();
}
function city_change(value: string) {
function city_change (value: string) {
getAreaList();
}
@ -570,13 +609,11 @@ defineExpose({
getDetail
})
</script>
<style lang="scss" scoped>
.tit {
<style lang="scss" scoped>.tit {
font-size: 1.2em;
margin-bottom: 10px;
}
:deep(.my-label) {
width: 150px;
}
</style>
}</style>

View File

@ -12,13 +12,15 @@
<el-input v-model="formData.contacts" clearable placeholder="请输入联系人" />
</el-form-item>
<el-form-item label="日期" prop="date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="类型" prop="types" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.types" clearable placeholder="请选择类型">
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item label="执行人" prop="executor">
@ -34,7 +36,8 @@
<el-input v-model="formData.coordinate" clearable placeholder="请输入位置" />
</el-form-item>
<el-form-item label="下次回访日期" prop="next_follow_date">
<el-date-picker class="flex-1 !flex" v-model="formData.next_follow_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择下次回访日期">
<el-date-picker class="flex-1 !flex" v-model="formData.next_follow_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择下次回访日期">
</el-date-picker>
</el-form-item>
</el-form>
@ -103,7 +106,7 @@ const formData = reactive({
types: '',
executor: '',
description: '',
annex: '',
annex: [],
coordinate: '',
next_follow_date: '',
status: '',
@ -146,7 +149,7 @@ const customEvent = (e: any) => {
//
const handleSubmit = async () => {
if (formData.annex && formData.annex.length > 0) {
formData.annex = JSON.stringify(formData.annex)
formData.annex = formData.annex
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -311,7 +311,7 @@ const formData = reactive({
name: '',
description: '',
notes: '',
annex: '',
annex: [],
status: '',
})
@ -360,7 +360,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -3,16 +3,20 @@
<popup ref="popupRef" :title="popupTitle" :async="true" width="650px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id" @change="area_change">
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
@change="area_change">
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item>
<el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item>
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" readonly clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目编码" prop="project_id">
@ -28,7 +32,8 @@
<el-input v-model="formData.theme" clearable placeholder="请输入解决方案主题" />
</el-form-item>
<el-form-item label="提交时间" prop="submission_time">
<el-date-picker class="flex-1 !flex" v-model="formData.submission_time" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择提交时间">
<el-date-picker class="flex-1 !flex" v-model="formData.submission_time" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择提交时间">
</el-date-picker>
</el-form-item>
@ -39,7 +44,10 @@
<el-input v-model="formData.customer_feedback" clearable placeholder="请输入客户反馈" />
</el-form-item>
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -47,7 +55,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -170,7 +179,7 @@ const formData = reactive({
submission_time: '',
solution_content: '',
customer_feedback: '',
annex: '',
annex: [],
})
@ -221,7 +230,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -25,8 +25,10 @@
</el-col>
<el-col :span="8">
<el-form-item label="报销日期" prop="reimbursement_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.reimbursement_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择报销日期">
<el-form-item label="报销日期" prop="reimbursement_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.reimbursement_date" clearable
type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择报销日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -38,9 +40,11 @@
</el-col>
<el-col :span="24">
<el-form-item label="付款方式" prop="pay_type" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="付款方式" prop="pay_type"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.pay_type" placeholder="请选择付款方式">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -49,7 +53,8 @@
<el-col :span="8">
<el-form-item label="报销金额" prop="reimbursement_amount">
<el-input v-model="formData.reimbursement_amount" clearable placeholder="请输入报销金额" @input="amountinput" />
<el-input v-model="formData.reimbursement_amount" clearable placeholder="请输入报销金额"
@input="amountinput" />
</el-form-item>
</el-col>
@ -60,19 +65,22 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款人姓名" prop="payee_name" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="收款人姓名" prop="payee_name"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.payee_name" clearable placeholder="请输入收款人姓名" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款银行" prop="payee_bank" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="收款银行" prop="payee_bank"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.payee_bank" clearable placeholder="请输入收款银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款账号" prop="payee_account" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="收款账号" prop="payee_account"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.payee_account" clearable placeholder="请输入收款账号" />
</el-form-item>
@ -88,7 +96,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field87">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -96,7 +108,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -158,7 +171,8 @@
<el-table-column label="发票类型" prop="invoice_type">
<template #default="{ row }">
<el-select v-model="row.invoice_type" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_type" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_type" :key="index"
:label="item.name" :value="item.value" />
</el-select>
</template>
</el-table-column>
@ -169,13 +183,15 @@
<el-table-column label="发票税率" prop="tax_rate">
<template #default="{ row }">
<el-select v-model="row.tax_rate" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name"
:value="item.value" />
</el-select> </template>
</el-table-column>
<el-table-column label="发票形式" prop="invoice_form">
<template #default="{ row }">
<el-select v-model="row.invoice_form" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_form" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_form" :key="index"
:label="item.name" :value="item.value" />
</el-select> </template>
</el-table-column>
@ -192,7 +208,12 @@
<template #default="{ row, $index }">
<!-- <el-input v-model="row.annex" /> -->
<div>
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }"
ref="upload">
<el-button type="primary">
上传
</el-button>
@ -200,8 +221,10 @@
<div v-if="row.annex">
<div v-for="(item, index) in row.annex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn1(row, $index)">x</span>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;"
@click="delFileFn1(row, $index)">x</span>
</div>
</div>
</div>
@ -443,7 +466,7 @@ const formData = reactive({
payee_bank: "",
payee_account: "",
remark: "",
annex: "",
annex: [],
detail: [
{
cost_subject_id: 0,
@ -537,7 +560,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
if (tablist1.length > 0) {
const arr1 = tablist1.map(({ name1, name2, ...rest }) => rest)

View File

@ -13,12 +13,14 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="供应商名称" prop="supplier_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="供应商名称" prop="supplier_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="supplier_name" readonly clearable placeholder="请选择供应商" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商编码" prop="supplier_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="供应商编码" prop="supplier_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="supplier_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -52,7 +54,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="付款日期" prop="pay_date">
<el-date-picker class="flex-1 !flex" v-model="formData.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -63,9 +66,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="期次" prop="period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="期次" prop="period"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -75,14 +80,16 @@
<el-col :span="8">
<el-form-item label="付款性质" prop="payment_natrue">
<el-select class="flex-1" v-model="formData.payment_natrue" clearable placeholder="请选择付款性质">
<el-option v-for="(item, index) in dictData.payment_natrue" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.payment_natrue" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="付款方式" prop="pay_type">
<el-select class="flex-1" v-model="formData.pay_type" clearable placeholder="请选择付款方式">
<el-option v-for="(item, index) in dictData.pay_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -95,7 +102,8 @@
<el-col :span="8">
<el-form-item label="开票状态" prop="contacts">
<el-select class="flex-1" v-model="formData.invoice_status" clearable placeholder="请选择开票状态">
<el-option v-for="(item, index) in dictData.invoice_status" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.invoice_status" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -123,7 +131,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -131,7 +143,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -326,7 +339,7 @@ const formData = reactive({
amount_daxie: '',
desc: '',
remark: '',
annex: '',
annex: [],
bank: '',
account_name: '',
account: ''
@ -381,7 +394,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -6,12 +6,14 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="供应商名称" prop="supplier_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="供应商名称" prop="supplier_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="supplier_name" clearable readonly placeholder="请选择供应商" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商编码" prop="supplier_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="供应商编码" prop="supplier_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="supplier_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -37,14 +39,17 @@
<el-col :span="8">
<el-form-item label="计划付款日期" prop="pay_date">
<el-date-picker class="flex-1 !flex" v-model="formData.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期次" prop="period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="期次" prop="period"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -63,7 +68,8 @@
<el-col :span="8">
<el-form-item label="状态" prop="status">
<el-select class="flex-1" v-model="formData.status" clearable placeholder="请选择状态">
<el-option v-for="(item, index) in dictData.pay_status" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_status" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -76,7 +82,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -84,7 +94,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -235,7 +246,7 @@ const formData = reactive({
foreign_currency_remark: "",
status: '',
remark: "",
annex: ""
annex: []
})
@ -287,7 +298,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -6,18 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="供应商名称" prop="supplier_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-form-item label="供应商名称" prop="supplier_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-input v-model="supplier_name" readonly clearable placeholder="请选择供应商" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商编码" prop="supplier_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="供应商编码" prop="supplier_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="supplier_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="退款日期" prop="refund_date">
<el-date-picker class="flex-1 !flex" v-model="formData.refund_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.refund_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -46,7 +49,8 @@
<el-col :span="8">
<el-form-item label="退款金额" prop="refund_amount">
<el-input v-model="formData.refund_amount" clearable placeholder="请输入退款金额" @input="amountinput" />
<el-input v-model="formData.refund_amount" clearable placeholder="请输入退款金额"
@input="amountinput" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -57,7 +61,8 @@
<el-col :span="8">
<el-form-item label="退款方式" prop="contacts">
<el-select class="flex-1" v-model="formData.refund_type" clearable placeholder="请选择退款方式">
<el-option v-for="(item, index) in dictData.refund_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.refund_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -75,7 +80,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -83,7 +92,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -123,7 +133,8 @@
<el-col :span="24">
<el-form-item label="是否计息" prop="is_calculate_interest">
<el-radio-group v-model="formData.is_calculate_interest" placeholder="请选择是否计息">
<el-radio v-for="(item, index) in dictData.isaccrued" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.isaccrued" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -132,7 +143,8 @@
<el-col :span="8">
<el-form-item label="开始计息日期" prop="interest_calculation_start_date">
<el-date-picker class="flex-1 !flex" v-model="formData.interest_calculation_start_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.interest_calculation_start_date"
clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
@ -284,7 +296,7 @@ const formData = reactive({
refund_type: 0,
reason: "",
remark: "",
annex: "",
annex: [],
bank_account_id: 0,
is_calculate_interest: '',
interest_calculation_start_date: ""
@ -339,7 +351,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')
await formRef.value?.validate()

View File

@ -25,13 +25,15 @@
<el-col :span="8">
<el-form-item label="年份" prop="years">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="制单时间" prop="document_preparation_time">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -43,21 +45,28 @@
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注"
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" :key="index" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<div v-for="(item, index) in formDataannex" :key="index"
style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item.uri" target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -86,7 +95,8 @@
<el-table-column label="二级科目" prop="name2">
<template #default="{ row }"> <el-input v-model="row.name2" /> </template></el-table-column>
<el-table-column label="1月" prop="month1">
<template #default="{ row }"> <el-input v-model="row.month1" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month1" type="number" />
</template></el-table-column>
<el-table-column label="2月" prop="month2">
<template #default="{ row }">
@ -95,7 +105,8 @@
</el-table-column>
<el-table-column label="3月" prop="month3">
<template #default="{ row }"> <el-input v-model="row.month3" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month3" type="number" />
</template></el-table-column>
<el-table-column label="4月" prop="month4">
<template #default="{ row }">
@ -235,7 +246,7 @@ const formData = reactive({
years: "",
document_preparation_time: "",
remark: "",
annex: "",
annex: [],
detail: [
]
@ -437,7 +448,7 @@ const handleSubmit = async () => {
Object.assign(formData.detail, arr1)
}
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
@ -479,7 +490,6 @@ defineExpose({
:deep(.my-label) {
width: 150px;
}
</style>
}</style>

View File

@ -25,13 +25,15 @@
<el-col :span="8">
<el-form-item label="年份" prop="years">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.years" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="制单时间" prop="document_preparation_time">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
<el-date-picker class="flex-1 !flex" v-model="formData.document_preparation_time" clearable
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择制单时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -43,21 +45,28 @@
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注"
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" :key="index" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<div v-for="(item, index) in formDataannex" :key="index"
style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item.uri" target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -86,7 +95,8 @@
<el-table-column label="二级科目" prop="name2">
<template #default="{ row }"> <el-input v-model="row.name2" /> </template></el-table-column>
<el-table-column label="1月" prop="month1">
<template #default="{ row }"> <el-input v-model="row.month1" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month1" type="number" />
</template></el-table-column>
<el-table-column label="2月" prop="month2">
<template #default="{ row }">
@ -95,7 +105,8 @@
</el-table-column>
<el-table-column label="3月" prop="month3">
<template #default="{ row }"> <el-input v-model="row.month3" type="number" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.month3" type="number" />
</template></el-table-column>
<el-table-column label="4月" prop="month4">
<template #default="{ row }">
@ -235,7 +246,7 @@ const formData = reactive({
years: "",
document_preparation_time: "",
remark: "",
annex: "",
annex: [],
detail: [
]
@ -442,7 +453,7 @@ const handleSubmit = async () => {
Object.assign(formData.detail, arr1)
}
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
@ -484,7 +495,6 @@ defineExpose({
:deep(.my-label) {
width: 150px;
}
</style>
}</style>

View File

@ -33,7 +33,8 @@
<el-col :span="8">
<el-form-item label="日期" prop="start_date">
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="date" value-format="YYYY-MM-DD " placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="date"
value-format="YYYY-MM-DD " placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -52,7 +53,8 @@
<el-col :span="24">
<el-form-item label="是否生成凭证" prop="pay_type">
<el-radio-group v-model="formData.pay_type" placeholder="请选择是否生成凭证">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -71,7 +73,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -79,7 +85,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -211,7 +218,7 @@ const formData = reactive({
amount_daxie: "",
main_content: "",
remark: "",
annex: ""
annex: []
})
const customEvent = (e: any) => {
supplier_contract_name.value = e.supplier_name
@ -266,7 +273,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -8,18 +8,23 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="请选择部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="请选择部门" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="(item, index) in list2" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list2" :key="index" :label="item.name"
:value="item.id" />
</el-select></el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="customer_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-form-item label="客户名称" prop="customer_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-input v-model="customer_name" readonly clearable placeholder="请输入客户名称" />
</el-form-item>
@ -51,24 +56,29 @@
<el-col :span="8">
<el-form-item label="合同类型" prop="contract_type">
<el-select v-model="contract_type" clearable placeholder="请选择合同类型">
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="收票日期" prop="receipt_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.receipt_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择收票日期">
<el-form-item label="收票日期" prop="receipt_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.receipt_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择收票日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="票据编号" prop="bill_sn" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="票据编号" prop="bill_sn"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.bill_sn" clearable placeholder="请输入票据编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收票银行" prop="bank_account_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="收票银行" prop="bank_account_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="acceptance_bank" clearable placeholder="请输入收票银行" />
</el-form-item>
@ -81,9 +91,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="汇票类型" prop="bill_type" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="汇票类型" prop="bill_type"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-radio-group v-model="formData.bill_type" placeholder="请选择汇票类型">
<el-radio v-for="(item, index) in dictData.bill_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.bill_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -93,27 +105,33 @@
</el-col>
<el-col :span="8">
<el-form-item label="汇票承兑银行" prop="draft_acceptance_bank" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="汇票承兑银行" prop="draft_acceptance_bank"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.draft_acceptance_bank" clearable placeholder="请输入汇票承兑银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="汇票到期日期" prop="bill_due_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.bill_due_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择汇票到期日期">
<el-form-item label="汇票到期日期" prop="bill_due_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.bill_due_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择汇票到期日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款金额" prop="receipt_amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.receipt_amount" clearable placeholder="请输入收款金额" @input="amountinput" />
<el-form-item label="收款金额" prop="receipt_amount"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.receipt_amount" clearable placeholder="请输入收款金额"
@input="amountinput" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款金额大写" prop="receipt_amount_daxie" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="收款金额大写" prop="receipt_amount_daxie"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.receipt_amount_daxie" readonly clearable placeholder="请输入收款金额大写" />
</el-form-item>
@ -129,7 +147,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field87">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -137,7 +159,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -326,7 +349,7 @@ const formData = reactive({
receipt_amount: "",
receipt_amount_daxie: "",
remark: "",
annex: ""
annex: []
})
@ -390,7 +413,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}

View File

@ -25,8 +25,10 @@
</el-col>
<el-col :span="8">
<el-form-item label="报销日期" prop="reimbursement_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.reimbursement_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择报销日期">
<el-form-item label="报销日期" prop="reimbursement_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.reimbursement_date" clearable
type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择报销日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -38,9 +40,11 @@
</el-col>
<el-col :span="24">
<el-form-item label="付款方式" prop="pay_type" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="付款方式" prop="pay_type"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.pay_type" placeholder="请选择付款方式">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -49,7 +53,8 @@
<el-col :span="8">
<el-form-item label="报销金额" prop="reimbursement_amount">
<el-input v-model="formData.reimbursement_amount" readonly clearable placeholder="请输入报销金额" @input="amountinput" />
<el-input v-model="formData.reimbursement_amount" readonly clearable placeholder="请输入报销金额"
@input="amountinput" />
</el-form-item>
</el-col>
@ -60,19 +65,22 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款人姓名" prop="payee_name" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="收款人姓名" prop="payee_name"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.payee_name" clearable placeholder="请输入收款人姓名" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款银行" prop="payee_bank" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="收款银行" prop="payee_bank"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.payee_bank" clearable placeholder="请输入收款银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款账号" prop="payee_account" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="收款账号" prop="payee_account"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.payee_account" clearable placeholder="请输入收款账号" />
</el-form-item>
@ -88,7 +96,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field87">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -96,7 +108,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -158,7 +171,8 @@
<el-table-column label="发票类型" prop="invoice_type">
<template #default="{ row }">
<el-select v-model="row.invoice_type" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_type" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_type" :key="index"
:label="item.name" :value="item.value" />
</el-select>
</template>
</el-table-column>
@ -169,13 +183,15 @@
<el-table-column label="发票税率" prop="tax_rate">
<template #default="{ row }">
<el-select v-model="row.tax_rate" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name"
:value="item.value" />
</el-select> </template>
</el-table-column>
<el-table-column label="发票形式" prop="invoice_form">
<template #default="{ row }">
<el-select v-model="row.invoice_form" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_form" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_form" :key="index"
:label="item.name" :value="item.value" />
</el-select> </template>
</el-table-column>
@ -192,7 +208,12 @@
<template #default="{ row, $index }">
<!-- <el-input v-model="row.annex" /> -->
<div>
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }"
ref="upload">
<el-button type="primary">
上传
</el-button>
@ -200,8 +221,10 @@
<div v-if="row.annex">
<div v-for="(item, index) in row.annex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn1(row, index)">x</span>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;"
@click="delFileFn1(row, index)">x</span>
</div>
</div>
</div>
@ -443,7 +466,7 @@ const formData = reactive({
payee_bank: "",
payee_account: "",
remark: "",
annex: "",
annex: [],
detail: [
{
cost_subject_id: 0,
@ -537,7 +560,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
if (tablist1.length > 0) {
const arr1 = tablist1.map(({ name1, name2, ...rest }) => rest)

View File

@ -7,9 +7,11 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="材料大类" prop="first_level" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="材料大类" prop="first_level"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.first_level" clearable placeholder="请选择材料大类" @change="firstChange">
<el-option v-for="(item, index) in firstList" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in firstList" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -17,8 +19,10 @@
<el-form-item label="材料中类" prop="second_level">
<el-select v-model="formData.second_level" clearable placeholder="请选择材料中类" @change="secondChange">
<el-option v-for="(item, index) in secondList" :key="index" :label="item.name" :value="item.id" />
<el-select v-model="formData.second_level" clearable placeholder="请选择材料中类"
@change="secondChange">
<el-option v-for="(item, index) in secondList" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -27,13 +31,15 @@
<el-form-item label="材料小类" prop="three_level">
<!-- <el-input v-model="formData.three_level" clearable placeholder="材料小类" /> -->
<el-select v-model="formData.three_level" clearable placeholder="请选择材料小类">
<el-option v-for="(item, index) in threedList" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in threedList" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="材料编码" prop="code" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="材料编码" prop="code"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.code" clearable placeholder="请输入材料编码" />
</el-form-item>
</el-col>
@ -46,20 +52,23 @@
</el-col>
<el-col :span="8">
<el-form-item label="材料名称" prop="name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="材料名称" prop="name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.name" clearable placeholder="请输入材料名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="规格型号" prop="specs" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="规格型号" prop="specs"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.specs" clearable placeholder="请输入规格型号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单位" prop="unit" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="单位" prop="unit"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.unit" clearable placeholder="请输入单位" />
</el-form-item>
</el-col>
@ -71,7 +80,8 @@
<el-col :span="24">
<el-form-item label="参数说明" prop="parameter_description">
<el-input v-model="formData.parameter_description" type="textarea" clearable placeholder="请输入参数说明" />
<el-input v-model="formData.parameter_description" type="textarea" clearable
placeholder="请输入参数说明" />
</el-form-item>
</el-col>
@ -79,7 +89,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -87,7 +101,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -196,7 +211,7 @@ const formData = reactive({
inventory: '',
sales_price: '',
cost_price: '',
annex: '',
annex: [],
})
//
@ -249,7 +264,7 @@ const getDetail = async (row: Record<string, any>) => {
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}

View File

@ -38,17 +38,21 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请日期" prop="apply_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="申请日期" prop="apply_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.apply_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择申请日期">
<el-date-picker class="flex-1 !flex" v-model="formData.apply_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择申请日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="希望到货日期" prop="arrival_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="希望到货日期" prop="arrival_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.arrival_date" clearable type="date" value-format="YYYY-MM-DD " placeholder="选择希望到货日期">
<el-date-picker class="flex-1 !flex" v-model="formData.arrival_date" clearable type="date"
value-format="YYYY-MM-DD " placeholder="选择希望到货日期">
</el-date-picker>
</el-form-item>
@ -58,7 +62,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -66,7 +74,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -282,8 +291,8 @@ const formData = reactive({
apply_date: '',
arrival_date: '',
remark: '',
annex: '',
purchase_request_detail: '',
annex: [],
purchase_request_detail: [],
})
@ -335,14 +344,14 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
if (tablist1.length > 0) {
formData.purchase_request_detail = JSON.stringify(tablist1.map((item) => ({
formData.purchase_request_detail = tablist1.map((item) => ({
"project_material_budget_detail_id": item.id,
"num": item.num,
"remark": item.remark
})))
}))
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -21,19 +21,23 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="仓库名称" prop="name" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="仓库名称" prop="name"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="formData.name" clearable placeholder="仓库名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="MRP仓库" prop="is_mrp" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="MRP仓库" prop="is_mrp"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<!-- <el-input v-model="project_code" clearable disabled placeholder="MRP仓库" /> -->
<el-switch v-model="formData.is_mrp" :active-value="1" :inactive-value="0" inline-prompt active-text="是" inactive-text="否" />
<el-switch v-model="formData.is_mrp" :active-value="1" :inactive-value="0" inline-prompt
active-text="是" inactive-text="否" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="负责人" prop="head_user" @click="userclick" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="负责人" prop="head_user" @click="userclick"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="head_user_name" readonly clearable placeholder="请输入负责人" />
</el-form-item>
</el-col>
@ -60,7 +64,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -68,7 +76,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -188,7 +197,7 @@ const formData = reactive({
address: '',
telephone: '',
remark: '',
annex: '',
annex: [],
})
@ -253,7 +262,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -113,7 +113,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="开始日期" prop="contract_id">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择结束日期
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择结束日期
">
</el-date-picker>
</el-form-item>
@ -121,7 +122,8 @@
<el-col :span="8">
<el-form-item label="结束日期" prop="contract_id">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择结束日期
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择结束日期
"> </el-date-picker>
</el-form-item>
</el-col>
@ -172,7 +174,8 @@
<el-col :span="8">
<el-form-item label="签约日期" prop="contract_id">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签约日期
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签约日期
"> </el-date-picker>
</el-form-item>
</el-col>
@ -206,7 +209,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -214,7 +221,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -484,7 +492,7 @@ const formData = reactive({
content: "",
invoice_no: "",
remark: "",
annex: "",
annex: [],
invoicing_company_name: "",
taxpayer_identification_number: "",
deposit_bank: "",
@ -551,7 +559,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -14,21 +14,25 @@
<el-row>
<el-col :span="8">
<el-form-item label="供应商名称" prop="supplier_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="供应商名称" prop="supplier_id" @click="showDialog1 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="supplier_name" readonly clearable placeholder="请选择供应商" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商编码" prop="supplier_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="供应商编码" prop="supplier_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="supplier_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="项目编码" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="project_code" readonly disabled placeholder="系统自动填写" />
</el-form-item> </el-col>
<el-col :span="8">
@ -39,27 +43,33 @@
<el-input v-model="formData.contract_name" clearable placeholder="请输入合同名称" />
</el-form-item> </el-col> <el-col :span="24">
<el-form-item label="合同类型" prop="contract_type">
<el-radio-group v-model="formData.contract_type" placeholder="请选择合同类型" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-radio v-for="(item, index) in dictData.procurement_contract_type" :key="index" :label="parseInt(item.value)">
<el-radio-group v-model="formData.contract_type" placeholder="请选择合同类型"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-radio v-for="(item, index) in dictData.procurement_contract_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
</el-form-item> </el-col> <el-col :span="8">
<el-form-item label="签订日期" prop="signing_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择签订日期">
<el-form-item label="签订日期" prop="signing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择签订日期">
</el-date-picker>
</el-form-item>
</el-col> <el-col :span="24">
<el-form-item label="付款方式" prop="pay_type">
<el-radio-group v-model="formData.pay_type" placeholder="请选择付款方式">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
</el-form-item> </el-col> <el-col :span="24">
<el-form-item label="账期" prop="account_period">
<el-radio-group v-model="formData.account_period" placeholder="请选择账期">
<el-radio v-for="(item, index) in dictData.account_period" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.account_period" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -70,14 +80,16 @@
<el-form-item label="不含税金额" prop="amount_excluding_tax">
<el-input v-model="amount_excluding_tax" disabled clearable placeholder="请输入不含税金额" />
</el-form-item> </el-col> <el-col :span="8">
<el-form-item label="金额大写" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="金额大写" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="amount_daxie" clearable disabled placeholder="请输入金额大写" />
</el-form-item> </el-col> <el-col :span="8">
<el-form-item label="质保金比例" prop="retention_money_rate">
<el-input v-model="formData.retention_money_rate" clearable placeholder="请输入质保金比例" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="质保金" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="质保金" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="retention_money" disabled clearable placeholder="请输入质保金" />
</el-form-item> </el-col>
<el-col :span="8">
@ -85,7 +97,11 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item> </el-col> <el-col :span="8">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -93,7 +109,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -127,9 +144,11 @@
</template>
</el-table-column>
<el-table-column label="材料名称" prop="material_name">
<template #default="{ row }"> <el-input v-model="row.material_name" disabled /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.material_name" disabled />
</template></el-table-column>
<el-table-column label="材料编码" prop="material_code">
<template #default="{ row }"> <el-input v-model="row.material_code" disabled /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.material_code" disabled />
</template></el-table-column>
<el-table-column label="规格型号" prop="material_specs">
<template #default="{ row }">
@ -161,9 +180,11 @@
<el-table-column label="税率(%)" prop="tax_rate">
<template #default="{ row, $index }">
<el-select v-model="row.tax_rate" clearable placeholder="请选择税率" value-key="name" @change="materialji2(row, $index, $event)">
<el-select v-model="row.tax_rate" clearable placeholder="请选择税率" value-key="name"
@change="materialji2(row, $index, $event)">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="item" />
<el-option v-for="(item, index) in dictData.tax_rate" :key="index"
:label="item.name" :value="item" />
</el-select>
</template>
</el-table-column>
@ -193,17 +214,20 @@
<el-table-column label="期次" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index"
:label="item.name" :value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column label="计划付款日期" prop="pay_date">
<template #default="{ row }">
<el-date-picker v-model="row.pay_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择签订日期">
<el-date-picker v-model="row.pay_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="金额" prop="amount">
<template #default="{ row }"> <el-input v-model="row.amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.amount" />
</template></el-table-column>
<el-table-column label="备注" prop="remark">
<template #default="{ row }">
@ -520,23 +544,23 @@ const getDetail = async (row: Record<string, any>) => {
const handleSubmit = async () => {
if (materialList.length > 0) {
formData.procurement_contract_detail = JSON.stringify(materialList.map((item) => ({
formData.procurement_contract_detail = materialList.map((item) => ({
'id': item.id,
'material_purchase_request_detail_id': item.material_purchase_request_detail_id,
'num': item.num,
'price': item.price,
'tax_rate': item.tax_rate.value,
})))
}))
}
if (paymentList.length > 0) {
formData.payment_plan = JSON.stringify(paymentList.map((item) => ({
formData.payment_plan = paymentList.map((item) => ({
'id': item.id,
'period': item.period,
'remark': item.remark,
'amount': item.amount,
'pay_date': item.pay_date,
})))
}))
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -18,11 +18,13 @@
<el-input v-model="formData.contract_no" readonly clearable placeholder="点击选择要变更的采购合同" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="供应商合同号" prop="supplier_contract_no" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="供应商合同号" prop="supplier_contract_no"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.supplier_contract_no" clearable placeholder="请输入供应商合同号" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="供应商名称" prop="supplier_contract_no" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="供应商名称" prop="supplier_contract_no"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="supplier_name" clearable disabled placeholder="系统自动填写" />
</el-form-item> </el-col>
<el-col :span="8">
@ -41,16 +43,20 @@
<el-col :span="24">
<el-form-item label="合同类型" prop="contract_type" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="合同类型" prop="contract_type"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.contract_type" placeholder="请选择合同类型" readonly>
<el-radio v-for="(item, index) in dictData.procurement_contract_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.procurement_contract_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="签订日期" prop="signing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择签订日期">
<el-form-item label="签订日期" prop="signing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择签订日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -58,15 +64,18 @@
<el-col :span="24">
<el-form-item label="付款方式" prop="pay_type">
<el-radio-group v-model="formData.pay_type" placeholder="请选择付款方式" readonly>
<el-radio v-for="(item, index) in dictData.pay_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.pay_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
</el-form-item> </el-col>
<el-col :span="24">
<el-form-item label="账期" prop="account_period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="账期" prop="account_period"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.account_period" placeholder="请选择账期" readonly>
<el-radio v-for="(item, index) in dictData.account_period" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.account_period" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -80,7 +89,8 @@
<el-input v-model="formData.amount_excluding_tax" clearable disabled placeholder="系统自动计算" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="金额大写" prop="amount_daxie" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="金额大写" prop="amount_daxie"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount_daxie" clearable disabled placeholder="系统自动填写" />
</el-form-item> </el-col>
<el-col :span="8">
@ -88,7 +98,8 @@
<el-input v-model="formData.retention_money_rate" clearable placeholder="请输入质保金比例" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="质保金" prop="retention_money" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="质保金" prop="retention_money"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.retention_money" clearable disabled placeholder="系统自动计算" />
</el-form-item> </el-col>
<el-col :span="8">
@ -97,7 +108,11 @@
</el-form-item> </el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -105,7 +120,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -131,9 +147,11 @@
</template>
</el-table-column>
<el-table-column label="材料名称" prop="material_procurement_application_id">
<template #default="{ row }"> <el-input v-model="row.material_procurement_application_id" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.material_procurement_application_id" />
</template></el-table-column>
<el-table-column label="材料编码" prop="material_procurement_application_id">
<template #default="{ row }"> <el-input v-model="row.material_procurement_application_id" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.material_procurement_application_id" />
</template></el-table-column>
<el-table-column label="规格型号" prop="material_procurement_application_id">
<template #default="{ row }">
@ -195,17 +213,20 @@
<el-table-column label="期次" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column label="计划付款日期" prop="pay_date">
<template #default="{ row }">
<el-date-picker v-model="row.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-date-picker v-model="row.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="金额" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="备注" prop="remark">
<template #default="{ row }">
@ -346,7 +367,7 @@ const formData = reactive({
retention_money_rate: '',
retention_money: '',
remark: '',
annex: '',
annex: [],
material: [{
material_procurement_application_id: 2222,
num: 0,
@ -435,7 +456,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -13,20 +13,25 @@
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="客户名称" prop="custom_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.custom_name" @click="showDialog = true" clearable placeholder="请选择客户" />
<el-form-item label="客户名称" prop="custom_name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.custom_name" @click="showDialog = true" clearable
placeholder="请选择客户" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目类型" prop="project_type" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目类型" prop="project_type"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.project_type" clearable placeholder="请选择项目类型">
<el-option v-for="(item, index) in protype" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-option v-for="(item, index) in protype" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.name" clearable placeholder="请输入项目名称" />
</el-form-item>
</el-col> <el-col :span="8">
@ -37,7 +42,8 @@
<el-col :span="24">
<el-form-item label="项目内容" prop="project_content">
<el-checkbox-group v-model="formData.project_content" placeholder="请选择项目内容">
<el-checkbox v-for="(item, index) in dictData.project_content" :key="index" :label="item.value">
<el-checkbox v-for="(item, index) in dictData.project_content" :key="index"
:label="item.value">
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
@ -60,14 +66,16 @@
</el-col>
<el-col :span="8">
<el-form-item label="投标时间" prop="bidding_time">
<el-date-picker class="flex-1 !flex" v-model="formData.bidding_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择投标时间">
<el-date-picker class="flex-1 !flex" v-model="formData.bidding_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择投标时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="招标方式" prop="bidding_method">
<el-radio-group v-model="formData.bidding_method" placeholder="请选择招标方式">
<el-radio v-for="(item, index) in dictData.bidding_method" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.bidding_method" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -100,15 +108,20 @@
</el-col>
<el-col :span="8">
<el-form-item label="发现时间" prop="discovery_time" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.discovery_time" clearable type="datetime" value-format="YYYY-MM-DD" placeholder="选择发现时间">
<el-form-item label="发现时间" prop="discovery_time"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.discovery_time" clearable type="datetime"
value-format="YYYY-MM-DD" placeholder="选择发现时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="信息来源" prop="information_sources" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.information_sources" clearable placeholder="请选择信息来源">
<el-option v-for="(item, index) in dictData.information_sources" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-form-item label="信息来源" prop="information_sources"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.information_sources" clearable
placeholder="请选择信息来源">
<el-option v-for="(item, index) in dictData.information_sources" :key="index"
:label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -125,7 +138,8 @@
<el-col :span="12">
<el-form-item label="关系度" prop="relationship">
<el-radio-group v-model="formData.relationship" placeholder="请选择关系度">
<el-radio v-for="(item, index) in dictData.relationship" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.relationship" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -134,7 +148,8 @@
<el-col :span="12">
<el-form-item label="项目建设资金来源" prop="construction_funds_sources">
<el-radio-group v-model="formData.construction_funds_sources" placeholder="请选择项目建设资金来源">
<el-radio v-for="(item, index) in dictData.construction_funds_sources" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.construction_funds_sources" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -144,7 +159,8 @@
<el-col :span="12">
<el-form-item label="建设方财务状况" prop="construction_financial_status">
<el-radio-group v-model="formData.construction_financial_status" placeholder="请选择建设方财务状况">
<el-radio v-for="(item, index) in dictData.construction_financial_status" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.construction_financial_status" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -153,7 +169,8 @@
<el-col :span="12">
<el-form-item label="建设方对我方认可度" prop="construction_recognition">
<el-radio-group v-model="formData.construction_recognition" placeholder="请选择建设方对我方认可度">
<el-radio v-for="(item, index) in dictData.construction_recognition" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.construction_recognition" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -162,7 +179,8 @@
<el-col :span="12">
<el-form-item label="我方对建设方认可度" prop="my_construction_recognition">
<el-radio-group v-model="formData.my_construction_recognition" placeholder="请选择我方对建设方认可度">
<el-radio v-for="(item, index) in dictData.my_construction_recognition" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.my_construction_recognition" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -171,7 +189,8 @@
<el-col :span="12">
<el-form-item label="战略意义" prop="strategic_significance">
<el-radio-group v-model="formData.strategic_significance" placeholder="请选择战略意义">
<el-radio v-for="(item, index) in dictData.strategic_significance" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.strategic_significance" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -180,7 +199,8 @@
<el-col :span="12">
<el-form-item label="所属行业" prop="industry">
<el-radio-group v-model="formData.industry" placeholder="请选择所属行业">
<el-radio v-for="(item, index) in dictData.industry" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.industry" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -189,7 +209,8 @@
<el-col :span="12">
<el-form-item label="单位性质" prop="unit_nature">
<el-radio-group v-model="formData.unit_nature" placeholder="请选择单位性质">
<el-radio v-for="(item, index) in dictData.unit_nature" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.unit_nature" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -200,7 +221,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -208,7 +233,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -346,7 +372,7 @@ const formData = reactive({
strategic_significance: '',
industry: '',
unit_nature: '',
annex: '',
annex: [],
status: '',
})
@ -396,7 +422,7 @@ const getDetail = async (row: Record<string, any>) => {
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, project_content: formData.project_content.join(",") }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -16,17 +17,20 @@
<el-col :span="8">
<el-form-item label="年份" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="月份" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="month" value-format="MM" placeholder="选择月份">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="month"
value-format="MM" placeholder="选择月份">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="产值合计" prop="insurance">
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput" placeholder="请输入产值合计" />
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput"
placeholder="请输入产值合计" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="回款计划比例(%" prop="amount_daxie">
@ -34,7 +38,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="计划回款日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -55,14 +60,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -84,48 +94,60 @@
<el-table-column label="合同编号" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column label="分部工程" prop="pay_date">
<template #default="{ row }">
<el-date-picker v-model="row.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-date-picker v-model="row.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="子分部工程" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="总收入" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="分项工程" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="子目名称" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="单位" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="合同量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="已完工量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="本月完工量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="本月产值" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="进度(%)" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
@ -247,7 +269,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -303,7 +325,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -16,17 +17,20 @@
<el-col :span="8">
<el-form-item label="年份" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="月份" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="month" value-format="MM" placeholder="选择月份">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="month"
value-format="MM" placeholder="选择月份">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="产值合计" prop="insurance">
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput" placeholder="请输入产值合计" />
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput"
placeholder="请输入产值合计" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="回款计划比例(%" prop="amount_daxie">
@ -34,7 +38,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="计划回款日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -55,14 +60,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -84,48 +94,60 @@
<el-table-column label="合同编号" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column label="分部工程" prop="pay_date">
<template #default="{ row }">
<el-date-picker v-model="row.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-date-picker v-model="row.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="子分部工程" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="总收入" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="分项工程" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="子目名称" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="单位" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="合同量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="已完工量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="本月完工量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="本月产值" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="进度(%)" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
@ -247,7 +269,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -303,7 +325,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -16,17 +17,20 @@
<el-col :span="8">
<el-form-item label="年份" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="year" value-format="YYYY" placeholder="选择年份">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="year"
value-format="YYYY" placeholder="选择年份">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="月份" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="month" value-format="MM" placeholder="选择月份">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="month"
value-format="MM" placeholder="选择月份">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="产值合计" prop="insurance">
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput" placeholder="请输入产值合计" />
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput"
placeholder="请输入产值合计" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="回款计划比例(%" prop="amount_daxie">
@ -34,7 +38,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="计划回款日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -55,14 +60,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -84,48 +94,60 @@
<el-table-column label="合同编号" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column label="分部工程" prop="pay_date">
<template #default="{ row }">
<el-date-picker v-model="row.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-date-picker v-model="row.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="子分部工程" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="总收入" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="分项工程" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="子目名称" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="单位" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="合同量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="已完工量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="本月完工量" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="本月产值" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="进度(%)" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
@ -247,7 +269,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -303,7 +325,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -10,40 +10,47 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="日期" prop="attendance_date">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.attendance_date" type="date" value-format="YYYY-MM-DD" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.attendance_date" type="date"
value-format="YYYY-MM-DD" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="姓名" prop="person_id" @click="showDialog1 = true">
<el-input v-model="name" clearable readonly placeholder="请选择人员" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="name" clearable readonly placeholder="请选择人员"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="身份证号" prop="person_id">
<el-input v-model="idcard" clearable disabled placeholder="系统自动填写" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="idcard" clearable disabled placeholder="系统自动填写"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工种" prop="person_id">
<el-input v-model="work_type" clearable disabled placeholder="系统自动填写" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="work_type" clearable disabled placeholder="系统自动填写"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上班时间" prop="work_start_time">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.work_start_time" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.work_start_time"
type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="下班时间" prop="work_end_time">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.work_end_time" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.work_end_time" type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -239,7 +246,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -10,19 +10,22 @@
</el-form-item> </el-col>
<el-col :span="24">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="考勤日期" prop="attendance_date">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.attendance_date" type="date" value-format="YYYY-MM-DD" placeholder="选择考勤日期">
<el-date-picker class="flex-1 !flex" clearable v-model="formData.attendance_date" type="date"
value-format="YYYY-MM-DD" placeholder="选择考勤日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="出勤人数" prop="type">
<el-input v-model="renshu" clearable disabled placeholder="系统自动填写" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="renshu" clearable disabled placeholder="系统自动填写"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item>
</el-col>
@ -36,14 +39,19 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -185,7 +193,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -9,24 +9,28 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable readonly placeholder="请选择项目" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目编码" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="文档大类" prop="classify_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="文档大类" prop="classify_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="large_document" clearable readonly placeholder="请输入文档大类" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="文档中类" prop="classify_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="文档中类" prop="classify_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="middle_document" readonly clearable placeholder="请输入文档中类" />
</el-form-item>
</el-col>
@ -37,7 +41,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="文档名称" prop="name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="文档名称" prop="name"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.name" readonly clearable placeholder="请输入文档名称" />
</el-form-item>
</el-col>
@ -57,7 +62,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -65,7 +74,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -185,7 +195,7 @@ const formData = reactive({
describe: '',
version: "",
start_time: "",
annex: "",
annex: [],
})
@ -239,7 +249,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()

View File

@ -4,17 +4,24 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row>
<el-col :span="12">
<el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" readonly v-model="formData.org_id" clearable placeholder="请选择组织" @change="area_change">
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-form-item label="组织" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" readonly v-model="formData.org_id" clearable placeholder="请选择组织"
@change="area_change">
<el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item> </el-col><el-col :span="12">
<el-form-item label="部门" readonly prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门" @change="area_change1">
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-form-item label="部门" readonly prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门"
@change="area_change1">
<el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item></el-col><el-col :span="12">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="project_name" readonly clearable placeholder="请输入项目名称" />
</el-form-item></el-col><el-col :span="12">
<el-form-item label="项目编码" prop="project_id">
@ -31,12 +38,14 @@
<el-input v-model="contact_name" clearable readonly placeholder="请选择联系人" />
</el-form-item></el-col><el-col :span="12">
<el-form-item label="联系电话" prop="contact_phone" :rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-form-item label="联系电话" prop="contact_phone"
:rules="[{ validator: checkPhone, trigger: 'blur' }]">
<el-input v-model="contact_phone" clearable disabled placeholder="系统自动填写" />
</el-form-item></el-col><el-col :span="24">
<el-form-item label="概算来源" prop="estimate_source">
<el-radio-group v-model="formData.estimate_source" placeholder="请选择概算来源">
<el-radio v-for="(item, index) in dictData.estimate_source" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.estimate_source" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -45,14 +54,16 @@
<el-input v-model="formData.create_user" clearable placeholder="请输入制单人" />
</el-form-item>
<el-form-item label="报价日期" prop="quotation_date">
<el-date-picker class="flex-1 !flex" v-model="formData.quotation_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择报价日期">
<el-date-picker class="flex-1 !flex" v-model="formData.quotation_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择报价日期">
</el-date-picker>
</el-form-item></el-col>
<el-col :span="24">
<el-form-item label="发票类型" prop="invoice_type">
<el-radio-group v-model="formData.invoice_type" placeholder="请选择发票类型">
<el-radio v-for="(item, index) in dictData.invoice_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.invoice_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -60,7 +71,8 @@
<el-form-item label="技术人员id" prop="technician">
<el-select class="flex-1" v-model="formData.technician" clearable placeholder="请输入技术人员">
<el-option v-for="(item, index) in jlist" :key="index" :label="item.name" :value="parseInt(item.id)" />
<el-option v-for="(item, index) in jlist" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
<!-- <el-input v-model="formData.technician" clearable placeholder="请输入技术人员id" /> -->
</el-form-item></el-col><el-col :span="12">
@ -71,7 +83,11 @@
<el-input v-model="formData.ask" clearable placeholder="请输入要求" />
</el-form-item></el-col><el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -79,7 +95,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -254,7 +271,7 @@ const formData = reactive({
technician: '',
estimate_amount: '',
ask: '',
annex: '',
annex: [],
contact_id: ''
})
@ -309,7 +326,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -13,7 +14,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目经理" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目经理" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目经理" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="直接上级" prop="project_id">
@ -34,13 +36,15 @@
<el-col :span="8">
<el-form-item label="出差时间" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择出差时间">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择出差时间">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择结束时间">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择结束时间">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -63,14 +67,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -189,7 +198,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -245,7 +254,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -16,12 +17,14 @@
<el-col :span="8">
<el-form-item label="调整日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择调整日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择调整日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="调整金额" prop="insurance">
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput" placeholder="请输入调整金额" />
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput"
placeholder="请输入调整金额" />
</el-form-item> </el-col>
@ -34,14 +37,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -160,7 +168,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -216,7 +224,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -13,7 +14,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目经理" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目经理" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目经理" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="直接上级" prop="project_id">
@ -21,7 +23,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合计金额(元)" prop="insurance">
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput" placeholder="请输入合计金额(元)" />
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput"
placeholder="请输入合计金额(元)" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合计金额大写(元)" prop="amount_daxie">
@ -30,7 +33,8 @@
<el-col :span="24">
<el-form-item label="报销类型" prop="insurance_date">
<el-radio-group v-model="formData.insurance_date" placeholder="请选择报销类型">
<el-radio v-for="( item, index ) in dictData.pay_type " :key="index" :label="parseInt(item.value)">
<el-radio v-for="( item, index ) in dictData.pay_type " :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -60,7 +64,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="报销日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择报销日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择报销日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -86,14 +91,19 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -114,29 +124,36 @@
<el-table-column label="二级科目" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column label="三级科目" prop="pay_date">
<template #default="{ row }">
<el-date-picker v-model="row.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-date-picker v-model="row.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="交通" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label=" 住宿" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label=" 餐饮" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="补助" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label=" 其它" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="小计" prop="remark">
@ -165,7 +182,8 @@
<el-table-column label="发票类型" prop="invoice_type">
<template #default="{ row }">
<el-select v-model="row.invoice_type" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_type" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_type" :key="index"
:label="item.name" :value="item.value" />
</el-select>
</template>
</el-table-column>
@ -176,13 +194,15 @@
<el-table-column label="发票税率" prop="tax_rate">
<template #default="{ row }">
<el-select v-model="row.tax_rate" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name"
:value="item.value" />
</el-select> </template>
</el-table-column>
<el-table-column label="发票形式" prop="invoice_form">
<template #default="{ row }">
<el-select v-model="row.invoice_form" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_form" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_form" :key="index"
:label="item.name" :value="item.value" />
</el-select> </template>
</el-table-column>
@ -199,7 +219,12 @@
<template #default="{ row, $index }">
<!-- <el-input v-model="row.annex" /> -->
<div>
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }"
ref="upload">
<el-button type="primary">
上传
</el-button>
@ -207,8 +232,10 @@
<div v-if="row.annex">
<div v-for="(item, index) in row.annex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn1(row, index)">x</span>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;"
@click="delFileFn1(row, index)">x</span>
</div>
</div>
</div>
@ -364,7 +391,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -420,7 +447,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -24,7 +25,8 @@
<el-col :span="8">
<el-form-item label="借款申请日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择借款申请日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择借款申请日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -48,14 +50,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -175,7 +182,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -231,7 +238,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -13,7 +14,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目经理" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请输入项目经理" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请输入项目经理" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="直接上级" prop="project_id">
@ -21,7 +23,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合计金额(元)" prop="insurance">
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput" placeholder="请输入合计金额(元)" />
<el-input v-model="formData.insurance" clearable type="number" @input="amountinput"
placeholder="请输入合计金额(元)" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合计金额大写(元)" prop="amount_daxie">
@ -30,7 +33,8 @@
<el-col :span="24">
<el-form-item label="报销类型" prop="insurance_date">
<el-radio-group v-model="formData.insurance_date" placeholder="请选择报销类型">
<el-radio v-for="( item, index ) in dictData.pay_type " :key="index" :label="parseInt(item.value)">
<el-radio v-for="( item, index ) in dictData.pay_type " :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -60,7 +64,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="报销日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择报销日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择报销日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -86,14 +91,19 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -114,29 +124,36 @@
<el-table-column label="二级科目" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column label="三级科目" prop="pay_date">
<template #default="{ row }">
<el-date-picker v-model="row.pay_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
<el-date-picker v-model="row.pay_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="交通" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label=" 住宿" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label=" 餐饮" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="补助" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label=" 其它" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="小计" prop="remark">
@ -165,7 +182,8 @@
<el-table-column label="发票类型" prop="invoice_type">
<template #default="{ row }">
<el-select v-model="row.invoice_type" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_type" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_type" :key="index"
:label="item.name" :value="item.value" />
</el-select>
</template>
</el-table-column>
@ -176,13 +194,15 @@
<el-table-column label="发票税率" prop="tax_rate">
<template #default="{ row }">
<el-select v-model="row.tax_rate" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name"
:value="item.value" />
</el-select> </template>
</el-table-column>
<el-table-column label="发票形式" prop="invoice_form">
<template #default="{ row }">
<el-select v-model="row.invoice_form" clearable placeholder="请选择发票类型">
<el-option v-for="(item, index) in dictData.invoice_form" :key="index" :label="item.name" :value="item.value" />
<el-option v-for="(item, index) in dictData.invoice_form" :key="index"
:label="item.name" :value="item.value" />
</el-select> </template>
</el-table-column>
@ -199,7 +219,12 @@
<template #default="{ row, $index }">
<!-- <el-input v-model="row.annex" /> -->
<div>
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="(response, file, fileList) => { return handleAvatarSuccess_four1($index, response, file, fileList) }"
ref="upload">
<el-button type="primary">
上传
</el-button>
@ -207,8 +232,10 @@
<div v-if="row.annex">
<div v-for="(item, index) in row.annex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn1(row, index)">x</span>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
:href="item" target="_blank">{{ item }}</a>
<span style="cursor: pointer;margin-left: 5px;"
@click="delFileFn1(row, index)">x</span>
</div>
</div>
</div>
@ -364,7 +391,7 @@ const formData = reactive({
invoice_no: '',
handler: '',
amount_daxie: '',
annex: '',
annex: [],
})
@ -420,7 +447,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -4,7 +4,8 @@
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules" inline>
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="项目编码" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" @click="showDialog = true" />
</el-form-item> </el-col>
<el-col :span="8">
@ -13,22 +14,27 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="姓名" prop="project_person_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="姓名" prop="project_person_id" @click="showDialog1 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="person_name" clearable placeholder="请选择项目人员" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="身份证号" prop="project_person_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="身份证号" prop="project_person_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="idcard" clearable placeholder="系统自动填写" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="投保日期" prop="insurance_date">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择投保日期">
<el-date-picker class="flex-1 !flex" v-model="formData.insurance_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择投保日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="到期日期" prop="due_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.due_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择到期日期">
<el-form-item label="到期日期" prop="due_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.due_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择到期日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
@ -69,14 +75,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -181,7 +192,7 @@ const formData = reactive({
insurance_detail: '',
invoice_no: '',
handler: '',
annex: '',
annex: [],
})
@ -231,7 +242,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -4,7 +4,8 @@
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules" inline>
<el-row>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请输入项目名称" />
</el-form-item> </el-col>
<el-col :span="8">
@ -12,61 +13,78 @@
<el-input v-model="project_code" clearable placeholder="请输入项目编码" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="姓名" prop="project_person_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="姓名" prop="project_person_id" @click="showDialog1 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="person_name" clearable placeholder="请选择项目人员" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="身份证号" prop="project_person_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="身份证号" prop="project_person_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="idcard" clearable placeholder="系统自动填写" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合同类型" prop="contract_type" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同类型" prop="contract_type"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.contract_type" clearable placeholder="请选择合同类型">
<el-option v-for="(item, index) in dictData.labor_contract_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.labor_contract_type" :key="index"
:label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合同状态" prop="contract_status" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同状态" prop="contract_status"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.contract_status" clearable placeholder="请选择合同状态">
<el-option v-for="(item, index) in dictData.labor_contract_status" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.labor_contract_status" :key="index"
:label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_title" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同名称" prop="contract_title"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="flex-1" v-model="formData.contract_title" clearable placeholder="请选择合同名称">
<el-option v-for="(item, index) in dictData.labor_contract_name" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.labor_contract_name" :key="index"
:label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同签定日期" prop="signing_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择合同签定日期">
<el-form-item label="合同签定日期" prop="signing_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.signing_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择合同签定日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="试用期起始日期" prop="trial_start_date">
<el-date-picker class="flex-1 !flex" v-model="formData.trial_start_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
<el-date-picker class="flex-1 !flex" v-model="formData.trial_start_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="试用期结束日期" prop="per_daily_living">
<el-date-picker class="flex-1 !flex" v-model="formData.plan_start_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
<el-date-picker class="flex-1 !flex" v-model="formData.plan_start_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
</el-date-picker>
</el-form-item> </el-col><el-col :span="8">
<el-form-item label="起始时间" prop="start_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
<el-form-item label="起始时间" prop="start_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.start_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
</el-date-picker>
</el-form-item> </el-col><el-col :span="8">
<el-form-item label="终止时间" prop="end_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
<el-form-item label="终止时间" prop="end_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划开始日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="解除时间" prop="release_time">
<el-date-picker class="flex-1 !flex" v-model="formData.release_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择解除时间">
<el-date-picker class="flex-1 !flex" v-model="formData.release_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择解除时间">
</el-date-picker>
</el-form-item> </el-col><el-col :span="8">
<el-form-item label="解除原因" prop="release_reason">
@ -77,14 +95,19 @@
</el-form-item> </el-col>
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -190,7 +213,7 @@ const formData = reactive({
release_time: '',
release_reason: '',
remark: '',
annex: '',
annex: [],
})
@ -240,7 +263,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -12,7 +12,8 @@
<el-input v-model="project_code" readonly clearable placeholder="请选择项目" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="主题" prop="theme" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="主题" prop="theme"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.theme" clearable placeholder="请输入节点名称" />
</el-form-item> </el-col>
<el-col :span="24">
@ -21,16 +22,20 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="日期" prop="date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择下次回访日期">
<el-form-item label="日期" prop="date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择下次回访日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="类型" prop="follow_type" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="类型" prop="follow_type"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="w-[280px]" v-model="formData.follow_type" clearable placeholder="请选择类型">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
@ -47,7 +52,8 @@
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="下次回访日期" prop="next_follow_up_date">
<el-date-picker class="flex-1 !flex" v-model="formData.next_follow_up_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择下次回访日期">
<el-date-picker class="flex-1 !flex" v-model="formData.next_follow_up_date" clearable
type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择下次回访日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -125,7 +131,7 @@ const formData = reactive({
follow_type: '',
executor: '',
content: '',
annex: '',
annex: [],
next_follow_up_date: []
})
@ -180,7 +186,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -22,22 +22,26 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目编码" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="客户名称" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同编号" prop="contract_no" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同编号" prop="contract_no" @click="showDialog1 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_no" clearable placeholder="请选择合同" />
</el-form-item>
</el-col>
@ -47,42 +51,51 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目类型" prop="project_type_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目类型" prop="project_type_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select class="w-[280px]" v-model="formData.project_type_id" clearable placeholder="请选择项目类型">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in protype" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in protype" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目经理" prop="project_manager" @click="userclick" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目经理" prop="project_manager" @click="userclick"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="manage_name" readonly clearable placeholder="请输入项目经理" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目金额" prop="amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目金额" prop="amount"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount" clearable placeholder="请输入项目金额" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="立项日期" prop="project_approval_date">
<el-date-picker v-model="formData.project_approval_date" clearable type="date" value-format="YYYY-MM-DD " placeholder="选择签订日期">
<el-date-picker v-model="formData.project_approval_date" clearable type="date"
value-format="YYYY-MM-DD " placeholder="选择签订日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目开始日期" prop="start_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker v-model="formData.start_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择项目开始日期">
<el-form-item label="项目开始日期" prop="start_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker v-model="formData.start_date" clearable type="date" value-format="YYYY-MM-DD"
placeholder="选择项目开始日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目交付日期" prop="delivery_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker v-model="formData.delivery_date" clearable type="date" value-format="YYYY-MM-DD " placeholder="选择项目交付日期">
<el-form-item label="项目交付日期" prop="delivery_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker v-model="formData.delivery_date" clearable type="date"
value-format="YYYY-MM-DD " placeholder="选择项目交付日期">
</el-date-picker>
</el-form-item>
@ -98,7 +111,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -106,7 +123,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -286,7 +304,7 @@ const formData = reactive({
start_date: "",
delivery_date: "",
remark: "",
annex: "",
annex: [],
process_approval: '{"current_step":"1","action":"1","submit_step":"2","check_user":"2","check_opinions":"dgfdsfds","copy_user":"3,4"}'
})
@ -369,7 +387,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -13,7 +13,8 @@
</div>
<el-row>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" readonly clearable placeholder="请输入项目名称" />
</el-form-item> </el-col>
<el-col :span="8">
@ -37,9 +38,11 @@
</el-table-column>
<el-table-column label="材料名称">
<template #default="{ row }"> <el-input v-model="row.name" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.name" />
</template></el-table-column>
<el-table-column label="材料编码">
<template #default="{ row }"> <el-input v-model="row.code" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.code" />
</template></el-table-column>
<el-table-column label="规格型号">
<template #default="{ row }">
@ -96,14 +99,19 @@
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -269,9 +277,9 @@ const formData = reactive({
dept_id: '',
org_id: '',
project_id: '',
material_budget_detail: '',
material_budget_detail: [],
remark: '',
annex: '',
annex: [],
})
const handleAdd = (row: any) => {
// row
@ -332,16 +340,16 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
if (tableData.value.length > 0) {
formData.material_budget_detail = JSON.stringify(tableData.value.map((item: any) => ({
formData.material_budget_detail = tableData.value.map((item: any) => ({
'id': item.id,
"material_id": item.material_id,
"num": item.num,
"price": item.price,
"remark": item.remark
})))
}))
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -22,38 +22,47 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请选择项目" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目编码" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目经理" prop="project_manage" @click="userclick" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目经理" prop="project_manage" @click="userclick"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="manage_name" readonly clearable placeholder="请输入项目经理" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="填报日期" prop="declare_time" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.declare_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择项目开始日期">
<el-form-item label="填报日期" prop="declare_time"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.declare_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择项目开始日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目开始日期" prop="start_time" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.start_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择项目开始日期">
<el-form-item label="项目开始日期" prop="start_time"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.start_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择项目开始日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目交付日期" prop="deliver_time" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.deliver_time" clearable type="date" value-format="YYYY-MM-DD " placeholder="选择项目交付日期">
<el-form-item label="项目交付日期" prop="deliver_time"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.deliver_time" clearable type="date"
value-format="YYYY-MM-DD " placeholder="选择项目交付日期">
</el-date-picker>
</el-form-item>
@ -69,7 +78,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -77,7 +90,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -215,7 +229,7 @@ const formData = reactive({
start_time: "",
deliver_time: "",
remark: "",
annex: "",
annex: [],
process_approval: '{"current_step":"1","action":"1","submit_step":"2","check_user":"2","check_opinions":"dgfdsfds","copy_user":"3,4"}'
})
@ -297,7 +311,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()

View File

@ -2,13 +2,16 @@
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-form-item label="项目名称" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" @click="showDialog = true" clearable placeholder="点击选择项目" />
</el-form-item>
<el-form-item label="项目编码" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目编码" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_code" disabled clearable placeholder="系统自动填写" />
</el-form-item>
<el-form-item label="客户名称" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="客户名称" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" disabled @click="showDialog = true" clearable placeholder="系统自动填写" />
</el-form-item>
<el-form-item label="技术人员" prop="technician_ids">
@ -18,7 +21,8 @@
<el-button @click="userone('1')">添加</el-button>
<div style=" display: block;width: 100%;margin-top: 10px;">
<el-tag v-for="(tag, index) in technician" :key="index" closable @close="removeTag1(index)" style="margin-right: 10px;">
<el-tag v-for="(tag, index) in technician" :key="index" closable @close="removeTag1(index)"
style="margin-right: 10px;">
{{ tag.name }}
</el-tag>
</div>
@ -29,7 +33,8 @@
<div style=" display: block;width: 100%;margin-top: 10px;">
<el-tag v-for="(tag, index) in business_people" :key="index" closable @close="removeTag2(index)" style="margin-right: 10px;">
<el-tag v-for="(tag, index) in business_people" :key="index" closable @close="removeTag2(index)"
style="margin-right: 10px;">
{{ tag.name }}
</el-tag>
</div>
@ -41,7 +46,8 @@
<div style=" display: block;width: 100%;margin-top: 10px;">
<el-tag v-for="(tag, index) in cross_departmental_personnel" :key="index" closable @close="removeTag3(index)" style="margin-right: 10px;">
<el-tag v-for="(tag, index) in cross_departmental_personnel" :key="index" closable
@close="removeTag3(index)" style="margin-right: 10px;">
{{ tag.name }}
</el-tag>
</div>
@ -89,7 +95,8 @@
<div v-if="isshow">
<div class="lad" v-for="(item, i) in deparmetlist" :key="i">
<div class="lad">{{ i }}</div>
<div class="flex " v-for="(items, k) in item" style="justify-content: space-between;" @click="deparmetclck(items)">
<div class="flex " v-for="(items, k) in item" style="justify-content: space-between;"
@click="deparmetclck(items)">
<div>{{ items.name }}</div>
<div class="Collapsebj">{{ items.admin_num }}</div>
</div>
@ -101,7 +108,8 @@
<!-- <el-input v-model="content" clearable placeholder="搜索人员" style="margin-bottom: 20px;" /> -->
<el-checkbox-group v-model="radiolist">
<el-checkbox :label="item" v-for="(item, i) in deparmetlist1" :key="i" style="margin-bottom: 20px;">
<el-checkbox :label="item" v-for="(item, i) in deparmetlist1" :key="i"
style="margin-bottom: 20px;">
<div class="radio-con">
<div class="radioa">
<img :src="item.avatar" alt="" />
@ -122,7 +130,8 @@
</div>
<div v-if="isCollapse == 3">
<div class="lad " v-if="isshow1">
<div class="flex " v-for="(item, j) in jobslist" :key="j" style="justify-content: space-between;" @click="gwclck(item)">
<div class="flex " v-for="(item, j) in jobslist" :key="j" style="justify-content: space-between;"
@click="gwclck(item)">
<div>{{ item.name }}</div>
<div class="Collapsebj">{{ item.admin_num }}</div>
</div>
@ -309,10 +318,6 @@ const userclick = () => {
business_people.value.push(newElem);
}
});
// if (!business_people.value.some(elem => newArray.some(newElem => JSON.stringify(elem.id) === JSON.stringify(newElem.id)))) {
// // newElem cont
// business_people.value.push(...newArray);
// }
} else {
// leixin 1 2
formData.cross_departmental_personnel_ids = radiolist.value.map((item) => item.id).toString()
@ -323,10 +328,6 @@ const userclick = () => {
cross_departmental_personnel.value.push(newElem);
}
});
// if (!cross_departmental_personnel.value.some(elem => newArray.some(newElem => JSON.stringify(elem.id) === JSON.stringify(newElem.id)))) {
// // newElem cont
// cross_departmental_personnel.value.push(...newArray);
// }
}
dialogVisible.value = false
@ -554,5 +555,4 @@ defineExpose({
color: #f7f7f7;
}
}
</style>
}</style>

View File

@ -5,7 +5,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id">
<el-input v-model="project_code" clearable placeholder="请选择项目编码" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
<el-input v-model="project_code" clearable placeholder="请选择项目编码" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id">
@ -15,7 +16,8 @@
<el-col :span="24">
<el-form-item label="付款类型" prop="payment_type">
<el-radio-group v-model="formData.payment_type" placeholder="请选择付款类型">
<el-radio v-for="( item, index ) in dictData.salary_payment_type " :key="index" :label="parseInt(item.value)">
<el-radio v-for="( item, index ) in dictData.salary_payment_type " :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -27,16 +29,19 @@
<el-col :span="8">
<el-form-item label="申请日期" prop="apply_date">
<el-date-picker class="flex-1 !flex" v-model="formData.apply_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择申请日期">
<el-date-picker class="flex-1 !flex" v-model="formData.apply_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择申请日期">
</el-date-picker>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合计金额(元)" prop="total_amount">
<el-input v-model="formData.total_amount" clearable type="number" @input="amountinput" placeholder="请输入合计金额(元)" />
<el-input v-model="formData.total_amount" clearable type="number" @input="amountinput"
placeholder="请输入合计金额(元)" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="合计金额大写(元)" prop="total_amount_uppercase">
<el-input v-model="formData.total_amount_uppercase" clearable disabled placeholder="请输入合计金额大写(元)" />
<el-input v-model="formData.total_amount_uppercase" clearable disabled
placeholder="请输入合计金额大写(元)" />
</el-form-item> </el-col>
<el-col :span="8">
@ -48,14 +53,19 @@
<el-col :span="24">
<el-form-item label="合同附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -86,16 +96,20 @@
<template #default="{ row }"> <el-input v-model="row.bank_no" /> </template></el-table-column>
<el-table-column label="总收入" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="总支出" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="未发放" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.pay_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.pay_amount" />
</template></el-table-column>
<el-table-column label="本次申请付款金额" prop="pay_amount">
<template #default="{ row }"> <el-input v-model="row.apply_amount" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.apply_amount" />
</template></el-table-column>
@ -223,9 +237,9 @@ const formData = reactive({
apply_date: '',
total_amount: '',
total_amount_uppercase: '',
payment_detail: '',
payment_detail: [],
remark: '',
annex: '',
annex: [],
})
@ -283,10 +297,10 @@ const getDetail = async (row: Record<string, any>) => {
const handleSubmit = async () => {
if (paymentlist.value.length > 0) {
const arr1 = paymentlist.value.map(({ name, bank_no, work_type_text, ...rest }) => rest)
formData.payment_detail = JSON.stringify(arr1)
formData.payment_detail = arr1
}
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -2,7 +2,8 @@
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请输入项目id" />
</el-form-item>
<el-form-item label="项目编码" prop="project_id">
@ -33,14 +34,18 @@
<el-input v-model="formData.remaining_amount" readonly disabled placeholder="系统自动计算" />
</el-form-item>
<el-form-item label="结算日期" prop="settlement_date">
<el-date-picker class="flex-1 !flex" v-model="formData.settlement_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择结算日期">
<el-date-picker class="flex-1 !flex" v-model="formData.settlement_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择结算日期">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" clearable placeholder="请输入备注" />
</el-form-item>
<el-form-item label="结算明细附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -48,7 +53,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -174,7 +180,7 @@ const formData = reactive({
remaining_amount: '',
settlement_date: '',
remark: '',
annex: '',
annex: [],
})
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
@ -247,7 +253,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -3,7 +3,8 @@
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请输入项目id" />
</el-form-item>
<el-form-item label="项目编码" prop="project_id">
@ -39,7 +40,10 @@
</el-form-item>
<el-form-item label="结算明细附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -47,7 +51,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -159,7 +164,7 @@ const formData = reactive({
importance: '',
recording_time: '',
demand_content: '',
annex: '',
annex: [],
})
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
@ -224,7 +229,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -3,7 +3,8 @@
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请输入项目id" />
</el-form-item>
<el-form-item label="项目编码" prop="project_id">
@ -42,7 +43,10 @@
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -50,7 +54,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -162,7 +167,7 @@ const formData = reactive({
importance: '',
recording_time: '',
demand_content: '',
annex: '',
annex: [],
})
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
@ -227,7 +232,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -2,7 +2,8 @@
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请输入项目id" />
</el-form-item>
<el-form-item label="项目编码" prop="project_id">
@ -33,14 +34,18 @@
<el-input v-model="formData.remaining_amount" readonly disabled placeholder="系统自动计算" />
</el-form-item>
<el-form-item label="结算日期" prop="settlement_date">
<el-date-picker class="flex-1 !flex" v-model="formData.settlement_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择结算日期">
<el-date-picker class="flex-1 !flex" v-model="formData.settlement_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择结算日期">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" clearable placeholder="请输入备注" />
</el-form-item>
<el-form-item label="结算明细附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -48,7 +53,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -174,7 +180,7 @@ const formData = reactive({
remaining_amount: '',
settlement_date: '',
remark: '',
annex: '',
annex: [],
})
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
@ -247,7 +253,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -13,7 +13,8 @@
</div>
<el-row>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" readonly clearable placeholder="请输入项目名称" />
</el-form-item> </el-col>
<el-col :span="8">
@ -39,9 +40,11 @@
</el-table-column>
<el-table-column label="工作类型">
<template #default="{ row }"> <el-input v-model="row.work_type" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.work_type" />
</template></el-table-column>
<el-table-column label="工作内容">
<template #default="{ row }"> <el-input v-model="row.work_content" /> </template></el-table-column>
<template #default="{ row }"> <el-input v-model="row.work_content" />
</template></el-table-column>
<el-table-column label="项目特征">
<template #default="{ row }">
@ -88,14 +91,19 @@
</el-col>
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -256,9 +264,9 @@ const formData = reactive({
dept_id: '',
org_id: '',
project_id: '',
subpackage_budget_detail: '',
subpackage_budget_detail: [],
remark: '',
annex: '',
annex: [],
})
const handleAdd = (row: any) => {
// row
@ -319,10 +327,10 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
if (tableData.value.length > 0) {
formData.subpackage_budget_detail = JSON.stringify(tableData.value.map((item: any) => ({
formData.subpackage_budget_detail = tableData.value.map((item: any) => ({
'id': item.id,
"work_type": item.work_type,
"work_content": item.work_content,
@ -331,7 +339,7 @@ const handleSubmit = async () => {
"num": item.num,
"price": item.price,
"remark": item.remark
})))
}))
}
await formRef.value?.validate()
const data = { ...formData, }

View File

@ -22,29 +22,35 @@
<el-row>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目名称" prop="project_id" @click="showDialog2 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目编码" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同金额(元)" prop="contract_amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.contract_amount" type="number" @input="contractamount" clearable placeholder="请输入合同金额(元)" />
<el-form-item label="合同金额(元)" prop="contract_amount"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.contract_amount" type="number" @input="contractamount" clearable
placeholder="请输入合同金额(元)" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目利润(元)" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目利润(元)" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_amount" clearable disabled placeholder="请输入项目利润(元)" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目利润率(%)" prop="project_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目利润率(%)" prop="project_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_rate" clearable disabled placeholder="请输入项目利润率(%)" />
</el-form-item>
@ -98,14 +104,17 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目经理" prop="project_manager" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="项目经理" prop="project_manager"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.project_manager" clearable placeholder="请输入项目经理" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预算日期" prop="budget_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker v-model="formData.budget_date" clearable type="date" value-format="YYYY-MM-DD " placeholder="选择预算日期">
<el-form-item label="预算日期" prop="budget_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker v-model="formData.budget_date" clearable type="date" value-format="YYYY-MM-DD "
placeholder="选择预算日期">
</el-date-picker>
</el-form-item>
@ -113,7 +122,11 @@
<el-col :span="24">
<el-form-item label="预算清单" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -121,7 +134,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -429,7 +443,7 @@ const formData = reactive({
fy_cost: "",
jj_cost: "",
remark: "",
budget_list: "",
budget_list: [],
budget_date: "",
project_manager: "",
})
@ -522,7 +536,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.budget_list = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.budget_list = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -29,7 +33,8 @@
<el-col :span="24">
<el-form-item label="验收日期" prop="accept_date">
<el-date-picker class="flex-1 !flex" v-model="formData.accept_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择验收日期">
<el-date-picker class="flex-1 !flex" v-model="formData.accept_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择验收日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -61,7 +66,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -69,7 +78,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -184,7 +194,7 @@ const formData = reactive({
project_id: "",
accept_date: "",
type: '',
file: '',
file: [],
engineer: "",
content: "",
remark: "",
@ -240,7 +250,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -38,7 +42,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="发生日期" prop="require">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择发生日期">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择发生日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -80,7 +85,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -88,7 +97,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -204,7 +214,7 @@ const formData = reactive({
name: "",
happen_date: "",
type: "",
file: '',
file: [],
remark: "",
dept_id: '',
org_id: "",
@ -263,7 +273,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -50,14 +54,16 @@
</el-col>
<el-col :span="8">
<el-form-item label="计划开始时间" prop="scheduled_start_time">
<el-date-picker v-model="formData.scheduled_start_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划开始时间">
<el-date-picker v-model="formData.scheduled_start_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划开始时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划结束时间" prop="scheduled_end_time">
<el-date-picker v-model="formData.scheduled_end_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划结束时间">
<el-date-picker v-model="formData.scheduled_end_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划结束时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -68,14 +74,16 @@
</el-col>
<el-col :span="8">
<el-form-item label="实际开始时间" prop="actual_start_time">
<el-date-picker v-model="formData.actual_start_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择实际开始时间">
<el-date-picker v-model="formData.actual_start_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择实际开始时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实际结束时间" prop="actual_end_time">
<el-date-picker v-model="formData.actual_end_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择实际结束时间">
<el-date-picker v-model="formData.actual_end_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择实际结束时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -126,7 +134,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -134,7 +146,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -264,7 +277,7 @@ const formData = reactive({
data_content_requirements: "",
detection_situation: "",
remark: "",
file: "",
file: [],
})
@ -316,7 +329,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}

View File

@ -6,24 +6,29 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="质量检测节点" prop="node">
<el-select class="flex-1" v-model="formData.node" clearable placeholder="请选择质量检测节点">
<el-option v-for="(item, index) in dictData.quality_detection_node" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.quality_detection_node" :key="index"
:label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -54,7 +59,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -62,7 +71,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -166,7 +176,7 @@ const formData = reactive({
node: "",
serial_number: "",
standard_duration: '',
file: '',
file: [],
remark: "",
@ -220,7 +230,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -40,7 +44,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="发生时间" prop="happen_date">
<el-date-picker v-model="formData.happen_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择发生时间">
<el-date-picker v-model="formData.happen_date" clearable type="date" value-format="YYYY-MM-DD"
placeholder="选择发生时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -61,7 +66,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -69,7 +78,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -185,7 +195,7 @@ const formData = reactive({
name: "",
type: "",
happen_date: '',
file: '',
file: [],
content: "",
remark: "",
@ -240,7 +250,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -40,7 +44,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="目标规范" prop="target_specification">
<el-input v-model="formData.target_specification" type="textarea" clearable placeholder="请输入目标规范" />
<el-input v-model="formData.target_specification" type="textarea" clearable
placeholder="请输入目标规范" />
</el-form-item>
</el-col>
<el-col :span="24">
@ -50,7 +55,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="允许偏差" prop="allowable_deviation">
<el-input v-model="formData.allowable_deviation" type="number" clearable placeholder="请输入允许偏差" />
<el-input v-model="formData.allowable_deviation" type="number" clearable
placeholder="请输入允许偏差" />
</el-form-item>
</el-col>
@ -59,7 +65,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -67,7 +77,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -183,7 +194,7 @@ const formData = reactive({
target: "",
basic_requirements: "",
target_specification: '',
file: '',
file: [],
allowable_deviation: "",
pass_rate: "",
@ -238,7 +249,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -41,7 +45,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="发布时间" prop="release_date">
<el-date-picker v-model="formData.release_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择发布时间">
<el-date-picker v-model="formData.release_date" clearable type="date" value-format="YYYY-MM-DD"
placeholder="选择发布时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -53,7 +58,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -61,7 +70,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -165,7 +175,7 @@ const formData = reactive({
id: '',
release_dept: "",
content: "",
file: '',
file: [],
name: "",
type: "",
release_date: "",
@ -221,7 +231,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -32,7 +36,8 @@
<el-col :span="24">
<el-form-item label="发生日期" prop="happen_date">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择发生日期">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择发生日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -49,7 +54,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -57,7 +66,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -171,7 +181,7 @@ const formData = reactive({
id: '',
project_id: "",
happen_date: "",
file: '',
file: [],
content: "",
remark: "",
dept_id: '',
@ -226,7 +236,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

View File

@ -326,7 +326,7 @@ const formData = reactive({
total_amount: '',
customer_require: '',
remark: '',
annex: '',
annex: [],
quotation_detail: [],
@ -429,7 +429,7 @@ const isMobileNumber = (rule: any, value: string | number | any[], callback: (ar
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
formData.annex = formDataannex.map((item) => item.uri)
}
if (tableData.value.length > 0) {
formData.quotation_detail = tableData.value.map(item => ({
@ -441,7 +441,6 @@ const handleSubmit = async () => {
remark: item.remark
}));
// formData.quotation_detail = JSON.stringify(formData.quotation_detail)
}
await formRef.value?.validate()

View File

@ -8,7 +8,8 @@
<el-col :span="8">
<el-form-item label="合同编号" prop="contract_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同编号" prop="contract_id" @click="showDialog1 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_no" clearable readonly placeholder="请输入合同编号" />
</el-form-item>
</el-col>
@ -36,14 +37,17 @@
<el-col :span="8">
<el-form-item label="日期" prop="return_date">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期次" prop="period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="期次" prop="period"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -53,7 +57,8 @@
<el-col :span="8">
<el-form-item label="收款性质" prop="contacts">
<el-select class="flex-1" v-model="formData.collection_type" clearable placeholder="请选择收款性质">
<el-option v-for="(item, index) in dictData.collection_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.collection_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -71,14 +76,16 @@
<el-col :span="8">
<el-form-item label="开票状态" prop="contacts">
<el-select class="flex-1" v-model="formData.invoice_status" clearable placeholder="请选择开票状态">
<el-option v-for="(item, index) in dictData.invoice_status" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.invoice_status" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="付款方式" prop="contacts">
<el-select class="flex-1" v-model="formData.pay_type" clearable placeholder="请选择付款方式">
<el-option v-for="(item, index) in dictData.pay_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_type" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
@ -107,7 +114,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -115,7 +126,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -296,7 +308,7 @@ const formData = reactive({
bank_account_id: "",
remark: "",
annex: ""
annex: []
})
@ -353,7 +365,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -9,18 +9,23 @@
<el-col :span="8">
<el-form-item label="组织" prop="org_id">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="请选择部门" prop="dept_id">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-option v-for="(item, index) in list2" :key="index" :label="item.name" :value="item.id" />
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-option v-for="(item, index) in list2" :key="index" :label="item.name"
:value="item.id" />
</el-select></el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="票据编号" prop="acceptance_bill_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-form-item label="票据编号" prop="acceptance_bill_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" @click="showDialog = true">
<el-input v-model="bill_sn" clearable readonly placeholder="请输入票据编号" />
</el-form-item>
@ -29,9 +34,11 @@
<el-col :span="8">
<el-form-item label="汇票类型" prop="acceptance_bill_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="汇票类型" prop="acceptance_bill_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-radio-group v-model="bill_type" readonly placeholder="请选择汇票类型">
<el-radio v-for="(item, index) in dictData.bill_type" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.bill_type" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -41,48 +48,57 @@
</el-col>
<el-col :span="8">
<el-form-item label="汇票承兑银行" prop="acceptance_bill_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="汇票承兑银行" prop="acceptance_bill_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="draft_acceptance_bank" readonly clearable placeholder="请输入汇票承兑银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="汇票到期日期" prop="acceptance_bill_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" readonly v-model="bill_due_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择汇票到期日期">
<el-form-item label="汇票到期日期" prop="acceptance_bill_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" readonly v-model="bill_due_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择汇票到期日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收票账户编码" prop="acceptance_bill_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="收票账户编码" prop="acceptance_bill_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="account_sn" readonly clearable placeholder="请输入收票账户编码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收票银行" prop="acceptance_bill_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="收票银行" prop="acceptance_bill_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="deposit_bank" readonly clearable placeholder="请输入收票银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="兑现日期" prop="maturity_date" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.maturity_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择兑现日期">
<el-form-item label="兑现日期" prop="maturity_date"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.maturity_date" clearable type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择兑现日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="兑现金额" prop="amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="兑现金额" prop="amount"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount" clearable placeholder="请输入兑现金额" @input="amountinput" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="兑现金额大写" prop="amount_daxie" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="兑现金额大写" prop="amount_daxie"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount_daxie" readonly clearable placeholder="请输入兑现金额大写" />
</el-form-item>
@ -98,7 +114,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field87">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -106,7 +126,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -262,7 +283,7 @@ const formData = reactive({
amount: "",
amount_daxie: "",
remark: "",
annex: ""
annex: []
})
@ -324,7 +345,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}

View File

@ -17,33 +17,40 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同名称" prop="contract_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="contract_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="客户名称" prop="contract_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期次" prop="period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="期次" prop="period"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name" :value="parseInt(item.value)" />
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="金额" prop="amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="金额" prop="amount"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount" type="number" clearable placeholder="请输入金额" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划回款日期" prop="return_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="计划回款日期" prop="return_date"
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -51,7 +58,8 @@
<el-col :span="12">
<el-form-item label="回款状态" prop="return_status">
<el-radio-group v-model="formData.return_status" placeholder="请选择回款状态">
<el-radio v-for="(item, index) in dictData.return_status" :key="index" :label="parseInt(item.value)">
<el-radio v-for="(item, index) in dictData.return_status" :key="index"
:label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
@ -73,7 +81,11 @@
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item> -->
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -81,7 +93,8 @@
<div>
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -196,7 +209,7 @@ const formData = reactive({
return_status: "",
return_duty_id: '',
remark: "",
annex: ""
annex: []
})
@ -244,7 +257,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item: any) => item.uri))
formData.annex = formDataannex.map((item: any) => item.uri)
}
console.log(formRef.value?.validate(), '22222222')

View File

@ -6,17 +6,21 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="组织名称" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="组织名称" prop="org_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
<el-option v-for="(item, index) in list1" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="部门名称" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="部门名称" prop="dept_id"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-select v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name" :value="item.id" />
<el-option v-for="( item, index ) in list2 " :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -43,7 +47,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="发生时间" prop="require">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择发生时间">
<el-date-picker class="flex-1 !flex" v-model="formData.happen_time" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择发生时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -85,7 +90,11 @@
<el-col :span="24">
<el-form-item label="附件" prop="field127">
<el-upload accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore.token }" :action="base_url + '/upload/file'" :on-success="handleAvatarSuccess_four" ref="upload">
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true"
:headers="{ Token: userStore.token }" :action="base_url + '/upload/file'"
:on-success="handleAvatarSuccess_four" ref="upload">
<el-button type="primary">
上传
</el-button>
@ -93,7 +102,8 @@
<div>
<div v-for="( item, index ) in formDataannex " style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri"
target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</div>
@ -209,7 +219,7 @@ const formData = reactive({
name: "",
happen_time: "",
type: "",
file: '',
file: [],
remark: "",
dept_id: '',
org_id: "",
@ -268,7 +278,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.file = JSON.stringify(formDataannex.map((item) => item.uri))
formData.file = formDataannex.map((item) => item.uri)
}
await formRef.value?.validate()

Some files were not shown because too many files have changed in this diff Show More