@ -0,0 +1,72 @@ | |||
<template> | |||
<el-dialog | |||
:title="title" | |||
custom-class="look-error-wrapper" | |||
model-value fullscreen | |||
:close-on-click-modal="false" | |||
:before-close="cancel"> | |||
<el-table | |||
:data="tableData" | |||
v-loading="loading" | |||
size="mini" | |||
style="width: 100%" | |||
border | |||
height="500px" | |||
> | |||
<el-table-column | |||
v-for="(item, index) in headers" | |||
:key="index" | |||
:label="getColumnName(item)" | |||
:show-overflow-tooltip="true" | |||
> | |||
<template #default="scope"> | |||
<span>{{ scope.row[item] }}</span> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
<!-- 分页 --> | |||
<Pagination | |||
v-show="pagination.total > 0" | |||
v-model:pagination="pagination" | |||
@change="getList" | |||
/> | |||
</el-dialog> | |||
</template> | |||
<script> | |||
import { ListMixin } from "@/mixins/ListMixin"; | |||
export default { | |||
name: 'editField', | |||
mixins: [ListMixin], | |||
props: { | |||
item: { | |||
default: null, | |||
} | |||
}, | |||
data() { | |||
return { | |||
title: '查看错误', // 弹框标题 | |||
queryTableDataUrl: "/admin/ap/errordatalst/query", | |||
headers: [ | |||
"AP_ErrorDatalst-Id", | |||
"AP_ErrorDatalst-ErrorInfo", | |||
"AP_ErrorDatalst-ErrorType", | |||
"AP_ErrorDatalst-ErrorStatus", | |||
"AP_ErrorDatalst-TargetSource", | |||
"AP_ErrorDatalst-LastModify", | |||
"AP_ErrorDatalst-LastUser", | |||
"AP_ErrorDatalst-CreateTime", | |||
], // 遍历表头 | |||
} | |||
}, | |||
methods: { | |||
cancel() { // 取消按钮 | |||
this.$emit('update:isShowDialog','') | |||
}, | |||
} | |||
} | |||
</script> | |||
<style lang="less"> | |||
.look-error-wrapper { | |||
height: 100%; | |||
} | |||
</style> |
@ -0,0 +1,108 @@ | |||
<template> | |||
<div ref="tableRef" class="table-height-wrap"> | |||
<SearchTemplate> | |||
<el-form :inline="true" class="clearfix search-content"> | |||
<el-form-item :label="getColumnName('AP_ErrorDatalst-Id')"> | |||
<el-input | |||
v-model.trim="queryParams.Id" | |||
placeholder="请输入查询内容" | |||
clearable | |||
style="width: 240px" | |||
/> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button | |||
icon="el-icon-search" | |||
size="mini" | |||
class="search-button-style" | |||
@click="handleQuery" | |||
>搜索</el-button | |||
> | |||
<el-button | |||
icon="el-icon-refresh" | |||
size="mini" | |||
class="reset-button-style" | |||
@click="resetQuery" | |||
>重置</el-button | |||
> | |||
</el-form-item> | |||
</el-form> | |||
</SearchTemplate> | |||
<ContentContainer> | |||
<el-table | |||
:data="tableData" | |||
v-loading="loading" | |||
size="mini" | |||
style="width: 100%" | |||
border | |||
v-if="tableHeight" | |||
:height="tableHeight" | |||
> | |||
<el-table-column | |||
v-for="(item, index) in headers" | |||
:key="index" | |||
:label="getColumnName(item)" | |||
:show-overflow-tooltip="true" | |||
> | |||
<template #default="scope"> | |||
<span>{{ scope.row[item] }}</span> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
<!-- 分页 --> | |||
<Pagination | |||
v-show="pagination.total > 0" | |||
v-model:pagination="pagination" | |||
@change="getList" | |||
/> | |||
</ContentContainer> | |||
</div> | |||
</template> | |||
<script> | |||
import { ListMixin } from "@/mixins/ListMixin"; | |||
export default { | |||
mixins: [ListMixin], | |||
data() { | |||
return { | |||
queryTableDataUrl: "/admin/ap/errordatalst/query", | |||
headers: [ | |||
"AP_ErrorDatalst-Id", | |||
"AP_ErrorDatalst-ErrorInfo", | |||
"AP_ErrorDatalst-ErrorType", | |||
"AP_ErrorDatalst-ErrorStatus", | |||
"AP_ErrorDatalst-TargetSource", | |||
"AP_ErrorDatalst-LastModify", | |||
"AP_ErrorDatalst-LastUser", | |||
"AP_ErrorDatalst-CreateTime", | |||
], // 遍历表头 | |||
tableHeight: 0, | |||
}; | |||
}, | |||
methods: { | |||
// 搜索按钮操作 | |||
handleQuery() { | |||
this.pagination.pageNumber = 1; | |||
this.getList(); | |||
}, | |||
// 重置按钮操作 | |||
resetQuery() { | |||
this.queryParams.Id = undefined; | |||
this.handleQuery(); | |||
}, | |||
}, | |||
mounted() { | |||
this.$nextTick(() => { | |||
this.tableHeight = this.calculationTableHeight( | |||
this.$refs.tableRef, | |||
120 | |||
); | |||
}) | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
.table-height-wrap { | |||
height: 100%; | |||
overflow: hidden; | |||
} | |||
</style> |
@ -0,0 +1,267 @@ | |||
<template> | |||
<el-dialog | |||
:title="isAddOrEdit=='edit'?'修改':'新增'" | |||
model-value | |||
width="90%" | |||
:close-on-click-modal="false" | |||
:before-close="cancel" | |||
> | |||
<el-form | |||
ref="formData" | |||
:model="formData" | |||
:rules="rules" | |||
label-width="130px" | |||
v-loading="loading" | |||
> | |||
<el-row> | |||
<el-col :span="8"> | |||
<el-form-item :label="getColumnName('Script-Script')" prop="Script-Script"> | |||
<el-input v-model="formData['Script-Script']" :disabled="isAddOrEdit==='edit'" placeholder="请输入" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item :label="getColumnName('Script-Bez')" prop="Script-Bez"> | |||
<el-input v-model="formData['Script-Bez']" placeholder="请输入" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item :label="getColumnName('Script-ScriptTable')" prop="Script-ScriptTable"> | |||
<!-- <el-input v-model="formData['Script-ScriptTable']" placeholder="请输入" /> --> | |||
<el-input v-model="formData['Script-ScriptTable']" clearable> | |||
<template #append> | |||
<el-button type="primary" size="small" @click="getColumnEvent">获取表字段</el-button> | |||
</template> | |||
</el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item :label="getColumnName('Script-UseHead')"> | |||
<el-input-number v-model="formData['Script-UseHead']" placeholder="请输入" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item :label="getColumnName('Script-StartRow')"> | |||
<el-input-number v-model="formData['Script-StartRow']" placeholder="请输入" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item :label="getColumnName('Script-StartCol')"> | |||
<el-input-number v-model="formData['Script-StartCol']" placeholder="请输入" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="6"> | |||
<el-form-item> | |||
<el-checkbox v-model="formData['Script-ClearTable']">{{getColumnName('Script-ClearTable')}}</el-checkbox> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="6"> | |||
<el-form-item> | |||
<el-checkbox v-model="formData['Script-AppendNewRecord']">{{getColumnName('Script-AppendNewRecord')}}</el-checkbox> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="6"> | |||
<el-form-item> | |||
<el-checkbox v-model="formData['Script-UpdateRecord']">{{getColumnName('Script-UpdateRecord')}}</el-checkbox> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="6"> | |||
<el-form-item> | |||
<el-checkbox v-model="formData['Script-AppendAndUpdateRecord']">{{getColumnName('Script-AppendAndUpdateRecord')}}</el-checkbox> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="24"> | |||
<el-table | |||
style="width: 100%;margin-bottom:10px;" | |||
height="400px" | |||
border | |||
size="mini" | |||
:data="formData['Script-ScriptItem']"> | |||
<el-table-column :label="getColumnName('ScriptItem-TabMapCol')"> | |||
<template #default="scope"> | |||
<el-input v-model="scope.row['ScriptItem-TabMapCol']" clearable placeholder="请输入" /> | |||
</template> | |||
</el-table-column> | |||
<el-table-column :label="getColumnName('ScriptItem-ColNo')"> | |||
<template #default="scope"> | |||
<el-input-number v-model="scope.row['ScriptItem-ColNo']" clearable placeholder="请输入" /> | |||
</template> | |||
</el-table-column> | |||
<el-table-column :label="getColumnName('ScriptItem-ColName')"> | |||
<template #default="scope"> | |||
<el-input v-model="scope.row['ScriptItem-ColName']" clearable placeholder="请输入" /> | |||
</template> | |||
</el-table-column> | |||
<el-table-column :label="getColumnName('ScriptItem-ColFieldType')"> | |||
<template #default="scope"> | |||
<el-input v-model="scope.row['ScriptItem-ColFieldType']" clearable placeholder="请输入" /> | |||
</template> | |||
</el-table-column> | |||
<el-table-column :label="getColumnName('ScriptItem-ColFormat')"> | |||
<template #default="scope"> | |||
<el-input v-model="scope.row['ScriptItem-ColFormat']" clearable placeholder="请输入" /> | |||
</template> | |||
</el-table-column> | |||
<el-table-column :label="getColumnName('ScriptItem-DefaultValue')"> | |||
<template #default="scope"> | |||
<el-input v-model="scope.row['ScriptItem-DefaultValue']" clearable placeholder="请输入" /> | |||
</template> | |||
</el-table-column> | |||
<el-table-column align="center" width="100"> | |||
<template #header> | |||
<el-button | |||
size="mini" | |||
class="search-button-style" | |||
style="margin-left:0 !important;width:70px;" | |||
@click="handleAddValst()" | |||
>新增</el-button> | |||
</template> | |||
<template #default="scope"> | |||
<el-button | |||
class="table-delete-button" | |||
type="danger" | |||
size="mini" | |||
@click="handleDeleteValst(scope.$index)" | |||
>删除</el-button> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
</el-col> | |||
</el-row> | |||
</el-form> | |||
<template #footer> | |||
<div class="dialog-footer"> | |||
<el-button | |||
type="primary" | |||
class="dialog-submit-button" | |||
@click="submitForm">确 定</el-button> | |||
<el-button class="dialog-cancel-button" @click="cancel">取 消</el-button> | |||
</div> | |||
</template> | |||
</el-dialog> | |||
</template> | |||
<script> | |||
import { get, post, put } from "@/server/api.js"; | |||
export default { | |||
name: "editField", | |||
props: { | |||
item: { | |||
default: {}, | |||
}, | |||
isAddOrEdit: { | |||
default: "add", | |||
}, | |||
}, | |||
mounted() { | |||
if (this.isAddOrEdit == "edit") { | |||
get(`/admin/base/script/selectone/${this.item['Script-Script']}`).then(res => { | |||
this.formData = res.data | |||
}) | |||
} | |||
}, | |||
created() { | |||
}, | |||
data() { | |||
return { | |||
loading: false, | |||
// 表单参数 | |||
formData: { | |||
'Script-ScriptItem': [] | |||
}, | |||
uomtypeArray: [], // 单位类型 | |||
// 表单校验 | |||
rules: { | |||
"Script-Script": [ | |||
{ required: true, message: "此项不能为空", trigger: "blur" }, | |||
], | |||
"Script-Bez": [ | |||
{ required: true, message: "此项不能为空", trigger: "blur" }, | |||
], | |||
"Script-ScriptTable": [ | |||
{ required: true, message: "此项不能为空", trigger: "blur" }, | |||
], | |||
}, | |||
}; | |||
}, | |||
methods: { | |||
// 获取表列名 | |||
getColumnEvent() { | |||
let params = { | |||
tablename: this.formData['Script-ScriptTable'] | |||
} | |||
get('/admin/base/scriptitem/selecttableinfo', params).then((res) => { | |||
if (res.code === 200) { | |||
// let newDataArray = [] | |||
// res.data.forEach(el => { | |||
// newDataArray.push({ | |||
// 'DataTableLst-TargetField': el.fieldName, | |||
// 'DataTableLst-FieldType': el.fieldType | |||
// }) | |||
// }) | |||
this.formData['Script-ScriptItem'] = res.data || [] | |||
} | |||
}) | |||
}, | |||
/** 新增字段 */ | |||
handleAddValst() { | |||
this.formData['Script-ScriptItem'].push({ | |||
'ScriptItem-TabMapCol': undefined, | |||
'ScriptItem-ColNo': undefined, | |||
'ScriptItem-ColName': undefined, | |||
// 'ScriptItem-RowNo': undefined, | |||
// 'ScriptItem-RowName': undefined, | |||
'ScriptItem-ColFieldType': undefined, | |||
'ScriptItem-ColFormat': undefined, | |||
'ScriptItem-DefaultValue': undefined | |||
}) | |||
}, | |||
/** 删除字段 */ | |||
handleDeleteValst(index) { | |||
this.formData['Script-ScriptItem'].splice(index, 1) | |||
}, | |||
// 取消 | |||
cancel() { | |||
this.$emit("setIsAddOrEdit", ""); | |||
}, | |||
// 确认 | |||
submitForm() { | |||
this.$refs["formData"].validate((valid) => { | |||
if (valid) { | |||
this.loading = true; | |||
if (this.isAddOrEdit == "add") { | |||
this.add(); | |||
} else { | |||
this.edit(); | |||
} | |||
} | |||
}); | |||
}, | |||
// 新增 | |||
add() { | |||
post('/admin/base/script/insertone',this.formData).then(({ code }) => { | |||
this.loading = false; | |||
if (code == 200) { | |||
this.msgSuccess("新增成功"); | |||
this.$emit("setIsAddOrEdit", false); | |||
} | |||
}) | |||
.catch(() => { | |||
this.loading = false; | |||
}); | |||
}, | |||
// 修改 | |||
edit() { | |||
put('/admin/base/script/updateone',this.formData).then(({ code }) => { | |||
this.loading = false; | |||
if (code == 200) { | |||
this.msgSuccess("修改成功"); | |||
this.$emit("setIsAddOrEdit", false); | |||
} | |||
}) | |||
.catch(() => { | |||
this.loading = false; | |||
}); | |||
}, | |||
}, | |||
}; | |||
</script> |
@ -0,0 +1,201 @@ | |||
<template> | |||
<div ref="tableRef" class="table-height-wrap"> | |||
<SearchTemplate> | |||
<el-form :inline="true" class="clearfix search-content"> | |||
<el-form-item :label="getColumnName('Script-Script')"> | |||
<el-input | |||
v-model.trim="queryParams.Script" | |||
placeholder="请输入查询内容" | |||
clearable | |||
style="width: 240px" | |||
/> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button | |||
icon="el-icon-search" | |||
size="mini" | |||
class="search-button-style" | |||
@click="handleQuery" | |||
>搜索</el-button | |||
> | |||
<el-button | |||
icon="el-icon-refresh" | |||
size="mini" | |||
class="reset-button-style" | |||
@click="resetQuery" | |||
>重置</el-button | |||
> | |||
</el-form-item> | |||
<el-form-item class="fr"> | |||
<el-button | |||
icon="el-icon-plus" | |||
class="add-button-style" | |||
@click="setIsAddOrEdit('add')" | |||
>新增</el-button | |||
> | |||
</el-form-item> | |||
</el-form> | |||
</SearchTemplate> | |||
<ContentContainer> | |||
<el-table | |||
:data="tableData" | |||
v-loading="loading" | |||
size="mini" | |||
style="width: 100%" | |||
border | |||
v-if="tableHeight" | |||
:height="tableHeight" | |||
> | |||
<el-table-column | |||
v-for="(item, index) in headers" | |||
:key="index" | |||
:label="getColumnName(item)" | |||
:show-overflow-tooltip="true" | |||
> | |||
<template #default="scope"> | |||
<span v-if="item === 'Script-PlantNr'">{{ | |||
getWorkshopName(scope.row["Script-PlantNr"]) | |||
}}</span> | |||
<span v-else>{{ scope.row[item] }}</span> | |||
</template> | |||
</el-table-column> | |||
<el-table-column label="操作" width="250"> | |||
<template #default="scope"> | |||
<el-button | |||
class="edit-button-style" | |||
@click="handleUpdate(scope.row)" | |||
icon="el-icon-edit" | |||
size="small" | |||
>修改</el-button | |||
> | |||
<el-button | |||
icon="el-icon-upload" | |||
size="small" | |||
class="edit-button-style" | |||
@click="handleUpload(scope.row)">导入</el-button> | |||
<el-button | |||
class="edit-button-style" | |||
@click="handleDelete(scope.row)" | |||
icon="el-icon-delete" | |||
size="small" | |||
>删除</el-button | |||
> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
<!-- 分页 --> | |||
<Pagination | |||
v-show="pagination.total > 0" | |||
v-model:pagination="pagination" | |||
@change="getList" | |||
/> | |||
</ContentContainer> | |||
<AddOrEdit | |||
v-if="isAddOrEdit" | |||
:isAddOrEdit="isAddOrEdit" | |||
:item="item" | |||
@setIsAddOrEdit="setIsAddOrEdit" | |||
/> | |||
<!-- 上传 --> | |||
<uploadTemplate | |||
v-if="isShowDialog === 'upload'" | |||
:item="item" | |||
v-model:isShowDialog="isShowDialog" | |||
@editCallBack="completeCallBack" /> | |||
</div> | |||
</template> | |||
<script> | |||
import { ListMixin } from "@/mixins/ListMixin"; | |||
import AddOrEdit from "./addOrEdit.vue"; | |||
import uploadTemplate from "./upload.vue"; | |||
export default { | |||
components: { | |||
AddOrEdit, | |||
uploadTemplate | |||
}, | |||
mixins: [ListMixin], | |||
data() { | |||
return { | |||
queryTableDataUrl: "/admin/base/script/query", | |||
isAddOrEdit: "", // 控制是否显示添加/编辑界面 | |||
item: {}, // 当前要操作的对象 | |||
headers: [ | |||
"Script-PlantNr", | |||
"Script-Script", | |||
"Script-Bez", | |||
"Script-ScriptTable", | |||
// "Script-ScriptType", | |||
// "Script-FilePath", | |||
"Script-Separator", | |||
"Script-UseHead", | |||
"Script-ClearTable", | |||
"Script-StartRow", | |||
"Script-StartCol", | |||
"Script-AppendNewRecord", | |||
"Script-UpdateRecord", | |||
"Script-AppendAndUpdateRecord", | |||
// "Script-CallSpecFunc", | |||
// "Script-CallFunction", | |||
], // 遍历表头 | |||
tableHeight: 0, | |||
isShowDialog: '', | |||
}; | |||
}, | |||
methods: { | |||
// 上传 | |||
handleUpload(item) { | |||
this.item = item; | |||
this.isShowDialog = 'upload' | |||
}, | |||
completeCallBack(data) { | |||
this.isShowDialog = '' | |||
if (data) { | |||
this.handleUpdate(this.item.CustomerId, this.item.VersionId) | |||
} | |||
}, | |||
// 是否显示编辑/新增界面 | |||
setIsAddOrEdit(value) { | |||
this.isAddOrEdit = value; | |||
if (!value) { | |||
this.getList(); | |||
} | |||
}, | |||
// 修改 | |||
handleUpdate(item) { | |||
this.item = item; | |||
this.setIsAddOrEdit("edit"); | |||
}, | |||
// 搜索按钮操作 | |||
handleQuery() { | |||
this.pagination.pageNumber = 1; | |||
this.getList(); | |||
}, | |||
// 重置按钮操作 | |||
resetQuery() { | |||
this.queryParams.Script = undefined; | |||
this.handleQuery(); | |||
}, | |||
// 删除按钮操作 | |||
handleDelete(row) { | |||
let keyName = row["Script-Script"]; | |||
let deteleUrl = `/admin/base/script/deleteone/${row["Script-Script"]}`; | |||
// 参数1:删除数据的标志,参数2:删除的接口拼接参数 | |||
this.delHanle(keyName, deteleUrl); | |||
}, | |||
}, | |||
mounted() { | |||
this.$nextTick(() => { | |||
this.tableHeight = this.calculationTableHeight( | |||
this.$refs.tableRef, | |||
120 | |||
); | |||
}) | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
.table-height-wrap { | |||
height: 100%; | |||
overflow: hidden; | |||
} | |||
</style> |
@ -0,0 +1,86 @@ | |||
<template> | |||
<el-dialog :title="title" model-value width="50%" :close-on-click-modal="false" :before-close="cancel"> | |||
<input | |||
type="file" | |||
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, xls, xlsx" | |||
@change="previewUpload" | |||
> | |||
<el-button | |||
type="primary" | |||
:loading="uploadLoading" | |||
icon="el-icon-upload" | |||
size="mini" | |||
@click="uploadEvent" | |||
>上传</el-button> | |||
</el-dialog> | |||
</template> | |||
<script> | |||
import { readexcel } from "@/server/api.js"; | |||
export default { | |||
name: 'editField', | |||
props: { | |||
item: { | |||
default: null, | |||
} | |||
}, | |||
data() { | |||
return { | |||
title: '导入', // 弹框标题 | |||
uploadLoading: false, | |||
excel: '', | |||
} | |||
}, | |||
methods: { | |||
cancel() { // 取消按钮 | |||
this.$emit('update:isShowDialog','') | |||
}, | |||
// 上传文件预览 | |||
previewUpload(file) { | |||
this.excle = file.target.files[0] | |||
}, | |||
// 上传文件 | |||
uploadEvent() { | |||
this.uploadLoading = true | |||
if (this.excle === null || this.excle === '' || this.excle === undefined) { | |||
this.$message({ | |||
showClose: true, | |||
duration: 2000, | |||
message: '请选择文件', | |||
type: 'error' | |||
}) | |||
this.uploadLoading = false | |||
} else { | |||
const uploadData = new FormData() | |||
uploadData.append('uploadfile', this.excle) | |||
readexcel(uploadData, this.item['Script-Script']).then(res => { | |||
this.uploadLoading = false | |||
if (res.code === 200) { | |||
this.$message({ | |||
showClose: true, | |||
duration: 2000, | |||
message: '导入成功', | |||
type: 'success' | |||
}) | |||
this.$emit('editCallBack', true) | |||
} else { | |||
this.$message({ | |||
showClose: true, | |||
duration: 2000, | |||
message: res.msg, | |||
type: 'error' | |||
}) | |||
} | |||
}).catch((res) => { | |||
this.uploadLoading = false | |||
this.$message({ | |||
showClose: true, | |||
duration: 2000, | |||
message: res.msg, | |||
type: 'error' | |||
}) | |||
}) | |||
} | |||
}, | |||
} | |||
} | |||
</script> |