2024-04-29 15:57:52 +08:00

470 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<!-- 检查部位 -->
<vue-scroll style="height: 100%">
<div class="checkPoint">
<el-button type="primary" size="medium" @click="newRootNode">新增区域</el-button>
<el-table
:data="tableData"
style="width: 100%; margin: 20px 0"
row-key="id"
default-expand-all
:tree-props="{ children: 'children' }"
class="tables"
>
<el-table-column
prop="regionName"
:label="$t('message.quality.regionName')"
>
</el-table-column>
<el-table-column
align="center"
prop="regionCode"
:label="$t('message.quality.coding')"
>
</el-table-column>
<el-table-column
align="center"
prop="regionCode"
:label="$t('message.quality.unit')"
>
</el-table-column>
<el-table-column
align="center"
prop="dutyName"
:label="$t('message.quality.rectificationPeople')"
>
</el-table-column>
<!-- <el-table-column
align="center"
prop="intendanceNames"
:label="$t('message.quality.notifier')"
>
</el-table-column> -->
<el-table-column prop="remark" :label="$t('message.quality.explain')" align="center"
>
</el-table-column>
<el-table-column
prop="remark"
:label="$t('message.quality.operation')"
align="center"
>
<template slot-scope="scope">
<div class="flex2 edit">
<img src="@/assets/images/icon-edit.png" />
<el-button type="text" @click="editBtn(scope.row)">{{
$t('message.quality.compile')
}}</el-button>
<el-button type="text" @click="newJuniorBtn(scope.row)">{{
$t('message.quality.newJunior')
}}</el-button>
<el-button type="text" @click="deleteBtn(scope.row)">{{
$t('message.quality.delete')
}}</el-button>
</div>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog
:modal-append-to-body="false"
@close="close"
:title="title"
:visible.sync="editDialog"
width="666px"
>
<div class="dialog_content">
<el-form ref="form" :model="form" label-width="80px" size="medium">
<el-form-item
:label="$t('message.quality.regionName')"
prop="regionName"
:rules="[
{
required: true,
message:
$t('message.quality.pleaseEnter') +
$t('message.quality.regionName'),
trigger: 'blur'
}
]"
>
<el-input
placeholder="请输入区域名称"
v-model="form.regionName"
:disabled="dialogType == 2"
></el-input>
</el-form-item>
<!-- 责任单位 start -->
<el-form-item :label="$t('message.quality.personWork')">
<el-select
v-model="form.dutyId"
filterable
multiple
@change="changeDutyId"
:placeholder="$t('message.quality.pleaseSelect')"
style="width: 100%"
prop="dutyId"
clearable
>
<el-option
v-for="item in enterpriseInfoList"
:key="item.id"
:label="item.enterpriseName"
:value="item.id"
>
<span style="float: left">{{ item.enterpriseName }}</span>
</el-option>
</el-select>
</el-form-item>
<!-- 责任单位 end -->
<!-- 责任人 start -->
<el-form-item :label="$t('message.quality.personLiable')">
<el-select
v-model="form.personId"
filterable
multiple
@change="changeDutyId"
:placeholder="$t('message.quality.pleaseSelect')"
style="width: 100%"
prop="personId"
clearable
>
<el-option
v-for="item in notifierOrPeopleList"
:key="item.userId"
:label="item.notifierOrPeopleList"
:value="item.userId"
>
<span style="float: left">{{ item.realName }}</span>
</el-option>
</el-select>
</el-form-item>
<!-- 责任人 end -->
<!-- <el-form-item :label="$t('message.quality.notifier')">
<el-select
v-model="form.intendanceIds"
filterable
@change="changeIntendanceIds"
multiple
prop="intendanceIds"
:placeholder="$t('message.quality.pleaseSelect')"
style="width: 100%"
>
<el-option
v-for="item in notifierOrPeopleList"
:key="item.userId"
:label="item.workerName"
:value="item.userId"
>
<span style="float: left">{{ item.realName }}</span> -->
<!-- <span-->
<!-- style="-->
<!-- float: right;-->
<!-- color: #aaaaaa;-->
<!-- font-size: 13px;-->
<!-- margin-right: 24px;-->
<!-- "-->
<!-- >{{ $t('message.quality.phoneNumber') }}{{-->
<!-- item.userTel-->
<!-- ? item.userTel.substring(0, 3) +-->
<!-- "****" +-->
<!-- item.userTel.substring(7)-->
<!-- : ""-->
<!-- }}</span-->
<!-- >-->
<!-- </el-option>
</el-select>
</el-form-item> -->
<el-form-item :label="$t('message.quality.explain')">
<el-input
prop="remark"
v-model="form.remark"
type="textarea"
></el-input>
</el-form-item>
<el-form-item>
<!-- <el-checkbox-group v-model="showList">
<el-checkbox :label="1" name="type"
>{{ $t("message.quality.rectificationPeople")
}}{{ $t("message.quality.copyToSubordinate") }}</el-checkbox
>
<el-checkbox :label="2" name="type"
>{{ $t("message.quality.notifier")
}}{{ $t("message.quality.copyToSubordinate") }}</el-checkbox
>
</el-checkbox-group> -->
</el-form-item>
</el-form>
</div>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="editDialog = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t('message.alarmValueSet.cancel') }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit('form')"
size="medium"
>{{ $t('message.alarmValueSet.save') }}
</el-button>
</div>
</el-dialog>
</vue-scroll>
</template>
<script>
import {
addQualityRegionApi,
getQualityRegionListApi,
deleteQualityRegionListApi,
editQualityRegionListApi
} from '@/assets/js/api/quality.js'
import { getProjectChilderSystemUserListApi,getEnterpriseInfoListApi } from '@/assets/js/api/configManage.js'
export default {
data() {
return {
title: this.$t('message.quality.NewRootNode'),
dialogType: 1,
projectSn: '',
notifierOrPeopleList: [],
enterpriseInfoList:[],
value: '',
tableData: [],
editDialog: false,
form: {
regionName: '',
dutyId: '',
personId: [],
intendanceIds: [],
intendanceNames: '',
remark: '',
enterpriseName:''
},
showList: []
}
},
created() {
this.projectSn = this.$store.state.projectSn
this.getQualityRegionList()
},
methods: {
// 获取列表信息
getQualityRegionList() {
let data = {
projectSn: this.projectSn
}
getQualityRegionListApi(data).then((res) => {
console.log(res);
if (res.code == 200) {
this.tableData = res.result
}
})
},
//新增根节点按钮
newRootNode() {
this.form = {
regionName: '',
dutyId: '',
intendanceIds: [],
intendanceNames: '',
remark: '',
}
this.editDialog = true
this.title ='新增区域'
this.dialogType = 1
this.getNotifierOrPeopleList()
},
//切换 整改人
changeDutyId(value) {
for (let i = 0; i < this.notifierOrPeopleList.length; i++) {
if (value == this.notifierOrPeopleList[i].userId) {
this.form.dutyName = this.notifierOrPeopleList[i].workerName
}
}
},
//切换 通知人
changeIntendanceIds(value) {
let arrList = this.notifierOrPeopleList
let nameArr = []
for (let i = 0; i < value.length; i++) {
for (let j = 0; j < arrList.length; j++) {
if (arrList[j].userId == value[i]) {
nameArr.push(arrList[j].workerName)
}
}
}
this.form.intendanceNames = nameArr.length > 0 ? nameArr.join(',') : ''
},
//编辑按钮
editBtn(value) {
if(value.intendanceIds == '' || value.intendanceIds == null) {
this.form.intendanceIds = null
}else {
this.form.intendanceIds = value.intendanceIds.split(',')
}
console.log('编辑',value)
this.form.regionName = value.regionName
this.form.dutyId = value.dutyId ? value.dutyId : ''
this.form.remark = value.remark
this.form.id = value.id
this.title = '编辑区域'
this.dialogType = 2
this.getNotifierOrPeopleList()
this.editDialog = true
},
//新增下级---按钮
newJuniorBtn(value) {
console.log(value)
this.form = {
regionName: '',
dutyId: '',
intendanceIds: [],
intendanceNames: '',
remark: '',
}
this.form.parentRegion = value.id
// console.log(this.form)
this.editDialog = true
this.title = this.$t('message.quality.newJunior')
this.dialogType = 3
this.getNotifierOrPeopleList()
},
//获取 整改人 通知人下拉列表
getNotifierOrPeopleList() {
let data = {
projectSn: this.projectSn,
enterpriseId: this.enterpriseId
}
getProjectChilderSystemUserListApi(data).then((res) => {
console.log(res);
if (res.code == 200) {
console.log('------整改人', res)
console.log('------form', this.form)
this.notifierOrPeopleList = res.result
}
})
getEnterpriseInfoListApi({projectSn: this.projectSn}).then(res=>{
console.log(res);
if(res.code==200){
this.enterpriseInfoList = res.result
}
})
},
//弹窗---保存按钮
submit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let data = {
dutyId: this.form.dutyId,
dutyName: this.form.dutyName,
// intendanceIds: this.form.intendanceIds.join(','),
intendanceNames: this.form.intendanceNames,
regionName: this.form.regionName,
remark: this.form.remark,
projectSn: this.projectSn,
parentRegion: this.form.parentRegion
}
if (this.dialogType == 1) {
addQualityRegionApi(data).then((res) => {
// console.log(res);
if (res.code == 200) {
this.$message.success(this.$t('message.quality.newSuccess'))
this.editDialog = false
this.getQualityRegionList()
}
})
} else if (this.dialogType == 2) {
data.id = this.form.id
editQualityRegionListApi(data).then((res) => {
if (res.code == 200) {
this.editDialog = false
this.$message.success(res.message)
this.getQualityRegionList()
}
})
} else if (this.dialogType == 3) {
data.parentRegion = this.form.parentRegion
addQualityRegionApi(data).then((res) => {
if (res.code == 200) {
this.$message.success(this.$t('message.quality.newSuccess'))
this.editDialog = false
this.getQualityRegionList()
}
})
}
} else {
return false
}
})
},
//删除 按钮
deleteBtn(value) {
this.$confirm(
this.$t('message.quality.deleteHint'),
this.$t('message.quality.hint'),
{
confirmButtonText: this.$t('message.quality.confirm'),
cancelButtonText: this.$t('message.quality.cancel'),
type: 'warning'
}
)
.then(() => {
let data = {
id: value.id
}
deleteQualityRegionListApi(data).then((res) => {
if (res.code == 200) {
this.$message({
type: 'success',
message: this.$t('message.quality.successfullyDelete') + '!'
})
this.getQualityRegionList()
}
})
})
.catch(() => {})
},
close() {
this.$nextTick(() => {
this.$refs.form.clearValidate()
})
}
}
}
</script>
<style lang="less" scoped>
.flex {
display: flex;
}
.flex2 {
display: flex;
align-items: center;
}
.checkPoint {
padding: 16px 20px;
box-sizing: border-box;
.edit {
width: 100%;
justify-content: center;
cursor: pointer;
img {
margin-right: 5px;
}
}
}
</style>