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-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item prop="deviceName">
|
<el-form-item prop="contractName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model.trim="queryParams.deviceName"
|
v-model.trim="queryParams.contractName"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入装备名称"
|
placeholder="请输入合同名称"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item prop="code">
|
<el-form-item prop="contractCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model.trim="queryParams.code"
|
v-model.trim="queryParams.contractCode"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入装备编号"
|
placeholder="请输入合同编号"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item prop="maStatus">
|
<el-form-item prop="createTime">
|
||||||
<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-date-picker
|
<el-date-picker
|
||||||
|
v-model="createTime"
|
||||||
|
type="daterange"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="dateRange"
|
range-separator="-"
|
||||||
type="datetimerange"
|
value-format="YYYY-MM-DD"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
|
||||||
range-separator="至"
|
|
||||||
start-placeholder="更新开始日期"
|
start-placeholder="更新开始日期"
|
||||||
end-placeholder="更新结束日期"
|
end-placeholder="更新结束日期"
|
||||||
>
|
/>
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="18">
|
<el-col :span="6">
|
||||||
<el-form-item>
|
<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
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
class="primary-lease"
|
class="primary-lease"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="resetTableList(queryFormRef)"
|
@click="onReset"
|
||||||
>重置</el-button
|
>重置</el-button
|
||||||
>
|
>
|
||||||
<el-button class="primary-lease" type="primary" @click="addContract"
|
|
||||||
>合同新增</el-button
|
|
||||||
>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</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-form>
|
||||||
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<el-table
|
<el-table
|
||||||
:data="leaseList"
|
:data="qualityLis"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
:header-cell-style="{
|
:header-cell-style="{
|
||||||
background: '#00a288',
|
background: '#00a288',
|
||||||
|
|
@ -107,14 +79,14 @@
|
||||||
<el-table-column align="center" label="合同编码">
|
<el-table-column align="center" label="合同编码">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a
|
<a
|
||||||
style="#00a288; text-decoration: underline"
|
style="color:blue; "
|
||||||
>
|
>
|
||||||
{{ row.leaseCode }}
|
{{ row.contractCode }}
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" prop="leaseName" label="合同名称" />
|
<el-table-column align="center" prop="contractName" label="合同名称" />
|
||||||
<el-table-column align="center" prop="leaseName" label="状态" >
|
<el-table-column align="center" prop="status" label="状态" >
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="row.status"
|
v-model="row.status"
|
||||||
|
|
@ -127,15 +99,15 @@
|
||||||
<el-table-column align="center" prop="qcTime" label="合同附件">
|
<el-table-column align="center" prop="qcTime" label="合同附件">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a
|
<a
|
||||||
:href="row.url"
|
:href="row.bmFileInfoList[0].fileUrl"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
style="color: #00a288; text-decoration: underline"
|
style="color: #00a288; text-decoration: underline"
|
||||||
>查看</a
|
>查看</a
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" prop="publishUser" label="创建时间" />
|
<el-table-column align="center" prop="createTime" label="创建时间" />
|
||||||
<el-table-column align="center" prop="orderUser" label="更新时间" />
|
<el-table-column align="center" prop="updateTime" label="更新时间" />
|
||||||
<el-table-column align="center" label="操作" :width="220">
|
<el-table-column align="center" label="操作" :width="220">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -143,7 +115,7 @@
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
|
||||||
@click="onRepublish(row.id, false)"
|
@click="onContract(row, false)"
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -151,8 +123,7 @@
|
||||||
text
|
text
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
v-if="row.leaseStatus === 2"
|
@click="onDelete(row.id, true)"
|
||||||
@click="onRepublish(row.id, true)"
|
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -186,12 +157,12 @@
|
||||||
>
|
>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="合同模板名称:" prop="htName">
|
<el-form-item label="合同模板名称:" prop="contractName">
|
||||||
<el-input
|
<el-input
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
style="width: 850px"
|
style="width: 850px"
|
||||||
maxlength="30"
|
maxlength="30"
|
||||||
v-model="addAndEditForm.htName"
|
v-model="addAndEditForm.contractName"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -270,51 +241,58 @@ const isViewForm = ref(false)
|
||||||
const isDisabled = ref(false)
|
const isDisabled = ref(false)
|
||||||
|
|
||||||
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
|
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
|
||||||
|
|
||||||
|
const qualityLis = ref<any>([])
|
||||||
|
const queryFormRef = ref<any>(null)
|
||||||
|
|
||||||
import {
|
import {
|
||||||
getEquipmentTypeApi, //装备类型
|
getContractListApi, //列表
|
||||||
getCompanyListApi, //所属公司
|
addContractApi, //新增
|
||||||
getEquipmentListApi, //列表
|
editContractApi, //修改
|
||||||
} from 'http/api/usercenter/goodsmang'
|
delContractApi, //删除
|
||||||
|
} from 'http/api/contract-manage'
|
||||||
import { InfoFilled, UploadFilled } from '@element-plus/icons-vue'
|
import { InfoFilled, UploadFilled } from '@element-plus/icons-vue'
|
||||||
|
const total = ref(0)
|
||||||
|
const createTime = ref([])
|
||||||
/* 查询参数 */
|
/* 查询参数 */
|
||||||
const queryParams: any = ref({
|
const queryParams: any = reactive({
|
||||||
deviceName: '',
|
contractName: '',
|
||||||
code: '',
|
contractCode: '',
|
||||||
maStatus: '',
|
startTime: '',
|
||||||
typeId: '',
|
endTime: '',
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
})
|
})
|
||||||
|
|
||||||
const addAndEditForm = reactive<any>({
|
const addAndEditForm = ref<any>({
|
||||||
htName: '',
|
id: '',
|
||||||
|
contractName: '',
|
||||||
fileInfoList: [],
|
fileInfoList: [],
|
||||||
fileInfoTempList: [],
|
fileInfoTempList: [],
|
||||||
|
bmFileInfoList: [],
|
||||||
})
|
})
|
||||||
|
|
||||||
// 设备类型树
|
// 获取列表
|
||||||
const deviceTypeTree: any = ref([])
|
const getContractListData = async () => {
|
||||||
const partTypeTreeProps: any = ref({
|
if (createTime.value.length > 0) {
|
||||||
children: 'children',
|
console.log('33333', createTime.value)
|
||||||
label: 'name',
|
queryParams.startTime = createTime.value[0]
|
||||||
multiple: false,
|
queryParams.endTime = createTime.value[1]
|
||||||
value: 'id',
|
}
|
||||||
})
|
const { data: res }: any = await getContractListApi(queryParams)
|
||||||
//所属公司
|
qualityLis.value = res
|
||||||
const companyDataList: any = ref([])
|
total.value = res.total
|
||||||
|
|
||||||
// 获取装备树
|
|
||||||
const getTypeTreeData = async () => {
|
|
||||||
const res: any = await getEquipmentTypeApi()
|
|
||||||
console.log('treeData==========', res)
|
|
||||||
deviceTypeTree.value = res.data
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取所属公司下拉数据
|
// 重置
|
||||||
const getCompanyList = async () => {
|
const onReset = () => {
|
||||||
const res: any = await getCompanyListApi()
|
createTime.value = []
|
||||||
console.log(res, '列表数据**--**-----------')
|
queryParams.startTime = ''
|
||||||
companyDataList.value = res.data
|
queryParams.endTime = ''
|
||||||
|
queryParams.pageNum = 1
|
||||||
|
queryParams.pageSize = 10
|
||||||
|
queryFormRef.value.resetFields()
|
||||||
|
getContractListData()
|
||||||
}
|
}
|
||||||
|
|
||||||
//状态选择
|
//状态选择
|
||||||
|
|
@ -332,8 +310,22 @@ const addContract = () => {
|
||||||
dialogVisibleSettlein.value = true;
|
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 = () => {
|
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({
|
const addAndEditFormRules = reactive({
|
||||||
htName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }],
|
contractName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }],
|
||||||
fileInfoList: [{ required: true, message: '请上传合同附件', trigger: 'blur' }],
|
fileInfoList: [{ required: true, message: '请上传合同附件', trigger: 'blur' }],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -359,30 +351,43 @@ const onSubmit = () => {
|
||||||
addAndEditForm.value.fileInfoList = addAndEditForm.value.fileInfoTempList
|
addAndEditForm.value.fileInfoList = addAndEditForm.value.fileInfoTempList
|
||||||
addAndEditFormRef.value.validate(async (valid: any) => {
|
addAndEditFormRef.value.validate(async (valid: any) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// const SEN_API = settleinTitle.value === '合同修改' ? editSafeBookApi : addSafeBookApi
|
const SEN_API = settleinTitle.value === '合同修改' ? editContractApi : addContractApi
|
||||||
// const res: any = await SEN_API(addAndEditForm.value)
|
addAndEditForm.value.bmFileInfoList = addAndEditForm.value.fileInfoList
|
||||||
// if (res.code === 200) {
|
const res: any = await SEN_API(addAndEditForm.value)
|
||||||
// ElMessage({
|
if (res.code === 200) {
|
||||||
// type: 'success',
|
ElMessage({
|
||||||
// message: '提交成功',
|
type: 'success',
|
||||||
// })
|
message: '提交成功',
|
||||||
// dialogVisibleSettlein.value = false
|
})
|
||||||
// // getLeaseListData()
|
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 = () => {
|
const onCancel = () => {
|
||||||
dialogVisibleSettlein.value = false
|
dialogVisibleSettlein.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// 获取装备树
|
getContractListData()
|
||||||
getTypeTreeData()
|
// getEquipmentTypeApi().then((res: any) => {
|
||||||
// 获取下拉
|
// deviceTypeTree.value = res.data
|
||||||
getCompanyList()
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -618,6 +618,7 @@ const handleViewWord = () => {
|
||||||
insureList: [],
|
insureList: [],
|
||||||
picList: [],
|
picList: [],
|
||||||
}
|
}
|
||||||
|
wordUrl.value = "http://127.0.0.1:29300/statics/2024/12/13/合同模板2_20241213133604A002.doc"
|
||||||
// 打开租赁协议弹框
|
// 打开租赁协议弹框
|
||||||
dialogFormVisibleSettleWord.value = true
|
dialogFormVisibleSettleWord.value = true
|
||||||
}
|
}
|
||||||
|
|
@ -630,6 +631,8 @@ const contract = ref({
|
||||||
|
|
||||||
// 下载合同为 Word 文件
|
// 下载合同为 Word 文件
|
||||||
const downloadContract = () => {}
|
const downloadContract = () => {}
|
||||||
|
|
||||||
|
const wordUrl = ref('')
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -1840,9 +1843,10 @@ const downloadContract = () => {}
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<div style="display: flex; justify-content: center">
|
<!-- <div style="display: flex; justify-content: center"> -->
|
||||||
<img src="@/assets/img/zuLin.png" style="width: 100%; height: 600px" />
|
<!-- <img src="@/assets/img/zuLin.png" style="width: 100%; height: 600px" /> -->
|
||||||
</div>
|
<iframe :src="wordUrl" width="100%" height="501px"></iframe>
|
||||||
|
<!-- </div> -->
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button type="primary" @click="dialogFormVisibleSettleWord = false"
|
<el-button type="primary" @click="dialogFormVisibleSettleWord = false"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue