From 77f32b6d96237dc874ca81c0ecab1a21500cc5ab Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 21 三月 2025 16:31:00 +0800 Subject: [PATCH] feat: init --- src/views/Home/Home.vue | 234 +++++++++++++++++++++++++-------------------------------- 1 files changed, 103 insertions(+), 131 deletions(-) diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue index 3111cb1..6f780af 100644 --- a/src/views/Home/Home.vue +++ b/src/views/Home/Home.vue @@ -37,7 +37,7 @@ <SearchInput v-model="extraParamState.keyword" style="width: 260px" - placeholder="濮撳悕/韬唤璇�/鍗曚綅/淇濆崟鍙风瓑" + placeholder="鍗曚綅/淇濆崟鍙�/鍙備繚鏈烘瀯" @on-click-search="getList" > </SearchInput> @@ -53,39 +53,22 @@ >妯℃澘涓嬭浇</el-button > - <BlFileUpload - :limitFileSize="10" - accept="xls,xlsx" - :showTip="false" - :show-file-list="false" - :on-success="handleUploadSuccess" + <el-button @click="handleUpload()" icon="Upload" type="primary" style="margin-right: 10px" + >瀵煎叆</el-button > - <template #default> - <el-button icon="Plus" type="primary">瀵煎叆</el-button> - </template> - </BlFileUpload> - <el-button - @click="handleEnterpriseBatchRefund()" - type="primary" - style="margin-right: 10px" - >鎵归噺鍑忓憳</el-button + <el-button @click="downloadInsureOrder()" type="primary" icon="Download" link + >瀵煎嚭淇濆崟鍒楄〃</el-button > - <el-button - @click="handleExport()" - icon="Download" - type="primary" - style="margin-left: 10px" - >瀵煎嚭</el-button + <el-button @click="downloadInsurePerson()" icon="Download" type="primary" link + >瀵煎嚭鍦ㄤ繚浜哄憳</el-button > </template> </ProTableQueryFilterBar> <ProTableV2 v-bind="proTableProps" - :columns="HomeColumns" + :columns="columns" :operationBtns="operationBtns" - :show-column-check="true" - :column-selectable="columnSelectable" ref="proTable" :table-props="{ rowStyle: handleRowStyle, @@ -94,11 +77,8 @@ > </ProTableV2> </AppContainer> - <UploadMaterialDialog - v-bind="dialogProps" - @onAddUpdateMaterial="getList(paginationState.pageIndex)" - /> - <BatchDownsizingDialog v-bind="dialogBatchDownsizingProps" /> + <UploadInsurePersonDialog v-bind="dialogProps" /> + <UploadStampFileDialog v-bind="dialogStampFileProps" /> </LoadingLayout> </template> @@ -121,9 +101,9 @@ } from '@bole-core/components'; import * as insuranceOrderServices from '@/services/api/InsuranceOrder'; import { Message, OrderInputType, downloadFileByUrl } from '@bole-core/core'; -import { HomeColumns } from './constants'; -import UploadMaterialDialog from './components/UploadMaterialDialog.vue'; -import BatchDownsizingDialog from './components/BatchDownsizingDialog.vue'; +import { columns } from './constants'; +import UploadInsurePersonDialog from './components/UploadInsurePersonDialog.vue'; +import UploadStampFileDialog from './components/UploadStampFileDialog.vue'; import { toThousand, format, downloadFile, setOSSLink } from '@/utils'; import { omit } from 'lodash'; import { ModelValueType } from 'element-plus'; @@ -154,11 +134,40 @@ hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, }, }, + { + data: { + enCode: 'batchBtn', + name: '鎵规敼', + }, + emits: { + onClick: (role) => handleBatch(role), + }, + // extraProps: { + // hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, + // }, + }, + { + data: { + enCode: 'uploadStampFileBtn', + name: '涓婁紶鐩栫珷鏂囦欢', + }, + emits: { + onClick: (role) => handleUploadStampFile(role), + }, + extraProps: { + hide: (row: API.InsuranceOrderListOutput) => !row.orderBillFile, + }, + }, + { + data: { + enCode: 'detailBtn', + name: '璇︽儏', + }, + emits: { + onClick: (role) => handleDetail(role), + }, + }, ]).filter(Boolean); - -const columnSelectable = (row: API.InsuranceOrderListOutput) => { - return row.onJobFlag === '澧炲憳'; -}; const BaseState = { loading: true, @@ -236,60 +245,36 @@ return params; } -const queryClient = useQueryClient(); - -async function handleUploadSuccess(response: UploadUserFile) { - try { - let res = await insuranceOrderServices.importInsuranceOrderData(response.url, { - getResponse: true, - responseType: 'blob', - }); - if (res?.data?.size) { - await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵'); - downloadFile(res.data, `閿欒浜哄憳鍚嶅崟`, 'xlsx'); - // XLSXUtils.exportToXLSX({ - // workbookDataList: res, - // fileName: '閿欒浜哄憳鍚嶅崟', - // workbookHeaderMap: { - // ...omit(Object.fromEntries(HomeColumns.map((x) => [x.enCode, x.name])), [ - // 'channel', - // 'salesmanName', - // 'createTime', - // ]), - // erroMsg: '澶囨敞', - // }, - // }); - } - queryClient.invalidateQueries({ - queryKey: ['insuranceOrderServices/getInsuranceOrderListByOrderRelevance'], - }); - getList(); - } catch (error) {} -} - -const { dialogProps, handleAdd } = useFormDialog({ +const { dialogProps, handleAdd, editForm } = useFormDialog({ + onConfirm: uploadInsurePerson, defaultFormParams: { - id: '', - materialName: '', + orderNo: '', url: [] as UploadUserFile[], }, }); -function openDialog(row: API.InsuranceOrderListOutput) { +function handleUpload() { handleAdd({ - id: row.id, + orderNo: '', + url: [] as UploadUserFile[], }); } -const router = useRouter(); -function goDetail(row: API.InsuranceOrderListOutput) { - router.push({ - name: 'InsuranceClaimDetail', - params: { - id: row.id, - }, - }); +async function uploadInsurePerson() { + try { + let params = { + orderNo: editForm.orderNo, + url: editForm.url?.[0]?.path, + }; + // let res = await insuranceOrderServices.uploadStampFile(params); + // if (res) { + // Message.successMessage('涓婁紶鎴愬姛'); + // getList(paginationState.pageIndex); + // } + } catch (error) {} } + +const router = useRouter(); async function handleExport() { try { @@ -323,72 +308,59 @@ } } -const proTable = ref<InstanceType<typeof ProTableV2>>(); -function handleEnterpriseBatchRefund() { - if (proTableProps.value.tableData.length) { - const res: API.InsuranceOrderListOutput[] = proTable.value.innerTableRef.getSelectionRows(); - if (res.length > 0) { - const orderNos = _.uniq(res.map((x) => x.orderNo)); - if (orderNos.length > 1) { - Message.errorMessage('瀛樺湪涓嶅悓鐨勪繚鍗曞彿锛屾棤娉曟壒閲忓噺鍛�'); - return; - } - handleBatchDownsizing(res); - } else { - Message.errorMessage('璇峰厛鍕鹃�夊噺鍛樹汉鍛�'); - } - } else { - Message.errorMessage('鏆傛棤鏁版嵁'); - } -} - const { - dialogProps: dialogBatchDownsizingProps, - handleAdd: handleBatchDownsizingAdd, - editForm: batchDownsizingForm, + dialogProps: dialogStampFileProps, + handleEdit: handleStampFileEdit, + editForm: stampFileForm, } = useFormDialog({ - onConfirm: downsizingInsuranceOrderData, + onConfirm: uploadStampFile, defaultFormParams: { - orderNo: '', - checkOrderNo: '', + id: '', url: [] as UploadUserFile[], - downsizingInsuranceList: [] as string[], }, }); -function handleBatchDownsizing(res: API.InsuranceOrderListOutput[]) { - handleBatchDownsizingAdd({ - checkOrderNo: res[0]?.orderNo, - downsizingInsuranceList: res.map((x) => x.id), +function handleUploadStampFile(row: API.InsuranceOrderListOutput) { + handleStampFileEdit({ + id: row.id, + url: [] as UploadUserFile[], }); } -async function downsizingInsuranceOrderData() { +async function uploadStampFile() { try { - let params: API.DownsizingInsuranceOrderData = { - orderNo: batchDownsizingForm.checkOrderNo, - downsizingInsuranceList: batchDownsizingForm.downsizingInsuranceList, - url: batchDownsizingForm.url?.[0]?.path ?? '', + let params = { + id: stampFileForm.id, + url: stampFileForm.url?.[0]?.path, }; - let res = await insuranceOrderServices.downsizingInsuranceOrderDataCheck(params); - if (res) { - let downRes = await insuranceOrderServices.downsizingInsuranceOrderData(params, { - getResponse: true, - responseType: 'blob', - }); - if (downRes?.data?.size) { - await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵'); - downloadFile(downRes.data, `閿欒浜哄憳鍚嶅崟`, 'xlsx'); - } - queryClient.invalidateQueries({ - queryKey: ['insuranceOrderServices/getInsuranceOrderListByOrderRelevance'], - }); - getList(paginationState.pageIndex); - } + // let res = await insuranceOrderServices.uploadStampFile(params); + // if (res) { + // Message.successMessage('涓婁紶鎴愬姛'); + // getList(paginationState.pageIndex); + // } } catch (error) {} } function handleDownloadOrderNo(row: API.InsuranceOrderListOutput) { downloadFileByUrl(setOSSLink(row.orderBillFile)); } + +function handleDetail(row: API.InsuranceOrderListOutput) { + router.push({ + name: 'InsuranceOrderDetail', + params: { + id: row.id, + }, + }); +} +function handleBatch(row: API.InsuranceOrderListOutput) { + router.push({ + name: 'BatchChange', + params: { + id: row.id, + }, + }); +} +function downloadInsureOrder() {} +function downloadInsurePerson() {} </script> -- Gitblit v1.9.1