diff --git a/src/api/basic/newDiUpload.js b/src/api/basic/newDiUpload.js new file mode 100644 index 0000000..6e77a18 --- /dev/null +++ b/src/api/basic/newDiUpload.js @@ -0,0 +1,26 @@ +import axios from "../../utils/axios"; + + +export function filterList(query) { + return axios({ + url: "/udiwms/basic/newDi/filter", + method: "get", + params: query + }); +} +export function deleteNewDi(query) { + return axios({ + url: "/udiwms/basic/newDi/delete", + method: "post", + data: query + }); +} + +export function postThird(query) { + return axios({ + url: "/udiwms/basic/newDi/postThird", + method: "post", + data: query + }); +} + diff --git a/src/router/index.js b/src/router/index.js index 774e95b..ac8ca9f 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -108,6 +108,7 @@ import thrCorpsImport from "../views/thrsys/ThrCorpsImport.vue"; import corpExportSmp from "../views/basic/CorpExportSmp.vue"; import udiinfoExportSmp from "../views/basic/UdiinfoExportSmp.vue"; import UdiInfoManageSp from "../views/basic/UdiInfoManageSp.vue" +import basicNewDiUpload from "../views/basic/BasicNewDiUpload.vue" import UdiInfoDonwloadSmp from "../views/basic/UdiInfoDonwloadSmp.vue"; import thrOrderExportSmp from "../views/thrsys/ThrOrderExportSmp.vue"; import thrProductsExportSmp from "../views/thrsys/ThrProductsExportSmp.vue"; @@ -487,6 +488,14 @@ export const asyncRouterMap = [ authRule: ["product/UdiInfoManageSp"] } }, + { + path: "newDiUpload", + name: "新增配送产品上传", + component: basicNewDiUpload, + meta: { + authRule: ["product/newDiUpload"] + } + }, ] }, { diff --git a/src/views/basic/BasicNewDiUpload.vue b/src/views/basic/BasicNewDiUpload.vue new file mode 100644 index 0000000..2f878e6 --- /dev/null +++ b/src/views/basic/BasicNewDiUpload.vue @@ -0,0 +1,321 @@ +<template> + <div> + + <el-card> + + + <el-form :inline="true" :model="query" class="query-form" size="mini"> + <el-row> + <el-form-item class="query-form-item"> + <el-input v-model="filterQuery.genKey" placeholder="DI产品标识"></el-input> + </el-form-item> + + <el-form-item class="query-form-item"> + <el-select v-model="filterQuery.uploadStatus" placeholder="上传状态"> + <el-option label="全部" value=""></el-option> + <el-option label="正在上传" value="0"></el-option> + <el-option label="上传成功" value="1"></el-option> + <el-option label="上传失败" value="2"></el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button-group style="display:flex;"> + <el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button> + <el-button type="primary" icon="search" @click="getList">查询</el-button> + </el-button-group> + + </el-form-item> + </el-row> + </el-form> + <el-table + v-loading="loading" + :data="list" + style="width: 100%" + @selection-change="handleSelectionChange" + > + <el-table-column label="序号" type="index"></el-table-column> + + <el-table-column + label="DI产品标识" + prop="nameCode" + show-overflow-tooltip + > + </el-table-column> + + <el-table-column + label="产品名称" + prop="productName" + show-overflow-tooltip + > + </el-table-column> + <el-table-column + label="目标系统" + prop="thirdSysFk" + show-overflow-tooltip + > + </el-table-column> + + + <el-table-column + label="第三方编码" + prop="uploadCode" + show-overflow-tooltip + > + </el-table-column> + + <el-table-column + label="更新日期" + prop="updateTime" + show-overflow-tooltip + ></el-table-column> + <el-table-column + label="上传状态" + prop="uploadStatus" + show-overflow-tooltip + > + <template slot-scope="scope"> + <el-tag + :type="statusFilterType(scope.row.uploadStatus)" + >{{ status[scope.row.uploadStatus] }} + </el-tag + > + </template> + </el-table-column> + <el-table-column label="操作" fixed="right" width="160"> + <template slot-scope="scope"> + + <el-button + type="text" + size="small" + @click.native.stop="uploadDilaog(scope.row)" + >上传 + </el-button + > + + <el-button + type="text" + size="small" + @click.native.stop="handleDetailClick(scope.row)" + >详情 + </el-button + > + <el-button + type="text" + size="small" + @click.native.stop="deleteDialog(scope.row.id)" + >删除 + </el-button + > + </template> + </el-table-column> + </el-table> + + + <el-pagination + :page-size="filterQuery.limit" + @current-change="handleCurrentChange" + layout="prev, pager, next" + :total="total" + :current-page="filterQuery.page" + ></el-pagination> + </el-card> + </div> + +</template> +<script> +import {filterList, deleteNewDi, postThird} from "../../api/basic/newDiUpload"; +import {getBasicThirdSys} from "../../api/basic/basicThirdSys"; +import {deleteLog} from "@/api/basic/corpImport"; + +export default { + data() { + return { + filterQuery: { + nameCode: null, + uploadStatus: null, + thirdSysFk: null, + page: 1, + limit: 20, + }, + list: [], + thirdSys: [], + total: 0, + currentRow: null, + status: { + 0: "等待上传", + 1: "正在上传", + 2: "上传失败", + 3: "上传成功" + }, + }; + }, + + methods: { + onReset() { + this.$router.push({ + path: "", + }); + this.filterQuery = { + nameCode: null, + uploadStatus: null, + thirdSysFk: null, + page: 1, + limit: 20, + }; + this.getList(); + }, + getList() { + this.loading = true; + filterList(this.filterQuery) + .then((response) => { + this.loading = false; + this.list = response.data.list || []; + this.total = response.data.total || 0; + }) + .catch(() => { + this.loading = false; + this.list = []; + this.total = 0; + }); + }, + + handleDetailClick(row) { + this.currentRow = row; + this.$confirm(this.currentRow.uploadMsg, "上传结果信息", { + confirmButtonText: '确定', + type: 'warning' + }).then(() => { + + + }).catch(() => { + this.$message({ + type: 'info', + message: '已取消操作' + }); + }); + }, + + + cancelDialog() { + this.corpImportDetailVisible = false; + }, + handleCurrentChange(val) { + this.filterQuery.page = val; + this.getList(); + }, + deleteDialog(rowId) { + this.$confirm("此操作将删除该产品上传记录, 是否继续?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + let dQuery = { + id: rowId, + }; + deleteNewDi(dQuery) + .then((response) => { + this.loading = false; + if (response.code == 20000) { + this.$message.success("删除成功"); + } else { + this.$message.error(response.message); + } + this.getList(); + }) + .catch(() => { + this.loading = false; + }); + }) + .catch(() => { + }); + }, + getBasicThirdSys() { + let query = { + enabled: true, + }; + getBasicThirdSys(query) + .then((response) => { + this.thirdSys = response.data.list || []; + this.getList(); + }) + .catch(() => { + this.loading = false; + this.list = []; + }); + }, + statusFilterType(status) { + const statusMap = { + 0: "warning", + 1: "warning", + 2: "danger", + 3: "success", + }; + return statusMap[status]; + }, + uploadDilaog(row) { + this.$confirm("确定上传产品信息至第三方系统", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + this.postProduct(row); + }) + .catch(() => { + }); + + }, + + + postProduct(row) { + postThird(row) + .then((response) => { + if (response.code == 20000) { + this.getList(); + } else { + this.$message.error(response.message); + } + }) + .catch(() => { + this.loading = false; + this.list = []; + }); + } + }, + + mounted() { + } + , + created() { + this.getBasicThirdSys(); + this.getList(); + } + , +} +; +</script> +<style> +.itemTag { + float: left; + text-align: left; + margin-top: 10px; + width: 100px; +} + +.text { + font-size: 13px; + font-family: "Microsoft YaHei"; +} + +.el-row { + display: flex; + flex-wrap: wrap; + +} + +.el-col { + border-radius: 4px; + flex-wrap: wrap; +} +</style>