Commit 715f3bfb authored by tanjunxin's avatar tanjunxin

fix: 部分页面增加导入导出功能

parent bcaa2995
......@@ -52,10 +52,10 @@
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="multiple"
@click="handBecomeFormalProduct">转正式产品</el-button>
</el-col>
</el-col> -->
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
</el-col> -->
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
</el-col>
......@@ -164,7 +164,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="物料/产品分类" prop="itemTypeName">
<el-input v-model="form.itemTypeName" readonly="readonly" v-if="optType == 'view'" />
<treeselect v-model="form.itemTypeName" :options="itemTypeOptions" :show-count="true" placeholder="请选择所属分类"
v-else :disable-branch-nodes="true" />
......@@ -697,7 +697,7 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download(
"mes/md/mditem/export",
"mes/md/mditem/importData",
{
...this.queryParams,
},
......@@ -706,7 +706,7 @@ export default {
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "物料/产品导入";
this.upload.title = "导入";
this.upload.open = true;
},
/** 下载模板操作 */
......@@ -809,4 +809,4 @@ export default {
overflow: hidden;
text-overflow: ellipsis;
}
</style>
\ No newline at end of file
</style>
......@@ -23,8 +23,8 @@
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
......@@ -56,8 +56,14 @@
v-hasPermi="['mes:md:workshop:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="workshopList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
......@@ -185,12 +191,34 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listWorkshop, getWorkshop, delWorkshop, addWorkshop, updateWorkshop } from "@/api/mes/md/workshop";
import {genCode} from "@/api/system/autocode/rule"
import { getToken } from "@/utils/auth";
import fcatorySelect from "@/components/FactorySelect/index.vue";
export default {
name: "Workshop",
......@@ -218,6 +246,21 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/mes/md/workshop/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
......@@ -311,7 +354,7 @@ export default {
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
......@@ -372,12 +415,6 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('md/workshop/export', {
...this.queryParams
}, `workshop_${new Date().getTime()}.xlsx`)
},
//自动生成物料编码
handleAutoGenChange(autoGenFlag){
debugger;
......@@ -388,8 +425,48 @@ export default {
}else{
this.form.workshopCode = null;
}
}
},
/** 导出按钮操作 */
handleExport() {
this.download('md/workshop/importTemplate', {
...this.queryParams
}, `workshop_${new Date().getTime()}.xlsx`)
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"mes/md/workshop/importData",
{},
`workshop_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
}
};
</script>
......@@ -126,6 +126,9 @@
>删除</el-button
>
</el-col> -->
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
......@@ -409,7 +412,7 @@
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
......@@ -503,6 +506,27 @@
<el-button @click="cancel">关 闭</el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
......@@ -525,6 +549,7 @@ import BrandSelect from "@/components/userSelect/single.vue";
// import { getTreeList } from "@/api/mes/wm/warehouse";
import { listAllProcess,listProcess } from "@/api/mes/pro/process";
import { genCode } from "@/api/system/autocode/rule";
import { getToken } from "@/utils/auth";
import { listAllWorkshop } from "@/api/mes/md/workshop";
export default {
name: "Workstation",
......@@ -581,6 +606,21 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/mes/md/workstation/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
......@@ -657,7 +697,7 @@ export default {
});
},
// 取消按钮
......@@ -806,16 +846,6 @@ export default {
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"mes/md/workstation/export",
{
...this.queryParams,
},
`workstation_${new Date().getTime()}.xlsx`
);
},
//自动生成编码
handleAutoGenChange(autoGenFlag) {
if (autoGenFlag) {
......@@ -858,6 +888,51 @@ export default {
this.form.nickName = row.nickName;
}
},
/** 导出按钮操作 */
handleExport() {
this.download(
"mes/md/workstation/importTemplate",
{
...this.queryParams,
},
`workstation_${new Date().getTime()}.xlsx`
);
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"mes/md/workstation/importData",
{},
`workshop_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
},
};
</script>
......@@ -101,6 +101,9 @@
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['md:workunit:remove']">删除</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
......@@ -595,6 +598,27 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -608,6 +632,7 @@ import {
} from "@/api/mes/md/workunit";
import WorkstationSelect from "@/components/workstationSelect/simpletableSingle.vue";
import { genCode } from "@/api/system/autocode/rule";
import { getToken } from "@/utils/auth";
export default {
name: "Workunit",
......@@ -635,6 +660,21 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/md/cal/workunit/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
......@@ -817,16 +857,6 @@ export default {
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"md/workunit/export",
{
...this.queryParams,
},
`workunit_${new Date().getTime()}.xlsx`
);
},
handleWorkstationSelect() {
this.$refs.workstationSelect.showFlag = true;
this.$refs.workstationSelect.getList();
......@@ -852,7 +882,52 @@ export default {
updateWorkunit(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
});
}
},
/** 导出按钮操作 */
handleExport() {
this.download(
"md/cal/workunit/importTemplate",
{
...this.queryParams,
},
`workunit_${new Date().getTime()}.xlsx`
);
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"md/cal/workunit/importData",
{},
`workunit_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
},
};
</script>
......@@ -66,6 +66,9 @@
v-hasPermi="['pro:ProWorkOrderArrangeRule:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
......@@ -556,6 +559,27 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -568,6 +592,7 @@ delProWorkOrderArrangeRule,
addProWorkOrderArrangeRule,
updateProWorkOrderArrangeRule } from "@/api/mes/pro/arrangeRule";
import { genCode } from "@/api/system/autocode/rule";
import { getToken } from "@/utils/auth";
import BrandSelect from "@/components/itemType/single.vue";
import ProcessSelect from "@/components/process/taskSelectSingle.vue";
export default {
......@@ -594,6 +619,21 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/mes/pro/ProWorkOrderArrangeRule/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
......@@ -622,6 +662,7 @@ export default {
},
// 表单参数
form: {},
optType: "",
// 表单校验
rules: {
arrangeRuleCode: [
......@@ -718,8 +759,6 @@ export default {
}
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.arrangeRuleId)
......@@ -776,10 +815,45 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('/mes/pro/ProWorkOrderArrangeRule/export', {
this.download('/mes/pro/ProWorkOrderArrangeRule/importTemplate', {
...this.queryParams
}, `ProWorkOrderArrangeRule_${new Date().getTime()}.xlsx`)
}
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"mes/pro/ProWorkOrderArrangeRule/importData",
{},
`ProWorkOrderArrangeRule_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
}
};
</script>
......@@ -64,6 +64,9 @@
v-hasPermi="['mes:pro:process:remove']"
>删除</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
......@@ -241,6 +244,27 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -248,6 +272,7 @@
import { listProcess, getProcess, delProcess, addProcess, updateProcess } from "@/api/mes/pro/process";
import Processcontent from "./content.vue";
import {genCode} from "@/api/system/autocode/rule"
import { getToken } from "@/utils/auth";
export default {
name: "Process",
dicts: ['sys_yes_no','sys_yes_non'],
......@@ -289,6 +314,21 @@ export default {
},
// 是否显示弹出层
open: false,
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/mes/pro/process/importData",
},
// 查询参数
queryParams: {
pageNum: 1,
......@@ -431,12 +471,6 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/pro/process/export', {
...this.queryParams
}, `process_${new Date().getTime()}.xlsx`)
},
//自动生成编码
handleAutoGenChange(autoGenFlag){
if(autoGenFlag){
......@@ -446,7 +480,48 @@ export default {
}else{
this.form.processCode = null;
}
}
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/pro/process/importTemplate', {
...this.queryParams
}, `process_${new Date().getTime()}.xlsx`)
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download(
"mes/pro/process/importData",
{},
`process_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
}
};
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment