Merge branch 'material-ui' of http://192.168.0.56:3000/bonus/bonus-ui into material-ui

This commit is contained in:
jjLv 2024-11-12 15:05:28 +08:00
commit 2710040308
2 changed files with 1110 additions and 0 deletions

353
src/api/lease/protocol.js Normal file
View File

@ -0,0 +1,353 @@
import request from '@/utils/request'
// 往来单位-下拉
export function getUnitList(query) {
return request({
url: '/material/select/getUnitList',
method: 'post',
data: {
},
})
}
// 工程名称-下拉
export function getProjectList(query) {
return request({
url: '/material/select/getProjectList',
method: 'post',
data: {},
})
}
// 协议管理-列表
export function getAgreementList(query) {
return request({
url: '/material/bm_agreement_info/list',
method: 'get',
params: query,
})
}
//协议管理--新增
export function addAgreement(data) {
return request({
url: '/material/bm_agreement_info',
method: 'post',
data: data,
})
}
// 协议管理--修改
export function updateAgreement(data) {
return request({
url: '/material/bm_agreement_info',
method: 'put',
data: data,
})
}
// 协议管理-详情
export function getAgreementInfoId(id) {
return request({
url: '/material/bm_agreement_info/'+id,
method: 'get',
params: query,
})
}
// //协议管理--删除
export function removeAgreement(id) {
return request({
url: '/material/bm_agreement_info/'+id,
method: 'delete',
data: data,
})
}
//资源图片上传
export function imgUpLoad(param){
const formData = new FormData()
formData.append('file', param.file)
formData.append('fileType', param.type)
return request({
url: '/material/bm_file_info',
method: 'post',
data: formData,
header:'multipart/form-data'
})
}
// 机具领料-申请列表
export function getLeaseManageListAll(query) {
return request({
url: '/material/base/tm_task/getLeaseManageListAll',
method: 'get',
params: query,
})
}
// 机具领料-申请列表
export function getLeaseManageListAllCq(query) {
return request({
url: '/material/base/tm_task/getLeaseManageListAllCq',
method: 'get',
params: query,
})
}
// 机具领料-管理列表
export function getLeaseAuditListAll(query) {
return request({
url: '/material/base/tm_task/getLeaseAuditListAll',
method: 'get',
params: query,
})
}
// 获取 来往单位 列表
export function getUnitData(params = {}) {
return request({
url: '/material/select/getUnitCbx',
method: 'post',
data: params,
})
}
// 获取 工程 列表
export function getProData(params = {}) {
return request({
url: '/material/select/getSectionEngineeringCbx',
method: 'post',
data: params,
})
}
// 获取 设备树
export function getDeviceTypeTree(params = {}) {
return request({
url: '/material/select/getDeviceTypeTree',
method: 'post',
data: params,
})
}
// 根据单位id和工程id 获取 协议id
export function getAgreementInfoById(params = {}) {
return request({
url: '/material/select/getAgreementInfoById',
method: 'post',
data: params,
})
}
//提交 领料申请
export function submitLeaseApply(params = {}) {
return request({
url: '/material/base/tm_task/submitLeaseApply',
method: 'post',
data: params,
})
}
//编辑 领料申请
export function editLeaseApply(params = {}) {
return request({
url: '/material/base/tm_task/edit',
method: 'post',
data: params,
})
}
// 参数 领料任务
export function deleteTask(taskId) {
return request({
url: `/material/base/tm_task/${taskId}`,
method: 'delete',
})
}
// 根据 领料任务id 获取详情数据
export function getLeaseListAll(params = {}) {
return request({
url: '/material/base/tm_task/getLeaseListAll',
method: 'get',
params: params,
})
}
export function getLeaseOutOrder(params = {}) {
return request({
url: '/material/base/leaseOutDetails/getLeaseOutOrder',
method: 'get',
params: params,
})
}
// 根据 领料任务id 获取详情数据
export function getLeaseListAllCq(params = {}) {
return request({
url: '/material/base/tm_task/getLeaseListAllCq',
method: 'get',
params: params,
})
}
// 领料审核 同意
export function auditLeaseByCompany(params = {}) {
return request({
url: '/material/base/tm_task/auditLeaseByCompany',
method: 'post',
data: params,
})
}
// 领料审核 同意
export function auditLeaseByCompanyCq(params = {}) {
return request({
url: '/material/base/tm_task/auditLeaseByCompanyCq',
method: 'post',
data: params,
})
}
// 领料审核 拒绝
export function rejectLeaseByCompany(params = {}) {
return request({
url: '/material/base/tm_task/rejectLeaseByCompany',
method: 'post',
data: params,
})
}
// 领料审核 拒绝
export function rejectLeaseByCompanyCq(params = {}) {
return request({
url: '/material/base/tm_task/rejectLeaseByCompanyCq',
method: 'post',
data: params,
})
}
// 获取 物品类型
export function getUseTypeTreee(params = {}) {
return request({
url: '/material/backApply/getUseTypeTree',
method: 'post',
data: params,
})
}
// 机具领料申请-详情
export function getLeaseApplyListAll(query) {
return request({
url: '/material/base/tm_task/getLeaseApplyListAll',
method: 'get',
params: query,
})
}
export function getLeaseApplyAuditListAll(query) {
return request({
url: '/material/base/tm_task/getLeaseApplyAuditListAll',
method: 'get',
params: query,
})
}
//领料出库 列表
export function getLeaseAuditList(query) {
return request({
url: '/material/base/tm_task/getLeaseAuditList',
method: 'get',
params: query,
})
}
//领料出库 详情
export function getLeaseAuditListDetail(query) {
return request({
url: '/material/base/tm_task/getLeaseAuditListDetail',
method: 'get',
params: query,
})
}
//领料出库 编码出库获取编码
export function getDetailsByTypeId(query) {
return request({
url: '/material/base/leaseOutDetails/getDetailsByTypeId',
method: 'get',
params: query,
})
}
// 领料出库 编码出库 保存
export function submitOut(params) {
return request({
url: '/material/base/leaseOutDetails/submitOutRfid',
method: 'post',
data: params,
})
}
// 领料出库 数量出库 保存
export function submitNumOut(params) {
return request({
url: '/material/base/leaseOutDetails/submitOutRfid',
method: 'post',
data: params,
})
}
// 领料确认
export function updateLeaseTaskStatusConfirmByCq(params) {
return request({
url: '/material/base/tm_task/updateLeaseTaskStatusConfirmByCq',
method: 'post',
data: params,
})
}
// 当前在用量
export function getUseNumByTypeId(params) {
return request({
url: '/material/backApply/getUseNumByTypeId',
method: 'get',
params,
})
}
// 批量审核
export function auditAll(params) {
return request({
url: '/material/backApply/auditAll',
method: 'post',
data: params,
})
}
// 获取费用承担方
export function getCostBearingApi() {
return request({
url: '/material/base/dic/pid',
method: 'get',
})
}
// 推送智慧工程
export function pushSmartEngineeringApi(data) {
return request({
url: '/material/base/tm_task/pushToIntelligentProject',
method: 'post',
data,
})
}
// 推送智慧工程
export function getLeaseOutDetailRecordApi(data) {
return request({
url: '/material/base/tm_task/getLeaseOutDetailRecord',
method: 'get',
params: data,
})
}
/* 获取抱杆成套下拉数据 */
export const getHoldingPoleSelListApi = () => {
return request.get('/material/maWhole/selectWholeList')
}

