新需求修改

This commit is contained in:
BianLzhaoMin 2025-12-29 10:57:00 +08:00
parent ad9123258f
commit 81b98899d7
7 changed files with 359 additions and 83 deletions

View File

@ -183,8 +183,9 @@
<el-table-column
align="center"
label="操作"
:min-width="dynamicWidth"
:width="dynamicWidth"
:show-overflow-tooltip="false"
class-name="operation-column"
v-if="handleShow && showOperation"
>
<template slot-scope="{ row }">
@ -431,9 +432,17 @@ export default {
this.total = res.total
}
this.loading = false
// DOM
this.$nextTick(() => {
this.dynamicWidth = this.getOperatorWidth()
})
} catch (error) {
this.loading = false
this.tableList = this.testTableList
// 使
this.$nextTick(() => {
this.dynamicWidth = this.getOperatorWidth()
})
}
},
/** 查询按钮 */
@ -513,25 +522,48 @@ export default {
document.getElementsByClassName('optionDivRef')
//
let width = 100
//
let paddingSpacing = 0
//
let buttonCount = 0
let maxWidth = 100
if (operatorColumn.length > 0) {
Array.prototype.forEach.call(operatorColumn, function (item) {
//
width = width > item.offsetWidth ? width : item.offsetWidth
const buttons = item.getElementsByClassName('el-button')
buttonCount = buttons.length
buttonCount =
buttonCount > buttons.length
? buttonCount
: buttons.length
if (buttons.length > 0) {
// 1使
const firstButton = buttons[0]
const lastButton = buttons[buttons.length - 1]
const firstRect = firstButton.getBoundingClientRect()
const lastRect = lastButton.getBoundingClientRect()
//
const buttonGroupWidth = lastRect.right - firstRect.left
// 2使 scrollWidth
const containerWidth = item.scrollWidth || 0
//
const contentWidth = Math.max(
buttonGroupWidth,
containerWidth,
)
maxWidth = Math.max(maxWidth, contentWidth)
} else {
// 使 scrollWidth
const contentWidth = item.scrollWidth || 0
if (contentWidth > 0) {
maxWidth = Math.max(maxWidth, contentWidth)
}
}
})
return width + 10
// CSS padding 8px16px
// padding使
return Math.ceil(maxWidth) + 16
}
return maxWidth
},
queryTableList(params) {
@ -623,6 +655,16 @@ export default {
}
}
// padding
::v-deep .el-table {
.operation-column {
.cell {
padding-left: 8px !important;
padding-right: 8px !important;
}
}
}
.query-form {
position: relative;
}

View File

