Merge branch 'main' into dev-sy
This commit is contained in:
commit
95b51eed2c
|
|
@ -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)
|
||||
}
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue