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-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>

View File

@ -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"