From ecd0f2e9e7e11387f69afd4cfb2baa91742d1920 Mon Sep 17 00:00:00 2001 From: hongchao <3228015117@qq.com> Date: Wed, 18 Dec 2024 10:34:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/cart/index.vue | 109 ++++++-- src/views/user/contract-manage/index.vue | 238 ++++++++++++++---- .../components/order-home.vue | 116 ++++++--- 3 files changed, 367 insertions(+), 96 deletions(-) diff --git a/src/views/cart/index.vue b/src/views/cart/index.vue index 763318e..173bbf0 100644 --- a/src/views/cart/index.vue +++ b/src/views/cart/index.vue @@ -609,6 +609,74 @@ const onCartSubmit = async () => { const wordUrl = ref('') const settleWordTitle = ref('') const dialogFormVisibleSettleWord: any = ref(false) +//租赁服务合同 +// const handleViewWord = async (index: any) => { +// // 组装参数 +// const { companyName, companyId } = cardList.value[index].companyPersonPhoneKey +// let cost = 0 +// let detailsList: any = [] + +// const isSelect = cardList.value[index].devInfoVoList.some((e: any) => e.isChecked == true) + +// if (!isSelect) { +// ElMessage({ +// showClose: false, +// message: '请勾选装备...', +// type: 'error', +// }) +// return +// } + +// cardList.value[index].devInfoVoList.map((e: any) => { +// if (e.isChecked) { +// detailsList.push({ +// rentBeginTime: e.rentBeginTime, +// rentEndTime: e.rentEndTime, +// manageType: e.manageType, +// days: e.days, +// num: e.num, +// costs: e.num * e.days * e.dayLeasePrice, +// deviceName: e.deviceName, +// dayLeasePrice: e.dayLeasePrice, +// }) +// cost = cost + e.num * e.days * e.dayLeasePrice +// } +// }) +// const queryParams = { +// companyName: localStorage.getItem('currentCompanyName'), +// czcompanyName: companyName, +// companyId, +// cost, +// detailsList, +// } + +// console.log('查询参数', queryParams) +// const res: any = await getBookCarAgreementApi(queryParams) + +// bookCarAgreement.value = res.msg +// dialogFormVisibleSettleWord.value = true + +// // settleWordTitle.value = '租赁服务合同' +// // // const orderId = row.orderId +// // // const res: any = await getContractDetailApi({ orderId }) +// // // 打开租赁服务合同弹框 +// // wordUrl.value = 'http://127.0.0.1:29300/statics/2024/12/16/test_20241216154423A003.docx' +// // dialogFormVisibleSettleWord.value = true +// // setTimeout(() => { +// // const myDocxPreviewer = jsPreviewDocx.init(document.getElementById('mmm')) +// // //传递要预览的文件地址即可 +// // myDocxPreviewer +// // .preview(wordUrl.value) +// // .then((res) => { +// // console.log('预览完成') +// // }) +// // .catch((e) => { +// // console.log('1111', wordUrl.value) +// // console.log('预览失败', e) +// // }) +// // }, 1000) +// } + //租赁服务合同 const handleViewWord = async (index: any) => { // 组装参数 @@ -653,28 +721,25 @@ const handleViewWord = async (index: any) => { console.log('查询参数', queryParams) const res: any = await getBookCarAgreementApi(queryParams) - bookCarAgreement.value = res.msg + wordUrl.value = res.data.url dialogFormVisibleSettleWord.value = true - // settleWordTitle.value = '租赁服务合同' - // // const orderId = row.orderId - // // const res: any = await getContractDetailApi({ orderId }) - // // 打开租赁服务合同弹框 - // wordUrl.value = 'http://127.0.0.1:29300/statics/2024/12/16/test_20241216154423A003.docx' - // dialogFormVisibleSettleWord.value = true - // setTimeout(() => { - // const myDocxPreviewer = jsPreviewDocx.init(document.getElementById('mmm')) - // //传递要预览的文件地址即可 - // myDocxPreviewer - // .preview(wordUrl.value) - // .then((res) => { - // console.log('预览完成') - // }) - // .catch((e) => { - // console.log('1111', wordUrl.value) - // console.log('预览失败', e) - // }) - // }, 1000) + settleWordTitle.value = '租赁服务合同' + setTimeout(() => { + const myDocxPreviewer = jsPreviewDocx.init(document.getElementById("mmm")); + //传递要预览的文件地址即可 + myDocxPreviewer + .preview( + wordUrl.value + ) + .then((res) => { + console.log("预览完成"); + }) + .catch((e) => { + console.log('1111', wordUrl.value) + console.log("预览失败", e); + }); + }, 1000); } // 获取收货地址 @@ -825,4 +890,8 @@ getReceiptGoodsAddress() .address-item:hover { background-color: #c9e7e5; } +#mmm { + width: 100%; + height: 500px; +} diff --git a/src/views/user/contract-manage/index.vue b/src/views/user/contract-manage/index.vue index 2f3491b..3c9717e 100644 --- a/src/views/user/contract-manage/index.vue +++ b/src/views/user/contract-manage/index.vue @@ -92,7 +92,7 @@ > - + @@ -124,7 +124,7 @@ /> - - + --> - - - - + @@ -240,7 +233,88 @@ - + --> + + + + + + + + + + + + + + 支持格式:word.单个文件大小不能超过2M,最多可上传1张 + + + + + + +
+ + + +
+
+
+
+
+ +
@@ -298,11 +372,19 @@ const queryParams: any = reactive({ pageNum: 1, }) +// const addAndEditForm = ref({ +// id: '', +// contractName: '', +// content: '', +// contentId: '', +// }) + const addAndEditForm = ref({ id: '', contractName: '', - content: '', - contentId: '', + fileInfoList: [], + fileInfoTempList: [], + bmFileInfoList: [], }) // 获取列表 @@ -357,20 +439,26 @@ const dialogVisibleSettlein: any = ref(false) const dialogVisibleSettleinEdit: any = ref(false) const contractList: any = ref([]) // 合同新增 -const addContract = async () => { - settleinTitle.value = '合同新建' - contractList.value = [] - const res: any = await getContractSelectList() - if (res.data.length > 0) { - res.data.forEach((item: any) => { - contractList.value.push({ - id: item.id, - templateName: item.templateName, - content: item.content, - }) - }) - } - dialogVisibleSettlein.value = true +// const addContract = async () => { +// settleinTitle.value = '合同新建' +// contractList.value = [] +// const res: any = await getContractSelectList() +// if (res.data.length > 0) { +// res.data.forEach((item: any) => { +// contractList.value.push({ +// id: item.id, +// templateName: item.templateName, +// content: item.content, +// }) +// }) +// } +// dialogVisibleSettlein.value = true +// } + +// 合同新增 +const addContract = () => { + settleinTitle.value = '合同新建' + dialogVisibleSettlein.value = true; } const handleSelectChange = (selectedId: number) => { @@ -384,16 +472,25 @@ const handleSelectChange = (selectedId: number) => { console.log('2222', selectedContract) addAndEditForm.value.content = selectedContract } +// // 合同编辑 +// const onContract = (row: any) => { +// console.log(row, '详情') +// addAndEditForm.value.id = row.id +// addAndEditForm.value.contractName = row.contractName +// // modelValue.value = row.content +// addAndEditForm.value.content = row.content +// console.log('2222', addAndEditForm.value.content) +// settleinTitle.value = '合同修改' +// dialogVisibleSettleinEdit.value = true +// } + // 合同编辑 const onContract = (row: any) => { - console.log(row, '详情') addAndEditForm.value.id = row.id addAndEditForm.value.contractName = row.contractName - // modelValue.value = row.content - addAndEditForm.value.content = row.content - console.log('2222', addAndEditForm.value.content) + console.log('2222',addAndEditForm.value.contractName) settleinTitle.value = '合同修改' - dialogVisibleSettleinEdit.value = true + dialogVisibleSettlein.value = true } const onDialogClose = () => { @@ -407,34 +504,89 @@ const onDialogClose = () => { const onDialogClose_2 = () => {} +// const addAndEditFormRules = reactive({ +// contractName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }], +// contentId: [{ required: true, message: '请选择合同模板', trigger: 'blur' }], +// }) + +// 自定义事件 +const onFileChange = (fileList: any) => { + addAndEditForm.value.fileInfoTempList = [] + const fileListTemp = fileList.map((e: any) => { + return { + fileName: e.name, + fileUrl: e.url, + } + }) + + addAndEditForm.value.fileInfoTempList.push(...fileListTemp) +} + const addAndEditFormRules = reactive({ contractName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }], - contentId: [{ required: true, message: '请选择合同模板', trigger: 'blur' }], + fileInfoList: [{ required: true, message: '请上传合同附件', trigger: 'blur' }], }) // 提交 +// const onSubmit = () => { +// addAndEditFormRef.value.validate(async (valid: any) => { +// if (valid) { +// addAndEditForm.value.content = addAndEditForm.value.content.replace(/ /gi, '\xa0') +// addAndEditForm.value.content = addAndEditForm.value.content.replace(/\$/g, '$') + +// addAndEditForm.value.content = encodeURIComponent(addAndEditForm.value.content) +// const SEN_API = settleinTitle.value === '合同修改' ? editContractApi : addContractApi +// const res: any = await SEN_API(addAndEditForm.value) +// if (res.code === 200) { +// ElMessage({ +// type: 'success', +// message: '提交成功', +// }) +// // dialogVisibleSettlein.value = false +// dialogVisibleSettleinEdit.value = false +// getContractListData() +// } +// } +// }) +// } + + const onSubmit = () => { + addAndEditForm.value.fileInfoList = addAndEditForm.value.fileInfoTempList addAndEditFormRef.value.validate(async (valid: any) => { if (valid) { - addAndEditForm.value.content = addAndEditForm.value.content.replace(/ /gi, '\xa0') - addAndEditForm.value.content = addAndEditForm.value.content.replace(/\$/g, '$') - - addAndEditForm.value.content = encodeURIComponent(addAndEditForm.value.content) const SEN_API = settleinTitle.value === '合同修改' ? editContractApi : addContractApi + addAndEditForm.value.bmFileInfoList = addAndEditForm.value.fileInfoList const res: any = await SEN_API(addAndEditForm.value) if (res.code === 200) { ElMessage({ type: 'success', message: '提交成功', }) - // dialogVisibleSettlein.value = false - dialogVisibleSettleinEdit.value = false + dialogVisibleSettlein.value = false getContractListData() } } }) } +// 删除 +// const onDelete = async (id: any) => { +// const res: any = await delContractApi({ id }) +// if (res.code === 200) { +// ElMessage({ +// type: 'success', +// message: '删除成功', +// }) +// getContractListData() +// } +// } + +// 取消按钮 +// const onCancel = () => { +// dialogVisibleSettlein.value = false +// } + // 删除 const onDelete = async (id: any) => { const res: any = await delContractApi({ id }) @@ -447,11 +599,13 @@ const onDelete = async (id: any) => { } } + // 取消按钮 const onCancel = () => { dialogVisibleSettlein.value = false } + const myQuillEditor = ref() // 样式部分 diff --git a/src/views/user/orderManagementCz/components/order-home.vue b/src/views/user/orderManagementCz/components/order-home.vue index a04a069..d247930 100644 --- a/src/views/user/orderManagementCz/components/order-home.vue +++ b/src/views/user/orderManagementCz/components/order-home.vue @@ -617,39 +617,72 @@ const handleViewRepair = (item: any) => { const settleWordTitle = ref('') const dialogFormVisibleSettleWord: any = ref(false) //租赁协议 -const handleViewWord = async (index: Number, row: any) => { +// const handleViewWord = async (index: Number, row: any) => { +// settleWordTitle.value = '租赁协议' +// // moneyParams1.value = { +// // /* 设备状态 */ +// // maStatus: 15, +// // detectionList: [], +// // insureList: [], +// // picList: [], +// // } +// // const orderId = row.orderId +// const res: any = await getContractDetailApi({ orderId: row.orderId }) +// leaseAgreement.value = res.msg +// // console.log(res, '租赁协议') +// // leaseAgreement.value = res. +// // cardList.value = res.rows +// // 打开租赁协议弹框 +// dialogFormVisibleSettleWord.value = true + +// // wordUrl.value = res.data.url +// // dialogFormVisibleSettleWord.value = true +// // setTimeout(() => { +// // const myDocxPreviewer = jsPreviewDocx.init(document.getElementById('mmm')) +// // //传递要预览的文件地址即可 +// // myDocxPreviewer +// // .preview(wordUrl.value) +// // .then((res) => { +// // console.log('预览完成') +// // }) +// // .catch((e) => { +// // console.log('1111', wordUrl.value) +// // console.log('预览失败', e) +// // }) +// // }, 1000) +// } + +//租赁协议 +const handleViewWord = async(index: Number, row: any) => { settleWordTitle.value = '租赁协议' - // moneyParams1.value = { - // /* 设备状态 */ - // maStatus: 15, - // detectionList: [], - // insureList: [], - // picList: [], - // } - // const orderId = row.orderId - const res: any = await getContractDetailApi({ orderId: row.orderId }) - leaseAgreement.value = res.msg - // console.log(res, '租赁协议') - // leaseAgreement.value = res. + moneyParams1.value = { + /* 设备状态 */ + maStatus: 15, + detectionList: [], + insureList: [], + picList: [], + } + const orderId = row.orderId + const res: any = await getContractDetailApi({ orderId }) // cardList.value = res.rows // 打开租赁协议弹框 + wordUrl.value = res.data.url dialogFormVisibleSettleWord.value = true - - // wordUrl.value = res.data.url - // dialogFormVisibleSettleWord.value = true - // setTimeout(() => { - // const myDocxPreviewer = jsPreviewDocx.init(document.getElementById('mmm')) - // //传递要预览的文件地址即可 - // myDocxPreviewer - // .preview(wordUrl.value) - // .then((res) => { - // console.log('预览完成') - // }) - // .catch((e) => { - // console.log('1111', wordUrl.value) - // console.log('预览失败', e) - // }) - // }, 1000) + setTimeout(() => { + const myDocxPreviewer = jsPreviewDocx.init(document.getElementById("mmm")); + //传递要预览的文件地址即可 + myDocxPreviewer + .preview( + wordUrl.value + ) + .then((res) => { + console.log("预览完成"); + }) + .catch((e) => { + console.log('1111', wordUrl.value) + console.log("预览失败", e); + }); + }, 1000); } const contract = ref({ @@ -1881,6 +1914,26 @@ const wordUrl = ref('') + + - - - - -