Browse Source

2024.6.27 产品文档收集

java8
yuejiayang 2 years ago
parent
commit
aa77583265
  1. 2
      src/api/base/baseFunction.js
  2. 2
      src/api/base/site.js
  3. 12
      src/api/eam/eam.js
  4. 7
      src/api/eam/eamProject.js
  5. 23
      src/api/eam/eamProofing.js
  6. 19
      src/api/factory/site.js
  7. 5
      src/api/test/fileService.js
  8. 3
      src/main.js
  9. 36
      src/views/common/selectDiv.vue
  10. 356
      src/views/modules/common/uploadFileList1.vue
  11. 1232
      src/views/modules/eam/com_project_proof_record.vue
  12. 920
      src/views/modules/eam/eamBuDocumentListDefinition.vue
  13. 765
      src/views/modules/eam/eamDocumentTypeDefinition.vue
  14. 2323
      src/views/modules/eam/eamProjectInfo.vue
  15. 261
      src/views/modules/sys/user.vue

2
src/api/base/baseFunction.js

@ -3,6 +3,6 @@ import { createAPI } from "@/utils/httpRequest.js";
// export const uploadFileList = (url,data) => createAPI(url, 'post', data)
export const uploadFileList= data => createAPI(`/base/uploadFileList`,'post',data)
export const uploadFileList = (url,data) => createAPI(url,'post',data)

2
src/api/base/site.js

