|
@@ -6,109 +6,19 @@ import { ColumnConfigType } from '@/components/ATable/type'
|
|
import { StrAnyObj, StrAnyObjArr } from '@/typings'
|
|
import { StrAnyObj, StrAnyObjArr } from '@/typings'
|
|
import { useHandleData } from '@/utils/useHandleData'
|
|
import { useHandleData } from '@/utils/useHandleData'
|
|
import { getPageApi, getDetailApi, addApi, editApi, deleteApi } from '@/api/business/contract/info'
|
|
import { getPageApi, getDetailApi, addApi, editApi, deleteApi } from '@/api/business/contract/info'
|
|
|
|
+import ContractPDF from '@/components/PDF/contractPDF.vue'
|
|
|
|
+import { getPdf } from '@/utils/getPdf.js'
|
|
|
|
|
|
const queryRef = ref<InstanceType<typeof AForm>>()
|
|
const queryRef = ref<InstanceType<typeof AForm>>()
|
|
const formRef = ref<InstanceType<typeof AForm>>()
|
|
const formRef = ref<InstanceType<typeof AForm>>()
|
|
-
|
|
|
|
-const showQuery = ref<boolean>(true)
|
|
|
|
-const selectKeys = ref<string[]>([])
|
|
|
|
const pageTotal = ref<number>(0)
|
|
const pageTotal = ref<number>(0)
|
|
-
|
|
|
|
const queryData = ref<StrAnyObj>({ pageNum: 1, pageSize: 10 })
|
|
const queryData = ref<StrAnyObj>({ pageNum: 1, pageSize: 10 })
|
|
const tableData = ref<StrAnyObjArr>([])
|
|
const tableData = ref<StrAnyObjArr>([])
|
|
const formData = ref<StrAnyObj>({})
|
|
const formData = ref<StrAnyObj>({})
|
|
-
|
|
|
|
|
|
+const rowData = ref<StrAnyObj>({})
|
|
|
|
+const dialogPrint = ref<boolean>(false)
|
|
const dialogTitle = ref<string>('')
|
|
const dialogTitle = ref<string>('')
|
|
const dialogVisible = ref<boolean>(false)
|
|
const dialogVisible = ref<boolean>(false)
|
|
-
|
|
|
|
-const queryConfig: FormConfigType[] = [
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'capitalTransactionsId',
|
|
|
|
- label: '资金流水id'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'code',
|
|
|
|
- label: '合同编号'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'customerCorporationName',
|
|
|
|
- label: '客户单位名称'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'customerCorporation Address',
|
|
|
|
- label: '客户单位地址'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'customerLegalRepresentative',
|
|
|
|
- label: '客户法定代表人'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'customerContactPerson',
|
|
|
|
- label: '客户业务联系人'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'customerContactNumber',
|
|
|
|
- label: '客户联系电话'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'signingDate',
|
|
|
|
- label: '签订日期'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'totalAmount',
|
|
|
|
- label: '合同总金额'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'taxRate',
|
|
|
|
- label: '税率'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'freight',
|
|
|
|
- label: '运费'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'deliveryAddress',
|
|
|
|
- label: '收货地址'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'createUser',
|
|
|
|
- label: '创建人'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'createTime',
|
|
|
|
- label: '创建时间'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'updateUser',
|
|
|
|
- label: '更新人'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'updateTime',
|
|
|
|
- label: '更新时间'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'delFlag',
|
|
|
|
- label: '逻辑删除标记'
|
|
|
|
- },
|
|
|
|
-]
|
|
|
|
-
|
|
|
|
const toolbarConfig: ToolbarConfigType[] = [
|
|
const toolbarConfig: ToolbarConfigType[] = [
|
|
{
|
|
{
|
|
common: 'search',
|
|
common: 'search',
|
|
@@ -116,38 +26,10 @@ const toolbarConfig: ToolbarConfigType[] = [
|
|
queryData.value.pageNum = 1
|
|
queryData.value.pageNum = 1
|
|
getPage()
|
|
getPage()
|
|
}
|
|
}
|
|
- },
|
|
|
|
- {
|
|
|
|
- common: 'reset',
|
|
|
|
- click() {
|
|
|
|
- queryRef.value?.resetFields()
|
|
|
|
- getPage()
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- common: 'add',
|
|
|
|
- click() {
|
|
|
|
- dialogVisible.value = true
|
|
|
|
- dialogTitle.value = '新增'
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- common: 'delete',
|
|
|
|
- disabled() {
|
|
|
|
- return selectKeys.value.length == 0
|
|
|
|
- },
|
|
|
|
- click() {
|
|
|
|
- handleRemove(selectKeys.value)
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
]
|
|
]
|
|
-
|
|
|
|
const columnConfig: ColumnConfigType[] = [
|
|
const columnConfig: ColumnConfigType[] = [
|
|
{
|
|
{
|
|
- prop: 'capitalTransactionsId',
|
|
|
|
- label: '资金流水id'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
prop: 'code',
|
|
prop: 'code',
|
|
label: '合同编号'
|
|
label: '合同编号'
|
|
},
|
|
},
|
|
@@ -156,7 +38,7 @@ const columnConfig: ColumnConfigType[] = [
|
|
label: '客户单位名称'
|
|
label: '客户单位名称'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'customerCorporation Address',
|
|
|
|
|
|
+ prop: 'customerCorporationAddress',
|
|
label: '客户单位地址'
|
|
label: '客户单位地址'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -192,27 +74,7 @@ const columnConfig: ColumnConfigType[] = [
|
|
label: '收货地址'
|
|
label: '收货地址'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'createUser',
|
|
|
|
- label: '创建人'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- prop: 'createTime',
|
|
|
|
- label: '创建时间'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- prop: 'updateUser',
|
|
|
|
- label: '更新人'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- prop: 'updateTime',
|
|
|
|
- label: '更新时间'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- prop: 'delFlag',
|
|
|
|
- label: '逻辑删除标记'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- width: 250,
|
|
|
|
|
|
+ width: 120,
|
|
handleConfig: [
|
|
handleConfig: [
|
|
{
|
|
{
|
|
common: 'update',
|
|
common: 'update',
|
|
@@ -225,24 +87,18 @@ const columnConfig: ColumnConfigType[] = [
|
|
}
|
|
}
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- common: 'delete',
|
|
|
|
|
|
+ text: '打印',
|
|
click(row) {
|
|
click(row) {
|
|
- handleRemove([row.id])
|
|
|
|
|
|
+ rowData.value = row
|
|
|
|
+ dialogPrint.value = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
]
|
|
]
|
|
-
|
|
|
|
const formConfig: FormConfigType[] = [
|
|
const formConfig: FormConfigType[] = [
|
|
{
|
|
{
|
|
type: 'input',
|
|
type: 'input',
|
|
- prop: 'capitalTransactionsId',
|
|
|
|
- label: '资金流水id',
|
|
|
|
- rule: [{ required: true, message: '资金流水id不能为空', trigger: 'blur' }]
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
prop: 'code',
|
|
prop: 'code',
|
|
label: '合同编号',
|
|
label: '合同编号',
|
|
rule: [{ required: true, message: '合同编号不能为空', trigger: 'blur' }]
|
|
rule: [{ required: true, message: '合同编号不能为空', trigger: 'blur' }]
|
|
@@ -255,7 +111,7 @@ const formConfig: FormConfigType[] = [
|
|
},
|
|
},
|
|
{
|
|
{
|
|
type: 'input',
|
|
type: 'input',
|
|
- prop: 'customerCorporation Address',
|
|
|
|
|
|
+ prop: 'customerCorporationAddress',
|
|
label: '客户单位地址',
|
|
label: '客户单位地址',
|
|
rule: [{ required: true, message: '客户单位地址不能为空', trigger: 'blur' }]
|
|
rule: [{ required: true, message: '客户单位地址不能为空', trigger: 'blur' }]
|
|
},
|
|
},
|
|
@@ -306,37 +162,7 @@ const formConfig: FormConfigType[] = [
|
|
prop: 'deliveryAddress',
|
|
prop: 'deliveryAddress',
|
|
label: '收货地址',
|
|
label: '收货地址',
|
|
rule: [{ required: true, message: '收货地址不能为空', trigger: 'blur' }]
|
|
rule: [{ required: true, message: '收货地址不能为空', trigger: 'blur' }]
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'createUser',
|
|
|
|
- label: '创建人',
|
|
|
|
- rule: [{ required: true, message: '创建人不能为空', trigger: 'blur' }]
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'createTime',
|
|
|
|
- label: '创建时间',
|
|
|
|
- rule: [{ required: true, message: '创建时间不能为空', trigger: 'blur' }]
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'updateUser',
|
|
|
|
- label: '更新人',
|
|
|
|
- rule: [{ required: true, message: '更新人不能为空', trigger: 'blur' }]
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'updateTime',
|
|
|
|
- label: '更新时间',
|
|
|
|
- rule: [{ required: true, message: '更新时间不能为空', trigger: 'blur' }]
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- type: 'input',
|
|
|
|
- prop: 'delFlag',
|
|
|
|
- label: '逻辑删除标记',
|
|
|
|
- rule: [{ required: true, message: '逻辑删除标记不能为空', trigger: 'blur' }]
|
|
|
|
- },
|
|
|
|
|
|
+ }
|
|
]
|
|
]
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
@@ -349,11 +175,6 @@ function getPage() {
|
|
pageTotal.value = resp.total
|
|
pageTotal.value = resp.total
|
|
})
|
|
})
|
|
}
|
|
}
|
|
-
|
|
|
|
-function tableSelectionChange(item: StrAnyObjArr) {
|
|
|
|
- selectKeys.value = item.map((item) => item.id)
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
function formSubmit() {
|
|
function formSubmit() {
|
|
formRef.value?.validate(() => {
|
|
formRef.value?.validate(() => {
|
|
if (formData.value.id) {
|
|
if (formData.value.id) {
|
|
@@ -371,49 +192,56 @@ function formSubmit() {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
-
|
|
|
|
function formClosed() {
|
|
function formClosed() {
|
|
formRef.value?.resetFields()
|
|
formRef.value?.resetFields()
|
|
}
|
|
}
|
|
-
|
|
|
|
-function handleRemove(idList: string[]) {
|
|
|
|
- useHandleData('是否确认删除?', () => {
|
|
|
|
- deleteApi({ idList }).then(() => {
|
|
|
|
- ElMessage.success('删除成功')
|
|
|
|
- getPage()
|
|
|
|
- })
|
|
|
|
- })
|
|
|
|
|
|
+const printObj = ref({
|
|
|
|
+ id: 'pdfDom',
|
|
|
|
+ popTitle: '',
|
|
|
|
+ extraCss:
|
|
|
|
+ 'https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css',
|
|
|
|
+ extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>'
|
|
|
|
+})
|
|
|
|
+const clickDownload = () => {
|
|
|
|
+ getPdf('合同' + rowData.value.code)
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<template>
|
|
<template>
|
|
<div>
|
|
<div>
|
|
- <el-card v-if="showQuery">
|
|
|
|
- <a-form ref="queryRef" v-model="queryData" :config="queryConfig" :span="6"> </a-form>
|
|
|
|
- </el-card>
|
|
|
|
-
|
|
|
|
<a-table
|
|
<a-table
|
|
selection
|
|
selection
|
|
:data="tableData"
|
|
:data="tableData"
|
|
:page-total="pageTotal"
|
|
:page-total="pageTotal"
|
|
:toolbar-config="toolbarConfig"
|
|
:toolbar-config="toolbarConfig"
|
|
:column-config="columnConfig"
|
|
:column-config="columnConfig"
|
|
- v-model:showQuery="showQuery"
|
|
|
|
v-model:page-num="queryData.pageNum"
|
|
v-model:page-num="queryData.pageNum"
|
|
v-model:page-size="queryData.pageSize"
|
|
v-model:page-size="queryData.pageSize"
|
|
@page-num-change="getPage"
|
|
@page-num-change="getPage"
|
|
@page-size-change="getPage"
|
|
@page-size-change="getPage"
|
|
- @selection-change="tableSelectionChange"
|
|
|
|
>
|
|
>
|
|
</a-table>
|
|
</a-table>
|
|
|
|
|
|
<a-dialog
|
|
<a-dialog
|
|
|
|
+ v-if="dialogVisible"
|
|
v-model="dialogVisible"
|
|
v-model="dialogVisible"
|
|
:title="dialogTitle"
|
|
:title="dialogTitle"
|
|
@submit="formSubmit"
|
|
@submit="formSubmit"
|
|
@closed="formClosed"
|
|
@closed="formClosed"
|
|
|
|
+ width="600px"
|
|
>
|
|
>
|
|
<a-form ref="formRef" v-model="formData" :config="formConfig" :span="24"> </a-form>
|
|
<a-form ref="formRef" v-model="formData" :config="formConfig" :span="24"> </a-form>
|
|
</a-dialog>
|
|
</a-dialog>
|
|
|
|
+
|
|
|
|
+ <a-dialog :footer="false" v-if="dialogPrint" v-model="dialogPrint" title="打印" width="880px">
|
|
|
|
+ <ContractPDF :rowData="rowData"></ContractPDF>
|
|
|
|
+ <template #footer>
|
|
|
|
+ <div>
|
|
|
|
+ <el-button @click="dialogPrint = false" size="large">取消</el-button>
|
|
|
|
+ <el-button type="primary" v-print="printObj" size="large">打印</el-button>
|
|
|
|
+ <el-button type="primary" @click="clickDownload()" size="large">下载PDF</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </a-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|