From b57c02f998cac0f54afb4a27757b0101659234f4 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期二, 01 七月 2025 15:24:17 +0800 Subject: [PATCH] 图片上传问题,可多上传几个文件 --- src/views/salesManagement/invoiceLedger/index.vue | 254 ++-------------- src/views/salesManagement/salesLedger/index.vue | 480 ++++++------------------------- src/components/FileUpload/index.vue | 49 -- src/views/procurementManagement/invoiceEntry/components/Modal.vue | 112 +------ 4 files changed, 163 insertions(+), 732 deletions(-) diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue index e39a6ed..57e62b7 100644 --- a/src/components/FileUpload/index.vue +++ b/src/components/FileUpload/index.vue @@ -1,21 +1,8 @@ <template> <div class="upload-file"> - <el-upload - multiple - :action="uploadFileUrl" - :before-upload="handleBeforeUpload" - :file-list="fileList" - :data="data" - :limit="limit" - :on-error="handleUploadError" - :on-exceed="handleExceed" - :on-success="handleUploadSuccess" - :show-file-list="false" - :headers="headers" - class="upload-file-uploader" - ref="fileUpload" - v-if="!disabled" - > + <el-upload multiple :action="uploadFileUrl" :before-upload="handleBeforeUpload" :file-list="fileList" :data="data" + :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed" :on-success="handleUploadSuccess" + :show-file-list="false" :headers="headers" class="upload-file-uploader" ref="fileUpload" v-if="!disabled"> <!-- 涓婁紶鎸夐挳 --> <el-button type="primary">閫夊彇鏂囦欢</el-button> </el-upload> @@ -31,31 +18,13 @@ 鐨勬枃浠� </div> <!-- 鏂囦欢鍒楄〃 --> - <transition-group - class="upload-file-list el-upload-list el-upload-list--text" - name="el-fade-in-linear" - tag="ul" - > - <li - :key="file.uid" - class="el-upload-list__item ele-upload-list__item-content" - v-for="(file, index) in fileList" - > - <el-link - :href="`${baseUrl}${file.url}`" - :underline="false" - target="_blank" - > + <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul"> + <li :key="file.uid" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList"> + <el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank"> <span class="el-icon-document"> {{ getFileName(file.name) }} </span> </el-link> <div class="ele-upload-list__item-content-action"> - <el-link - :underline="false" - @click="handleDelete(index)" - type="danger" - v-if="!disabled" - > 鍒犻櫎</el-link - > + <el-link :underline="false" @click="handleDelete(index)" type="danger" v-if="!disabled"> 鍒犻櫎</el-link> </div> </li> </transition-group> @@ -264,9 +233,11 @@ opacity: 0.5; background: #c8ebfb; } + .upload-file-uploader { margin-bottom: 5px; } + .upload-file-list .el-upload-list__item { border: 1px solid #e4e7ed; line-height: 2; @@ -274,12 +245,14 @@ position: relative; transition: none !important; } + .upload-file-list .ele-upload-list__item-content { display: flex; justify-content: space-between; align-items: center; color: inherit; } + .ele-upload-list__item-content-action .el-link { margin-right: 10px; } diff --git a/src/views/procurementManagement/invoiceEntry/components/Modal.vue b/src/views/procurementManagement/invoiceEntry/components/Modal.vue index 7e38af6..3296bb3 100644 --- a/src/views/procurementManagement/invoiceEntry/components/Modal.vue +++ b/src/views/procurementManagement/invoiceEntry/components/Modal.vue @@ -1,12 +1,6 @@ <template> <el-dialog :title="modalOptions.title" v-model="visible" width="70%"> - <el-form - ref="formRef" - :model="form" - :rules="rules" - label-width="120px" - label-position="top" - > + <el-form ref="formRef" :model="form" :rules="rules" label-width="120px" label-position="top"> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="閲囪喘鍚堝悓鍙凤細" prop="purchaseLedgerNo"> @@ -15,131 +9,61 @@ </el-col> <el-col :span="12"> <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo"> - <el-input - v-model="form.salesContractNo" - placeholder="鑷姩濉厖" - clearable - disabled - /> + <el-input v-model="form.salesContractNo" placeholder="鑷姩濉厖" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="渚涘簲鍟嗗悕绉帮細" prop="supplierName"> - <el-input - v-model="form.supplierName" - placeholder="鑷姩濉厖" - clearable - disabled - /> + <el-input v-model="form.supplierName" placeholder="鑷姩濉厖" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName"> - <el-input - v-model="form.projectName" - placeholder="鑷姩濉厖" - clearable - disabled - /> + <el-input v-model="form.projectName" placeholder="鑷姩濉厖" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鍙戠エ鍙凤細" prop="invoiceNumber"> - <el-input - v-model="form.invoiceNumber" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input v-model="form.invoiceNumber" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鍙戠エ閲戦(鍏�)锛�" prop="invoiceAmount"> - <el-input - type="number" - :step="0.01" - :min="0" - v-model="form.invoiceAmount" - placeholder="鑷姩濉厖" - clearable - :disabled="true" - /> + <el-input type="number" :step="0.01" :min="0" v-model="form.invoiceAmount" placeholder="鑷姩濉厖" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="褰曞叆浜猴細" prop="issUer"> - <el-input - v-model="form.issUer" - placeholder="璇疯緭鍏�" - clearable - disabled - /> + <el-input v-model="form.issUer" placeholder="璇疯緭鍏�" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="寮�绁ㄦ棩鏈燂細" prop="entryDate"> - <el-date-picker - style="width: 100%" - v-model="form.entryDate" - type="date" - clearable - /> + <el-date-picker style="width: 100%" v-model="form.entryDate" type="date" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="涓婁紶闄勪欢"> - <FileUpload - :showTip="false" - accept="*" - :autoUpload="true" - :action="action" - :headers="{ - Authorization: 'Bearer ' + getToken(), - }" - :limit="10" - @success="uploadSuccess" - @remove="removeFile" - /> + <FileUpload :showTip="false" accept="*" :autoUpload="true" :action="action" :headers="{ + Authorization: 'Bearer ' + getToken(), + }" :limit="10" @success="uploadSuccess" @remove="removeFile" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="褰曞叆鏃ユ湡锛�" prop="enterDate"> - <el-date-picker - style="width: 100%" - v-model="form.enterDate" - type="date" - clearable - /> + <el-date-picker style="width: 100%" v-model="form.enterDate" type="date" clearable /> </el-form-item> </el-col> </el-row> <el-form-item label="浜у搧淇℃伅锛�"> </el-form-item> - <PIMTable - rowKey="id" - :column="columns" - :tableData="form.productData" - height="auto" - > + <PIMTable rowKey="id" :column="columns" :tableData="form.productData" height="auto"> <template #ticketsNumRef="{ row }"> - <el-input-number - v-model="row.ticketsNum" - placeholder="璇烽�夋嫨" - :min="0" - :step="0.1" - clearable - style="width: 100%" - @change="invoiceNumBlur(row)" - /> + <el-input-number v-model="row.ticketsNum" placeholder="璇烽�夋嫨" :min="0" :step="0.1" clearable style="width: 100%" + @change="invoiceNumBlur(row)" /> </template> <template #ticketsAmountRef="{ row }"> - <el-input-number - v-model="row.ticketsAmount" - placeholder="璇烽�夋嫨" - :min="0" - :step="0.1" - clearable - style="width: 100%" - @change="invoiceAmountBlur(row)" - /> + <el-input-number v-model="row.ticketsAmount" placeholder="璇烽�夋嫨" :min="0" :step="0.1" clearable + style="width: 100%" @change="invoiceAmountBlur(row)" /> </template> </PIMTable> </el-form> @@ -412,6 +336,8 @@ if (code == 200) { closeModal(); } + } else { + modalLoading.value = false; } }); }; diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue index 194b86c..9f2d1fb 100644 --- a/src/views/salesManagement/invoiceLedger/index.vue +++ b/src/views/salesManagement/invoiceLedger/index.vue @@ -3,40 +3,17 @@ <div class="search_form"> <el-form :inline="true" :model="searchForm"> <el-form-item label="瀹㈡埛鍚嶇О/鍚堝悓鍙�"> - <el-input - v-model="searchForm.searchText" - style="width: 240px" - placeholder="杈撳叆瀹㈡埛鍚嶇О/鍚堝悓鍙锋悳绱�" - @change="handleQuery" - clearable - :prefix-icon="Search" - /> + <el-input v-model="searchForm.searchText" style="width: 240px" placeholder="杈撳叆瀹㈡埛鍚嶇О/鍚堝悓鍙锋悳绱�" + @change="handleQuery" clearable :prefix-icon="Search" /> </el-form-item> <el-form-item label="寮�绁ㄦ棩鏈�"> - <el-date-picker - style="width: 240px" - v-model="searchForm.invoiceDate" - value-format="YYYY-MM-DD" - format="YYYY-MM-DD" - type="daterange" - start-placeholder="寮�濮嬫椂闂�" - end-placeholder="缁撴潫鏃堕棿" - clearable - @change="changeDateRange" - @clear="clearRange" - /> + <el-date-picker style="width: 240px" v-model="searchForm.invoiceDate" value-format="YYYY-MM-DD" + format="YYYY-MM-DD" type="daterange" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" clearable + @change="changeDateRange" @clear="clearRange" /> </el-form-item> <el-form-item label="褰曞叆鏃ユ湡"> - <el-date-picker - style="width: 100%" - v-model="searchForm.createTimeStart" - value-format="YYYY-MM-DD HH:mm:ss" - format="YYYY-MM-DD" - type="date" - placeholder="璇烽�夋嫨" - clearable - @change="handleQuery" - /> + <el-date-picker style="width: 100%" v-model="searchForm.createTimeStart" value-format="YYYY-MM-DD HH:mm:ss" + format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable @change="handleQuery" /> </el-form-item> <el-form-item label="涓嶆樉绀烘湁鍙戠エ琛�"> <el-checkbox v-model="searchForm.status" @change="handleQuery" /> @@ -49,143 +26,46 @@ </el-form> </div> <div class="table_list"> - <el-table - :data="tableData" - border - v-loading="tableLoading" - @selection-change="handleSelectionChange" - :row-key="(row) => row.id" - show-summary - :summary-method="summarizeMainTable" - height="calc(100vh - 18.5em)" - > + <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange" + :row-key="(row) => row.id" show-summary :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> <el-table-column align="center" type="selection" width="55" /> <el-table-column align="center" label="搴忓彿" type="index" width="60" /> - <el-table-column - label="閿�鍞悎鍚屽彿" - prop="salesContractNo" - show-overflow-tooltip - width="180" - /> - <el-table-column - label="瀹㈡埛鍚堝悓鍙�" - prop="customerContractNo" - show-overflow-tooltip - width="180" - /> - <el-table-column - label="瀹㈡埛鍚嶇О" - prop="customerName" - show-overflow-tooltip - width="240" - /> + <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" show-overflow-tooltip width="180" /> + <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" show-overflow-tooltip width="180" /> + <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" show-overflow-tooltip width="240" /> <el-table-column label="椤圭洰" prop="projectName" width="150" /> <el-table-column label="浜у搧澶х被" prop="productCategory" /> - <el-table-column - label="瑙勬牸鍨嬪彿" - prop="specificationModel" - width="300" - show-overflow-tooltip - /> - <el-table-column - label="鍙戠エ鍙�" - prop="invoiceNo" - show-overflow-tooltip - /> - <el-table-column - label="鍙戠エ閲戦(鍏�)" - prop="invoiceTotal" - show-overflow-tooltip - :formatter="formattedNumber" - width="120" - /> + <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="300" show-overflow-tooltip /> + <el-table-column label="鍙戠エ鍙�" prop="invoiceNo" show-overflow-tooltip /> + <el-table-column label="鍙戠エ閲戦(鍏�)" prop="invoiceTotal" show-overflow-tooltip :formatter="formattedNumber" + width="120" /> <el-table-column label="绋庣巼(%)" prop="taxRate" show-overflow-tooltip /> - <el-table-column - label="褰曞叆浜�" - prop="invoicePerson" - show-overflow-tooltip - /> - <el-table-column - label="褰曞叆鏃ユ湡" - prop="createTime" - show-overflow-tooltip - :formatter="formatDate" - width="180" - /> - <el-table-column - label="寮�绁ㄦ棩鏈�" - prop="invoiceDate" - show-overflow-tooltip - width="120" - /> - <el-table-column - label="鍙戠エ" - prop="invoiceFileName" - width="120" - align="center" - show-overflow-tooltip - > + <el-table-column label="褰曞叆浜�" prop="invoicePerson" show-overflow-tooltip /> + <el-table-column label="褰曞叆鏃ユ湡" prop="createTime" show-overflow-tooltip :formatter="formatDate" width="180" /> + <el-table-column label="寮�绁ㄦ棩鏈�" prop="invoiceDate" show-overflow-tooltip width="120" /> + <el-table-column label="鍙戠エ" prop="invoiceFileName" width="120" align="center" show-overflow-tooltip> <template #default="scope"> - <el-button - v-if="scope.row.invoiceFileName" - text - bg - type="primary" - @click="handleFile(scope.row.commonFiles)" - > + <el-button v-if="scope.row.invoiceFileName" text bg type="primary" + @click="handleFile(scope.row.commonFiles)"> 鏌ョ湅闄勪欢 </el-button> - <el-button - v-else - link - type="primary" - @click="handleDownload(scope.row)" - > + <el-button v-else link type="primary" @click="handleDownload(scope.row)"> 涓婁紶 </el-button> </template> </el-table-column> <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center"> <template #default="scope"> - <el-button - link - type="primary" - size="small" - @click="openForm(scope.row)" - >缂栬緫</el-button - > - <el-button - link - type="primary" - size="small" - @click="delInvoiceLedger(scope.row)" - >鍒犻櫎</el-button - > + <el-button link type="primary" size="small" @click="openForm(scope.row)">缂栬緫</el-button> + <el-button link type="primary" size="small" @click="delInvoiceLedger(scope.row)">鍒犻櫎</el-button> </template> </el-table-column> </el-table> - <pagination - v-show="total > 0" - :total="total" - layout="total, sizes, prev, pager, next, jumper" - :page="page.current" - :limit="page.size" - @pagination="paginationChange" - /> + <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" + :page="page.current" :limit="page.size" @pagination="paginationChange" /> </div> - <el-dialog - v-model="dialogFormVisible" - title="寮�绁ㄥ彴璐﹂〉闈�" - width="70%" - @close="closeDia" - > - <el-form - :model="form" - label-width="140px" - label-position="top" - :rules="rules" - ref="formRef" - > + <el-dialog v-model="dialogFormVisible" title="寮�绁ㄥ彴璐﹂〉闈�" width="70%" @close="closeDia"> + <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo"> @@ -194,79 +74,41 @@ </el-col> <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О锛�" prop="customerName"> - <el-input - v-model="form.customerName" - placeholder="鑷姩濉厖" - clearable - disabled - /> + <el-input v-model="form.customerName" placeholder="鑷姩濉厖" clearable disabled /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="鍙戠エ鍙凤細" prop="invoiceNo"> - <el-input - v-model="form.invoiceNo" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input v-model="form.invoiceNo" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鍙戠エ閲戦(鍏�)锛�" prop="invoiceTotal"> - <el-input - type="number" - :step="0.01" - v-model="form.invoiceTotal" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input type="number" :step="0.01" v-model="form.invoiceTotal" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="寮�绁ㄤ汉锛�" prop="invoicePerson"> - <el-input - v-model="form.invoicePerson" - placeholder="璇疯緭鍏�" - clearable - disabled - /> + <el-input v-model="form.invoicePerson" placeholder="璇疯緭鍏�" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="寮�绁ㄦ棩鏈燂細" prop="invoiceDate"> - <el-date-picker - style="width: 100%" - v-model="form.invoiceDate" - value-format="YYYY-MM-DD" - format="YYYY-MM-DD" - type="date" - placeholder="璇烽�夋嫨" - clearable - /> + <el-date-picker style="width: 100%" v-model="form.invoiceDate" value-format="YYYY-MM-DD" + format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="闄勪欢鏉愭枡锛�" prop="remark"> - <el-upload - v-model:file-list="fileList" - :action="upload.url" - multiple - ref="fileUpload" - auto-upload - :headers="upload.headers" - accept=".pdf" - :limit="1" - :before-upload="handleBeforeUpload" - :on-error="handleUploadError" - :on-success="handleUploadSuccess" - :on-remove="handleRemove" - > + <el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload + :headers="upload.headers" accept=".pdf" :limit="10" :before-upload="handleBeforeUpload" + :on-error="handleUploadError" :on-success="handleUploadSuccess" :on-remove="handleRemove"> <el-button type="primary">涓婁紶</el-button> <template #tip> <!-- 鏂囦欢鏍煎紡鏀寔 doc锛宒ocx锛寈ls锛寈lsx锛宲pt锛宲ptx锛宲df锛宼xt锛寈ml锛宩pg锛宩peg锛宲ng锛実if锛宐mp锛宺ar锛寊ip锛�7z--> @@ -288,22 +130,10 @@ <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="闄勪欢鏉愭枡锛�" prop="remark"> - <el-upload - v-model:file-list="fileList" - :action="upload.url" - multiple - ref="fileUpload" - auto-upload - :headers="upload.headers" - accept=".pdf" - :limit="1" - style="width: 100%" - :on-exceed="handleExceed" - :before-upload="handleBeforeUpload" - :on-error="handleUploadError" - :on-success="handleUploadSuccess" - :on-remove="handleRemove" - > + <el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload + :headers="upload.headers" accept=".pdf" :limit="10" style="width: 100%" :on-exceed="handleExceed" + :before-upload="handleBeforeUpload" :on-error="handleUploadError" :on-success="handleUploadSuccess" + :on-remove="handleRemove"> <el-button type="primary">涓婁紶</el-button> <template #tip> <div class="el-upload__tip">鏂囦欢鏍煎紡浠呮敮鎸� pdf</div> diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue index 7ed2f28..eb0855d 100644 --- a/src/views/salesManagement/salesLedger/index.vue +++ b/src/views/salesManagement/salesLedger/index.vue @@ -3,51 +3,24 @@ <div class="search_form"> <el-form :model="searchForm" :inline="true"> <el-form-item label="瀹㈡埛鍚嶇О锛�"> - <el-input - v-model="searchForm.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - prefix-icon="Search" - @change="handleQuery" - /> + <el-input v-model="searchForm.customerContractNo" placeholder="璇疯緭鍏�" clearable prefix-icon="Search" + @change="handleQuery" /> </el-form-item> <el-form-item label="瀹㈡埛鍚堝悓鍙凤細"> - <el-input - v-model="searchForm.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - prefix-icon="Search" - @change="handleQuery" - /> + <el-input v-model="searchForm.customerContractNo" placeholder="璇疯緭鍏�" clearable prefix-icon="Search" + @change="handleQuery" /> </el-form-item> <el-form-item label="閿�鍞悎鍚屽彿锛�"> - <el-input - v-model="searchForm.salesContractNo" - placeholder="璇疯緭鍏�" - clearable - prefix-icon="Search" - @change="handleQuery" - /> + <el-input v-model="searchForm.salesContractNo" placeholder="璇疯緭鍏�" clearable prefix-icon="Search" + @change="handleQuery" /> </el-form-item> <el-form-item label="椤圭洰鍚嶇О锛�"> - <el-input - v-model="searchForm.projectName" - placeholder="璇疯緭鍏�" - clearable - prefix-icon="Search" - @change="handleQuery" - /> + <el-input v-model="searchForm.projectName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search" + @change="handleQuery" /> </el-form-item> <el-form-item label="褰曞叆鏃ユ湡锛�"> - <el-date-picker - v-model="searchForm.entryDate" - value-format="YYYY-MM-DD" - format="YYYY-MM-DD" - type="daterange" - placeholder="璇烽�夋嫨" - clearable - @change="changeDaterange" - /> + <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange" + placeholder="璇烽�夋嫨" clearable @change="changeDaterange" /> </el-form-item> <el-form-item> <el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button> @@ -65,177 +38,61 @@ <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> </div> </div> - <el-table - :data="tableData" - border - v-loading="tableLoading" - @selection-change="handleSelectionChange" - :expand-row-keys="expandedRowKeys" - :row-key="(row) => row.id" - show-summary - style="width: 100%" - :summary-method="summarizeMainTable" - @expand-change="expandChange" - height="calc(100vh - 18.5em)" - > + <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange" + :expand-row-keys="expandedRowKeys" :row-key="(row) => row.id" show-summary style="width: 100%" + :summary-method="summarizeMainTable" @expand-change="expandChange" height="calc(100vh - 18.5em)"> <el-table-column align="center" type="selection" width="55" /> <el-table-column type="expand"> <template #default="props"> - <el-table - :data="props.row.children" - border - show-summary - :summary-method="summarizeChildrenTable" - > - <el-table-column - align="center" - label="搴忓彿" - type="index" - width="60" - /> + <el-table :data="props.row.children" border show-summary :summary-method="summarizeChildrenTable"> + <el-table-column align="center" label="搴忓彿" type="index" width="60" /> <el-table-column label="浜у搧澶х被" prop="productCategory" /> <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" /> <el-table-column label="鍗曚綅" prop="unit" /> <el-table-column label="鏁伴噺" prop="quantity" /> <el-table-column label="绋庣巼(%)" prop="taxRate" /> - <el-table-column - label="鍚◣鍗曚环(鍏�)" - prop="taxInclusiveUnitPrice" - :formatter="formattedNumber" - /> - <el-table-column - label="鍚◣鎬讳环(鍏�)" - prop="taxInclusiveTotalPrice" - :formatter="formattedNumber" - /> - <el-table-column - label="涓嶅惈绋庢�讳环(鍏�)" - prop="taxExclusiveTotalPrice" - :formatter="formattedNumber" - /> + <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" /> + <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" /> + <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" /> </el-table> </template> </el-table-column> <el-table-column align="center" label="搴忓彿" type="index" width="60" /> - <el-table-column - label="閿�鍞悎鍚屽彿" - prop="salesContractNo" - width="180" - show-overflow-tooltip - /> - <el-table-column - label="瀹㈡埛鍚堝悓鍙�" - prop="customerContractNo" - width="180" - show-overflow-tooltip - /> - <el-table-column - label="瀹㈡埛鍚嶇О" - prop="customerName" - width="300" - show-overflow-tooltip - /> - <el-table-column - label="涓氬姟鍛�" - prop="salesman" - width="100" - show-overflow-tooltip - /> - <el-table-column - label="椤圭洰鍚嶇О" - prop="projectName" - width="180" - show-overflow-tooltip - /> - <el-table-column - label="浠樻鏂瑰紡" - prop="paymentMethod" - show-overflow-tooltip - /> - <el-table-column - label="鍚堝悓閲戦(鍏�)" - prop="contractAmount" - width="180" - show-overflow-tooltip - :formatter="formattedNumber" - /> - <el-table-column - label="褰曞叆浜�" - prop="entryPersonName" - width="100" - show-overflow-tooltip - /> - <el-table-column - label="褰曞叆鏃ユ湡" - prop="entryDate" - width="120" - show-overflow-tooltip - /> - <el-table-column - label="绛捐鏃ユ湡" - prop="executionDate" - width="120" - show-overflow-tooltip - /> - <el-table-column - fixed="right" - label="鎿嶄綔" - min-width="60" - align="center" - > + <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip /> + <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" width="180" show-overflow-tooltip /> + <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="300" show-overflow-tooltip /> + <el-table-column label="涓氬姟鍛�" prop="salesman" width="100" show-overflow-tooltip /> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" width="180" show-overflow-tooltip /> + <el-table-column label="浠樻鏂瑰紡" prop="paymentMethod" show-overflow-tooltip /> + <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" width="180" show-overflow-tooltip + :formatter="formattedNumber" /> + <el-table-column label="褰曞叆浜�" prop="entryPersonName" width="100" show-overflow-tooltip /> + <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" width="120" show-overflow-tooltip /> + <el-table-column label="绛捐鏃ユ湡" prop="executionDate" width="120" show-overflow-tooltip /> + <el-table-column fixed="right" label="鎿嶄綔" min-width="100" align="center"> <template #default="scope"> - <el-button - link - type="primary" - size="small" - @click="openForm('edit', scope.row)" - >缂栬緫</el-button - > + <el-button link type="primary" size="small" @click="openForm('edit', scope.row)">缂栬緫</el-button> + <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">闄勪欢</el-button> </template> </el-table-column> </el-table> - <pagination - v-show="total > 0" - :total="total" - layout="total, sizes, prev, pager, next, jumper" - :page="page.current" - :limit="page.size" - @pagination="paginationChange" - /> + <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" + :page="page.current" :limit="page.size" @pagination="paginationChange" /> </div> - <el-dialog - v-model="dialogFormVisible" - :title="operationType === 'add' ? '鏂板閿�鍞彴璐﹂〉闈�' : '缂栬緫閿�鍞彴璐﹂〉闈�'" - width="70%" - @close="closeDia" - > - <el-form - :model="form" - label-width="140px" - label-position="top" - :rules="rules" - ref="formRef" - > + <el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '鏂板閿�鍞彴璐﹂〉闈�' : '缂栬緫閿�鍞彴璐﹂〉闈�'" width="70%" + @close="closeDia"> + <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo"> - <el-input - v-model="form.salesContractNo" - placeholder="鑷姩鐢熸垚" - clearable - disabled - /> + <el-input v-model="form.salesContractNo" placeholder="鑷姩鐢熸垚" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="涓氬姟鍛橈細" prop="salesman"> <el-select v-model="form.salesman" placeholder="璇烽�夋嫨" clearable> - <el-option - v-for="item in userList" - :key="item.nickName" - :label="item.nickName" - :value="item.nickName" - /> + <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" + :value="item.nickName" /> </el-select> </el-form-item> </el-col> @@ -243,26 +100,13 @@ <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="瀹㈡埛鍚堝悓鍙凤細" prop="customerContractNo"> - <el-input - v-model="form.customerContractNo" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input v-model="form.customerContractNo" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="瀹㈡埛鍚嶇О锛�" prop="customerId"> - <el-select - v-model="form.customerId" - placeholder="璇烽�夋嫨" - clearable - > - <el-option - v-for="item in customerOption" - :key="item.id" - :label="item.customerName" - :value="item.id" - > + <el-select v-model="form.customerId" placeholder="璇烽�夋嫨" clearable> + <el-option v-for="item in customerOption" :key="item.id" :label="item.customerName" :value="item.id"> {{ item.customerName + "鈥斺��" + item.taxpayerIdentificationNumber }} @@ -274,28 +118,13 @@ <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName"> - <el-input - v-model="form.projectName" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input v-model="form.projectName" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="褰曞叆浜猴細" prop="entryPerson"> - <el-select - v-model="form.entryPerson" - placeholder="璇烽�夋嫨" - clearable - @change="changs" - disabled - > - <el-option - v-for="item in userList" - :key="item.userId" - :label="item.nickName" - :value="item.userId" - /> + <el-select v-model="form.entryPerson" placeholder="璇烽�夋嫨" clearable @change="changs" disabled> + <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" /> </el-select> </el-form-item> </el-col> @@ -303,132 +132,61 @@ <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="褰曞叆鏃ユ湡锛�" prop="entryDate"> - <el-date-picker - style="width: 100%" - v-model="form.entryDate" - value-format="YYYY-MM-DD" - format="YYYY-MM-DD" - type="date" - placeholder="璇烽�夋嫨" - clearable - disabled - /> + <el-date-picker style="width: 100%" v-model="form.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" + type="date" placeholder="璇烽�夋嫨" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="绛捐鏃ユ湡锛�" prop="executionDate"> - <el-date-picker - style="width: 100%" - v-model="form.executionDate" - value-format="YYYY-MM-DD" - format="YYYY-MM-DD" - type="date" - placeholder="璇烽�夋嫨" - clearable - /> + <el-date-picker style="width: 100%" v-model="form.executionDate" value-format="YYYY-MM-DD" + format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="浠樻鏂瑰紡"> - <el-input - v-model="form.paymentMethod" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input v-model="form.paymentMethod" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> </el-row> <el-row> <el-form-item label="浜у搧淇℃伅锛�" prop="entryDate"> - <el-button type="primary" @click="openProductForm('add')" - >娣诲姞</el-button - > - <el-button plain type="danger" @click="deleteProduct" - >鍒犻櫎</el-button - > + <el-button type="primary" @click="openProductForm('add')">娣诲姞</el-button> + <el-button plain type="danger" @click="deleteProduct">鍒犻櫎</el-button> </el-form-item> </el-row> - <el-table - :data="productData" - border - @selection-change="productSelected" - show-summary - :summary-method="summarizeMainTable" - > + <el-table :data="productData" border @selection-change="productSelected" show-summary + :summary-method="summarizeMainTable"> <el-table-column align="center" type="selection" width="55" /> - <el-table-column - align="center" - label="搴忓彿" - type="index" - width="60" - /> + <el-table-column align="center" label="搴忓彿" type="index" width="60" /> <el-table-column label="浜у搧澶х被" prop="productCategory" /> <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" /> <el-table-column label="鍗曚綅" prop="unit" /> <el-table-column label="鏁伴噺" prop="quantity" /> <el-table-column label="绋庣巼(%)" prop="taxRate" /> - <el-table-column - label="鍚◣鍗曚环(鍏�)" - prop="taxInclusiveUnitPrice" - :formatter="formattedNumber" - /> - <el-table-column - label="鍚◣鎬讳环(鍏�)" - prop="taxInclusiveTotalPrice" - :formatter="formattedNumber" - /> - <el-table-column - label="涓嶅惈绋庢�讳环(鍏�)" - prop="taxExclusiveTotalPrice" - :formatter="formattedNumber" - /> - <el-table-column - fixed="right" - label="鎿嶄綔" - min-width="60" - align="center" - > + <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" /> + <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" /> + <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" /> + <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center"> <template #default="scope"> - <el-button - link - type="primary" - size="small" - @click="openProductForm('edit', scope.row)" - >缂栬緫</el-button - > + <el-button link type="primary" size="small" @click="openProductForm('edit', scope.row)">缂栬緫</el-button> </template> </el-table-column> </el-table> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="澶囨敞路锛�" prop="remark"> - <el-input - v-model="form.remark" - placeholder="璇疯緭鍏�" - clearable - type="textarea" - :rows="2" - /> + <el-input v-model="form.remark" placeholder="璇疯緭鍏�" clearable type="textarea" :rows="2" /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="闄勪欢鏉愭枡锛�" prop="remark"> - <el-upload - v-model:file-list="fileList" - :action="upload.url" - multiple - ref="fileUpload" - auto-upload - :headers="upload.headers" - :before-upload="handleBeforeUpload" - :on-error="handleUploadError" - :on-success="handleUploadSuccess" - :on-remove="handleRemove" - > + <el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload + :headers="upload.headers" :before-upload="handleBeforeUpload" :on-error="handleUploadError" + :on-success="handleUploadSuccess" :on-remove="handleRemove"> <el-button type="primary">涓婁紶</el-button> <template #tip> <div class="el-upload__tip"> @@ -448,53 +206,25 @@ </div> </template> </el-dialog> - <el-dialog - v-model="productFormVisible" - :title="productOperationType === 'add' ? '鏂板浜у搧' : '缂栬緫浜у搧'" - width="40%" - @close="closeProductDia" - > - <el-form - :model="productForm" - label-width="140px" - label-position="top" - :rules="productRules" - ref="productFormRef" - > + <el-dialog v-model="productFormVisible" :title="productOperationType === 'add' ? '鏂板浜у搧' : '缂栬緫浜у搧'" width="40%" + @close="closeProductDia"> + <el-form :model="productForm" label-width="140px" label-position="top" :rules="productRules" ref="productFormRef"> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="浜у搧澶х被锛�" prop="productCategory"> <!-- <el-select v-model="productForm.productCategory" placeholder="璇烽�夋嫨" clearable> <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/> </el-select> --> - <el-tree-select - v-model="productForm.productCategory" - placeholder="璇烽�夋嫨" - clearable - check-strictly - @change="getModels" - :data="productOptions" - :render-after-expand="false" - style="width: 100%" - /> + <el-tree-select v-model="productForm.productCategory" placeholder="璇烽�夋嫨" clearable check-strictly + @change="getModels" :data="productOptions" :render-after-expand="false" style="width: 100%" /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId"> - <el-select - v-model="productForm.productModelId" - placeholder="璇烽�夋嫨" - clearable - @change="getProductModel" - > - <el-option - v-for="item in modelOptions" - :key="item.id" - :label="item.model" - :value="item.id" - /> + <el-select v-model="productForm.productModelId" placeholder="璇烽�夋嫨" clearable @change="getProductModel"> + <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" /> </el-select> </el-form-item> </el-col> @@ -502,46 +232,25 @@ <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="鍗曚綅锛�" prop="unit"> - <el-input - v-model="productForm.unit" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input v-model="productForm.unit" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺锛�" prop="quantity"> - <el-input - type="number" - :step="0.1" - :min="0" - v-model="productForm.quantity" - placeholder="璇疯緭鍏�" - clearable - @change="mathNum" - /> + <el-input type="number" :step="0.1" :min="0" v-model="productForm.quantity" placeholder="璇疯緭鍏�" clearable + @change="mathNum" /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="鍚◣鍗曚环(鍏�)锛�" prop="taxInclusiveUnitPrice"> - <el-input - v-model="productForm.taxInclusiveUnitPrice" - placeholder="璇疯緭鍏�" - clearable - @change="mathNum" - /> + <el-input v-model="productForm.taxInclusiveUnitPrice" placeholder="璇疯緭鍏�" clearable @change="mathNum" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="绋庣巼(%)锛�" prop="taxRate"> - <el-select - v-model="productForm.taxRate" - placeholder="璇烽�夋嫨" - clearable - @change="mathNum" - > + <el-select v-model="productForm.taxRate" placeholder="璇烽�夋嫨" clearable @change="mathNum"> <el-option label="1" value="1" /> <el-option label="6" value="6" /> <el-option label="13" value="13" /> @@ -552,36 +261,19 @@ <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="鍚◣鎬讳环(鍏�)锛�" prop="taxInclusiveTotalPrice"> - <el-input - v-model="productForm.taxInclusiveTotalPrice" - placeholder="璇疯緭鍏�" - clearable - disabled - /> + <el-input v-model="productForm.taxInclusiveTotalPrice" placeholder="璇疯緭鍏�" clearable disabled /> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item - label="涓嶅惈绋庢�讳环(鍏�)锛�" - prop="taxExclusiveTotalPrice" - > - <el-input - v-model="productForm.taxExclusiveTotalPrice" - placeholder="璇疯緭鍏�" - clearable - disabled - /> + <el-form-item label="涓嶅惈绋庢�讳环(鍏�)锛�" prop="taxExclusiveTotalPrice"> + <el-input v-model="productForm.taxExclusiveTotalPrice" placeholder="璇疯緭鍏�" clearable disabled /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="鍙戠エ绫诲瀷锛�" prop="invoiceType"> - <el-select - v-model="productForm.invoiceType" - placeholder="璇烽�夋嫨" - clearable - > + <el-select v-model="productForm.invoiceType" placeholder="璇烽�夋嫨" clearable> <el-option label="澧炴櫘绁�" value="澧炴櫘绁�" /> <el-option label="澧炰笓绁�" value="澧炰笓绁�" /> </el-select> @@ -1112,6 +804,14 @@ ); } }; +/** + * 涓嬭浇鏂囦欢 + * + * @param row 涓嬭浇鏂囦欢鐨勭浉鍏充俊鎭璞� + */ +const downLoadFile = (row) => { + console.log('row', row) +} getList(); </script> @@ -1119,9 +819,11 @@ .ml-10 { margin-left: 10px; } + .table_list { margin-top: unset; } + .actions { display: flex; justify-content: space-between; -- Gitblit v1.9.3