@ -166,3 +166,5 @@ export const updateRevNoData= data => createAPI(`/base/updateRevNoData`,'post',d
export const searchAccessBuList = data => createAPI(`/base/searchAccessBuList`,'post',data)
export const saveAccessBU = data => createAPI(`/base/saveAccessBU`,'post',data)
export const saveBusinessRole = data => createAPI(`/base/saveBusinessRole`,'post',data)

12
src/api/eam/eam.js

@ -170,6 +170,18 @@ export const updateReportResult= data => createAPI(`/pms/eam/updateReportResult`
export const saveEamGzBbData= data => createAPI(`/pms/eam/saveEamGzBbData`,'post',data)
export const getFeedBackId= data => createAPI(`/pms/eam/getFeedBackId`,'post',data)
//---------------文档类型定义-------------------
export const eamDocumentTypeSearch= data => createAPI(`/pms/eam/eamDocumentTypeSearch`,'post',data)
export const eamDocumentTypeSave= data => createAPI(`/pms/eam/eamDocumentTypeSave`,'post',data)
export const eamDocumentTypeEdit= data => createAPI(`/pms/eam/eamDocumentTypeEdit`,'post',data)
export const eamDocumentTypeDelete= data => createAPI(`/pms/eam/eamDocumentTypeDelete`,'post',data)
//---------------BU文档清单定义-------------------
export const eamBuDocumentSearch= data => createAPI(`/pms/eam/eamBuDocumentSearch`,'post',data)
export const eamBuDocumentSave= data => createAPI(`/pms/eam/eamBuDocumentSave`,'post',data)
export const eamBuDocumentEdit= data => createAPI(`/pms/eam/eamBuDocumentEdit`,'post',data)
export const eamBuDocumentDelete= data => createAPI(`/pms/eam/eamBuDocumentDelete`,'post',data)
//---------------快速添加-------------------
export const getItemLists= data => createAPI(`/pms/eam/getItemLists`,'post',data)
export const deleteObjectFile= data => createAPI(`/pms/eam/deleteObjectFile`,'post',data)

7
src/api/eam/eamProject.js

@ -0,0 +1,7 @@
import { createAPI } from "@/utils/httpRequest.js";
//---------------项目信息-------------------
export const eamProjectInfoSearch= data => createAPI(`/pms/eamProject/eamProjectInfoSearch`,'post',data)
export const eamProjectInfoSave= data => createAPI(`/pms/eamProject/eamProjectInfoSave`,'post',data)
export const eamProjectInfoEdit= data => createAPI(`/pms/eamProject/eamProjectInfoEdit`,'post',data)
export const eamProjectInfoDelete= data => createAPI(`/pms/eamProject/eamProjectInfoDelete`,'post',data)
export const saveFormalPartNo= data => createAPI(`/pms/eamProject/saveFormalPartNo`,'post',data)

23
src/api/eam/eamProofing.js

@ -0,0 +1,23 @@
import { createAPI } from "@/utils/httpRequest.js";
//---------------打样信息-------------------
export const proofingInformationSearch= data => createAPI(`plm/proofingInformation/proofingInformationSearch`,'post',data)
//proofingInformationSearchForCheck
export const proofingInformationSearchForCheck= data => createAPI(`/pms/eamProofing/proofingInformationSearchForCheck`,'post',data)
//proofingInformationSave
export const proofingInformationSave= data => createAPI(`/plm/proofingInformation/proofingInformationSave`,'post',data)
//getProofDocument
export const getProofDocument= data => createAPI(`/plm/proofingInformation/getProofDocument`,'post',data)
//getDocumentList
export const getDocumentList= data => createAPI(`/plm/proofingInformation/getDocumentList`,'post',data)
export const deleteDocumentType= data => createAPI(`/plm/proofingInformation/deleteDocumentType`,'post',data)
//proofingDocumentSave
export const proofingDocumentSave= data => createAPI(`/plm/proofingInformation/proofingDocumentSave`,'post',data)
//editProofingRecord
export const editProofingRecord= data => createAPI(`/plm/proofingInformation/editProofingRecord`,'post',data)
//getExtraDocumentList
export const getExtraDocumentList= data => createAPI(`/plm/proofingInformation/getExtraDocumentList`,'post',data)
//proofingDocumentNEW
export const proofingDocumentNEW= data => createAPI(`/plm/proofingInformation/proofingDocumentNEW`,'post',data)

19
src/api/factory/site.js

@ -25,3 +25,22 @@ export const delUserDept = data => createAPI(`/site/delUserDept`,'post',data)
export const getDept = data => createAPI(`/site/getDept`,'post',data)
export const getBusinessRoleList = data => createAPI(`/site/getBusinessRoleList`,'post',data)
export const addUserBusinessRole = data => createAPI(`/site/addUserBusinessRole`,'post',data)
export const delUserBusinessRole = data => createAPI(`/site/delUserBusinessRole`,'post',data)
export const getBusinessRole = data => createAPI(`/site/getBusinessRole`,'post',data)
export const searchBusinessInfo = data => createAPI(`/site/searchBusinessInfo`,'post',data)
export const searchBusinessInfo1 = data => createAPI(`/site/searchBusinessInfo1`,'post',data)
export const searchBusinessInfo2 = data => createAPI(`/site/searchBusinessInfo2`,'post',data)
export const searchBusinessInfo3 = data => createAPI(`/site/searchBusinessInfo3`,'post',data)
export const searchBusinessInfo4 = data => createAPI(`/site/searchBusinessInfo4`,'post',data)
export const searchBusinessInfo5 = data => createAPI(`/site/searchBusinessInfo5`,'post',data)

5
src/api/test/fileService.js

@ -0,0 +1,5 @@
import { createAPI } from "@/utils/httpRequest.js";
export const deleteFileInfo = data => createAPI(`/api/plm/file/deleteFile`,'post',data)
export const saveFileInfo = data => createAPI(`/api/plm/file/saveFileInfo`,'post',data)
export const updateUploadedFlag = data => createAPI(`/api/plm/file/updateUploadedFlag`,'post',data)

3
src/main.js

@ -23,11 +23,14 @@ import { debounce,throttle} from '@/utils/common.js'
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
import selectDiv from '@/views/common/selectDiv.vue'
Vue.prototype.isAuth = isAuth // 权限方法
Vue.component('downloadExcel', JsonExcel)
// Vue.component('pdf', pdf)
Vue.use(VueCookie)
Vue.config.productionTip = false
Vue.component('selectDiv', selectDiv);
Vue.use(Viewer)

36
src/views/common/selectDiv.vue

@ -0,0 +1,36 @@
<template>
<div class="mod-config">
<div style="float:left; margin-top: 10px; font-size: 13px">
<label style="color: gray"></label>
<label style="color: #17B3A3">{{ length1 }}</label>
<label style="color: gray"> </label>
<label style="color: #17B3A3">{{ length2 }}</label>
<label style="color: gray"> </label>
</div>
</div>
</template>
<script>
export default {
name: 'yzz',
data () {
return {
length1:0,
length2:0,
}
},
methods: {
setLengthAll(num){
this.length1=num
},
setLengthselected(num){
this.length2=num
},
},
}
</script>
<style scoped>
</style>

356
src/views/modules/common/uploadFileList1.vue

@ -0,0 +1,356 @@
<script>
import {uploadFileList} from '@/api/base/baseFunction.js';
import {deleteDocumentType,getProofDocument} from "@/api/eam/eamProofing.js";
export default {
name: "uploadFileList",
props: {
uploadDialog: {
type: Boolean,
default: false,
},
title: {
type: String,
default: '',
},
label: {
type: String,
default: '',
},
no: {
type: [String],
default: ''
},
noType:{
type: [String,Number],
default: ''
},
path: {
type: String,
request: true,
},
uploadFlag: {
type: String,
default: '',
},
fileList: {
type: Array,
default:() => [],
},
folder: {
type: String,
default: ''
},
proofingId: {
type: [String,Number],
default: ''
},
projectId: {
type: [String,Number],
default: ''
},
projectDesc: {
type: [String,Number],
default: ''
},
customerNo:{
type: [String,Number],
default: ''
},
customerDesc:{
type: [String,Number],
default: ''
},
testPartNo:{
type: [String,Number],
default: ''
},
partDesc:{
type: [String,Number],
default: ''
},
columnFileContentArray: {
type: Array,
default: () => []
},
proofDocumentList: {
type: Array,
default: () => []
},
site:{
type: [String,Number],
default: ''
},
bu:{
type: [String,Number],
default: ''
},
isEditable: Boolean,
},
data () {
return {
//fileRemark: '',
fileName: '',
//
documentClickRow: {},
bu : this.props.site + "-" + this.props.buNo,
dataListLoading: false,
}
},
methods: {
triggerUpload() {
this.fileName = ''; //
this.$refs.uploadFile.clearFiles(); //
this.$emit("update:fileList", []); //
this.$refs.uploadFile.$el.querySelector('input').click()
},
closeFileUpdate() {
this.$emit('update:uploadDialog', false)
//this.fileRemark = ''
this.$refs.uploadFile.clearFiles()
this.$emit("update:fileList", [])
},
onRemove(file, fileList) {
this.$emit("update:fileList", fileList)
if (fileList.length === 0) {
this.fileName = ''; //
}
},
onChange(file, fileList) {
this.$emit("update:fileList", fileList)
if (fileList.length > 0) {
this.fileName = fileList[0].name; //
}
},
upload() {
if (this.fileList.length === 0) {
this.$message.warning("未选择需要上传的文件")
return;
}
let data = new FormData();
data.append("file", this.fileList[0].raw);
data.append("orderRef1", this.$store.state.user.site);
data.append("orderRef2", this.proofingId);
data.append("orderRef3", this.no);
data.append("orderRef4", this.projectId);
data.append("documentDesc", this.noType);
data.append("createBy", this.$store.state.user.name);
data.append("folder", this.folder);
uploadFileList(this.path, data).then(({data}) => {
if (data && data.code === 0) {
this.$emit('update:uploadDialog', false);
this.$message.success(data.msg);
// this.$emit('get-document-list');
// this.$emit('get-proof-document');
} else {
this.$message.warning(data.msg);
}
}).catch((error) => {
this.$message.error(error);
});
},
changeCurrentRow1 (row, oldRow) {
//
if (row) {
this.documentClickRow = JSON.parse(JSON.stringify(row))
}
},
uploadDocumentClickRow(row) {
this.documentClickRow = JSON.parse(JSON.stringify(row))
},
DeleteDocumentType(row) {
this.$confirm('是否删除该文档清单?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteDocumentType(row).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '删除成功',
type: 'success'
})
//
this.getProofDocument();
// this.$emit('get-document-list');
// this.$emit('get-proof-document');
} else {
this.$message({
message: '删除失败',
type: 'error'
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
getProofDocument() {
let tempData = {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
buNo: this.bu,
proofingId: this.proofingId,
projectId: this.projectId,
projectDesc: this.projectDesc,
customerId: this.customerNo,
customerDesc: this.customerDesc,
testPartNo: this.testPartNo,
partDesc: this.partDesc,
page: 1,
limit: 1000
}
getProofDocument(tempData).then(({data}) => {
if (data && data.code === 0) {
this.proofDocumentList = data.page.list
for (let i = 0; i < this.proofDocumentList.length; i++) {
this.proofDocumentList[i].buNo = this.proofDocumenCurrentRow.buNo
}
console.log(this.proofDocumentList)
if (this.totalPage > 0) {
//
this.$refs.proofDocumentTable.setCurrentRow(this.proofDocumentList[0])
// table
this.refreshCurrentTabTable()
this.proofDocumentClickRow = this.proofDocumentList[0]
}
} else {
this.proofDocumentList = []
}
})
},
// getDocumentList() {
// getDocumentList(this.modalData).then(({data}) => {
// if (data && data.code === 0) {
// this.documentManifestDefinitionList = data.page.list
// } else {
// this.documentManifestDefinitionList = []
// }
// })
// },
// rowStyle ({row}) {
// if (this.documentClickRow.documentTypeId === row.documentTypeId) {
// return { 'background-color': '#E8F7F6', cursor: 'pointer' };
// }
// },
}
}
</script>
<template>
<div>
<el-dialog :title="title" v-drag @close="closeFileUpdate" :visible="uploadDialog" width="35%" append-to-body>
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目编码">
<el-input v-model="projectId" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item>
<el-form-item label="项目名称">
<el-input v-model="projectDesc" readonly style="width: 170px;" class="red-text"></el-input>
</el-form-item>
<el-form-item label="客户编码">
<el-input v-model="customerNo" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="customerDesc" readonly style="width: 170px;" class="red-text"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="项目料号">
<el-input v-model="testPartNo" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item>
<el-form-item label="料号描述">
<el-input v-model="partDesc" readonly style="width: 170px;" class="red-text"></el-input>
</el-form-item>
<el-form-item label="BU">
<el-input v-model="this.$props.site + '-' + this.$props.bu" readonly style="width: 110px;" class="red-text"></el-input>
</el-form-item>
<el-form-item label="打样单号">
<el-input v-model="proofingId" readonly style="width: 170px;" class="red-text"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="label" >
<el-input v-model="no" :readonly="!isEditable" style="width: 110px"></el-input>
</el-form-item>
<el-form-item label="文件类型">
<el-input v-model="noType" :readonly="!isEditable" style="width: 170px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="80px" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label=" ">
<a href="javascript:void(0);" @click="triggerUpload">点击选择文件</a>
<tr></tr>
<el-input v-model="fileName" readonly placeholder="文件名称" style="width: 200px"></el-input>
<el-button type="primary" @click="upload">上传</el-button>
<el-upload drag :file-list="fileList"
ref="uploadFile"
:on-remove="onRemove" :on-change="onChange"
multiple :auto-upload="false"
:show-file-list="true"
:limit="1"
style="text-align: left;display: none;">
</el-upload>
</el-form-item>
</el-form>
<el-form>
<el-table
:data="proofDocumentList"
border
style="width: 100%;margin-top: 5px;"
height="252"
ref="proofDocumentTable"
@row-click="uploadDocumentClickRow"
@current-change="changeCurrentRow1"
:row-style="rowStyle"
v-loading="dataListLoading">
<el-table-column
header-align="center"
align="center"
width="100"
fixed="right"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" @click="DeleteDocumentType(scope.row)">删除</a>
</template>
</el-table-column>
<el-table-column
v-for="(item,index) in columnFileContentArray" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
<!-- <el-form-item label="备注:">-->
<!-- <el-input type="textarea" placeholder="请输入内容" v-model="fileRemark"></el-input>-->
<!-- </el-form-item>-->
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="$emit('update:uploadDialog',false)">关闭</el-button>
</span>
</el-dialog>
</div>
</template>
<style scoped>
/deep/ .el-form-item--medium .el-form-item__content{
height: auto;
}
.red-text .el-input__inner {
color: red;
}
</style>

1232
src/views/modules/eam/com_project_proof_record.vue
File diff suppressed because it is too large
View File

920
src/views/modules/eam/eamBuDocumentListDefinition.vue

@ -0,0 +1,920 @@
<template>
<div class="mod-config">
<div>
<span @click="favoriteFunction()">
<icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>
</span>
</div>
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form-item :label="'BU'">
<el-select v-model="searchData.buDesc" placeholder="请选择" clearable style="width: 130px">
<el-option
v-for = "i in userBuList"
:key = "i.buNo"
:label = "i.buDesc"
:value = "i.buDesc">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'项目阶段'">
<el-select v-model="searchData.projectPhase" placeholder="请选择" clearable style="width: 130px">
<el-option
v-for = "i in projectPhaseList"
:key = "i.projectPhase"
:label = "i.projectPhase"
:value = "i.projectPhase">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'项目分类'">
<el-select v-model="searchData.projectCategory" placeholder="请选择" clearable style="width: 130px">
<el-option
v-for = "i in projectCategoryList"
:key = "i.projectCategory"
:label = "i.projectCategory"
:value = "i.projectCategory">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'文档类型ID'">
<el-input v-model="searchData.documentTypeId" style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'文档类型'">
<el-input v-model="searchData.documentType" style="width: 120px"></el-input>
</el-form-item>
<!-- <el-form-item :label="'在用'">-->
<!-- <el-select filterable v-model="searchData.active" style="width: 130px">-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="是" value="Y"></el-option>-->
<!-- <el-option label="否" value="N"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item :label="' '">
<el-button v-if="!authSearch" @click="getDataList()">查询</el-button>
<el-button v-if="!authSave" type="primary" @click="addModal()">新增</el-button>
<download-excel
:fields="fields()"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
:before-generate="startDownload"
:before-finish="finishDownload"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ "导出" }}
</download-excel>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="100"
label="操作">
<template slot-scope="scope">
<a v-if="!authUpdate" type="text" size="small" @click="updateModal(scope.row)">修改</a>
<a v-if="!authDelete" type="text" size="small" @click="deleteBuDocument(scope.row)">删除</a>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="BU文档清单" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="425px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="BU" prop="bu" :rules="rules.bu">
<el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 110px">
<el-option
v-for = "i in userBuList"
:key = "i.buNo"
:label = "i.buNo"
:value = "i.buNo">
<span style="float: left;width: 100px">{{ i.sitename }}</span>
<span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
{{ i.buDesc }}
</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目阶段" prop="projectCategory" :rules="rules.projectPhase">
<el-select v-model="modalData.projectPhase" placeholder="请选择" clearable style="width: 140px">
<el-option
v-for = "i in projectPhaseList"
:key = "i.projectPhase"
:label = "i.projectPhase"
:value = "i.projectPhase">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目分类" prop="projectCategory" :rules="rules.projectCategoryType">
<el-select v-model="modalData.projectCategory" placeholder="请选择" clearable style="width: 110px">
<el-option
v-for = "i in projectCategoryList"
:key = "i.projectCategory"
:label = "i.projectCategory"
:value = "i.projectCategory">
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="是否在用" prop="active" :rules="rules.activeType">-->
<!-- <el-select filterable v-model="modalData.active" style="width: 140px">-->
<!-- <el-option label="是" value="Y"></el-option>-->
<!-- <el-option label="否" value="N"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="documentTypeId" :rules="rules.documentTypeIdType" >
<span slot="label" style="" @click="getBaseList(1056)"><a herf="#">文档类型ID</a></span>
<el-input v-model="modalData.documentTypeId" disabled style="width: 110px"></el-input>
</el-form-item>
<!-- <el-form-item label="文档类型ID" prop="documentTypeId" :rules="rules.documentTypeIdType">-->
<!-- <el-input v-model="modalData.documentTypeId" style="width: 230px"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="文档类型" prop="documentType" :rules="rules.documentTypeType">
<el-input v-model="modalData.documentType" disabled style="width: 264px"></el-input>
</el-form-item>
<el-form-item label="责任部门" prop="responsibleDepartment" :rules="rules.responsibleDepartmentType">
<el-input v-model="modalData.responsibleDepartment" disabled style="width: 110px"></el-input>
</el-form-item>
<el-form-item label="预计完成天数" prop="estimatedCompletionDays" :rules="rules.estimatedCompletionDaysType">
<el-input v-model="modalData.estimatedCompletionDays" disabled style="width: 140px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import {
eamBuDocumentSearch,
eamBuDocumentSave,
eamBuDocumentEdit,
eamBuDocumentDelete,
getSiteAndBuByUserName
} from "@/api/eam/eam.js"
import Chooselist from '@/views/modules/common/Chooselist_eam'
import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
import {
getTableDefaultListLanguage,
getTableUserListLanguage,
} from "@/api/table.js"
export default {
components: {
Chooselist
},
watch: {
searchData: {
deep: true,
handler: function (newV, oldV) {
this.searchData.documentTypeId = this.searchData.documentTypeId.toUpperCase()
}
},
},
data () {
return {
//
favorite: false,
// start
exportData: [],
exportName: "BU文档清单" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["BU文档清单"],
exportFooter: [],
exportList:[],
// end
tagNo:'',
searchData: {
site: this.$store.state.user.site,
userName: this.$store.state.user.name,
projectCategory: '',
documentTypeId: '',
documentType: '',
buDesc: '',
responsibleDepartment: '',
estimatedCompletionDays: '',
projectPhase: '',
// active: 'Y',
page: 1,
limit: 10,
},
height: 200,
pageIndex: 1,
pageSize: 20,
totalPage: 0,
dataList: [],
dataListSelections: [],
modalFlag:false,
modalDisableFlag:false,
modalData:{
flag:'',
bu: '',
site: this.$store.state.user.site,
documentTypeId:'',
projectCategory:'',
projectPhase:'',
// active:'',
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
},
departmentList:[],
//
columnList: [
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1BuDesc',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'buDesc',
headerAlign: "center",
align: "center",
columnLabel: 'BU',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1ProjectPhase',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'projectPhase',
headerAlign: "center",
align: "left",
columnLabel: '项目阶段',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1ProjectCategory',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'projectCategory',
headerAlign: "center",
align: "left",
columnLabel: '项目分类',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1DocumentTypeId',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'documentTypeId',
headerAlign: "center",
align: "center",
columnLabel: '文档类型ID',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1DocumentType',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'documentType',
headerAlign: "center",
align: "left",
columnLabel: '文档类型',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1ResponsibleDepartment',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'responsibleDepartment',
headerAlign: "center",
align: "left",
columnLabel: '责任部门',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1EstimatedCompletionDays',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'estimatedCompletionDays',
headerAlign: "center",
align: "left",
columnLabel: '预计完成天数',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
// {
// userId: this.$store.state.user.name,
// functionId: 101001013,
// serialNumber: '101001013Table1Active',
// tableId: "101001013Table1",
// tableName: "BU",
// columnProp: 'active',
// headerAlign: "center",
// align: "center",
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 120,
// },
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1CreateDate',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'createDate',
headerAlign: "center",
align: "center",
columnLabel: '创建时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1CreateBy',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'createBy',
headerAlign: "center",
align: "left",
columnLabel: '创建人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1UpdateDate',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'updateDate',
headerAlign: "center",
align: "center",
columnLabel: '更新时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 101001013,
serialNumber: '101001013Table1UpdateBy',
tableId: "101001013Table1",
tableName: "BU文档清单表",
columnProp: 'updateBy',
headerAlign: "center",
align: "left",
columnLabel: '更新人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
],
levelList: [],
rules:{
projectPhase:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
projectCategoryType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
documentTypeIdType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
documentTypeType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
responsibleDepartmentType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
estimatedCompletionDaysType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
activeType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
bu:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
]
},
projectCategoryList: [
{
projectCategory: 'Low Risk',
},
{
projectCategory: 'High Risk',
},
{
projectCategory: 'Sustaining',
}
],
projectPhaseList: [
{
projectPhase: 'Sample',
},
{
projectPhase: 'Mass Production',
},
],
userBuList: [],
authSearch: false,
authSave: false,
authUpdate: false,
authDelete: false,
menuId: this.$route.meta.menuId,
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 210
})
},
created () {
//
this.getButtonAuthData()
// site bu
this.getSiteAndBuByUserName()
//
this.favoriteIsOk()
//
this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
if (!this.authSearch) {
//
this.getDataList()
}
},
methods: {
// bu
getSiteAndBuByUserName () {
let tempData = {
username: this.$store.state.user.name,
}
getSiteAndBuByUserName(tempData).then(({data}) => {
if (data.code === 0) {
this.userBuList = data.rows
}
})
},
// S
getBaseList (val,type) {
this.tagNo = val
this.$nextTick(() => {
let strVal = ''
if (val === 1056 ) {
strVal = this.modalData.documentTypeId
this.$refs.baseList.init(val, strVal)
}
})
},
/* 列表方法的回调 */
getBaseData (val) {
if (this.tagNo === 1056) {
this.modalData.documentTypeId = val.document_type_id
this.modalData.documentType = val.document_type
this.modalData.responsibleDepartment = val.responsible_department
this.modalData.estimatedCompletionDays = val.estimated_completion_days
}
},
//
favoriteIsOk () {
let userFavorite = {
userId: this.$store.state.user.id,
languageCode: this.$i18n.locale
}
userFavoriteList(userFavorite).then(({data}) => {
for (let i = 0; i < data.list.length; i++) {
if (this.$route.meta.menuId === data.list[i].menuId) {
this.favorite = true
}
}
})
},
// OR
favoriteFunction () {
let userFavorite = {
userId: this.$store.state.user.id,
functionId: this.$route.meta.menuId,
}
if (this.favorite) {
removeUserFavorite(userFavorite).then(({data}) => {
this.$message.success(data.msg)
this.favorite = false
})
} else {
//
saveUserFavorite(userFavorite).then(({data}) => {
this.$message.success(data.msg)
this.favorite = true
})
}
},
//excel
async createExportData () {
this.searchData.limit = -1
this.searchData.page = 1
await eamBuDocumentSearch(this.searchData).then(({data}) => {
this.exportList = data.page.list
})
return this.exportList
},
startDownload () {},
finishDownload () {},
fields () {
let json = "{"
this.columnList.forEach((item, index) => {
if (index == this.columnList.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
}
})
json += "}"
let s = eval("(" + json + ")")
return s
},
//
getDataList () {
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
eamBuDocumentSearch(this.searchData).then(({data}) => {
if (data.code === 0) {
this.dataList = data.page.list
this.pageIndex = data.page.currPage
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
}
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
addModal () {
this.modalData = {
flag: '1',
bu: this.userBuList[0].buNo,
site: this.$store.state.user.site,
documentTypeId: '',
documentType: '',
projectCategory: '',
responsibleDepartment: '',
estimatedCompletionDays: '',
projectPhase: '',
// active: 'Y',
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
}
this.modalDisableFlag = false
this.modalFlag = true
},
updateModal (row) {
this.modalData = {
flag: '2',
site: row.site,
id: row.id,
bu: row.site + '_' + row.buNo,
documentTypeId: row.documentTypeId,
documentType: row.documentType,
projectCategory: row.projectCategory,
responsibleDepartment: row.responsibleDepartment,
estimatedCompletionDays: row.estimatedCompletionDays,
projectPhase: row.projectPhase,
// active: row.active,
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
}
this.modalDisableFlag = true
this.modalFlag = true
},
//
deleteBuDocument (row) {
this.$confirm(`是否删除这个BU文档清单?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
eamBuDocumentDelete(row).then(({data}) => {
if (data && data.code === '0') {
this.getDataList()
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}).catch(() => {
})
},
saveData () {
if (this.modalData.bu === '' || this.modalData.bu == null) {
this.$message.warning('请选择BU!')
return
}
if (this.modalData.documentTypeId === '' || this.modalData.documentTypeId == null) {
this.$message.warning('请输入文档类型ID!')
return
}
if (this.modalData.documentType === '' || this.modalData.documentType == null) {
this.$message.warning('请输入文档类型!')
return
}
if (this.modalData.projectCategory === '' || this.modalData.projectCategory == null) {
this.$message.warning('请选择项目分类!')
return
}
if (this.modalData.responsibleDepartment === '' || this.modalData.responsibleDepartment == null) {
this.$message.warning('请输入责任部门!')
return
}
if (this.modalData.estimatedCompletionDays === '' || this.modalData.estimatedCompletionDays == null) {
this.$message.warning('请输入预计完成天数!')
return
}
// if (this.modalData.active === '' || this.modalData.active == null) {
// this.$message.warning('')
// return
// }
if (this.modalData.flag === '1') {
eamBuDocumentSave(this.modalData).then(({data}) => {
if (data && data.code === '0') {
this.getDataList()
this.modalFlag=false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
} else {
eamBuDocumentEdit(this.modalData).then(({data}) => {
if (data && data.code === '0') {
this.getDataList()
this.modalFlag=false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}
},
//
async getTableUserColumn(tableId, columnId) {
let queryTableUser = {
userId: this.$store.state.user.name,
functionId: this.$route.meta.menuId,
tableId: tableId,
status: true,
languageCode: this.$i18n.locale
}
await getTableUserListLanguage(queryTableUser).then(({data}) => {
if (data.rows.length > 0) {
//this.columnList1 = []
switch (columnId) {
case 1:
this.columnList = data.rows
break;
// case 2:
// this.detailColumnList = data.rows
// break;
// case 3:
// this.columnList2 = data.rows
// break;
// case 4:
// this.columnList3 = data.rows
// break;
}
} else {
this.getColumnList(tableId, columnId)
}
})
},
// tableDefault
async getColumnList (tableId, columnId) {
let queryTable= {
functionId: this.$route.meta.menuId,
tableId: tableId,
languageCode: this.$i18n.locale
}
await getTableDefaultListLanguage(queryTable).then(({data}) => {
if (!data.rows.length == 0) {
switch (columnId) {
case 1:
this.columnList = data.rows
break;
// case 2:
// this.detailColumnList = data.rows
// break;
// case 3:
// this.columnList2 = data.rows
// break;
// case 4:
// this.columnList3 = data.rows
// break;
}
} else {
// this.showDefault = true.
}
})
},
//
getButtonAuthData () {
let searchFlag = this.isAuth(this.menuId+":search")
let saveFlag = this.isAuth(this.menuId+":save")
let updateFlag = this.isAuth(this.menuId+":update")
let deleteFlag = this.isAuth(this.menuId+":delete")
//
this.authSearch = !searchFlag
this.authSave = !saveFlag
this.authUpdate = !updateFlag
this.authDelete = !deleteFlag
},
}
}
</script>

765
src/views/modules/eam/eamDocumentTypeDefinition.vue

@ -0,0 +1,765 @@
<template>
<div class="mod-config">
<div>
<span @click="favoriteFunction()">
<icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>
</span>
</div>
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form-item :label="'文档类型ID'">
<el-input v-model="searchData.documentTypeId" style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'文档类型'">
<el-input v-model="searchData.documentType" style="width: 120px"></el-input>
</el-form-item>
<!-- <el-form-item :label="'在用'">-->
<!-- <el-select filterable v-model="searchData.active" style="width: 130px">-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="是" value="Y"></el-option>-->
<!-- <el-option label="否" value="N"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item :label="' '">
<el-button v-if="!authSearch" @click="getDataList()">查询</el-button>
<el-button v-if="!authSave" type="primary" @click="addModal()">新增</el-button>
<!-- <download-excel-->
<!-- :fields="fields()"-->
<!-- :data="exportData"-->
<!-- type="xls"-->
<!-- :name="exportName"-->
<!-- :header="exportHeader"-->
<!-- :footer="exportFooter"-->
<!-- :fetch="createExportData"-->
<!-- :before-generate="startDownload"-->
<!-- :before-finish="finishDownload"-->
<!-- worksheet="导出信息"-->
<!-- class="el-button el-button&#45;&#45;primary el-button&#45;&#45;medium">-->
<!-- {{ "导出" }}-->
<!-- </download-excel>-->
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="100"
label="操作">
<template slot-scope="scope">
<a v-if="!authUpdate" type="text" size="small" @click="updateModal(scope.row)">修改</a>
<a v-if="!authDelete" type="text" size="small" @click="deleteDocumentType(scope.row)">删除</a>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="文档类型" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<!-- <el-form-item label="BU" prop="bu" :rules="rules.bu">-->
<!-- <el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 230px">-->
<!-- <el-option-->
<!-- v-for = "i in userBuList"-->
<!-- :key = "i.buNo"-->
<!-- :label = "i.buNo"-->
<!-- :value = "i.buNo">-->
<!-- <span style="float: left;width: 100px">{{ i.sitename }}</span>-->
<!-- <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">-->
<!-- {{ i.buDesc }}-->
<!-- </span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否在用" prop="active" :rules="rules.activeType">-->
<!-- <el-select filterable v-model="modalData.active" style="width: 140px">-->
<!-- <el-option label="是" value="Y"></el-option>-->
<!-- <el-option label="否" value="N"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="文档类型ID" prop="documentTypeId" :rules="rules.documentTypeIdType">
<el-input v-model="modalData.documentTypeId" :disabled="modalDisableFlag" style="width: 140px"></el-input>
</el-form-item>
<el-form-item label="文档类型" prop="documentType" :rules="rules.documentTypeType">
<el-input v-model="modalData.documentType" style="width: 230px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="责任部门" prop="responsibleDepartment" :rules="rules.responsibleDepartmentType">
<el-select v-model="modalData.responsibleDepartment" placeholder="请选择" clearable style="width: 140px">
<el-option
v-for = "i in responsibleDepartmentList"
:key = "i.responsibleDepartment"
:label = "i.responsibleDepartment"
:value = "i.responsibleDepartment">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="预计完成天数" prop="estimatedCompletionDays" :rules="rules.estimatedCompletionDaysType">
<el-input v-model="modalData.estimatedCompletionDays" style="width: 230px"></el-input>
</el-form-item>
</el-form>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<script>
import {
eamDocumentTypeSearch,
eamDocumentTypeSave,
eamDocumentTypeEdit,
eamDocumentTypeDelete,
// getSiteAndBuByUserName
} from "@/api/eam/eam.js"
import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
import {
getTableDefaultListLanguage,
getTableUserListLanguage,
} from "@/api/table.js"
export default {
watch: {
searchData: {
deep: true,
handler: function (newV, oldV) {
this.searchData.documentTypeId = this.searchData.documentTypeId.toUpperCase()
}
},
modalData: {
deep: true,
handler: function (newV, oldV) {
this.modalData.documentTypeId = this.modalData.documentTypeId.toUpperCase()
}
}
},
data () {
return {
//
favorite: false,
// start
exportData: [],
exportName: "设备分组" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["设备分组"],
exportFooter: [],
exportList:[],
// end
searchData: {
site: this.$store.state.user.site,
userName: this.$store.state.user.name,
documentTypeId: '',
documentType: '',
responsibleDepartment: '',
estimatedCompletionDays: '',
// active: 'Y',
page: 1,
limit: 10,
},
responsibleDepartmentList: [
{
responsibleDepartment: '工程师',
},
{
responsibleDepartment: 'PM',
},
{
responsibleDepartment: '质量',
}
],
height: 200,
pageIndex: 1,
pageSize: 20,
totalPage: 0,
dataList: [],
dataListSelections: [],
modalFlag:false,
modalDisableFlag:false,
modalData:{
flag:'',
// bu: '',
site: this.$store.state.user.site,
documentTypeId: '',
documentType: '',
responsibleDepartment: '',
estimatedCompletionDays: '',
// active:'',
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
},
departmentList:[],
//
columnList: [
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1DocumentTypeId',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'documentTypeId',
headerAlign: "center",
align: "center",
columnLabel: '文档类型ID',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1DocumentType',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'documentType',
headerAlign: "center",
align: "left",
columnLabel: '文档类型',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1ResponsibleDepartment',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'responsibleDepartment',
headerAlign: "center",
align: "left",
columnLabel: '责任部门',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1EstimatedCompletionDays',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'estimatedCompletionDays',
headerAlign: "center",
align: "left",
columnLabel: '预计完成天数',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
// {
// userId: this.$store.state.user.name,
// functionId: 1010010012,
// serialNumber: '1010010012Table1Active',
// tableId: "1010010012Table1",
// tableName: "",
// columnProp: 'active',
// headerAlign: "center",
// align: "center",
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 120,
// },
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1CreateDate',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'createDate',
headerAlign: "center",
align: "center",
columnLabel: '创建时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1CreateBy',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'createBy',
headerAlign: "center",
align: "left",
columnLabel: '创建人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1UpdateDate',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'updateDate',
headerAlign: "center",
align: "center",
columnLabel: '更新时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 1010010012,
serialNumber: '1010010012Table1UpdateBy',
tableId: "1010010012Table1",
tableName: "文档类型定义表",
columnProp: 'updateBy',
headerAlign: "center",
align: "left",
columnLabel: '更新人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
],
levelList: [],
rules:{
documentTypeIdType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
documentTypeType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
responsibleDepartmentType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
estimatedCompletionDaysType:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
// activeType:[
// {
// required: true,
// message: ' ',
// trigger: ['blur','change']
// }
// ],
// bu:[
// {
// required: true,
// message: ' ',
// trigger: ['blur','change']
// }
// ]
},
// userBuList: [],
authSearch: false,
authSave: false,
authUpdate: false,
authDelete: false,
menuId: this.$route.meta.menuId,
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 210
})
},
created () {
//
this.getButtonAuthData()
// site bu
// this.getSiteAndBuByUserName()
//
this.favoriteIsOk()
//
this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
if (!this.authSearch) {
//
this.getDataList()
}
},
methods: {
// bu
// getSiteAndBuByUserName () {
// let tempData = {
// username: this.$store.state.user.name,
// }
// getSiteAndBuByUserName(tempData).then(({data}) => {
// if (data.code === 0) {
// this.userBuList = data.rows
// }
// })
// },
//
favoriteIsOk () {
let userFavorite = {
userId: this.$store.state.user.id,
languageCode: this.$i18n.locale
}
userFavoriteList(userFavorite).then(({data}) => {
for (let i = 0; i < data.list.length; i++) {
if (this.$route.meta.menuId === data.list[i].menuId) {
this.favorite = true
}
}
})
},
// OR
favoriteFunction () {
let userFavorite = {
userId: this.$store.state.user.id,
functionId: this.$route.meta.menuId,
}
if (this.favorite) {
removeUserFavorite(userFavorite).then(({data}) => {
this.$message.success(data.msg)
this.favorite = false
})
} else {
//
saveUserFavorite(userFavorite).then(({data}) => {
this.$message.success(data.msg)
this.favorite = true
})
}
},
//excel
// async createExportData () {
// this.searchData.limit = -1
// this.searchData.page = 1
// await eamDocumentTypeSearch(this.searchData).then(({data}) => {
// this.exportList = data.page.list
// })
// return this.exportList
// },
startDownload () {},
finishDownload () {},
// fields () {
// let json = "{"
// this.columnList.forEach((item, index) => {
// if (index == this.columnList.length - 1) {
// json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
// } else {
// json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
// }
// })
// json += "}"
// let s = eval("(" + json + ")")
// return s
// },
//
getDataList () {
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
eamDocumentTypeSearch(this.searchData).then(({data}) => {
if (data.code === 0) {
this.dataList = data.page.list
this.pageIndex = data.page.currPage
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
}
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
addModal () {
this.modalData = {
flag: '1',
// bu: this.userBuList[0].buNo,
site: this.$store.state.user.site,
documentTypeId: '',
documentType: '',
responsibleDepartment: '',
estimatedCompletionDays: '',
// active: 'Y',
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
}
this.modalDisableFlag = false
this.modalFlag = true
},
updateModal (row) {
this.modalData = {
flag: '2',
site: row.site,
// bu: row.site + '_' + row.buNo,
documentTypeId: row.documentTypeId,
documentType: row.documentType,
responsibleDepartment: row.responsibleDepartment,
estimatedCompletionDays: row.estimatedCompletionDays,
// active: row.active,
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
}
this.modalDisableFlag = true
this.modalFlag = true
},
//
deleteDocumentType (row) {
this.$confirm(`是否删除这个文档类型?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
eamDocumentTypeDelete(row).then(({data}) => {
if (data && data.code === '0') {
this.getDataList()
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}).catch(() => {
})
},
saveData () {
// if (this.modalData.bu === '' || this.modalData.bu == null) {
// this.$message.warning('BU')
// return
// }
if (this.modalData.documentTypeId === '' || this.modalData.documentTypeId == null) {
this.$message.warning('请输入文档类型ID!')
return
}
if (this.modalData.documentType === '' || this.modalData.documentType == null) {
this.$message.warning('请输入文档类型!')
return
}
if (this.modalData.responsibleDepartment === '' || this.modalData.responsibleDepartment == null) {
this.$message.warning('请输入责任部门!')
return
}
if (this.modalData.estimatedCompletionDays === '' || this.modalData.estimatedCompletionDays == null) {
this.$message.warning('请输入预计完成天数!')
return
}
// if (this.modalData.active === '' || this.modalData.active == null) {
// this.$message.warning('')
// return
// }
if (this.modalData.flag === '1') {
eamDocumentTypeSave(this.modalData).then(({data}) => {
if (data && data.code === '0') {
this.getDataList()
this.modalFlag=false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
} else {
eamDocumentTypeEdit(this.modalData).then(({data}) => {
if (data && data.code === '0') {
this.getDataList()
this.modalFlag=false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}
},
//
async getTableUserColumn(tableId, columnId) {
let queryTableUser = {
userId: this.$store.state.user.name,
functionId: this.$route.meta.menuId,
tableId: tableId,
status: true,
languageCode: this.$i18n.locale
}
await getTableUserListLanguage(queryTableUser).then(({data}) => {
if (data.rows.length > 0) {
//this.columnList1 = []
switch (columnId) {
case 1:
this.columnList = data.rows
break;
// case 2:
// this.detailColumnList = data.rows
// break;
// case 3:
// this.columnList2 = data.rows
// break;
// case 4:
// this.columnList3 = data.rows
// break;
}
} else {
this.getColumnList(tableId, columnId)
}
})
},
// tableDefault
async getColumnList (tableId, columnId) {
let queryTable= {
functionId: this.$route.meta.menuId,
tableId: tableId,
languageCode: this.$i18n.locale
}
await getTableDefaultListLanguage(queryTable).then(({data}) => {
if (!data.rows.length == 0) {
switch (columnId) {
case 1:
this.columnList = data.rows
break;
// case 2:
// this.detailColumnList = data.rows
// break;
// case 3:
// this.columnList2 = data.rows
// break;
// case 4:
// this.columnList3 = data.rows
// break;
}
} else {
// this.showDefault = true.
}
})
},
//
getButtonAuthData () {
let searchFlag = this.isAuth(this.menuId+":search")
let saveFlag = this.isAuth(this.menuId+":save")
let updateFlag = this.isAuth(this.menuId+":update")
let deleteFlag = this.isAuth(this.menuId+":delete")
//
this.authSearch = !searchFlag
this.authSave = !saveFlag
this.authUpdate = !updateFlag
this.authDelete = !deleteFlag
},
}
}
</script>

2323
src/views/modules/eam/eamProjectInfo.vue
File diff suppressed because it is too large
View File

261
src/views/modules/sys/user.vue

@ -22,6 +22,8 @@
<el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="siteAuthorize()">{{ buttons.factoryAuthorization || '工厂授权' }}</el-button>
<el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="buAuthorize()">{{ buttons.buAuthorization || 'BU授权' }}</el-button>
<el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="deptAuthorize()">{{ buttons.deptAuthorization || '部门授权' }}</el-button>
<el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="businessRoleAuthorize()">{{ buttons.businessRoleAuthorization || '角色授权' }}
</el-button>
</el-form-item>
</el-form>
<el-table
@ -192,6 +194,28 @@
</span>
</el-dialog>
<!-- 角色授权 -->
<el-dialog
style="font-size: 12px"
v-drag
:title="'角色授权'"
:visible.sync="businessRoleVisible"
width="518px"
:append-to-body="true">
<el-transfer
class="rq"
filterable
v-model="selectBusinessRoleList"
:props="{key: 'roleNo', label: 'roleDesc'}" :data="businessRoleList" :titles="['未授权角色', '已授权角色']">
</el-transfer>
<span slot="footer" class="dialog-footer">
<div style="margin-top: 5px">
<el-button type="primary" @click="saveBusinessRoleSite()">确定</el-button>
<el-button @click="businessRoleVisible = false" type="primary">取消</el-button>
</div>
</span>
</el-dialog>
<!-- 新增用户site -->
<el-dialog title="工厂" :close-on-click-modal="false" v-drag :visible.sync="siteAddModal" width="900px">
<div style="font-size: 12px">
@ -517,13 +541,111 @@
</el-footer>
</el-dialog>
<!-- 新增用户角色 -->
<el-dialog title="角色" :close-on-click-modal="false" v-drag :visible.sync="businessRoleAddModal" width="900px">
<div style="font-size: 12px">
<el-form :inline="true" label-position="top" :model="businessRoleData">
<el-form-item :label="'角色编码'">
<el-input v-model="businessRoleData.roleNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'角色名称'">
<el-input v-model="businessRoleData.roleDesc" clearable style="width: 200px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="getBusinessRole()">查询</el-button>
</el-form-item>
</el-form>
</div>
<el-container style="margin-top: 0px;">
<el-main style="width: 400px; padding: 1px">
<span style="font-size: 12px" >可选角色</span>
<el-table
height="400px"
:data="businessRoleList1"
border
ref="businessRoleTable1"
@row-click="businessRoleClickRow1"
@selection-change="selectionBusinessRole1"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
prop="roleNo"
header-align="center"
align="center"
min-width="80"
label="角色编码">
</el-table-column>
<el-table-column
prop="roleDesc"
header-align="center"
align="center"
min-width="120"
label="角色名称">
</el-table-column>
</el-table>
</el-main>
<el-main style="width: 111px;padding: 1px">
<div style="margin-top: 182px;margin-left: 18px">
<el-button type="primary" @click="addBusinessRole()">添加>></el-button>
</div>
<div style="margin-top: 15px;margin-left: 18px">
<el-button type="primary" @click="deleteBusinessRole()">删除<<</el-button>
</div>
</el-main>
<el-main style="width: 400px;padding: 1px">
<span style="font-size: 12px" >已有角色</span>
<el-table
height="400px"
:data="businessRoleList2"
border
ref="businessRoleTable2"
@row-click="businessRoleClickRow2"
@selection-change="selectionBusinessRole2"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
prop="roleNo"
header-align="center"
align="center"
min-width="80"
label="角色编码">
</el-table-column>
<el-table-column
prop="roleDesc"
header-align="center"
align="center"
min-width="120"
label="角色名称">
</el-table-column>
</el-table>
</el-main>
</el-container>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="businessRoleAddModal = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<script>
import {getUserAccessSiteList, saveUserAccessSiteList} from '@/api/factory/accessSite.js'
import {getSiteList, addUserSite, delUserSite, getSite, getBuList, addUserBu, delUserBu, getBu, getDeptList, addUserDept, delUserDept, getDept} from '@/api/factory/site.js'
import {searchAccessBuList,saveAccessBU} from '@/api/base/site.js'
import {getSiteList, addUserSite, delUserSite, getSite, getBuList, addUserBu, delUserBu, getBu, getDeptList, addUserDept, delUserDept, getDept, getBusinessRole, getBusinessRoleList, addUserBusinessRole, delUserBusinessRole} from '@/api/factory/site.js'
import {searchAccessBuList,saveAccessBU,saveBusinessRole} from '@/api/base/site.js'
import AddOrUpdate from './user-add-or-update'
import {getUserBusinessRoleList, saveUserBusinessRole,} from '@/api/auditManagement/auditType.js'
import {getUserSpecialSecurity, saveUserSpecialSecurity, updateUserSpecialSecurity} from '@/api/factory/userSpecialSecurity.js'
@ -542,6 +664,7 @@ export default {
specialVisible: false,
siteVisible: false,
buVisible: false,
businessRoleVisible: false,
currentData: {},
userId: this.$store.state.user.name,
transferData: [],
@ -619,6 +742,7 @@ export default {
factoryAuthorization: '工厂授权',
buAuthorization: 'BU授权',
deptAuthorization: '部门授权',
businessRoleAuthorization: '角色授权',
createTime: '创建时间',
username: '用户账号',
userDisplay: '用户名',
@ -681,7 +805,23 @@ export default {
deptSelections1: [],
deptSelections2: [],
deptAddModal: false,
selectBusinessRoleList:[],
businessRoleList:[],
businessRoleList1:[],
businessRoleList2:[],
businessRoleSelections1: [],
businessRoleSelections2: [],
businessRoleAddModal: false,
businessRoleData: {
site: '',
buNo: '',
roleNo: '',
roleDesc: '',
active: '',
username: ''
},
}
},
components: {
AddOrUpdate
@ -1021,7 +1161,6 @@ export default {
})
this.deptAddModal = true
},
/**
* 查询可用部门
*/
@ -1101,7 +1240,96 @@ export default {
}
})
},
//
businessRoleAuthorize () {
this.businessRoleData = {
site: '',
roleNo: '',
roleDesc: '',
active: '',
username: ''
}
this.businessRoleSelections1 = null
this.businessRoleSelections2 = null
getBusinessRoleList(this.selectUser).then(({data}) => {
this.businessRoleList1 = data.row1
this.businessRoleList2 = data.row2
})
this.businessRoleAddModal = true
},
/**
* 查询可用角色
*/
getBusinessRole () {
this.businessRoleData.username = this.selectUser.username
getBusinessRole(this.businessRoleData).then(({data}) => {
if (data.code === 0) {
this.businessRoleList1 = data.rows
}
})
},
//
businessRoleClickRow1 (row) {
this.$refs.businessRoleTable1.toggleRowSelection(row)
},
//
businessRoleClickRow2 (row) {
this.$refs.businessRoleTable2.toggleRowSelection(row)
},
selectionBusinessRole1 (val) {
this.businessRoleSelections1 = val
},
selectionBusinessRole2 (val) {
this.businessRoleSelections2 = val
},
//
addBusinessRole () {
if (this.businessRoleSelections1 == null || this.businessRoleSelections1.length === 0) {
this.$message.warning('请选择可选角色!')
return
}
let inData = {
username: this.selectUser.username,
businessRoleList: this.businessRoleSelections1
}
addUserBusinessRole(inData).then(({data}) => {
if (data && data.code === 0) {
getBusinessRoleList(this.selectUser).then(({data}) => {
this.businessRoleList1 = data.row1
this.businessRoleList2 = data.row2
})
this.businessRoleSelections1 = []
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
//
deleteBusinessRole () {
if (this.businessRoleSelections2 == null || this.businessRoleSelections2.length === 0) {
this.$message.warning('请选择已有角色!')
return
}
let inData = {
username: this.selectUser.username,
businessRoleList: this.businessRoleSelections2
}
delUserBusinessRole(inData).then(({data}) => {
if (data && data.code === 0) {
getBusinessRoleList(this.selectUser).then(({data}) => {
this.businessRoleList1 = data.row1
this.businessRoleList2 = data.row2
})
this.businessRoleSelections2 = []
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
//
searchSiteList () {
getSiteList({active: 'Y'}).then(({data}) => {
@ -1168,6 +1396,31 @@ export default {
})
},
//
saveBusinessRoleSite () {
if(this.selectBusinessRoleList.length==0){
this.$message.warning("请选择角色")
return false;
}
let businessRole=[];
for (let i = 0; i < this.selectBusinessRoleList.length; i++) {
let inData={
site:this.$store.state.user.site,
username:this.selectUser.username,
roleNo:this.selectBusinessRoleList[i]
}
businessRole.push(inData)
}
saveBusinessRole(businessRole).then(({data}) => {
if (data && data.code === 0) {
this.$message.success( '操作成功')
this.roleVisible = false
} else {
this.$message.error(data.msg)
}
})
},
searchBuList () {
searchAccessBuList({site:this.$store.state.user.site, username: this.selectUser.username, active:'Y'}).then(({data}) => {
this.selectBUList = data.selectBUList

Loading…
Cancel
Save