Merge branch 'main' into dev-sy

This commit is contained in:
BianLzhaoMin 2024-12-13 15:46:22 +08:00
commit 95b51eed2c
3 changed files with 143 additions and 116 deletions

View File

@ -0,0 +1,18 @@
import { get, post } from '../../index'
// 新增合同
export const addContractApi = (data: any = {}) => {
return post('/material-mall/contract/add', data)
}
// 合同列表
export const getContractListApi = (data: any = {}) => {
return get('/material-mall/contract/list', data)
}
// 合同编辑
export const editContractApi = (data: any = {}) => {
return post('/material-mall/contract/edit', data)
}
// 合同删除
export const delContractApi = (data: any = {}) => {
return post('/material-mall/contract/del', data)
}

View File

@ -10,94 +10,66 @@
<!-- 表单搜索 -->
<el-row>
<el-col :span="6">
<el-form-item prop="deviceName">
<el-form-item prop="contractName">
<el-input
v-model.trim="queryParams.deviceName"
v-model.trim="queryParams.contractName"
style="width: 100%"
clearable
placeholder="请输入装备名称"
placeholder="请输入合同名称"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="code">
<el-form-item prop="contractCode">
<el-input
v-model.trim="queryParams.code"
v-model.trim="queryParams.contractCode"
style="width: 100%"
clearable
placeholder="请输入装备编号"
placeholder="请输入合同编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="maStatus">
<el-select
style="width: 100%"
v-model="queryParams.maStatus"
clearable
placeholder="请选择装备状态"
>
<el-option label="草稿状态" value="0"></el-option>
<el-option label="上架" value="2"></el-option>
<el-option label="下架" value="1"></el-option>
<el-option label="在租" value="3"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="deviceTypeList">
<el-cascader
v-model="deviceTypeList"
:options="deviceTypeTree"
:props="partTypeTreeProps"
filterable
clearable
style="width: 100%"
placeholder="请选择装备类目"
ref="deviceTypeCascader"
@change="deviceTypeChange"
></el-cascader>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item prop="dateRange">
<el-form-item prop="createTime">
<el-date-picker
v-model="createTime"
type="daterange"
style="width: 100%"
v-model="dateRange"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
range-separator="-"
value-format="YYYY-MM-DD"
start-placeholder="更新开始日期"
end-placeholder="更新结束日期"
>
</el-date-picker>
/>
</el-form-item>
</el-col>
<el-col :span="18">
<el-col :span="6">
<el-form-item>
<el-button class="primary-lease" type="primary" @click="queryTableList"
<el-button class="primary-lease" type="primary" @click="getContractListData"
>查询</el-button
>
<el-button
class="primary-lease"
type="primary"
@click="resetTableList(queryFormRef)"
@click="onReset"
>重置</el-button
>
<el-button class="primary-lease" type="primary" @click="addContract"
>合同新增</el-button
>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="18">
<el-form-item>
<el-button class="primary-lease" type="primary" @click="addContract"
>合同新建</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 表格 -->
<el-table
:data="leaseList"
:data="qualityLis"
show-overflow-tooltip
:header-cell-style="{
background: '#00a288',
@ -107,14 +79,14 @@
<el-table-column align="center" label="合同编码">
<template #default="{ row }">
<a
style="#00a288; text-decoration: underline"
style="color:blue; "
>
{{ row.leaseCode }}
{{ row.contractCode }}
</a>
</template>
</el-table-column>
<el-table-column align="center" prop="leaseName" label="合同名称" />
<el-table-column align="center" prop="leaseName" label="状态" >
<el-table-column align="center" prop="contractName" label="合同名称" />
<el-table-column align="center" prop="status" label="状态" >
<template #default="{ row }">
<el-switch
v-model="row.status"
@ -127,15 +99,15 @@
<el-table-column align="center" prop="qcTime" label="合同附件">
<template #default="{ row }">
<a
:href="row.url"
:href="row.bmFileInfoList[0].fileUrl"
target="_blank"
style="color: #00a288; text-decoration: underline"
>查看</a
>
</template>
</el-table-column>
<el-table-column align="center" prop="publishUser" label="创建时间" />
<el-table-column align="center" prop="orderUser" label="更新时间" />
<el-table-column align="center" prop="createTime" label="创建时间" />
<el-table-column align="center" prop="updateTime" label="更新时间" />
<el-table-column align="center" label="操作" :width="220">
<template #default="{ row }">
<el-button
@ -143,7 +115,7 @@
size="small"
type="primary"
@click="onRepublish(row.id, false)"
@click="onContract(row, false)"
>
编辑
</el-button>
@ -151,8 +123,7 @@
text
size="small"
type="primary"
v-if="row.leaseStatus === 2"
@click="onRepublish(row.id, true)"
@click="onDelete(row.id, true)"
>
删除
</el-button>
@ -186,12 +157,12 @@
>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="合同模板名称:" prop="htName">
<el-form-item label="合同模板名称:" prop="contractName">
<el-input
autocomplete="off"
style="width: 850px"
maxlength="30"
v-model="addAndEditForm.htName"
v-model="addAndEditForm.contractName"
clearable
/>
</el-form-item>
@ -270,51 +241,58 @@ const isViewForm = ref(false)
const isDisabled = ref(false)
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
const qualityLis = ref<any>([])
const queryFormRef = ref<any>(null)
import {
getEquipmentTypeApi, //
getCompanyListApi, //
getEquipmentListApi, //
} from 'http/api/usercenter/goodsmang'
getContractListApi, //
addContractApi, //
editContractApi, //
delContractApi, //
} from 'http/api/contract-manage'
import { InfoFilled, UploadFilled } from '@element-plus/icons-vue'
const total = ref(0)
const createTime = ref([])
/* 查询参数 */
const queryParams: any = ref({
deviceName: '',
code: '',
maStatus: '',
typeId: '',
const queryParams: any = reactive({
contractName: '',
contractCode: '',
startTime: '',
endTime: '',
pageSize: 10,
pageNum: 1,
})
const addAndEditForm = reactive<any>({
htName: '',
const addAndEditForm = ref<any>({
id: '',
contractName: '',
fileInfoList: [],
fileInfoTempList: [],
bmFileInfoList: [],
})
//
const deviceTypeTree: any = ref([])
const partTypeTreeProps: any = ref({
children: 'children',
label: 'name',
multiple: false,
value: 'id',
})
//
const companyDataList: any = ref([])
//
const getTypeTreeData = async () => {
const res: any = await getEquipmentTypeApi()
console.log('treeData==========', res)
deviceTypeTree.value = res.data
//
const getContractListData = async () => {
if (createTime.value.length > 0) {
console.log('33333', createTime.value)
queryParams.startTime = createTime.value[0]
queryParams.endTime = createTime.value[1]
}
const { data: res }: any = await getContractListApi(queryParams)
qualityLis.value = res
total.value = res.total
}
//
const getCompanyList = async () => {
const res: any = await getCompanyListApi()
console.log(res, '列表数据**--**-----------')
companyDataList.value = res.data
//
const onReset = () => {
createTime.value = []
queryParams.startTime = ''
queryParams.endTime = ''
queryParams.pageNum = 1
queryParams.pageSize = 10
queryFormRef.value.resetFields()
getContractListData()
}
//
@ -332,8 +310,22 @@ const addContract = () => {
dialogVisibleSettlein.value = true;
}
//
const onContract = (row: any) => {
addAndEditForm.value.id = row.id
addAndEditForm.value.contractName = row.contractName
console.log('2222',addAndEditForm.value.contractName)
settleinTitle.value = '合同修改'
dialogVisibleSettlein.value = true
}
const onDialogClose = () => {
// addAndEditFormRef.value.resetFields()
addAndEditFormRef.value.resetFields()
addAndEditForm.value.fileInfoTempList = []
addAndEditForm.value.fileInfoList = []
addAndEditForm.value.bmFileInfoList = []
addAndEditForm.value.id = ''
addAndEditForm.value.contractName = ''
}
//
@ -350,7 +342,7 @@ const onFileChange = (fileList: any) => {
}
const addAndEditFormRules = reactive({
htName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }],
contractName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }],
fileInfoList: [{ required: true, message: '请上传合同附件', trigger: 'blur' }],
})
@ -359,30 +351,43 @@ const onSubmit = () => {
addAndEditForm.value.fileInfoList = addAndEditForm.value.fileInfoTempList
addAndEditFormRef.value.validate(async (valid: any) => {
if (valid) {
// const SEN_API = settleinTitle.value === '' ? editSafeBookApi : addSafeBookApi
// const res: any = await SEN_API(addAndEditForm.value)
// if (res.code === 200) {
// ElMessage({
// type: 'success',
// message: '',
// })
// dialogVisibleSettlein.value = false
// // getLeaseListData()
// }
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
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
}
onMounted(() => {
//
getTypeTreeData()
//
getCompanyList()
getContractListData()
// getEquipmentTypeApi().then((res: any) => {
// deviceTypeTree.value = res.data
})
</script>

View File

@ -618,6 +618,7 @@ const handleViewWord = () => {
insureList: [],
picList: [],
}
wordUrl.value = "http://127.0.0.1:29300/statics/2024/12/13/合同模板2_20241213133604A002.doc"
//
dialogFormVisibleSettleWord.value = true
}
@ -630,6 +631,8 @@ const contract = ref({
// Word
const downloadContract = () => {}
const wordUrl = ref('')
</script>
<template>
@ -1840,9 +1843,10 @@ const downloadContract = () => {}
destroy-on-close
:close-on-click-modal="false"
>
<div style="display: flex; justify-content: center">
<img src="@/assets/img/zuLin.png" style="width: 100%; height: 600px" />
</div>
<!-- <div style="display: flex; justify-content: center"> -->
<!-- <img src="@/assets/img/zuLin.png" style="width: 100%; height: 600px" /> -->
<iframe :src="wordUrl" width="100%" height="501px"></iframe>
<!-- </div> -->
<template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="dialogFormVisibleSettleWord = false"