@ -53,6 +53,15 @@
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
plain
size="mini"
type="primary"
icon="el-icon-document-copy"
@click="onHandleHistoryRecord(data)"
>
历史记录
</el-button>
<el-button
plain
size="mini"
@ -86,7 +95,10 @@
<template slot="outerContent">
<!-- 新增或修改表单 -->
<template
v-if="dialogConfig.outerTitle !== '子项目(标段工程)概况'"
v-if="
dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
dialogConfig.outerTitle !== '历史记录'
"
>
<el-form
label-width="100px"
@ -155,6 +167,30 @@
</el-row>
</template>
<template v-else-if="dialogConfig.outerTitle === '历史记录'">
<el-table :data="historyRecordList" style="width: 100%">
<el-table-column label="序号" type="index" width="80" />
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改人"
/>
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改内容"
/>
<el-table-column
show-overflow-tooltip
align="center"
prop="createTime"
label="创建时间"
/>
</el-table>
</template>
<!-- 子项目(标段工程)概况 -->
<template v-else>
<el-table :data="lotProjectList">
@ -239,6 +275,7 @@ export default {
subIsDisabled: false, //
lotProjectList: [], // ()
branchCompanyOptions: [], //
historyRecordList: [], //
//
addOrEditForm: {
subComId: '', // id
@ -296,6 +333,9 @@ export default {
//
onHandleAddOrEditAllProject(type, data) {
this.dialogConfig.outerWidth = '40%'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.getCurrentCompanyIdAndLevel() // id
this.dialogConfig.outerTitle =
type === 1 ? '新增总工程' : '修改总工程'
@ -390,7 +430,10 @@ export default {
//
handleCloseDialogOuter() {
if (this.dialogConfig.outerTitle !== '子项目(标段工程)概况') {
if (
this.dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
this.dialogConfig.outerTitle !== '历史记录'
) {
this.$refs.addOrEditFormRef.resetFields()
this.addOrEditForm = {
id: '',
@ -440,6 +483,16 @@ export default {
this.subIsDisabled = companyLevel === '分公司级'
},
//
onHandleHistoryRecord(data) {
console.log(data)
this.dialogConfig.outerWidth = '60%'
this.dialogConfig.minHeight = '60vh'
this.dialogConfig.maxHeight = '90vh'
this.dialogConfig.outerTitle = '历史记录'
this.dialogConfig.outerVisible = true
},
},
}
</script>

View File

@ -53,6 +53,15 @@
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
plain
size="mini"
type="primary"
icon="el-icon-document-copy"
@click="onHandleHistoryRecord(data)"
>
历史记录
</el-button>
<el-button
plain
size="mini"
@ -86,7 +95,10 @@
<template slot="outerContent">
<!-- 新增或修改表单 -->
<template
v-if="dialogConfig.outerTitle !== '子项目(标段工程)概况'"
v-if="
dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
dialogConfig.outerTitle !== '历史记录'
"
>
<el-form
label-width="100px"
@ -157,6 +169,30 @@
</el-row>
</template>
<template v-else-if="dialogConfig.outerTitle === '历史记录'">
<el-table :data="historyRecordList" style="width: 100%">
<el-table-column label="序号" type="index" width="80" />
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改人"
/>
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改内容"
/>
<el-table-column
show-overflow-tooltip
align="center"
prop="createTime"
label="创建时间"
/>
</el-table>
</template>
<!-- 子项目(标段工程)概况 -->
<template v-else>
<el-table :data="lotProjectList">
@ -239,6 +275,7 @@ export default {
getDeptProjectListAPI,
subIsDisabled: false, //
lotProjectList: [], // ()
historyRecordList: [], //
branchCompanyOptions: [], //
//
@ -377,7 +414,10 @@ export default {
//
handleCloseDialogOuter() {
if (this.dialogConfig.outerTitle !== '子项目(标段工程)概况') {
if (
this.dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
this.dialogConfig.outerTitle !== '历史记录'
) {
this.addOrEditForm = {
subComId: '',
orgName: '',
@ -422,6 +462,16 @@ export default {
this.subIsDisabled = companyLevel === '分公司级'
},
//
onHandleHistoryRecord(data) {
console.log(data)
this.dialogConfig.outerWidth = '60%'
this.dialogConfig.minHeight = '60vh'
this.dialogConfig.maxHeight = '90vh'
this.dialogConfig.outerTitle = '历史记录'
this.dialogConfig.outerVisible = true
},
},
async created() {

View File

@ -126,11 +126,13 @@
style="width: 100%"
placeholder="请选择"
v-model="addOrEditForm.isShanghai"
@change="onHandleChangeIsShanghai"
>
<el-option
:key="item.value"
:label="item.label"
:value="item.value"
:value="item.value * 1"
:disabled="isOptionDisabled(item.value)"
v-for="item in dict.type.project_action"
/>
</el-select>
@ -286,6 +288,8 @@ export default {
simpleName: '', //
},
isShanghaiOptions: [],
//
originalIsShanghai: null,
addOrEditFormRules: {
mainProId: [
{
@ -478,6 +482,25 @@ export default {
this.addOrEditForm.subComId = node.parentId
this.addOrEditForm.orgId = node.id
},
//
onHandleChangeIsShanghai(val) {
console.log(val)
},
//
isOptionDisabled(optionValue) {
if (this.formType === 1) {
return false
}
const originalValue = Number(this.originalIsShanghai)
const currentOptionValue = Number(optionValue)
if (originalValue === 1 || originalValue === 2) {
return currentOptionValue === 3
}
return false
},
},
watch: {
@ -502,6 +525,9 @@ export default {
simpleName,
} = newVal
//
this.originalIsShanghai = isShanghai
this.addOrEditForm = {
id,
lon,
@ -519,6 +545,9 @@ export default {
isShanghai,
simpleName,
}
} else {
//
this.originalIsShanghai = null
}
},
deep: true,

View File

@ -46,6 +46,15 @@
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
plain
size="mini"
type="primary"
icon="el-icon-document-copy"
@click="onHandleHistoryRecord(data)"
>
历史记录
</el-button>
<el-button
plain
size="mini"
@ -84,12 +93,37 @@
@closeDialogOuter="handleCloseDialogOuter"
>
<template slot="outerContent">
<AddOrEditForm
:formType="formType"
:editFormData="editFormData"
ref="addOrEditLotProjectFormRef"
/>
<template v-if="dialogConfig.outerTitle !== '历史记录'">
<AddOrEditForm
:formType="formType"
:editFormData="editFormData"
ref="addOrEditLotProjectFormRef"
/>
</template>
<template v-else-if="dialogConfig.outerTitle === '历史记录'">
<el-table :data="historyRecordList" style="width: 100%">
<el-table-column label="序号" type="index" width="80" />
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改人"
/>
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改内容"
/>
<el-table-column
show-overflow-tooltip
align="center"
prop="createTime"
label="创建时间"
/>
</el-table>
</template>
<el-row class="dialog-footer-btn">
<el-button size="medium" @click="handleCloseDialogOuter">
取消
@ -143,6 +177,7 @@ export default {
dialogConfig,
editFormData: {}, //
getLotLotProjectListAPI, //
historyRecordList: [], //
}
},
methods: {
@ -160,6 +195,7 @@ export default {
//
onHandleAddOrEditLotProject(type, data, title) {
this.formType = type
this.dialogConfig.outerWidth = '70%'
this.dialogConfig.outerTitle = `${title}标段工程`
if (type === 2) {
Object.assign(this.editFormData, data)
@ -303,9 +339,20 @@ export default {
//
handleCloseDialogOuter() {
this.$refs.addOrEditLotProjectFormRef.resetForm()
if (this.dialogConfig.outerTitle !== '历史记录') {
this.$refs.addOrEditLotProjectFormRef.resetForm()
}
this.dialogConfig.outerVisible = false
},
//
onHandleHistoryRecord(data) {
console.log(data)
this.dialogConfig.outerTitle = '历史记录'
this.dialogConfig.outerWidth = '60%'
this.dialogConfig.minHeight = '60vh'
this.dialogConfig.maxHeight = '90vh'
this.dialogConfig.outerVisible = true
},
},
async created() {

View File

@ -268,7 +268,6 @@
placeholder="请选择工种"
@change="onChangePostId"
v-model="keyInfoForm.postId"
:disabled="formType === 2 && einStatus == 1"
>
<el-option
:key="item.value"

View File

@ -35,6 +35,15 @@
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
plain
size="mini"
type="primary"
icon="el-icon-document-copy"
@click="onHandleHistoryRecord(data)"
>
历史记录
</el-button>
<el-button
plain
size="mini"
@ -62,66 +71,101 @@
@closeDialogOuter="handleCloseDialogOuter"
>
<template slot="outerContent">
<el-form
label-width="140px"
ref="addOrEditFormRef"
:model="addOrEditForm"
:rules="addOrEditFormRules"
<template
v-if="
dialogConfig.outerTitle === '新增' ||
dialogConfig.outerTitle === '修改'
"
>
<el-form-item label="所属公司" prop="comId">
<el-select
clearable
filterable
style="width: 100%"
placeholder="请选择所属公司"
v-model="addOrEditForm.comId"
:disabled="dialogConfig.outerTitle === '修改'"
>
<el-option
:key="item.id"
:value="item.id"
:label="item.companyName"
v-for="item in companySelectList"
<el-form
label-width="140px"
ref="addOrEditFormRef"
:model="addOrEditForm"
:rules="addOrEditFormRules"
>
<el-form-item label="所属公司" prop="comId">
<el-select
clearable
filterable
style="width: 100%"
placeholder="请选择所属公司"
v-model="addOrEditForm.comId"
:disabled="dialogConfig.outerTitle === '修改'"
>
<el-option
:key="item.id"
:value="item.id"
:label="item.companyName"
v-for="item in companySelectList"
/>
</el-select>
</el-form-item>
<el-form-item label="分公司名称" prop="subCompanyName">
<el-input
clearable
maxlength="60"
show-word-limit
placeholder="请输入分公司名称"
v-model="addOrEditForm.subCompanyName"
/>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item label="分公司名称" prop="subCompanyName">
<el-input
clearable
maxlength="60"
show-word-limit
placeholder="请输入分公司名称"
v-model="addOrEditForm.subCompanyName"
<el-form-item label="状态" prop="isEnable">
<el-radio-group
size="mini"
v-model="addOrEditForm.isEnable"
>
<el-radio-button :label="1">
启用
</el-radio-button>
<el-radio-button :label="0">
禁用
</el-radio-button>
</el-radio-group>
</el-form-item>
<el-row class="dialog-footer-btn">
<el-button
size="medium"
@click="handleCloseDialogOuter"
>
取消
</el-button>
<el-button
size="medium"
type="primary"
@click="onHandleConfirmAddOrEdit"
>
确定
</el-button>
</el-row>
</el-form>
</template>
<template v-if="dialogConfig.outerTitle === '历史记录'">
<el-table :data="historyRecordList" style="width: 100%">
<el-table-column label="序号" type="index" width="80" />
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改人"
/>
</el-form-item>
<el-form-item label="状态" prop="isEnable">
<el-radio-group
size="mini"
v-model="addOrEditForm.isEnable"
>
<el-radio-button :label="1"> 启用 </el-radio-button>
<el-radio-button :label="0"> 禁用 </el-radio-button>
</el-radio-group>
</el-form-item>
<el-row class="dialog-footer-btn">
<el-button
size="medium"
@click="handleCloseDialogOuter"
>
取消
</el-button>
<el-button
size="medium"
type="primary"
@click="onHandleConfirmAddOrEdit"
>
确定
</el-button>
</el-row>
</el-form>
<el-table-column
show-overflow-tooltip
align="center"
prop="name"
label="修改内容"
/>
<el-table-column
show-overflow-tooltip
align="center"
prop="createTime"
label="创建时间"
/>
</el-table>
</template>
</template>
</DialogModel>
</div>
@ -194,7 +238,9 @@ export default {
//
onHandleAddOrEditJobType(type, data) {
this.dialogConfig.outerTitle = type === 1 ? '新增' : '修改'
this.dialogConfig.outerWidth = '40%'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
if (type === 2) {
const { comId, subCompanyName, isEnable, id } = data
this.addOrEditForm = { comId, subCompanyName, isEnable, id }
@ -278,6 +324,16 @@ export default {
}
})
},
//
onHandleHistoryRecord(data) {
console.log(data)
this.dialogConfig.outerWidth = '60%'
this.dialogConfig.minHeight = '60vh'
this.dialogConfig.maxHeight = '90vh'
this.dialogConfig.outerTitle = '历史记录'
this.dialogConfig.outerVisible = true
},
},
created() {