新需求修改

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 <el-table-column
align="center" align="center"
label="操作" label="操作"
:min-width="dynamicWidth" :width="dynamicWidth"
:show-overflow-tooltip="false" :show-overflow-tooltip="false"
class-name="operation-column"
v-if="handleShow && showOperation" v-if="handleShow && showOperation"
> >
<template slot-scope="{ row }"> <template slot-scope="{ row }">
@ -431,9 +432,17 @@ export default {
this.total = res.total this.total = res.total
} }
this.loading = false this.loading = false
// DOM
this.$nextTick(() => {
this.dynamicWidth = this.getOperatorWidth()
})
} catch (error) { } catch (error) {
this.loading = false this.loading = false
this.tableList = this.testTableList this.tableList = this.testTableList
// 使
this.$nextTick(() => {
this.dynamicWidth = this.getOperatorWidth()
})
} }
}, },
/** 查询按钮 */ /** 查询按钮 */
@ -513,25 +522,48 @@ export default {
document.getElementsByClassName('optionDivRef') document.getElementsByClassName('optionDivRef')
// //
let width = 100 let maxWidth = 100
//
let paddingSpacing = 0
//
let buttonCount = 0
if (operatorColumn.length > 0) { if (operatorColumn.length > 0) {
Array.prototype.forEach.call(operatorColumn, function (item) { Array.prototype.forEach.call(operatorColumn, function (item) {
//
width = width > item.offsetWidth ? width : item.offsetWidth
const buttons = item.getElementsByClassName('el-button') const buttons = item.getElementsByClassName('el-button')
buttonCount = buttons.length
buttonCount = if (buttons.length > 0) {
buttonCount > buttons.length // 1使
? buttonCount const firstButton = buttons[0]
: buttons.length 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) { 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 { .query-form {
position: relative; position: relative;
} }

View File

@ -53,6 +53,15 @@
</template> </template>
<template slot="handle" slot-scope="{ data }"> <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 <el-button
plain plain
size="mini" size="mini"
@ -86,7 +95,10 @@
<template slot="outerContent"> <template slot="outerContent">
<!-- 新增或修改表单 --> <!-- 新增或修改表单 -->
<template <template
v-if="dialogConfig.outerTitle !== '子项目(标段工程)概况'" v-if="
dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
dialogConfig.outerTitle !== '历史记录'
"
> >
<el-form <el-form
label-width="100px" label-width="100px"
@ -155,6 +167,30 @@
</el-row> </el-row>
</template> </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> <template v-else>
<el-table :data="lotProjectList"> <el-table :data="lotProjectList">
@ -239,6 +275,7 @@ export default {
subIsDisabled: false, // subIsDisabled: false, //
lotProjectList: [], // () lotProjectList: [], // ()
branchCompanyOptions: [], // branchCompanyOptions: [], //
historyRecordList: [], //
// //
addOrEditForm: { addOrEditForm: {
subComId: '', // id subComId: '', // id
@ -296,6 +333,9 @@ export default {
// //
onHandleAddOrEditAllProject(type, data) { onHandleAddOrEditAllProject(type, data) {
this.dialogConfig.outerWidth = '40%'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.getCurrentCompanyIdAndLevel() // id this.getCurrentCompanyIdAndLevel() // id
this.dialogConfig.outerTitle = this.dialogConfig.outerTitle =
type === 1 ? '新增总工程' : '修改总工程' type === 1 ? '新增总工程' : '修改总工程'
@ -390,7 +430,10 @@ export default {
// //
handleCloseDialogOuter() { handleCloseDialogOuter() {
if (this.dialogConfig.outerTitle !== '子项目(标段工程)概况') { if (
this.dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
this.dialogConfig.outerTitle !== '历史记录'
) {
this.$refs.addOrEditFormRef.resetFields() this.$refs.addOrEditFormRef.resetFields()
this.addOrEditForm = { this.addOrEditForm = {
id: '', id: '',
@ -440,6 +483,16 @@ export default {
this.subIsDisabled = companyLevel === '分公司级' 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> </script>

View File

@ -53,6 +53,15 @@
</template> </template>
<template slot="handle" slot-scope="{ data }"> <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 <el-button
plain plain
size="mini" size="mini"
@ -86,7 +95,10 @@
<template slot="outerContent"> <template slot="outerContent">
<!-- 新增或修改表单 --> <!-- 新增或修改表单 -->
<template <template
v-if="dialogConfig.outerTitle !== '子项目(标段工程)概况'" v-if="
dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
dialogConfig.outerTitle !== '历史记录'
"
> >
<el-form <el-form
label-width="100px" label-width="100px"
@ -157,6 +169,30 @@
</el-row> </el-row>
</template> </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> <template v-else>
<el-table :data="lotProjectList"> <el-table :data="lotProjectList">
@ -239,6 +275,7 @@ export default {
getDeptProjectListAPI, getDeptProjectListAPI,
subIsDisabled: false, // subIsDisabled: false, //
lotProjectList: [], // () lotProjectList: [], // ()
historyRecordList: [], //
branchCompanyOptions: [], // branchCompanyOptions: [], //
// //
@ -377,7 +414,10 @@ export default {
// //
handleCloseDialogOuter() { handleCloseDialogOuter() {
if (this.dialogConfig.outerTitle !== '子项目(标段工程)概况') { if (
this.dialogConfig.outerTitle !== '子项目(标段工程)概况' &&
this.dialogConfig.outerTitle !== '历史记录'
) {
this.addOrEditForm = { this.addOrEditForm = {
subComId: '', subComId: '',
orgName: '', orgName: '',
@ -422,6 +462,16 @@ export default {
this.subIsDisabled = companyLevel === '分公司级' 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() { async created() {

View File

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

View File

@ -46,6 +46,15 @@
</template> </template>
<template slot="handle" slot-scope="{ data }"> <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 <el-button
plain plain
size="mini" size="mini"
@ -84,12 +93,37 @@
@closeDialogOuter="handleCloseDialogOuter" @closeDialogOuter="handleCloseDialogOuter"
> >
<template slot="outerContent"> <template slot="outerContent">
<AddOrEditForm <template v-if="dialogConfig.outerTitle !== '历史记录'">
:formType="formType" <AddOrEditForm
:editFormData="editFormData" :formType="formType"
ref="addOrEditLotProjectFormRef" :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-row class="dialog-footer-btn">
<el-button size="medium" @click="handleCloseDialogOuter"> <el-button size="medium" @click="handleCloseDialogOuter">
取消 取消
@ -143,6 +177,7 @@ export default {
dialogConfig, dialogConfig,
editFormData: {}, // editFormData: {}, //
getLotLotProjectListAPI, // getLotLotProjectListAPI, //
historyRecordList: [], //
} }
}, },
methods: { methods: {
@ -160,6 +195,7 @@ export default {
// //
onHandleAddOrEditLotProject(type, data, title) { onHandleAddOrEditLotProject(type, data, title) {
this.formType = type this.formType = type
this.dialogConfig.outerWidth = '70%'
this.dialogConfig.outerTitle = `${title}标段工程` this.dialogConfig.outerTitle = `${title}标段工程`
if (type === 2) { if (type === 2) {
Object.assign(this.editFormData, data) Object.assign(this.editFormData, data)
@ -303,9 +339,20 @@ export default {
// //
handleCloseDialogOuter() { handleCloseDialogOuter() {
this.$refs.addOrEditLotProjectFormRef.resetForm() if (this.dialogConfig.outerTitle !== '历史记录') {
this.$refs.addOrEditLotProjectFormRef.resetForm()
}
this.dialogConfig.outerVisible = false 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() { async created() {

View File

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

View File

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