新增合同打印功能
This commit is contained in:
parent
63f406d6ac
commit
8b35e40094
@ -62,15 +62,16 @@
|
|||||||
"url": "^0.11.3",
|
"url": "^0.11.3",
|
||||||
"video.js": "^7.21.5",
|
"video.js": "^7.21.5",
|
||||||
"vue": "3.4.21",
|
"vue": "3.4.21",
|
||||||
|
"vue-baidu-map-3x": "^1.0.34",
|
||||||
"vue-dompurify-html": "^4.1.4",
|
"vue-dompurify-html": "^4.1.4",
|
||||||
"vue-i18n": "9.10.2",
|
"vue-i18n": "9.10.2",
|
||||||
"vue-router": "^4.3.0",
|
"vue-router": "^4.3.0",
|
||||||
"vue-types": "^5.1.1",
|
"vue-types": "^5.1.1",
|
||||||
|
"vue-ueditor-wrap": "^3.0.8",
|
||||||
|
"vue3-print-nb": "^0.1.4",
|
||||||
"vuedraggable": "^4.1.0",
|
"vuedraggable": "^4.1.0",
|
||||||
"web-storage-cache": "^1.1.1",
|
"web-storage-cache": "^1.1.1",
|
||||||
"xml-js": "^1.6.11",
|
"xml-js": "^1.6.11"
|
||||||
"vue-ueditor-wrap": "^3.0.8",
|
|
||||||
"vue-baidu-map-3x": "^1.0.34"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^19.0.1",
|
"@commitlint/cli": "^19.0.1",
|
||||||
@ -85,8 +86,8 @@
|
|||||||
"@types/qs": "^6.9.12",
|
"@types/qs": "^6.9.12",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
||||||
"@typescript-eslint/parser": "^7.1.0",
|
"@typescript-eslint/parser": "^7.1.0",
|
||||||
"@unocss/transformer-variant-group": "^0.58.5",
|
|
||||||
"@unocss/eslint-config": "^0.57.4",
|
"@unocss/eslint-config": "^0.57.4",
|
||||||
|
"@unocss/transformer-variant-group": "^0.58.5",
|
||||||
"@vitejs/plugin-legacy": "^5.3.1",
|
"@vitejs/plugin-legacy": "^5.3.1",
|
||||||
"@vitejs/plugin-vue": "^5.0.4",
|
"@vitejs/plugin-vue": "^5.0.4",
|
||||||
"@vitejs/plugin-vue-jsx": "^3.1.0",
|
"@vitejs/plugin-vue-jsx": "^3.1.0",
|
||||||
|
@ -134,6 +134,9 @@ dependencies:
|
|||||||
vue-ueditor-wrap:
|
vue-ueditor-wrap:
|
||||||
specifier: ^3.0.8
|
specifier: ^3.0.8
|
||||||
version: 3.0.8(vue@3.4.21)
|
version: 3.0.8(vue@3.4.21)
|
||||||
|
vue3-print-nb:
|
||||||
|
specifier: ^0.1.4
|
||||||
|
version: 0.1.4(typescript@5.3.3)
|
||||||
vuedraggable:
|
vuedraggable:
|
||||||
specifier: ^4.1.0
|
specifier: ^4.1.0
|
||||||
version: 4.1.0(vue@3.4.21)
|
version: 4.1.0(vue@3.4.21)
|
||||||
@ -9412,6 +9415,14 @@ packages:
|
|||||||
vue: 3.4.21(typescript@5.3.3)
|
vue: 3.4.21(typescript@5.3.3)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/vue3-print-nb@0.1.4(typescript@5.3.3):
|
||||||
|
resolution: {integrity: sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==}
|
||||||
|
dependencies:
|
||||||
|
vue: 3.4.21(typescript@5.3.3)
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- typescript
|
||||||
|
dev: false
|
||||||
|
|
||||||
/vue@3.4.21(typescript@5.3.3):
|
/vue@3.4.21(typescript@5.3.3):
|
||||||
resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
|
resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -43,10 +43,13 @@ import VueUeditorWrap from 'vue-ueditor-wrap'
|
|||||||
|
|
||||||
import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患
|
import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患
|
||||||
|
|
||||||
|
import print from 'vue3-print-nb'
|
||||||
|
|
||||||
// 创建实例
|
// 创建实例
|
||||||
const setupAll = async () => {
|
const setupAll = async () => {
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
app.use(VueUeditorWrap)
|
app.use(VueUeditorWrap)
|
||||||
|
app.use(print)
|
||||||
|
|
||||||
await setupI18n(app)
|
await setupI18n(app)
|
||||||
|
|
||||||
|
415
src/views/crm/crmcontract/ContractPrint.vue
Normal file
415
src/views/crm/crmcontract/ContractPrint.vue
Normal file
@ -0,0 +1,415 @@
|
|||||||
|
<template>
|
||||||
|
<Dialog :title="dialogTitle" v-model="dialogVisible" width="800">
|
||||||
|
|
||||||
|
<div id="printMe">
|
||||||
|
<table border="0" cellspacing="10" width="700" >
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="743" valign="center" colspan="8" >
|
||||||
|
<p style="text-align:center;vertical-align:middle;">
|
||||||
|
<b><span style="color:#0070C0;font-size:18pt;">合 同</span></b>
|
||||||
|
<br/>
|
||||||
|
<b><span style="color:#0070C0;font-size:16pt;">{{formData.name}}</span></b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td valign="center" colspan="5" >
|
||||||
|
<p style="vertical-align:middle;">
|
||||||
|
<b> 合同编号:{{formData.number}} </b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td >
|
||||||
|
<p style="vertical-align:middle;">
|
||||||
|
<b>下单日期:</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" >
|
||||||
|
<p style="vertical-align:middle;">
|
||||||
|
<b>{{formatDate(formData.orderTime)}}</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>客户名称</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td valign="center" colspan="3" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
{{formData.customerName}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td valign="center" class="tdborder">
|
||||||
|
<p class="tdtext">
|
||||||
|
<b>联系人</b>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td colspan="3" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="tdborder">
|
||||||
|
<p class="tdtext">
|
||||||
|
<b>项目经理</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td colspan="3" class="tdborder" >
|
||||||
|
<p class="tdtext" >
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>签单人</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td colspan="3" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
{{formData.orderAdminName}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>开始日期</b></p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
{{formatDate(formData.startTime)}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>结束日期</b></p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
{{formatDate(formData.endTime)}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>合同金额</b></p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<b><span style="color:#0070C0;font-size:16pt;">{{formData.money}}</span></b>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>已收款</b></p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
{{formData.returnMoney}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>备注</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td colspan="6" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
{{formData.remark}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td valign="center" :rowspan="rowspan" class="tdborder" >
|
||||||
|
<p >
|
||||||
|
<b>
|
||||||
|
<div style="width: 20px;margin-left: 15px;">购买产品或服务</div>
|
||||||
|
</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder title">
|
||||||
|
|
||||||
|
<b>名称</b>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder title" >
|
||||||
|
<b>数量</b>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder title" >
|
||||||
|
<b>商品属性</b>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder title">
|
||||||
|
<b>单价</b>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder title">
|
||||||
|
<b>小计</b>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder title">
|
||||||
|
<b>备注</b>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<tr v-for="(item,index) in contactsProducts" :key="index">
|
||||||
|
<td class="tdborder" >
|
||||||
|
<p>
|
||||||
|
<b>{{item.name}}</b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td class="tdborder pcontent">
|
||||||
|
{{item.nums}}
|
||||||
|
</td>
|
||||||
|
<td class="tdborder pcontent">
|
||||||
|
{{item.sku}}
|
||||||
|
</td>
|
||||||
|
<td class="tdborder pcontent">
|
||||||
|
¥{{item.price}}
|
||||||
|
</td>
|
||||||
|
<td class="tdborder pcontent">
|
||||||
|
¥{{item.subtotal}}
|
||||||
|
</td>
|
||||||
|
<td class="tdborder pcontent">
|
||||||
|
{{item.remarks}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>产品金额</b></p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<b><span style="">{{totalPrice}}</span></b>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
<b>折扣</b></p>
|
||||||
|
</td>
|
||||||
|
<td colspan="2" class="tdborder">
|
||||||
|
<p class="tdtext" >
|
||||||
|
{{discountPrice}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="4" >
|
||||||
|
<p style="text-align:left;vertical-align:middle;">
|
||||||
|
|
||||||
|
|
||||||
|
<b><span style="font-size:14pt;">甲方</span></b>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<b><span >盖章签名:_____________</span></b>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<b><span >日期:</span></b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td colspan="4" >
|
||||||
|
<p style="text-align:left;vertical-align:middle;">
|
||||||
|
|
||||||
|
|
||||||
|
<b><span style="font-size:14pt;">乙方</span></b>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<b><span >盖章签名:_____________</span></b>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<b><span >日期":</span></b>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button v-print="'#printMe'">打印合同</button>
|
||||||
|
</Dialog>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ContractApi, ContractVO } from '@/api/crm/crmcontract'
|
||||||
|
import { useUserStore } from '@/store/modules/user'
|
||||||
|
import { formatDate } from '@/utils/formatTime'
|
||||||
|
import print from 'vue3-print-nb'
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
directives: {
|
||||||
|
print
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 合同 表单 */
|
||||||
|
defineOptions({ name: 'ContractPrint' })
|
||||||
|
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
||||||
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
|
const dialogTitle = ref('打印') // 弹窗的标题
|
||||||
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||||
|
const formData = ref({
|
||||||
|
id: undefined,
|
||||||
|
customerId: undefined,
|
||||||
|
businessId: undefined,
|
||||||
|
contactsId: undefined,
|
||||||
|
sourceId: undefined,
|
||||||
|
name: undefined,
|
||||||
|
number: undefined,
|
||||||
|
orderTime: undefined,
|
||||||
|
money: undefined,
|
||||||
|
totalPrice: undefined,
|
||||||
|
returnMoney: undefined,
|
||||||
|
discountRate: undefined,
|
||||||
|
checkStatus: undefined,
|
||||||
|
flowId: undefined,
|
||||||
|
stepId: undefined,
|
||||||
|
checkAdminId: undefined,
|
||||||
|
flowAdminId: undefined,
|
||||||
|
startTime: undefined,
|
||||||
|
endTime: undefined,
|
||||||
|
orderAdminId: undefined,
|
||||||
|
remark: undefined,
|
||||||
|
ownerUserId: undefined,
|
||||||
|
nextTime: undefined,
|
||||||
|
expireHandle: undefined,
|
||||||
|
invoiceMoney: undefined
|
||||||
|
})
|
||||||
|
|
||||||
|
const formRef = ref() // 表单 Ref
|
||||||
|
const contactsProducts = ref([])
|
||||||
|
const rowspan = ref(2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** 打开弹窗 */
|
||||||
|
const open = async (data) => {
|
||||||
|
dialogVisible.value = true
|
||||||
|
resetForm()
|
||||||
|
formData.value = data
|
||||||
|
console.log('formData.value :',formData.value )
|
||||||
|
const list = await ContractApi.getContractProductListByContractId(data.id)
|
||||||
|
contactsProducts.value = list
|
||||||
|
rowspan.value = list.length + 1
|
||||||
|
|
||||||
|
}
|
||||||
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
|
|
||||||
|
|
||||||
|
const totalPrice = computed(() => {
|
||||||
|
let money = 0
|
||||||
|
contactsProducts.value.forEach(element => {
|
||||||
|
money = money + element.subtotal
|
||||||
|
})
|
||||||
|
|
||||||
|
return money
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
const discountPrice = computed(() => {
|
||||||
|
let money = 0
|
||||||
|
contactsProducts.value.forEach(element => {
|
||||||
|
money = money + element.discount
|
||||||
|
})
|
||||||
|
|
||||||
|
return money
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
/** 重置表单 */
|
||||||
|
const resetForm = () => {
|
||||||
|
formData.value = {
|
||||||
|
id: undefined,
|
||||||
|
customerId: undefined,
|
||||||
|
businessId: undefined,
|
||||||
|
contactsId: undefined,
|
||||||
|
sourceId: undefined,
|
||||||
|
name: undefined,
|
||||||
|
number: undefined,
|
||||||
|
orderTime: undefined,
|
||||||
|
money: undefined,
|
||||||
|
totalPrice: 0,
|
||||||
|
returnMoney: undefined,
|
||||||
|
discountRate: 0,
|
||||||
|
checkStatus: undefined,
|
||||||
|
flowId: undefined,
|
||||||
|
stepId: undefined,
|
||||||
|
checkAdminId: undefined,
|
||||||
|
flowAdminId: undefined,
|
||||||
|
startTime: Date.parse(new Date()),
|
||||||
|
endTime: undefined,
|
||||||
|
orderAdminId: undefined,
|
||||||
|
remark: undefined,
|
||||||
|
ownerUserId: undefined,
|
||||||
|
nextTime: undefined,
|
||||||
|
expireHandle: undefined,
|
||||||
|
invoiceMoney: undefined
|
||||||
|
}
|
||||||
|
formRef.value?.resetFields()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scope>
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
padding: 10px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0 0 0px;
|
||||||
|
}
|
||||||
|
table{
|
||||||
|
border-spacing: 1px;
|
||||||
|
}
|
||||||
|
.tdborder{
|
||||||
|
border:1px solid #000000;
|
||||||
|
align-items:center;line-height:16px;
|
||||||
|
}
|
||||||
|
.tdtext{
|
||||||
|
text-align:center;
|
||||||
|
vertical-align:middle;
|
||||||
|
}
|
||||||
|
.title{
|
||||||
|
padding: 0px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.pcontent{
|
||||||
|
padding: 0px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
@ -94,13 +94,21 @@
|
|||||||
>
|
>
|
||||||
<Icon icon="ep:plus" class="mr-5px" /> 新增
|
<Icon icon="ep:plus" class="mr-5px" /> 新增
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
@click="openPrint"
|
||||||
|
:disabled = "isDisabled"
|
||||||
|
>
|
||||||
|
<Icon icon="ep:printer" class="mr-5px" /> 打印
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" highlight-current-row @current-change="handleCurrentChange">
|
||||||
<el-table-column label="id" align="center" prop="id" />
|
<el-table-column label="id" align="center" prop="id" />
|
||||||
<el-table-column label="合同编号" align="center" prop="number" width="150">
|
<el-table-column label="合同编号" align="center" prop="number" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -205,6 +213,7 @@
|
|||||||
<ContractForm3 ref="formRef3" />
|
<ContractForm3 ref="formRef3" />
|
||||||
<RecordForm ref="recordFormRef" />
|
<RecordForm ref="recordFormRef" />
|
||||||
<ContractReceivablesForm ref="contractReceivablesFormRef" />
|
<ContractReceivablesForm ref="contractReceivablesFormRef" />
|
||||||
|
<ContractPrint ref="contractPrintRef" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@ -214,6 +223,7 @@ import { ContractApi, ContractVO } from '@/api/crm/crmcontract'
|
|||||||
import ContractForm from './ContractForm.vue'
|
import ContractForm from './ContractForm.vue'
|
||||||
import ContractForm2 from './ContractForm2.vue'
|
import ContractForm2 from './ContractForm2.vue'
|
||||||
import ContractForm3 from './ContractForm3.vue'
|
import ContractForm3 from './ContractForm3.vue'
|
||||||
|
import ContractPrint from './ContractPrint.vue'
|
||||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||||
import RecordForm from '@/views/crm/crmrecord/RecordForm.vue'
|
import RecordForm from '@/views/crm/crmrecord/RecordForm.vue'
|
||||||
import ContractReceivablesForm from '@/views/crm/crmcontractreceivables/ContractReceivablesForm.vue'
|
import ContractReceivablesForm from '@/views/crm/crmcontractreceivables/ContractReceivablesForm.vue'
|
||||||
@ -243,9 +253,12 @@ const queryParams = reactive({
|
|||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
const activeIndex = ref('my')
|
const activeIndex = ref('my')
|
||||||
|
const selectRow = ref({})
|
||||||
|
const isDisabled = ref(true)
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
|
isDisabled.value = true
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await ContractApi.getContractPage(queryParams)
|
const data = await ContractApi.getContractPage(queryParams)
|
||||||
@ -266,6 +279,16 @@ const getList = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleCurrentChange = (val) => {
|
||||||
|
isDisabled.value = false
|
||||||
|
selectRow.value = val
|
||||||
|
}
|
||||||
|
|
||||||
|
const contractPrintRef = ref()
|
||||||
|
const openPrint = () => {
|
||||||
|
contractPrintRef.value.open(selectRow.value)
|
||||||
|
}
|
||||||
|
|
||||||
const handleSelect = (key) => {
|
const handleSelect = (key) => {
|
||||||
queryParams.relation = key
|
queryParams.relation = key
|
||||||
getList()
|
getList()
|
||||||
@ -340,4 +363,5 @@ const handleExport = async () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user