1.系统多账号登录问题2.采购订单页面样式修改及数据渲染
| | |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 采购订单跟踪管理看板,左上本月采购订单数、本月采购进货单数、本月采购入库单数 |
| | | export function PurchaseLeftTop() { |
| | | return request({ |
| | | url: 'KanBanManagerent/PurchaseLeftTop', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 采购订单跟踪管理看板,左下采购订单跟踪列表 |
| | | export function PurchaseLeftBottom() { |
| | | return request({ |
| | | url: 'KanBanManagerent/PurchaseLeftBottom', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 采购订单跟踪管理看板,右侧Top |
| | | export function PurchaseRight() { |
| | | return request({ |
| | | url: 'KanBanManagerent/PurchaseRight', |
| | | method: 'get' |
| | | }) |
| | | } |
| | |
| | | }, |
| | | computed: { |
| | | visitedViews() { |
| | | if (this.$store.state.tagsView.visitedViews.length > 10) { |
| | | // eslint-disable-next-line vue/no-side-effects-in-computed-properties |
| | | this.dialogVisible = true |
| | | } |
| | | // 暂时取消十个标签页限制提示 |
| | | // if (this.$store.state.tagsView.visitedViews.length > 10) { |
| | | // // eslint-disable-next-line vue/no-side-effects-in-computed-properties |
| | | // this.dialogVisible = true |
| | | // } |
| | | return this.$store.state.tagsView.visitedViews |
| | | }, |
| | | routes() { |
| | |
| | | import axios from 'axios' |
| | | import { MessageBox, Message } from 'element-ui' |
| | | import store from '@/store' |
| | | import { getCookie, getToken, removeCookie } from '@/utils/auth' |
| | | import { getCookie, getToken, removeCookie, setCookie } from '@/utils/auth' |
| | | import { handleDatetime } from '@/utils/global' |
| | | // create an axios instance |
| | | |
| | | const service = axios.create({ |
| | |
| | | removeCookie('userid') |
| | | removeCookie('code') |
| | | setTimeout(() => { |
| | | sessionStorage.removeItem('tabViews') |
| | | window.location.reload() |
| | | }, 3000) |
| | | }, 1000 * 2) |
| | | } |
| | | // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; |
| | | // if (res.code === 50008 || res.code === 50012 || res.code === 50014) { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getRoleSearch() |
| | | this.getRoleTypeSearch2() |
| | | this.getUserOrganization() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getRoleSearch().then(res => { |
| | | if (res.code === '200') { |
| | | this.getRoleTypeSearch2() |
| | | this.getUserOrganization() |
| | | } |
| | | }) |
| | | }, |
| | | // 获取角色清单 |
| | | async getRoleSearch() { |
| | | const res = await RoleSearch(this.form) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | return { code: res.code } |
| | | }, |
| | | // 获取用户类型 |
| | | async getRoleTypeSearch() { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getUserSearch() |
| | | this.getUserOrganization() |
| | | this.handleRequest() |
| | | }, |
| | | |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getUserSearch().then(res => { |
| | | if (res.code === '200') { |
| | | this.getUserOrganization() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 获取用户清单 |
| | | async getUserSearch() { |
| | | const res = await UserSearch(this.form) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | return { code: res.code } |
| | | }, |
| | | // 获取所属组织 |
| | | async getUserOrganization() { |
| | |
| | | <div class="kb_left_top_block kb_pd10"> |
| | | <div class="content01"> |
| | | <div class="pic01" /> |
| | | <div class="number">12</div> |
| | | <div class="number">{{ purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont }}</div> |
| | | <div class="text">本月采购单数</div> |
| | | </div> |
| | | <div class="content01"> |
| | | <div class="pic01" /> |
| | | <div class="number">90200</div> |
| | | <div class="number">{{ purchaseLeftTopData.ThisMonthPurchaseOrderCont }}</div> |
| | | <div class="text">本月进货单数</div> |
| | | </div> |
| | | <div class="content01"> |
| | | <div class="pic01" /> |
| | | <div class="number">90200</div> |
| | | <div class="number">{{ purchaseLeftTopData.ThisMonthWareHouseOrderCont }}</div> |
| | | <div class="text">本月入库单数</div> |
| | | <!-- <div id="pie01" ref="pie01" class="pie01" />--> |
| | | <!-- <div class="text" style="margin-top: -10px">当月延期占比</div>--> |
| | |
| | | <!-- 2--> |
| | | <div class="kb_left_bottom kb_pd10"> |
| | | <div class="kb_left_bottom_content"> |
| | | <div class="content_head">我是标题</div> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="610" |
| | | > |
| | | <el-table-column |
| | | prop="xh" |
| | | label="序号" |
| | | width="53" |
| | | /> |
| | | <el-table-column |
| | | prop="jgzt" |
| | | label="加工状态" |
| | | width="85" |
| | | /> |
| | | <el-table-column |
| | | prop="pfsj" |
| | | label="派发时间" |
| | | width="86" |
| | | /> |
| | | <el-table-column |
| | | prop="xsddh" |
| | | label="销售订单号" |
| | | width="150" |
| | | /> |
| | | <el-table-column |
| | | prop="jgdh" |
| | | label="加工单号" |
| | | width="207" |
| | | /> |
| | | <el-table-column |
| | | prop="cpmc" |
| | | label="产品名称" |
| | | width="105" |
| | | /> |
| | | <el-table-column |
| | | prop="gg" |
| | | label="规格" |
| | | width="60" |
| | | /> |
| | | <el-table-column |
| | | prop="dw" |
| | | label="单位" |
| | | width="60" |
| | | /> |
| | | <el-table-column |
| | | prop="rwsl" |
| | | label="任务数量" |
| | | width="90" |
| | | /> |
| | | <el-table-column |
| | | prop="wgsl" |
| | | label="完工数量" |
| | | width="90" |
| | | /> |
| | | <el-table-column |
| | | prop="blsl" |
| | | label="不良数量" |
| | | width="90" |
| | | /> |
| | | <el-table-column |
| | | prop="wcl" |
| | | label="完成率" |
| | | width="70" |
| | | /> |
| | | <el-table-column |
| | | prop="yjks" |
| | | label="预计开始" |
| | | width="86" |
| | | /> |
| | | <el-table-column |
| | | prop="yjjs" |
| | | label="预计结束" |
| | | width="86" |
| | | /> |
| | | </el-table> |
| | | <div class="content_head">我是标题:</div> |
| | | <div class="content_body"> |
| | | <el-table |
| | | ref="tableData" |
| | | :data="tableData" |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="588" |
| | | > |
| | | <!-- <el-table-column--> |
| | | <!-- prop="RowNum"--> |
| | | <!-- label="序号"--> |
| | | <!-- width="53"--> |
| | | <!-- />--> |
| | | |
| | | <el-table-column |
| | | prop="PurchaseOrder" |
| | | label="采购订单" |
| | | width="163" |
| | | /> |
| | | <el-table-column |
| | | prop="suppername" |
| | | label="供应商" |
| | | width="163" |
| | | /> |
| | | <el-table-column |
| | | prop="username" |
| | | label="采购员" |
| | | width="68" |
| | | /> |
| | | <el-table-column |
| | | prop="partcode" |
| | | label="产品编码" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="partname" |
| | | label="产品名称" |
| | | width="168" |
| | | /> |
| | | <el-table-column |
| | | prop="partspec" |
| | | label="规格型号" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="quantity" |
| | | label="订单数量" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="checktype" |
| | | label="检验状态" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.checktype===null">未检验</div> |
| | | <div v-else>已检验</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="checkuser" |
| | | label="检验人员" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="quantity1" |
| | | label="已收数量" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | label="未收数量" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ parseFloat(row.quantity- row.quantity1) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="acceptDate" |
| | | label="预计交期" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ row.acceptDate.substring(5, 10) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="warning" |
| | | label="延期天数" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="parseFloat(row.warning)<0" style="color: red">{{ Math.abs(parseFloat(row.warning)) }}</div> |
| | | <div v-else-if="row.warning===null">0</div> |
| | | <div v-else>{{ row.warning }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="kb_right kb_pd10"> |
| | | <div class="kb_right_top kb_pd10"> |
| | | <div class="kb_right_top_content"> |
| | | <div class="content_head">供应商延期交货排行</div> |
| | | <div class="content_head">供应商延期交货排行:</div> |
| | | <div class="content_body"> |
| | | <el-table |
| | | ref="tableDataRank" |
| | |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="888" |
| | | :row-class-name="tableRowClassName" |
| | | height="923" |
| | | > |
| | | <el-table-column |
| | | prop="xh" |
| | | type="index" |
| | | label="序号" |
| | | width="75" |
| | | /> |
| | | <el-table-column |
| | | prop="cj" |
| | | label="车间" |
| | | width="100" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>NO.{{ row.index }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="cj"--> |
| | | <!-- label="车间"--> |
| | | <!-- width="100"--> |
| | | <!-- />--> |
| | | <el-table-column |
| | | prop="suppercode" |
| | | label="供应商编码" |
| | | width="145" |
| | | /> |
| | | <el-table-column |
| | | prop="cx" |
| | | label="产线" |
| | | width="120" |
| | | prop="suppername" |
| | | width="163" |
| | | label="供应商名称" |
| | | /> |
| | | <el-table-column |
| | | prop="cp" |
| | | width="138" |
| | | label="产品" |
| | | /> |
| | | <el-table-column |
| | | prop="sl" |
| | | prop="cont" |
| | | label="数量" |
| | | width="100" |
| | | width="125" |
| | | /> |
| | | </el-table> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import './kbCommon.css' |
| | | import { loadEcharts, pie01 } from '@/utils/myEcharts' |
| | | import { bar02, loadEcharts, pie01 } from '@/utils/myEcharts' |
| | | import * as echarts from 'echarts' |
| | | import { PurchaseLeftBottom, PurchaseLeftTop, PurchaseRight } from '@/api/dzkb' |
| | | |
| | | export default { |
| | | name: 'Index2', |
| | |
| | | return { |
| | | headTime: '', |
| | | |
| | | tableData: [ |
| | | { |
| | | xh: 1, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 2, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 3, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 4, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 5, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 6, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 7, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 8, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 9, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 10, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | } |
| | | ], |
| | | tableDataRank: [// 排行 |
| | | { xh: 'NO.1', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.2', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.3', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.4', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.5', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.6', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.7', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.8', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 } |
| | | ] |
| | | purchaseLeftTopData: [], |
| | | tableData: [], |
| | | tableDataRank: [] |
| | | |
| | | } |
| | | }, |
| | |
| | | setInterval(this.getNowTime, 1000) |
| | | }, |
| | | mounted() { |
| | | |
| | | this.getPurchaseLeftTop() |
| | | this.getPurchaseLeftBottom() |
| | | this.getPurchaseRight() |
| | | }, |
| | | methods: { |
| | | |
| | | // 获取echarts |
| | | getEcharts() { |
| | | loadEcharts('pie01', pie01()) |
| | | |
| | | // setInterval(() => { |
| | | // loadEcharts('pie01', pie01()) |
| | | // }, 5000) |
| | | getPurchaseLeftTop() { |
| | | PurchaseLeftTop().then(res => { |
| | | this.purchaseLeftTopData = res.data[0] |
| | | console.log(this.purchaseLeftTopData) |
| | | }) |
| | | setInterval(() => { |
| | | PurchaseLeftTop().then(res => { |
| | | this.purchaseLeftTopData = res.data[0] |
| | | }) |
| | | }, 1000 * 6) |
| | | }, |
| | | |
| | | getPurchaseLeftBottom() { |
| | | PurchaseLeftBottom().then(res => { |
| | | this.tableData = res.data |
| | | }) |
| | | |
| | | const divData = this.$refs.tableData.bodyWrapper |
| | | // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | setInterval(() => { |
| | | // 元素自增距离顶部1像素 |
| | | // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length |
| | | divData.scrollTop += 1 |
| | | // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度) |
| | | if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) { |
| | | // 重置table距离顶部距离 |
| | | divData.scrollTop = 0 |
| | | PurchaseLeftBottom().then(res => { |
| | | this.tableData = res.data |
| | | }) |
| | | } |
| | | }, this.tableData.length <= 14 ? 1000 * 6 : 100) |
| | | }, |
| | | |
| | | getPurchaseRight() { |
| | | PurchaseRight().then(res => { |
| | | this.tableDataRank = res.data |
| | | }) |
| | | |
| | | const divData = this.$refs.tableDataRank.bodyWrapper |
| | | // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | setInterval(() => { |
| | | // 元素自增距离顶部1像素 |
| | | // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length |
| | | divData.scrollTop += 1 |
| | | // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度) |
| | | if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) { |
| | | // 重置table距离顶部距离 |
| | | divData.scrollTop = 0 |
| | | PurchaseRight().then(res => { |
| | | this.tableDataRank = res.data |
| | | }) |
| | | } |
| | | }, this.tableDataRank.length <= 22 ? 1000 * 6 : 100) |
| | | }, |
| | | |
| | | tableRowClassName({ row, rowIndex }) { |
| | | // 把每一行的索引放进row |
| | | row.index = rowIndex + 1 |
| | | }, |
| | | // 获取echarts |
| | | // getEcharts() { |
| | | // loadEcharts('pie01', pie01()) |
| | | // |
| | | // // setInterval(() => { |
| | | // // loadEcharts('pie01', pie01()) |
| | | // // }, 5000) |
| | | // }, |
| | | |
| | | // 获取当前时间 |
| | | getNowTime() { |
| | |
| | | }, |
| | | headerCellStyle() { |
| | | return { |
| | | backgroundColor: '#000', |
| | | backgroundColor: 'rgb(30 ,33, 46)', |
| | | padding: '10px 0', |
| | | textAlign: 'center', |
| | | color: '#fff', |
| | | borderRight: '1px solid rgba(255,255,255,0.6)' |
| | | color: '#07acc2', |
| | | border: 'none' |
| | | } |
| | | }, |
| | | cellStyle() { |
| | | return { |
| | | padding: '5px 0', |
| | | padding: '8px 0', |
| | | textAlign: 'center', |
| | | backgroundColor: '#000', |
| | | backgroundColor: 'rgba(30, 33, 46 )', |
| | | // backgroundColor: 'transparent', |
| | | color: '#fff', |
| | | borderRight: '1px solid rgba(255,255,255,0.6)' |
| | | border: 'none' |
| | | } |
| | | } |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | $kbBorderColor: #09d8f2; |
| | | |
| | | .kb_content { |
| | | display: flex; |
| | |
| | | display: flex; |
| | | //border: 1px solid rgba(255, 255, 255, 0.6); |
| | | justify-content: space-around; |
| | | background-color: rgba(30, 33, 46,0.6); |
| | | |
| | | .content01 { |
| | | margin: auto; |
| | |
| | | height: 610px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | border: 1px solid rgba(255, 255, 255, 0.6); |
| | | |
| | | .content_head { |
| | | line-height: 55px; |
| | | border-bottom: 1px solid rgba(255, 255, 255, 0.6); |
| | | text-align: center; |
| | | font-size: 26px; |
| | | line-height: 20px; |
| | | font-size: 18px; |
| | | margin-bottom: 10px; |
| | | margin-top: -10px; |
| | | } |
| | | |
| | | .content_body { |
| | | border: 1px solid $kbBorderColor; |
| | | } |
| | | } |
| | | } |
| | |
| | | width: 100%; |
| | | |
| | | .kb_right_top_content { |
| | | border: 1px solid rgba(255, 255, 255, 0.6); |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .content_head { |
| | | font-size: 26px; |
| | | height: 55px; |
| | | line-height: 55px; |
| | | border-bottom: 1px solid rgba(255, 255, 255, 0.6); |
| | | text-align: center; |
| | | line-height: 20px; |
| | | font-size: 18px; |
| | | margin-bottom: 10px; |
| | | margin-top: -10px; |
| | | } |
| | | |
| | | .content_body { |
| | | border: 1px solid $kbBorderColor; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | ::v-deep .el-table::before { |
| | | height: 0; |
| | | } |
| | | |
| | | ::v-deep .el-table__body-wrapper { |
| | | background-color: #000; |
| | | background-color: rgba(30, 33, 46); |
| | | } |
| | | |
| | | ::v-deep .el-table__body-wrapper::-webkit-scrollbar { |
| | |
| | | <!-- 1--> |
| | | <div class="kb_left_top kb_pd10"> |
| | | <div class="kb_left_top_block"> |
| | | <div class="headTitle">成品入库单</div> |
| | | <div class="headTitle">成品入库单:</div> |
| | | <div class="content"> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="214" |
| | | height="240" |
| | | > |
| | | <el-table-column |
| | | prop="xh" |
| | |
| | | </div> |
| | | </div> |
| | | <div class="kb_left_top_block"> |
| | | <div class="headTitle">成品出库单</div> |
| | | <div class="headTitle">成品出库单:</div> |
| | | <div class="content"> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="214" |
| | | height="240" |
| | | > |
| | | <el-table-column |
| | | prop="xh" |
| | |
| | | <div class="kb_right kb_pd10"> |
| | | <div class="kb_right_top kb_pd10"> |
| | | <div class="kb_right_top_content"> |
| | | <div class="content_head">库存排行</div> |
| | | <div class="content_head">库存排行:</div> |
| | | <div class="content_body"> |
| | | <el-table |
| | | ref="tableDataRank" |
| | |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="888" |
| | | height="923" |
| | | > |
| | | <el-table-column |
| | | prop="xh" |
| | |
| | | }, |
| | | headerCellStyle() { |
| | | return { |
| | | backgroundColor: '#000', |
| | | backgroundColor: 'rgb(30 ,33, 46)', |
| | | padding: '10px 0', |
| | | textAlign: 'center', |
| | | color: '#fff', |
| | | borderRight: '1px solid rgba(255,255,255,0.6)' |
| | | color: '#07acc2', |
| | | border: 'none' |
| | | } |
| | | }, |
| | | cellStyle() { |
| | | return { |
| | | padding: '8px 0', |
| | | textAlign: 'center', |
| | | backgroundColor: '#000', |
| | | backgroundColor: 'rgba(30, 33, 46 )', |
| | | // backgroundColor: 'transparent', |
| | | color: '#fff', |
| | | borderRight: '1px solid rgba(255,255,255,0.6)' |
| | | border: 'none' |
| | | } |
| | | } |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | $kbBorderColor: #09d8f2; |
| | | |
| | | .kb_content { |
| | | display: flex; |
| | |
| | | width: 100%; |
| | | height: 267px; |
| | | display: flex; |
| | | border: 1px solid rgba(255, 255, 255, 0.6); |
| | | flex-direction: column; |
| | | |
| | | .headTitle{ |
| | | line-height: 54px; |
| | | border-bottom: 1px solid rgba(255, 255, 255, 0.6); |
| | | text-align: center; |
| | | font-size: 26px; |
| | | //line-height: 54px; |
| | | //border-bottom: 1px solid rgba(255, 255, 255, 0.6); |
| | | //text-align: center; |
| | | //font-size: 26px; |
| | | line-height: 20px; |
| | | font-size: 18px; |
| | | margin-bottom: 10px; |
| | | margin-top: -10px; |
| | | |
| | | } |
| | | |
| | | .content{ |
| | | |
| | | border: 1px solid $kbBorderColor; |
| | | } |
| | | } |
| | | |
| | |
| | | .content01{ |
| | | width: 48%; |
| | | height: 100%; |
| | | border: 1px solid rgba(255,255,255,0.6); |
| | | border: 1px solid $kbBorderColor; |
| | | border-radius: 5px; |
| | | } |
| | | } |
| | | } |
| | |
| | | width: 100%; |
| | | |
| | | .kb_right_top_content { |
| | | border: 1px solid rgba(255, 255, 255, 0.6); |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .content_head { |
| | | font-size: 26px; |
| | | height: 55px; |
| | | line-height: 55px; |
| | | border-bottom: 1px solid rgba(255, 255, 255, 0.6); |
| | | text-align: center; |
| | | line-height: 20px; |
| | | font-size: 18px; |
| | | margin-bottom: 10px; |
| | | margin-top: -10px; |
| | | } |
| | | |
| | | .content_body { |
| | | border: 1px solid $kbBorderColor; |
| | | } |
| | | } |
| | | } |
| | |
| | | /* width: 0;宽度为0暗藏 */ |
| | | width: 0; |
| | | } |
| | | ::v-deep .el-table::before { |
| | | height: 0; |
| | | } |
| | | </style> |
| | |
| | | :close-on-click-modal="false" |
| | | :show-close="false" |
| | | top="5vh" |
| | | class="dialogVisible" |
| | | > |
| | | <div style="font-size:20px;"> |
| | | <div style="font-size:18px;"> |
| | | <!-- <i class="el-icon-warning-outline" style="color: #ffef00" />--> |
| | | 当前账号已登录,是否强制下线! |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | |
| | | <div class="footerButton"> |
| | | <el-button @click="dialogVisibleCancel">否</el-button> |
| | | <el-button type="primary" @click="dialogVisibleConfirm">是</el-button> |
| | |
| | | if (valid) { |
| | | this.loading = true |
| | | this.$store.dispatch('user/login', this.loginForm).then(() => { |
| | | console.log(getCookie('code') === '302') |
| | | console.log(getCookie('code') === '302', 9999) |
| | | if (getCookie('code') === '302') { |
| | | this.dialogVisible = true |
| | | } else { |
| | |
| | | if (res.code === '200') { |
| | | this.$message.success('强制下线成功!') |
| | | this.dialogVisible = false |
| | | this.$router.push({ path: this.redirect || '/' }) |
| | | // this.$router.push({ path: this.redirect || '/' }) |
| | | await this.handleLogin() |
| | | } |
| | | } |
| | | } |
| | |
| | | ::v-deep .el-dialog__title{ |
| | | color: red; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__body { |
| | | padding: 20px 20px !important; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__footer { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | |
| | | .footerButton { |
| | | display: flex; |
| | | justify-content: end; |
| | | } |
| | | ::v-deep .dialogVisible .el-button--primary { |
| | | background-color: #42b983 !important; |
| | | height: 30px; |
| | | display: flex; |
| | | align-items: center; |
| | | //border: 1px solid $main_color; |
| | | border: none; |
| | | padding: 0 20px; |
| | | } |
| | | ::v-deep .dialogVisible .el-button--default { |
| | | height: 30px; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | } |
| | | |
| | | </style> |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | // 获取设备清单列表 |
| | | this.getDeviceMangerSearch() |
| | | // 获取设备类型下拉 |
| | | this.getDeviceTypeSelect() |
| | | // 获取所属车间下拉 |
| | | this.getWorkShopSelect() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | // 获取设备清单列表 |
| | | this.getDeviceMangerSearch().then(res => { |
| | | if (res.code === '200') { |
| | | // 获取设备类型下拉 |
| | | this.getDeviceTypeSelect() |
| | | // 获取所属车间下拉 |
| | | this.getWorkShopSelect() |
| | | } |
| | | }) |
| | | }, |
| | | // 获取设备清单列表 |
| | | async getDeviceMangerSearch() { |
| | | const res = await DeviceMangerSearch(this.form) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | return { code: res.code } |
| | | }, |
| | | // 获取所属车间下拉 |
| | | async getWorkShopSelect() { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getMesOrderSearch() |
| | | this.getSelect() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | |
| | | this.username = getCookie('username') |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getMesOrderSearch().then(res => { |
| | | if (res.code === '200') { |
| | | this.getSelect() |
| | | } |
| | | }) |
| | | }, |
| | | async getMesOrderSearch() { |
| | | // let tempDate = this.form.createdate |
| | | // if (tempDate.length > 0) { |
| | |
| | | this.total = res.count |
| | | |
| | | // this.form.createdate = tempDate |
| | | return { code: res.code } |
| | | }, |
| | | async getSelect() { |
| | | // 获取产品信息 |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getMesOrderSearch() |
| | | this.getSelect() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | |
| | | webapp_ws_autoupdate(true) |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getMesOrderSearch().then(res => { |
| | | if (res.code === '200') { |
| | | this.getSelect() |
| | | } |
| | | }) |
| | | }, |
| | | async getMesOrderSearch() { |
| | | // let tempDate = this.form.createdate |
| | | // if (tempDate.length > 0) { |
| | |
| | | const res = await MesOrderSearch(data) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | |
| | | return { code: res.code } |
| | | // this.form.createdate = tempDate |
| | | }, |
| | | async getSelect() { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getStorageDefSearch() |
| | | this.getWareHouseSelect() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getStorageDefSearch().then(res => { |
| | | if (res.code === '200') { |
| | | this.getWareHouseSelect() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | async getStorageDefSearch() { |
| | | const res = await StorageDefSearch(this.form) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | return { code: res.code } |
| | | }, |
| | | async getWareHouseSelect() { |
| | | const { data: res } = await WareHouseSelect() |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getMesOrderStepCheckSelect() |
| | | this.getMesOrderSelectUser() |
| | | this.getJYSelectArr() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | |
| | | this.getFocus() |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getMesOrderStepCheckSelect().then(res => { |
| | | if (res.code === '200') { |
| | | this.getMesOrderSelectUser() |
| | | this.getJYSelectArr() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 获取聚焦 |
| | | getFocus() { |
| | | this.$nextTick(() => { |
| | |
| | | }, |
| | | // 获取检验标准下拉数组 |
| | | async getMesOrderStepCheckSelect() { |
| | | const { data: res } = await MesOrderStepCheckSelect() |
| | | this.checkStandardSelect = res |
| | | const res = await MesOrderStepCheckSelect() |
| | | this.checkStandardSelect = res.data |
| | | return { code: res.code } |
| | | }, |
| | | // 获取检验人员下拉 |
| | | async getMesOrderSelectUser() { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getStepCheckStanedSearch() |
| | | this.getStepCheckItemSelect() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getStepCheckStanedSearch().then(res => { |
| | | if (res.code === '200') { |
| | | this.getStepCheckItemSelect() |
| | | } |
| | | }) |
| | | }, |
| | | async getStepCheckStanedSearch() { |
| | | const res = await StepCheckStanedSearch(this.form) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | return { code: res.code } |
| | | }, |
| | | // 排序改变时 |
| | | sortChange({ column, prop, order }) { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getInventoryFileSelect() |
| | | this.getStockTypeSelect() |
| | | this.getWareHouseSelect() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | methods: { |
| | | handleRequest() { |
| | | this.getInventoryFileSelect().then(res => { |
| | | if (res.code === '200') { |
| | | this.getStockTypeSelect() |
| | | this.getWareHouseSelect() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 同步计量单位 |
| | | async syncSeaveSearchUnit() { |
| | | const loading = this.$loading({ |
| | |
| | | const res = await InventoryFileSelect(this.form) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | return { code: res.code } |
| | | }, |
| | | async getStockTypeSelect() { |
| | | const { data: res } = await StockTypeSelect() |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getBeatRateSearch() |
| | | this.getPartSelect() |
| | | this.handleRequest() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | }, |
| | | methods: { |
| | | |
| | | handleRequest() { |
| | | this.getBeatRateSearch().then(res => { |
| | | if (res.code === '200') { |
| | | this.getPartSelect() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | async getBeatRateSearch() { |
| | | const res = await BeatRateSearch(this.form) |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | return { code: res.code } |
| | | }, |
| | | // 排序改变时 |
| | | sortChange({ column, prop, order }) { |