View File

@ -0,0 +1,757 @@
<template>
<!-- 协议管理 -->
<div class="app-container" id="agreement">
<el-row>
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="80px"
>
<el-form-item label="关键字" prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>查询</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新建</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="agreementList"
@selection-change="handleSelectionChange"
border
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
align="center"
label="序号"
type="index"
/>
<el-table-column
label="协议编号"
align="center"
prop="agreementCode"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="合同编号"
align="center"
prop="contractCode"
:show-overflow-tooltip="true"
/> -->
<!-- <el-table-column
label="协议类型"
align="center"
prop="protocol"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span v-if="scope.row.protocol == 1">内部单位</span>
<span v-if="scope.row.protocol == 2">外部单位</span>
</template>
</el-table-column> -->
<!-- <el-table-column
label="附件图片"
align="center"
prop="fileName"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<div
v-for="(item, index) in scope.row.imgUrlList"
:key="index"
@click="openImg(item)"
style="color: #02a7f0; cursor: pointer"
>{{ scope.row.imgNameList[index] }}</div
>
</template>
</el-table-column>
<el-table-column
label="签订日期"
align="center"
prop="signTime"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="租赁单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁工程"
align="center"
prop="proName"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="开始日期"
align="center"
prop="planStartTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁期限(天)"
align="center"
prop="leaseDay"
:show-overflow-tooltip="true"
/>
<el-table-column
label="授权人"
align="center"
prop="authPerson"
:show-overflow-tooltip="true"
/>
<el-table-column
label="联系电话 "
align="center"
prop="phone"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="备注"
align="center"
prop="remark"
width="160"
:show-overflow-tooltip="true"
/>
<el-table-column label="操作" align="center" width="120">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['picking:protocol:edit']"
>编辑</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['picking:protocol:del']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 新增编辑弹窗 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
:close-on-click-modal="false"
>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
>
<el-row>
<el-col :span="12">
<el-form-item label="租赁单位" prop="unitId">
<el-select
v-model="form.unitId"
filterable
placeholder="请选择租赁单位"
style="width: 100%"
>
<el-option
v-for="item in unitList"
:key="item.unitId"
:label="item.unitName"
:value="item.unitId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授权人" prop="authPerson">
<el-input
maxlength="50"
v-model="form.authPerson"
placeholder="请输入授权人"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="租赁工程" prop="proId">
<el-select
v-model="form.proId"
filterable
placeholder="请选择租赁工程"
style="width: 100%"
>
<el-option
v-for="item in projectList"
:key="item.proId"
:label="item.proName"
:value="item.proId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="form.phone"
placeholder="请输入联系电话"
maxlength="11"
onkeyup="this.value = this.value.replace(/[^\d]/g,'');"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="合同编号" prop="contractCode">
<el-input
maxlength="50"
v-model="form.contractCode"
placeholder="请输入合同编号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="租赁期限(天)" prop="leaseDay">
<el-input-number
v-model="form.leaseDay"
placeholder="请输入租赁期限(天)"
controls-position="right"
:min="0"
:max="9999"
style="width: 100%"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="开始日期" prop="planStartTime">
<el-date-picker
style="width: 100%"
v-model="form.planStartTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择开始日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
maxlength="100"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="合同照片" prop="fileName">
<el-upload
:http-request="(obj) => imgUpLoad(obj, 'fileUrl')"
action="#"
:limit="3"
:file-list="fileList"
:show-file-list="true"
list-type="picture-card"
accept=".png, .jpg, .jpeg"
:on-success="handleAvatarSuccess"
:class="{ disabled: uploadDisabled }"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
>
<i
class="el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" height="650px" :src="dialogImageUrl" alt />
</el-dialog>
</div>
</template>
<script>
import {
getAgreementList,
getAgreementInfoId,
addAgreement,
updateAgreement,
removeAgreement,
getUnitList,
getProjectList,
imgUpLoad
} from '@/api/lease/protocol'
// import { imgUpLoad, fileUpLoad } from '@/api/system/upload'
export default {
name: 'Agreement',
dicts: ['sys_normal_disable'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
unitList: [],
//
projectList: [],
//
agreementList: [],
protocolList: [
{ protocolId: 1, protocolName: '内部单位' },
// { protocolId: 2, protocolName: '' },
],
//
title: '',
//
open: false,
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
agreementCode: '',
proId: '',
unitId: '',
},
//
form: {},
//
uploadHeader: process.env.VUE_APP_BASE_API,
imageUrl: '',
imageName: '',
fileList: [],
checkUrlList: [],
checkUrlNameList: [],
dialogImageUrl: '',
dialogVisible: false,
//
// uploadUrl:'http://192.168.0.14:21624/system',//线+system
// uploadUrl:'http://112.29.103.165:21624/system',//线+system
uploadUrl: process.env.VUE_APP_BASE_API + '/system', //
//
rules: {
/*contractCode: [
{
required: true,
message: '合同编号不能为空',
trigger: 'blur',
},
],
signTime: [
{
required: true,
message: '签订日期不能为空',
trigger: 'blur',
},
],*/
unitId: [
{
required: true,
message: '租赁单位不能为空',
trigger: 'blur',
},
],
proId: [
{
required: true,
message: '租赁工程不能为空',
trigger: 'blur',
},
],
authPerson: [
{
required: true,
message: '授权人不能为空',
trigger: 'blur',
},
],
phone: [
{
required: true,
message: '联系电话不能为空',
trigger: 'blur',
},
],
},
peopleOpen: false,
noticeOpen: false,
nform: {
notice: '',
},
nrules: {
notice: [
{
required: true,
message: '通知内容不能为空',
trigger: 'blur',
},
],
},
deptName: undefined,
}
},
computed: {
//1
uploadDisabled() {
return this.checkUrlList.length > 2
console.log(this.checkUrlList.length > 2);
},
},
created() {
this.getList()
this.getUnitList()
this.getProjectList()
},
methods: {
// ,getUnitList, getProjectList
getUnitList() {
getUnitList({}).then((response) => {
this.unitList = response.data
})
},
getProjectList() {
getProjectList({}).then((response) => {
this.projectList = response.data
})
},
/** 查询字典类型列表 */
getList() {
this.loading = true
getAgreementList(this.queryParams).then((response) => {
this.agreementList = response.rows
this.agreementList.forEach((item) => {
if (item.fileUrl) {
item.imgUrlList = item.fileUrl.split(',')
item.imgNameList = item.fileName.split(',')
}
})
this.total = response.total
this.loading = false
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
agreementId: undefined,
dictName: undefined,
dictType: undefined,
fileUrl: undefined,
fileName: undefined,
remark: undefined,
}
this.fileList = []
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
// this.dateRange = []
this.resetForm('queryForm')
this.queryParams.pageNum = 1
this.queryParams.pageSize = 10
this.getList()
// this.handleQuery()
},
handleNotice() {
this.noticeOpen = true
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.fileList = []
this.checkUrlList = []
this.checkUrlNameList = []
this.open = true
this.title = '新建协议'
},
//
imgUpLoad(param, name, index) {
// console.log(param,'image')
// param.type = 'ma'
param.taskType ='10'
imgUpLoad(param)
.then((res) => {
if (res.code == 200) {
this.checkUrlList.push(res.data.fileUrl)
this.checkUrlNameList.push(res.data.fileName)
} else {
// this.$msgError(res.msg)
this.$modal.msgError(res.msg)
}
})
.catch((error) => {
// this.$msgError(error)
this.$modal.msgError(error)
})
},
handleAvatarSuccess(res, file) {
console.log('success')
},
handleExceed(files, fileList) {
this.$message.warning('最多只可以上传3张图片')
},
handleRemove(file, fileList) {
let sum = 0
this.checkUrlNameList.forEach((item, index) => {
if (item == file.name) {
sum = index
}
})
this.checkUrlNameList.splice(sum, 1)
this.checkUrlList.splice(sum, 1)
},
//
handlePictureCardPreview(file) {
console.log(file)
this.dialogImageUrl = file.url
this.dialogVisible = true
},
//
openImg(url) {
// this.dialogImageUrl = this.uploadUrl + url
this.dialogImageUrl = url
this.dialogVisible = true
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.agreementId)
console.log(this.ids)
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
// const agreementId = row.agreementId
// let param = {
// agreementId: row.agreementId,
// }
var id = row.agreementId;
getAgreementInfoId(id).then((response) => {
this.form = response.data
if (response.data.leaseDay == null) {
this.form.leaseDay = undefined
}
this.fileList = []
this.checkUrlList = []
this.checkUrlNameList = []
if (
response.data &&
typeof response.data.fileUrl === 'string' &&
typeof response.data.fileName === 'string'
) {
try {
if (response.data.fileUrl != '') {
let [urlArr, nameArr] = [
response.data.fileUrl,
response.data.fileName,
].map((str) => str.split(','))
if (urlArr.length !== nameArr.length) {
return
}
console.log(urlArr)
let fileList = urlArr.map((url, i) => ({
name: nameArr[i],
url: `${this.uploadUrl}${url}`,
}))
console.log(fileList)
this.fileList = fileList
this.checkUrlList = urlArr
this.checkUrlNameList = nameArr
}
} catch (error) {
console.error('处理合同照片时发生错误:', error)
}
}
this.open = true
this.title = '修改协议'
})
},
/** 提交按钮 */
submitForm: function () {
this.form.fileUrl = this.checkUrlList.join(',')
this.form.fileName = this.checkUrlNameList.join(',')
this.form.projectId = this.form.proId;
this.$refs['form'].validate((valid) => {
if (valid) {
if (this.form.agreementId != undefined) {
updateAgreement(this.form).then((response) => {
this.$modal.msgSuccess('修改成功')
this.open = false
this.getList()
})
} else {
addAgreement(this.form).then((response) => {
this.$modal.msgSuccess('新增成功')
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
// const agreementId = row.agreementId;
// let param = {
// agreementId: row.agreementId + '',
// }
var id = row.agreementId + '';
this.$modal
.confirm('是否确认删除所选择的数据项?')
.then(function () {
return removeAgreement(id)
})
.then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
})
.catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
if (this.ids.length) {
this.download(
'material/agreementInfo/export',
{
dataCondition: this.ids,
},
`协议_${new Date().getTime()}.xlsx`,
)
} else {
this.$modal.msgWarning('请选择要导出的数据')
}
},
},
}
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
//css
::v-deep.disabled {
.el-upload--picture-card {
display: none;
}
}
</style>