Browse Source

2024-07-19

设备知识库
master
fengyuan_yang 2 years ago
parent
commit
31cea6946f
  1. 96
      src/views/modules/eam/com_eam_knowledge_base_upload_file.vue
  2. 275
      src/views/modules/eam/eam_knowledge_base.vue

96
src/views/modules/eam/com_eam_knowledge_base_upload_file.vue

@ -22,7 +22,7 @@
<el-row>
<el-col :span="24">
<el-upload class="customer-upload" drag action="javascript:void(0);" ref="uploadFile" :limit="1"
:before-upload="beforeUploadHandle" :on-change="onChange" accept="*" :auto-upload="false" style="text-align: left;">
:before-upload="beforeUploadHandle" :on-change="onChange" accept="*" :auto-upload="false" style="text-align: center;">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
@ -31,7 +31,7 @@
<el-row>
<el-col :span="24" style="margin-bottom: 30px;">
<el-form-item class="customer-item" label="备注:" >
<el-input type="textarea" style="width: 360px;" placeholder="请输入内容" v-model="pageData.fileRemark"></el-input>
<el-input type="textarea" style="width: 399px;" placeholder="请输入内容" v-model="fileRemark"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -39,7 +39,7 @@
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveUploadFile()">保存</el-button>
<el-button type="primary" @click="saveUploadFile">保存</el-button>
<el-button type="primary" @click="closeDialog">关闭</el-button>
</span>
</el-dialog>
@ -52,7 +52,7 @@ import {
} from '@/api/eam/eam_object_list.js';
/* 引入组件 */
var functionId = 'C10000002';
var functionId = 'C10000002'
export default {
data() {
@ -63,31 +63,33 @@ export default {
userId: this.$store.state.user.name,
fileList: [],
pageData: {
site: this.$store.state.user.site,
site: '',
buNo: '',
username: this.$store.state.user.name,
num: '',
objectId: '',
objectName: '',
defectId: '',
defectDesc: '',
fileRemark: '',
},
fileRemark: '',
dataListLoading: false,
}
},
methods: {
//
//
init(currentRow) {
//
this.pageData = JSON.parse(JSON.stringify(currentRow));
//
this.visible = true;
//
this.pageData.username = this.userId;
//
this.pageData = JSON.parse(JSON.stringify(currentRow))
this.fileRemark = ''
//
this.visible = true
//
this.pageData.username = this.userId
},
//
beforeUploadHandle(file) {
beforeUploadHandle (file) {
// if (file.type !== 'image/jpg' && file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif' && file.type !== 'application/pdf') {
// this.$message.error('PDF')
// return false
@ -95,57 +97,53 @@ export default {
// this.num++
},
/*选择上传文件时*/
onChange(file){
this.fileList.push(file);
/* 选择上传文件时 */
onChange (file) {
this.fileList.push(file)
},
/*关闭modal*/
closeDialog(){
this.fileList = [];
//
this.$emit('refreshPageTables');
//
this.visible = false;
/* 关闭modal */
closeDialog () {
this.fileList = []
//
this.$emit('refreshPageTables')
//
this.visible = false
},
/*保修当前的数据*/
saveUploadFile(){
let remark = this.pageData.fileRemark;
if(null == remark || '' == remark){
/* 保修当前的数据 */
saveUploadFile () {
let remark = this.fileRemark
if (remark == null || remark === '') {
remark = ''
}
/*判断文件是否上传*/
if(null == this.fileList || 0 == this.fileList.length){
this.$message.error("请先上传文件!");
return false;
/* 判断文件是否上传 */
if (null == this.fileList || 0 === this.fileList.length) {
this.$message.error("请先上传文件!")
return false
}
const formData = new FormData();
const formData = new FormData()
//
formData.append("file", this.fileList[0].raw);
formData.append("folder", this.folder);
formData.append("site", this.pageData.site);
formData.append("num", this.pageData.num);
formData.append("remark", remark);
formData.append("file", this.fileList[0].raw)
formData.append("folder", this.folder)
formData.append("orderRef1", this.pageData.site)
formData.append("orderRef2", this.pageData.num)
formData.append("orderRef3", remark)
formData.append("orderRef4", this.pageData.buNo)
knowledgeBaseUpload(formData).then(({data}) => {
if (data.code === 0) {
this.$message.success(data.msg);
this.$message.success(data.msg)
//
this.$refs.uploadFile.clearFiles();
this.pageData.fileRemark = '';
this.fileList = [];
this.$refs.uploadFile.clearFiles()
this.fileRemark = ''
this.fileList = []
}else {
this.$message.warning(data.msg);
this.$message.warning(data.msg)
}
})
}
},
created() {
}
}
</script>
<style scoped lang="scss">
</style>

275
src/views/modules/eam/eam_knowledge_base.vue

@ -7,6 +7,16 @@
</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: 75px">
<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-input v-model="searchData.objectId" style="width: 120px"></el-input>
</el-form-item>
@ -67,13 +77,11 @@
@current-change="changeCurrentRow"
@selection-change="selectionChangeHandle"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
@ -116,50 +124,52 @@
</el-pagination>
<!-- 一级新增/编辑 -->
<el-dialog title="设备知识库" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="321px">
<el-dialog title="设备知识库" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="700px">
<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: 325px">
<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: 50px">
{{ i.buDesc }}
</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="类型" prop="fileType" :rules="rules.fileTypeType">
<el-select v-model="modalData.fileType" placeholder="请选择" style="width: 120px">
<el-option label="点检" value="点检"></el-option>
<el-option label="保养" value="保养"></el-option>
<el-option label="维修" value="维修"></el-option>
</el-select>
</el-form-item>
<el-form-item label="故障描述:" style="margin-left: -10px">
<el-input v-model="modalData.defectDescribe" style="width: 200px"></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 prop="objectId" :rules="rules.objectIdType">
<span slot="label" style="" @click="getBaseList(200)"><a herf="#">设备编码</a></span>
<el-input v-model="modalData.objectId" style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="设备名称:" prop="objectName" :rules="rules.objectNameType">
<el-input v-model="modalData.objectName" disabled style="width: 150px"></el-input>
<el-form-item label="设备名称:" prop="objectName" :rules="rules.objectNameType" style="margin-left: -10px">
<el-input v-model="modalData.objectName" disabled style="width: 200px"></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="defectId" :rules="rules.defectIdType">-->
<!-- <el-select v-model="modalData.defectId" @change="defectIdChange()" placeholder="请选择" style="width: 120px">-->
<!-- <el-option-->
<!-- v-for = "i in defectList"-->
<!-- :key = "i.defectId"-->
<!-- :label = "i.defectId"-->
<!-- :value = "i.defectId">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item prop="defectId" :rules="rules.defectIdType">
<span slot="label" @click="getBaseList(1054)"><a herf="#">故障编码</a></span>
<el-input v-model="modalData.defectId" style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="故障原因:" prop="defectDesc" :rules="rules.defectDescType">
<el-input v-model="modalData.defectDesc" disabled style="width: 150px"></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="fileType" :rules="rules.fileTypeType">
<el-select v-model="modalData.fileType" placeholder="请选择" style="width: 120px">
<el-option label="点检" value="点检"></el-option>
<el-option label="保养" value="保养"></el-option>
<el-option label="维修" value="维修"></el-option>
</el-select>
</el-form-item>
<el-form-item label="故障描述:">
<el-input v-model="modalData.defectDescribe" style="width: 150px"></el-input>
<el-form-item label="故障原因:" prop="defectDesc" :rules="rules.defectDescType" style="margin-left: -10px">
<el-input v-model="modalData.defectDesc" disabled style="width: 200px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="处置措施:">
<el-input v-model="modalData.disposalMeasures" style="width: 284px"></el-input>
<el-input v-model="modalData.disposalMeasures" style="width: 662px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
@ -171,7 +181,7 @@
resize='none'
maxlength="300"
show-word-limit
style="width: 284px;height: 60px">
style="width: 662px;height: 60px">
</el-input>
</el-form-item>
</el-form>
@ -188,14 +198,13 @@
<!--文件上传-->
<el-form label-position="top" style="margin-top: 5px; margin-left: 0px;">
<el-form :inline="true" label-position="top" style="margin-top: 5px">
<el-button type="primary" @click="addUploadFileModal()">上传文件</el-button>
<el-button type="primary" @click="addUploadFileModal">上传文件</el-button>
</el-form>
</el-form>
<el-table
:data="fileContentList"
:height="secondHeight"
border
v-loading="dataListLoading"
style="width: 100%; ">
<el-table-column
v-for="(item,index) in columnFileContentArray" :key="index"
@ -228,7 +237,7 @@
</el-tabs>
<!-- 上传文件的modal -->
<comEamKnowledgeBaseUploadFile ref="comEamKnowledgeBaseUploadFile" @refreshPageTables="getDataList()" v-drag></comEamKnowledgeBaseUploadFile>
<comEamKnowledgeBaseUploadFile ref="comEamKnowledgeBaseUploadFile" @refreshPageTables="getFileContentData" v-drag></comEamKnowledgeBaseUploadFile>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
@ -236,7 +245,6 @@
<script>
import {
getKnowledgeBaseList, //
getDefectList, //
saveKnowledgeBase, //
knowledgeBaseUpdate, //
knowledgeBaseDelete, //
@ -245,8 +253,7 @@
downLoadObjectFile
} from '@/api/eam/eam_object_list.js';
import { userFavoriteList, saveUserFavorite, removeUserFavorite } from '@/api/userFavorite.js'
import { deleteObjectFile } from '@/api/eam/eam.js';
import { deleteResourceSpare } from '@/api/partspare/resourcespare.js'
import { deleteObjectFile, getSiteAndBuByUserName} from '@/api/eam/eam.js';
/*引入組件*/
import comEamKnowledgeBaseUploadFile from "./com_eam_knowledge_base_upload_file";/*上传文件的組件*/
import {
@ -254,8 +261,6 @@
getTableUserListLanguage,
} from "@/api/table.js"
import Chooselist from '@/views/modules/common/Chooselist_eam'
import axios from "axios";
import Vue from "vue";
export default {
data () {
@ -276,7 +281,8 @@
uploadUrl: "",
currentRow: {},
searchData: {
site: this.$store.state.user.site,
site: '',
userName: this.$store.state.user.name,
objectId: '',
defectId: '',
defectDesc: '',
@ -343,11 +349,11 @@
fixed: false
},
],
dataListLoading: false,
modalFlag: false,
modalDisableFlag: false,
modalData: {
flag: '',
bu: '',
site: this.$store.state.user.site,
createBy: '',
updateBy: '',
@ -651,6 +657,13 @@
message: ' ',
trigger: ['blur','change']
}
],
bu:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
]
},
authSearch: false,
@ -658,22 +671,26 @@
authUpdate: false,
authDelete: false,
menuId: this.$route.meta.menuId,
userBuList: [],
}
},
components: {
comEamKnowledgeBaseUploadFile,/*文件上传的组件*/
comEamKnowledgeBaseUploadFile, //
Chooselist,
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight / 2 - 30;
this.height = window.innerHeight / 2 - 30
/*第二个表格高度的动态调整*/
this.secondHeight = window.innerHeight / 2 - 190;
this.secondHeight = window.innerHeight / 2 - 190
})
},
created () {
//
this.getButtonAuthData()
// site bu
this.getSiteAndBuByUserName()
//
this.favoriteIsOk()
//
this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
@ -683,21 +700,24 @@
}
},
methods: {
// bu
getSiteAndBuByUserName () {
let tempData = {
username: this.$store.state.user.name,
}
getSiteAndBuByUserName(tempData).then(({data}) => {
if (data.code === 0) {
this.userBuList = data.rows
}
})
},
//
selectionChangeHandle(val) {
this.dataListSelections = val
},
selectFlag(){
return true;
},
// ID
defectIdChange(){
for (let i = 0; i < this.defectList.length; i++) {
if (this.defectList[i].defectId = this.modalData.defectId){
this.modalData.defectDesc = this.defectList[i].defectDesc
}
}
},
// S
getBaseList (val,type) {
this.tagNo = val
@ -713,33 +733,19 @@
}
})
},
/* 列表方法的回调 */
getBaseData (val) {
if (this.tagNo === 200) {
this.modalData.objectId = val.ObjectID
this.modalData.objectName = val.ObjectDesc
// this.defectList = []
// this.modalData.defectId = ''
// this.modalData.defectDesc = ''
// this.getDefectList()
}
if (this.tagNo === 1054) {
this.modalData.defectId = val.DefectID
this.modalData.defectDesc = val.DefectDesc
}
},
//
getDefectList(){
getDefectList(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.defectList = data.rows
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
//
getDataList () {
this.searchData.limit = this.pageSize
@ -751,31 +757,34 @@
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
//
if(this.totalPage > 0){
if (this.totalPage > 0) {
//
this.$refs.eamObjectTable.setCurrentRow(this.dataList[0]);
this.refreshCurrentTabTable();//table
this.$refs.eamObjectTable.setCurrentRow(this.dataList[0])
this.refreshCurrentTabTable() // table
}
}
this.dataListLoading = false;
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
addModal(){
addModal () {
this.modalData = {
flag: '1',
site: this.$store.state.user.site,
site: '',
bu: this.userBuList[0].buNo,
createBy: this.$store.state.user.name,
num: '',
objectId: '',
@ -788,15 +797,17 @@
fileId: '',
fileName: '',
remark: '',
};
this.modalDisableFlag = false;
this.modalFlag = true;
}
this.modalDisableFlag = false
this.modalFlag = true
},
//
updateModal(row){
updateModal (row) {
this.modalData = {
flag:'2',
site: this.$store.state.user.site,
site: row.site,
bu: row.site + '_' + row.buNo,
updateBy: this.$store.state.user.name,
num: row.num,
objectId: row.objectId,
@ -809,12 +820,17 @@
fileId: row.fileId,
fileName: row.fileName,
remark: row.remark
};
this.modalDisableFlag = true;
this.modalFlag = true;
}
this.modalDisableFlag = true
this.modalFlag = true
},
// /
saveData(){
saveData () {
if (this.modalData.bu === '' || this.modalData.bu == null) {
this.$message.warning('请选择BU!')
return
}
if (this.modalData.objectId === '' || this.modalData.objectId == null) {
this.$alert('请选择设备编码!', '错误', {
confirmButtonText: '确定'
@ -839,7 +855,7 @@
})
return false
}
if(this.modalData.flag === '1'){
if (this.modalData.flag === '1') {
saveKnowledgeBase(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
@ -858,7 +874,7 @@
})
}
})
}else {
} else {
knowledgeBaseUpdate(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
@ -878,8 +894,9 @@
})
}
},
//
deleteModal(row) {
deleteModal (row) {
this.$confirm('确定要删除该内容?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -888,7 +905,7 @@
knowledgeBaseDelete(row).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.getFileContentData();
this.getFileContentData()
this.$message({
message: '操作成功',
type: 'success',
@ -905,8 +922,9 @@
}).catch(() => {
})
},
//
deleteFile(row){
deleteFile (row) {
this.$confirm('确定要删除此文件?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -914,7 +932,7 @@
}).then(() => {
deleteObjectFile(row).then(({data}) => {
if (data && data.code === 0) {
this.getFileContentData();
this.getFileContentData()
this.$message({
message: '操作成功',
type: 'success',
@ -931,9 +949,10 @@
}).catch(() => {
})
},
//
deleteSome() {
if(this.dataListSelections.length === 0){
deleteSome () {
if (this.dataListSelections.length === 0) {
this.$alert('请勾选要删除的内容!', '错误', {
confirmButtonText: '确定'
})
@ -947,7 +966,7 @@
knowledgeBaseDeleteSome(this.dataListSelections).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.getFileContentData();
this.getFileContentData()
this.$message({
message: '操作成功',
type: 'success',
@ -964,24 +983,27 @@
}).catch(() => {
})
},
// table
refreshCurrentTabTable () {
this.getFileContentData();
this.getFileContentData()
},
//
getFileContentData() {
getFileContentData () {
let currentData = {
orderRef1: this.$store.state.user.site,
orderRef2: this.currentRow.num
orderRef2: this.currentRow.num,
orderRef4: this.currentRow.buNo
}
getFileContentList(currentData).then(({data}) => {
//
if (data && data.code == 200) {
this.fileContentList = data.rows;
this.fileContentList = data.rows
} else {
this.fileContentList = [];
this.fileContentList = []
}
});
})
},
//
@ -991,9 +1013,10 @@
},
//
addUploadFileModal(){
addUploadFileModal () {
let currentData = {
site: this.$store.state.user.site,
site: this.currentRow.site,
buNo: this.currentRow.buNo,
createBy: this.$store.state.user.name,
num: this.currentRow.num,
objectId: this.currentRow.objectId,
@ -1011,36 +1034,36 @@
setCurrentRow(row, column, event) {
this.currentRow = JSON.parse(JSON.stringify(row))
},
//
changeCurrentRow(row, oldRow){
changeCurrentRow (row, oldRow) {
//
if(row){
this.currentRow = JSON.parse(JSON.stringify(row));
this.eamObjectId = row.objectId;
this.uploadUrl = this.$http.adornUrl(`/api/sys/file/upload?token=${this.$cookie.get('token')}&folder=` + this.folder + `&objectId=` + this.eamObjectId);
if (row) {
this.currentRow = JSON.parse(JSON.stringify(row))
this.eamObjectId = row.objectId
this.uploadUrl = this.$http.adornUrl(`/api/sys/file/upload?token=${this.$cookie.get('token')}&folder=` + this.folder + `&objectId=` + this.eamObjectId)
//
this.refreshCurrentTabTable();
this.refreshCurrentTabTable()
}
},
//
favoriteIsOk() {
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++) {
// let flag=false;
if(this.$route.meta.menuId==data.list[i].menuId){
if (this.$route.meta.menuId === data.list[i].menuId) {
this.favorite = true
// flag=true;
}
}
})
},
// OR
favoriteFunction() {
favoriteFunction () {
let userFavorite = {
userId: this.$store.state.user.id,
functionId: this.$route.meta.menuId,
@ -1058,16 +1081,18 @@
})
}
},
//excel
async createExportData() {
async createExportData () {
this.searchData.limit = -1
this.searchData.page = 1
await getKnowledgeBaseList(this.searchData).then(({data}) => {
this.exportList= data.page.list;
this.exportList= data.page.list
})
return this.exportList;
return this.exportList
},
downloadFile(row){
downloadFile (row) {
downLoadObjectFile(row)
.then(({data}) => {
//
@ -1086,11 +1111,14 @@
document.body.removeChild(linkNode)
})
},
startDownload() {
startDownload () {
},
finishDownload() {
finishDownload () {
},
fields() {
fields () {
let json = "{"
this.columnList.forEach((item, index) => {
if (index == this.columnList.length - 1) {
@ -1130,7 +1158,6 @@
// this.columnList3 = data.rows
// break;
}
} else {
this.getColumnList(tableId, columnId)
}

Loading…
Cancel
Save