1 文件已重命名
4个文件已删除
11个文件已修改
1 文件已复制
| | |
| | | .submenu-title-noDropdown, |
| | | .el-submenu__title { |
| | | &:hover { |
| | | // background-color: rgba(0, 0, 0, 0.06) !important; |
| | | } |
| | | } |
| | | .is-active { |
| | |
| | | font-weight: 500; |
| | | } |
| | | .is-active > .el-submenu__title { |
| | | // color: $base-menu-color-active ; |
| | | |
| | | } |
| | | |
| | | & .nest-menu .el-submenu > .el-submenu__title, |
| | |
| | | |
| | | .divBox { |
| | | padding: 20px; |
| | | // padding: 0 20px 20px; |
| | | box-sizing: border-box; |
| | | .el-pagination { |
| | | display: flex; |
copy from admin-web/src/views/dashboard/components/GDLX.vue
copy to admin-web/src/views/dashboard/components/LBJETJ.vue
File was copied from admin-web/src/views/dashboard/components/GDLX.vue |
| | |
| | | <template> |
| | | <div style="width: 100%"> |
| | | <div id="main3" /> |
| | | <p style="text-align: center;font-size: 16px;font-weight: 600">工单类型</p> |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span class="font-18 font-bold">类别金额统计</span> |
| | | </div> |
| | | <div id="LBJETJ" style="height: 300px"/> |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import * as echarts from 'echarts'; |
| | | import * as dash from "@/api/dashboard/dash"; |
| | | |
| | | export default { |
| | | name: 'GDLX', |
| | | name: 'LBSLTJ', |
| | | props: { |
| | | activeId: { |
| | | type: String, |
| | |
| | | options: {}, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | mounted(){ |
| | | this.getCenterLine(); |
| | | // 监听屏幕宽度变化:当浏览器发生resize事件的时候,触发echart的resize事件,重绘canvas |
| | | window.addEventListener('resize', () => { |
| | | this.changeWidth(); |
| | | }); |
| | | }, |
| | | methods: { |
| | | |
| | | getCenterLine() { |
| | | // getCenterLine({ |
| | | // id: this.activeId, |
| | |
| | | // endDay: this.value2 ? this.value2[1] : null |
| | | // }).then(res => { |
| | | // const data = res.data |
| | | var chartDom = document.getElementById('main3'); |
| | | var chartDom = document.getElementById('LBJETJ'); |
| | | this.myChart = echarts.init(chartDom); |
| | | // 监听屏幕宽度变化:当浏览器发生resize事件的时候,触发echart的resize事件,重绘canvas |
| | | window.addEventListener('resize', () => { |
| | | this.changeWidth(); |
| | | }); |
| | | this.options = { |
| | | color: [ '#1877FF','#5EDEA5','#F7BE12','#55C6E1','#ED653B'], |
| | | tooltip: { |
| | |
| | | type: 'shadow', |
| | | }, |
| | | }, |
| | | |
| | | // toolbox: { |
| | | // show: true, |
| | | // orient: 'vertical', |
| | | // left: 'right', |
| | | // top: 'center', |
| | | // feature: { |
| | | // mark: { show: true }, |
| | | // dataView: { show: true, readOnly: false }, |
| | | // magicType: { show: true, type: ['line', 'bar', 'stack'] }, |
| | | // restore: { show: true }, |
| | | // saveAsImage: { show: true }, |
| | | // }, |
| | | // }, |
| | | |
| | | legend: { |
| | | orient: 'vertical', |
| | | right: 0, |
| | | top: 60, |
| | | bottom: 20, |
| | | }, |
| | | series: [ |
| | | { |
| | | |
| | | name: 'Access From', |
| | | type: 'pie', |
| | | radius: ['40%','65%'], |
| | | minAngle: 2, // 最小的扇区角度(0~360),用于防止某个值过小导致扇区太小影响交互 |
| | | avoidLabelOverlap: true, // 是否启用防止标签重叠策略 |
| | | itemStyle: { |
| | |
| | | } |
| | | }, |
| | | data: [ |
| | | { value: 1048, name: '计划工单' }, |
| | | { value: 735, name: '故障工单' }, |
| | | { value: 580, name: '日常工单' }, |
| | | { value: 100, name: '等级一' }, |
| | | { value: 100, name: '等级二' }, |
| | | { value: 100, name: '等级三' }, |
| | | |
| | | ] |
| | | }] |
| | |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | #main3 { |
| | | #main2 { |
| | | width: 100%; |
| | | height: 300px; |
| | | } |
File was renamed from admin-web/src/views/dashboard/components/GDLX.vue |
| | |
| | | <template> |
| | | <div style="width: 100%"> |
| | | <div id="main3" /> |
| | | <p style="text-align: center;font-size: 16px;font-weight: 600">工单类型</p> |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span class="font-18 font-bold">类别数量统计</span> |
| | | </div> |
| | | <div id="LBSLTJ" style="height: 300px"/> |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import * as echarts from 'echarts'; |
| | | import * as dash from "@/api/dashboard/dash"; |
| | | |
| | | export default { |
| | | name: 'GDLX', |
| | | name: 'LBSLTJ', |
| | | props: { |
| | | activeId: { |
| | | type: String, |
| | |
| | | }, |
| | | mounted() { |
| | | this.getCenterLine(); |
| | | // 监听屏幕宽度变化:当浏览器发生resize事件的时候,触发echart的resize事件,重绘canvas |
| | | window.addEventListener('resize', () => { |
| | | this.changeWidth(); |
| | | }); |
| | | }, |
| | | methods: { |
| | | |
| | | getCenterLine() { |
| | | // getCenterLine({ |
| | | // id: this.activeId, |
| | |
| | | // endDay: this.value2 ? this.value2[1] : null |
| | | // }).then(res => { |
| | | // const data = res.data |
| | | var chartDom = document.getElementById('main3'); |
| | | var chartDom = document.getElementById('LBSLTJ'); |
| | | this.myChart = echarts.init(chartDom); |
| | | // 监听屏幕宽度变化:当浏览器发生resize事件的时候,触发echart的resize事件,重绘canvas |
| | | window.addEventListener('resize', () => { |
| | | this.changeWidth(); |
| | | }); |
| | | this.options = { |
| | | color: [ '#1877FF','#5EDEA5','#F7BE12','#55C6E1','#ED653B'], |
| | | tooltip: { |
| | |
| | | type: 'shadow', |
| | | }, |
| | | }, |
| | | |
| | | // toolbox: { |
| | | // show: true, |
| | | // orient: 'vertical', |
| | | // left: 'right', |
| | | // top: 'center', |
| | | // feature: { |
| | | // mark: { show: true }, |
| | | // dataView: { show: true, readOnly: false }, |
| | | // magicType: { show: true, type: ['line', 'bar', 'stack'] }, |
| | | // restore: { show: true }, |
| | | // saveAsImage: { show: true }, |
| | | // }, |
| | | // }, |
| | | |
| | | legend: { |
| | | orient: 'vertical', |
| | | right: 0, |
| | | top: 60, |
| | | bottom: 20, |
| | | }, |
| | | series: [ |
| | | { |
| | | |
| | | name: 'Access From', |
| | | type: 'pie', |
| | | radius: ['40%','65%'], |
| | | minAngle: 2, // 最小的扇区角度(0~360),用于防止某个值过小导致扇区太小影响交互 |
| | | avoidLabelOverlap: true, // 是否启用防止标签重叠策略 |
| | | itemStyle: { |
| | |
| | | } |
| | | }, |
| | | data: [ |
| | | { value: 1048, name: '计划工单' }, |
| | | { value: 735, name: '故障工单' }, |
| | | { value: 580, name: '日常工单' }, |
| | | { value: 100, name: '等级一' }, |
| | | { value: 100, name: '等级二' }, |
| | | { value: 100, name: '等级三' }, |
| | | |
| | | ] |
| | | }] |
| | |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | #main3 { |
| | | #main2 { |
| | | width: 100%; |
| | | height: 300px; |
| | | } |
| | |
| | | <div style="width: 100%"> |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span style="font-weight: 600; font-size: 20px">响应支持类统计</span> |
| | | <div class="card-title-right"> |
| | | <div :style="{ color: weekFlag ? '#378cff' : '' }" @click="changeDate(1)">近7天</div> |
| | | <div :style="{ color: monthFlag ? '#378cff' : '' }" style="margin: 0 30px 0 10px" @click="changeDate(2)"> |
| | | 近30天 |
| | | </div> |
| | | <el-date-picker |
| | | v-model="value2" |
| | | type="daterange" |
| | | :picker-options="pickerOptions" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | align="right" |
| | | value-format="yyyyMMdd" |
| | | /> |
| | | <el-button type="primary" style="margin-left: 10px" @click="getCenterLine">搜索</el-button> |
| | | </div> |
| | | <span class="font-18 font-bold">资产增长/报废统计图(数量)</span> |
| | | </div> |
| | | <div id="main1" /> |
| | | <div id="ZCZZ" /> |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: '最近一周', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit('pick', [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: '最近一个月', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit('pick', [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: '最近三个月', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit('pick', [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | value2: '', |
| | | myChart: null, |
| | | weekFlag: 1, // 近七天 |
| | | monthFlag: null, // 近30天 |
| | | options: {}, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getCenterLine(); |
| | | // 监听屏幕宽度变化:当浏览器发生resize事件的时候,触发echart的resize事件,重绘canvas |
| | | window.addEventListener('resize', () => { |
| | | this.changeWidth(); |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeDate(type) { |
| | | if (type == 1) { |
| | | this.monthFlag = null; |
| | | if (this.weekFlag) { |
| | | this.weekFlag = null; |
| | | } else { |
| | | this.weekFlag = 1; |
| | | } |
| | | if (this.weekFlag) { |
| | | this.monthFlag = null; |
| | | this.value2 = []; |
| | | } |
| | | this.getCenterLine(); |
| | | } |
| | | if (type == 2) { |
| | | this.weekFlag = null; |
| | | if (this.monthFlag) { |
| | | this.monthFlag = null; |
| | | } else { |
| | | this.monthFlag = 1; |
| | | } |
| | | if (this.monthFlag) { |
| | | this.weekFlag = null; |
| | | this.value2 = []; |
| | | } |
| | | this.getCenterLine(); |
| | | } |
| | | }, |
| | | getCenterLine() { |
| | | // getCenterLine({ |
| | | // id: this.activeId, |
| | | // weekFlag: this.weekFlag, |
| | | // monthFlag: this.monthFlag, |
| | | // startDay: this.value2 ? this.value2[0] : null, |
| | | // endDay: this.value2 ? this.value2[1] : null |
| | | // }).then(res => { |
| | | // const data = res.data |
| | | var chartDom = document.getElementById('main1'); |
| | | var chartDom = document.getElementById('ZCZZ'); |
| | | this.myChart = echarts.init(chartDom); |
| | | window.addEventListener('resize', () => { |
| | | this.changeWidth(); |
| | | }); |
| | | this.options = { |
| | | color: ['#ED653B', '#1877FF'], |
| | | color: ['#5BE1FD', '#FFD15C'], |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | |
| | | }, |
| | | }, |
| | | legend: { |
| | | data: ['响应速度', '处理速度'], |
| | | data: ['资产增长', '资产报废'], |
| | | }, |
| | | toolbox: { |
| | | show: true, |
| | | orient: 'vertical', |
| | | left: 'right', |
| | | top: 'center', |
| | | feature: { |
| | | mark: { show: true }, |
| | | dataView: { show: true, readOnly: false }, |
| | | magicType: { show: true, type: ['line', 'bar', 'stack'] }, |
| | | restore: { show: true }, |
| | | saveAsImage: { show: true }, |
| | | }, |
| | | show: false |
| | | }, |
| | | grid: { |
| | | left: '30', |
| | | right: '30', |
| | | bottom: '30px' |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | axisTick: { show: false }, |
| | | data: [ |
| | | '12-01', |
| | | '12-02', |
| | | '12-03', |
| | | '12-04', |
| | | '12-05', |
| | | '12-06', |
| | | '12-07', |
| | | '12-08', |
| | | '12-09', |
| | | '12-10', |
| | | '12-11', |
| | | '12-12', |
| | | ], |
| | | data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'], |
| | | }, |
| | | ], |
| | | yAxis: [ |
| | |
| | | type: 'value', |
| | | }, |
| | | ], |
| | | dataZoom: [ |
| | | { |
| | | orient: 'horizontal', |
| | | |
| | | show: true, //控制滚动条显示隐藏 |
| | | |
| | | realtime: true, //拖动滚动条时是否动态的更新图表数据 |
| | | |
| | | height: 15, //滚动条高度 |
| | | |
| | | start: 0, //滚动条开始位置(共100等份) |
| | | // |
| | | // end: 30, //滚动条结束位置 |
| | | bottom: '4%', |
| | | zoomLock: true, //控制面板是否进行缩放 |
| | | } |
| | | ], |
| | | |
| | | series: [ |
| | | { |
| | | name: '响应速度', |
| | | name: '资产增长', |
| | | type: 'line', |
| | | barGap: 0, |
| | | smooth: true, |
| | |
| | | focus: 'series', |
| | | }, |
| | | data: [320, 332, 301, 334, 320, 332, 301, 334, 320, 332, 301, 334], |
| | | lineStyle: { |
| | | width: 2, // 外边线宽度 |
| | | color: '#5BE1FD'// 外边线颜色 |
| | | }, |
| | | areaStyle: {// 区域填充渐变颜色 |
| | | color: { |
| | | type: 'linear', |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [{ |
| | | offset: 0, color: 'rgba(91, 225, 253, .6)' // 0% 处的颜色 |
| | | }, { |
| | | offset: 1, color: 'rgba(91, 225, 253, 0)' // 100% 处的颜色 |
| | | }], |
| | | global: false // 缺省为 false |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | name: '处理速度', |
| | | name: '资产报废', |
| | | type: 'line', |
| | | smooth: true, |
| | | emphasis: { |
| | | focus: 'series', |
| | | }, |
| | | data: [220, 182, 191, 234, 220, 182, 191, 234, 220, 182, 191, 234], |
| | | lineStyle: { |
| | | width: 2, // 外边线宽度 |
| | | color: '#FFD15C'// 外边线颜色 |
| | | }, |
| | | areaStyle: {// 区域填充渐变颜色 |
| | | color: { |
| | | type: 'linear', |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [{ |
| | | offset: 0, color: 'rgba(255, 209, 92, .6)' // 0% 处的颜色 |
| | | }, { |
| | | offset: 1, color: 'rgba(255, 209, 92, 0)' // 100% 处的颜色 |
| | | }], |
| | | global: false // 缺省为 false |
| | | } |
| | | } |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | this.options && this.myChart.setOption(this.options); |
| | | // }); |
| | | }, |
| | | changeWidth() { |
| | | this.myChart.resize(); |
| | |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | #main1 { |
| | | #ZCZZ { |
| | | width: 100%; |
| | | height: 400px; |
| | | } |
| | |
| | | <template> |
| | | <div class="content"> |
| | | <!-- <el-row :gutter="10"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/qbgd.png"></img> |
| | | <span>全部工单</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">20<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/gdc.png"></img> |
| | | <span>工单池</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">2<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/gdc.png"></img> |
| | | <span>待响应工单</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">1<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-card shadow="never"> |
| | | <div slot="header" class="clearfix"> |
| | | <span class="font-18 font-bold">待办名称</span> |
| | | </div> |
| | | <div class="f-r f-r-between m-b-10"> |
| | | <el-radio-group v-model="waitType" size="medium"> |
| | | <el-radio-button label="1">全部</el-radio-button> |
| | | </el-radio-group> |
| | | <div class="to-more" @click="nav('/stock/transfer/transferissue')">查看更多 ></div> |
| | | </div> |
| | | <el-table :data="waitWorkData" class="top-tb" :show-header="false" size="medium"> |
| | | <el-table-column prop="number" align="center"></el-table-column> |
| | | <el-table-column prop="type" align="center" width="100"></el-table-column> |
| | | <el-table-column prop="orgName" align="center" width="100"></el-table-column> |
| | | <el-table-column prop="name" align="center" width="80"></el-table-column> |
| | | <el-table-column prop="createTime" align="center" width="180"> |
| | | <template slot-scope="scope"> |
| | | <span class="font-14 color-333">{{ formattTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="date" label="操作" align="center" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click.native.prevent="aduitThis(scope.row.id)" size="small" type="primary">处理</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/jxzgd.png"></img> |
| | | <span>进行中工单</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">3<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/gdc.png"></img> |
| | | <span>事件池</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">{{eventInfo.pool}}<span class="font-12">个</span> </div> |
| | | <div> |
| | | <img v-if="eventInfo.poolLastNum>=0" class='arrow' src="@/assets/images/index/top.png"></img> |
| | | <img v-if="eventInfo.poolLastNum<0" class='arrow' src="@/assets/images/index/down.png"></img> |
| | | 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/dxy.png"></img> |
| | | <span>进行中事件</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">{{eventInfo.wait}}<span class="font-12">个</span> </div> |
| | | <div> |
| | | <img v-if="eventInfo.waitLastNum>=0" class='arrow' src="@/assets/images/index/top.png"></img> |
| | | <img v-if="eventInfo.waitLastNum<0" class='arrow' src="@/assets/images/index/down.png"></img> |
| | | 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-card shadow="never"> |
| | | <div slot="header" class="clearfix"> |
| | | <span class="font-18 font-bold">预警通知</span> |
| | | </div> |
| | | <div class="f-r f-r-between m-b-10"> |
| | | <el-radio-group size="medium" v-model="earlyWarningType" @change="changeEarlyWarning"> |
| | | <el-radio-button label="1">全部</el-radio-button> |
| | | <el-radio-button label="2">缺货(12)</el-radio-button> |
| | | <el-radio-button label="3">超出(3)</el-radio-button> |
| | | </el-radio-group> |
| | | <div class="to-more" @click="nav('/stock/ledger/alertQuery')">查看更多 ></div> |
| | | </div> |
| | | <el-table :data="earlyWarningData" class="top-tb" :show-header="false" size="medium"> |
| | | <el-table-column prop="type" align="center"></el-table-column> |
| | | <el-table-column prop="name" align="center" width="100"></el-table-column> |
| | | <el-table-column prop="orgName" align="center" width="100"></el-table-column> |
| | | <el-table-column prop="surplus" align="center" width="100"> |
| | | <template slot-scope="scope"> |
| | | <span class="font-14 color-333">剩余{{ scope.row.surplus }}套</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createTime" align="center" width="180"> |
| | | <template slot-scope="scope"> |
| | | <span class="font-14 color-333">{{ formattTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="date" label="操作" align="center" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click.native.prevent="aduitThis(scope.row.id)" size="small" type="primary">处理</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10" style="margin-top: 10px"> |
| | | <!-- 中间统计部分--> |
| | | <div class="f-r f-r-between total-list"> |
| | | <div class="total-item"> |
| | | <div class="font-14 color-666">物品数量</div> |
| | | <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">1200</span></div> |
| | | </div> |
| | | <div class="total-item"> |
| | | <div class="font-14 color-666">资产总金额</div> |
| | | <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">120.88</span>万元</div> |
| | | </div> |
| | | <div class="total-item"> |
| | | <div class="font-14 color-666">物品占用率</div> |
| | | <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">80%</span></div> |
| | | </div> |
| | | <div class="total-item"> |
| | | <div class="font-14 color-666">A类物品数量</div> |
| | | <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">120</span></div> |
| | | </div> |
| | | <div class="total-item"> |
| | | <div class="font-14 color-666">B类物品数量</div> |
| | | <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">123</span></div> |
| | | </div> |
| | | </div> |
| | | <!-- 类别金额统计/类别数量统计 --> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/wtc.png"></img> |
| | | <span>问题池</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">0<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/dxy.png"></img> |
| | | <span>待响应问题</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">0<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/gdc.png"></img> |
| | | <span>变更工单</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">0<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <LBSLTJ></LBSLTJ> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/dxy.png"></img> |
| | | <span>待响应变更</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">0<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/fbgd.png"></img> |
| | | <span>发布工单</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">2<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="flex bg-fff box flex-between"> |
| | | <div class="flex f-c f-col"> |
| | | <img class="icon" src="@/assets/images/index/dxy.png"></img> |
| | | <span>待响应发布</span> |
| | | </div> |
| | | <div class="flex f-e f-col"> |
| | | <div class="font-28">5<span class="font-12">个</span> </div> |
| | | <div><img class='arrow' src="@/assets/images/index/top.png"></img> 环比上周</div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <LBJETJ></LBJETJ> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12"> |
| | | <XMGZD></XMGZD> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <XYZC></XYZC> |
| | | </el-col> |
| | | </el-row> |
| | | <el-card class="box-card"> |
| | | |
| | | <span style="font-weight: 600;font-size: 20px">工单统计</span> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="6"> |
| | | <SJDJ></SJDJ> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <GDLX></GDLX> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <SJGDZB></SJGDZB> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <progressMY></progressMY> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-card>--> |
| | | <!-- 资产增长/报废统计图(数量)--> |
| | | <XYZC></XYZC> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // 创建Context |
| | | import {formattedDate} from "@/utils/DateFormatter"; |
| | | import * as dash from '@/api/dashboard/dash' |
| | | // import * as createEvent from "@/api/eventManage/createEvent"; |
| | | import {LongToDateTime} from "@/utils/DateFormatter"; |
| | | |
| | | const ComponentContext = require.context('./components', false, /\.vue$/i); |
| | | let res_components = {}; |
| | | // 生成待待注册组件集合 |
| | |
| | | components: {...res_components}, |
| | | data() { |
| | | return { |
| | | eventInfo:{} |
| | | waitType: '1', |
| | | waitWorkData: [ |
| | | {number: 'SJQ12345', type: '物品申领', orgName: '金融业务部', name: '张三丰', createTime: 20231127150606, id: 1}, |
| | | {number: 'SJQ12345', type: '物品申领', orgName: '金融业务部', name: '张三丰', createTime: 20231127150606, id: 2}, |
| | | {number: 'SJQ12345', type: '物品申领', orgName: '金融业务部', name: '张三丰', createTime: 20231127150606, id: 3}, |
| | | {number: 'SJQ12345', type: '物品申领', orgName: '金融业务部', name: '张三丰', createTime: 20231127150606, id: 4}, |
| | | {number: 'SJQ12345', type: '物品申领', orgName: '金融业务部', name: '张三丰', createTime: 20231127150606, id: 5}, |
| | | ], // 待办工作 |
| | | earlyWarningType: '1', |
| | | earlyWarningData: [ |
| | | {type: '施乐复印机碳粉', name: '施乐c2201', surplus: 4, createTime: 20231127150606, id: 1}, |
| | | {type: '施乐复印机碳粉', name: '施乐c2201', surplus: 5, createTime: 20231127150606, id: 2}, |
| | | {type: '施乐复印机碳粉', name: '施乐c2201', surplus: 6, createTime: 20231127150606, id: 3}, |
| | | {type: '施乐复印机碳粉', name: '施乐c2201', surplus: 6, createTime: 20231127150606, id: 4}, |
| | | ] // 预警通知 |
| | | }; |
| | | }, |
| | | created() { |
| | | // this.getEventInfo() |
| | | |
| | | }, |
| | | methods: { |
| | | // 获取事件数据 |
| | | getEventInfo(){ |
| | | dash.getEventInfo().then(res => { |
| | | if (res) { |
| | | this.eventInfo = res |
| | | } |
| | | }) |
| | | } |
| | | // 格式化时间 |
| | | formattTime(time) { |
| | | return LongToDateTime(time) |
| | | }, |
| | | // 获取预警通知列表数据 |
| | | getAduitList() { |
| | | let form = { |
| | | pageSize: 5, |
| | | pageNum: 1, |
| | | waitType: this.waitType |
| | | } |
| | | }, |
| | | // 处理待办工作 |
| | | aduitThis(id) { |
| | | }, |
| | | // 切换预警通知 |
| | | changeEarlyWarning(e) { |
| | | this.earlyWarningType = e |
| | | this.$nextTick(() => { |
| | | this.getWarningList() |
| | | }) |
| | | }, |
| | | // 获取预警通知列表数据 |
| | | getWarningList() { |
| | | let form = { |
| | | pageSize: 5, |
| | | pageNum: 1, |
| | | earlyWarningType: this.earlyWarningType |
| | | } |
| | | }, |
| | | // 跳转 |
| | | nav(url){ |
| | | this.$router.push(url) |
| | | } |
| | | } |
| | | |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .content{ |
| | | padding:10px |
| | | .content { |
| | | padding: 10px |
| | | } |
| | | .box{ |
| | | border-radius: 10px; |
| | | padding: 20px 0; |
| | | align-items: flex-end; |
| | | |
| | | .to-more { |
| | | font-size: 14px; |
| | | color: #0d997c; |
| | | cursor: pointer; |
| | | } |
| | | .flex{ |
| | | display: flex; |
| | | } |
| | | .flex-between{ |
| | | justify-content: space-around; |
| | | } |
| | | .f-col{ |
| | | flex-direction: column; |
| | | } |
| | | .f-c{ |
| | | align-items: center; |
| | | } |
| | | .f-e{ |
| | | align-items: flex-end; |
| | | } |
| | | .f-s{ |
| | | align-items: flex-start; |
| | | } |
| | | .c-1{ |
| | | color: #11AD6F; |
| | | } |
| | | .c-f{ |
| | | color: #FF4B4B; |
| | | } |
| | | .font-28{ |
| | | font-size: 28px; |
| | | } |
| | | .font-12{ |
| | | font-size: 12px; |
| | | } |
| | | .icon{ |
| | | width: 30px; |
| | | height: 30px; |
| | | |
| | | .m-b-10 { |
| | | margin-bottom: 10px; |
| | | } |
| | | .arrow{ |
| | | width: 12px; |
| | | height: 12px; |
| | | } |
| | | .box-card { |
| | | margin-top: 10px; |
| | | |
| | | .top-tb { |
| | | width: 100%; |
| | | border-radius: 10px; |
| | | border: none; |
| | | .card-title-right { |
| | | display: flex; |
| | | align-items: center; |
| | | align-self: flex-end; |
| | | float: right; |
| | | } |
| | | } |
| | | >>>.el-table__body{ |
| | | min-height: 265px; |
| | | } |
| | | .total-list { |
| | | padding: 15px 0; |
| | | } |
| | | |
| | | .total-item { |
| | | width: 19%; |
| | | padding: 12px 20px; |
| | | border-radius: 8px; |
| | | margin-right: 1%; |
| | | background-color: #FFFFFF; |
| | | } |
| | | |
| | | .total-item:last-child { |
| | | margin: 0; |
| | | } |
| | | |
| | | .total-num { |
| | | font-size: 24px; |
| | | font-weight: bold; |
| | | margin-right: 3px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <win-md class="stock-detail" :title="setting.title" @close="close" :width="'800px'"> |
| | | <win-lg class="stock-detail" :title="setting.title" @close="close" :width="'800px'" :loading="loading"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <span>入库单号:</span> |
| | | <span>{{ detail.businessFormCode }}</span> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <span>入库仓库:</span> |
| | | <span>{{ detail.warehouseName }}</span> |
| | | <span>分发单号:</span> |
| | | <span>SL2023001</span> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <span>所属机构:</span> |
| | | <span>{{ detail.agencyName }}</span> |
| | | <span>河南省邮政分公司</span> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <span>部门:</span> |
| | | <span>金融业务部</span> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" style="margin-top: 20px"> |
| | | <el-col :span="8"> |
| | | <span>状态:</span> |
| | | <span>{{ detail.states == 1 ? '待入库' : '已入库' }}</span> |
| | | <span>分发人:</span> |
| | | <span>张爱生</span> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <span>创建人:</span> |
| | | <span>{{ detail.buyerName }}</span> |
| | | <span>分发时间:</span> |
| | | <span>2023-08-08 10:23:12</span> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <span>入库时间:</span> |
| | | <span>{{ detail.incomeTime | formatTime }}</span> |
| | | <span>领取人:</span> |
| | | <span>王部门</span> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" style="margin-top: 20px"> |
| | | <el-col class="img-row" :span="12"> |
| | | <span>采购类型:</span> |
| | | <span>{{ detail.buyType == 1 ? '集采' : '自采' }}</span> |
| | | <el-col :span="8"> |
| | | <span>联系电话:</span> |
| | | <span>18500000001</span> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" style="margin-top: 20px"> |
| | | <el-col class="img-row" :span="24"> |
| | | <span>采购手续照片:</span> |
| | | <span>分发手续:</span> |
| | | <div class="img-box" v-for="(item, index) in fileList" :key="index" @click="handlePreview(item)"> |
| | | <img class="img" :src="getUrl(item.path)" alt="" /> |
| | | </div> |
| | |
| | | <span>{{ goodsItem.goodsTemplateName }}</span> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <span>供货商:</span> |
| | | <span>物品类别:</span> |
| | | <span>{{ goodsItem.supplier }}</span> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table :data="goodsItem.models" :stripe="true" style="margin-top: 20px"> |
| | | <div v-if="goodsItem.type===1"> |
| | | <el-table :data="goodsItem.models" :stripe="true" style="margin-top: 20px"> |
| | | <el-table-column prop="baseGoodsModelsName" label="规格型号" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.baseGoodsModelsName }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="单位" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.unit }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="分发数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.price | formatPrice }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="counts" label="使用人" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.counts }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="counts" label="联系电话" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.price * scope.row.counts | formatPrice}} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div v-else> |
| | | <el-table-column prop="baseGoodsModelsName" label="规格型号" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.baseGoodsModelsName }} |
| | |
| | | {{ scope.row.unit }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="单价" align="center"> |
| | | <el-table-column prop="price" label="分发数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.price | formatPrice }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="counts" label="入库数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.counts }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="counts" label="金额" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.price * scope.row.counts | formatPrice}} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <div id="uploadPreviewImages" style="display: none"> |
| | | <span v-for="(src, index) in fileList" :key="index"> |
| | |
| | | /> |
| | | </span> |
| | | </div> |
| | | </win-md> |
| | | </win-lg> |
| | | </template> |
| | | <script> |
| | | import { procureDetail } from '@/api/stock/procure/purchaseOrder'; |
| | | import winMd from '@/components/win/win-md'; |
| | | import winLg from '@/components/win/win-lg'; |
| | | import * as DateFormatter from '@/utils/DateFormatter'; |
| | | import { getDownUrl } from '@/utils/base'; |
| | | import Viewer from 'viewerjs'; |
| | |
| | | let viewer = null; |
| | | |
| | | export default { |
| | | components: { winMd }, |
| | | |
| | | components: { winLg }, |
| | | props: { |
| | | setting: { |
| | | type: Object, |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | loading:false, |
| | | fileList: [], |
| | | detail: { |
| | | baseCategoryName: '', |
| | |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | @import url(../../../../styles/store.scss); |
| | | //@import url(../../../../styles/store.scss); |
| | | </style> |
| | |
| | | <el-form-item |
| | | label="规格型号" |
| | | :prop="`procureGoods[${goodsIndex}].modelsIds`" |
| | | :rules="{ |
| | | required: true, |
| | | message: '请选择', |
| | | trigger: 'change', |
| | | }" |
| | | > |
| | | :rules="{required: true,message: '请选择',trigger: 'change',}"> |
| | | <el-select |
| | | v-model="goodsItem.modelsIds" |
| | | multiple |
| | |
| | | 50 |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10" v-if="true"> |
| | | <!--A类商品 --> |
| | | <el-col :span="24" v-if="goodsItem.type===1"> |
| | | <el-table :data="mItem.clist" :stripe="true" > |
| | | <el-table-column prop="count" label="分发数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.count"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="使用人" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.user" maxlength="20"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="联系电话" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model.number="scope.row.phone" maxlength="11"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="left" width="60"> |
| | | <template slot-scope="scope"> |
| | | <i |
| | | v-if="mItem.clist.length > 1" |
| | | class="el-icon-remove-outline" |
| | | style="color: #f56c6c; font-size: 16px; cursor: pointer" |
| | | @click="handleDel(goodsIndex, mIndex, scope.$index)" |
| | | ></i> |
| | | <i |
| | | v-if="mItem.clist.length - 1 == scope.$index" |
| | | class="el-icon-circle-plus-outline" |
| | | style="color: #0d997c; font-size: 16px; cursor: pointer" |
| | | @click="handleAdd(goodsIndex, mIndex, scope.$index)" |
| | | ></i> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | <!--BC类商品 --> |
| | | <el-col :span="10" v-else> |
| | | <el-form-item label="分发数量:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80"> |
| | | <el-input v-model.number="mItem.count" style="width: 160px;"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table :data="mItem.clist" :stripe="true" v-if="false"> |
| | | <el-table-column prop="count" label="分发数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.count"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="使用人" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.user" maxlength="20"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="联系电话" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model.number="scope.row.phone" maxlength="11"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="left" width="60"> |
| | | <template slot-scope="scope"> |
| | | <i |
| | | v-if="mItem.clist.length > 1" |
| | | class="el-icon-remove-outline" |
| | | style="color: #f56c6c; font-size: 16px; cursor: pointer" |
| | | @click="handleDel(goodsIndex, mIndex, scope.$index)" |
| | | ></i> |
| | | <i |
| | | v-if="mItem.clist.length - 1 == scope.$index" |
| | | class="el-icon-circle-plus-outline" |
| | | style="color: #0d997c; font-size: 16px; cursor: pointer" |
| | | @click="handleAdd(goodsIndex, mIndex, scope.$index)" |
| | | ></i> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <div class="btn-group"> |
| | | <el-button |
| | |
| | | plain |
| | | size="mini" |
| | | @click="removeGoods(goodsIndex)" |
| | | >移除</el-button |
| | | > |
| | | >移除</el-button> |
| | | <el-button |
| | | v-if="formData.procureGoods.length - 1 == goodsIndex" |
| | | name="新增物品" |
| | |
| | | plain |
| | | size="mini" |
| | | @click="addGoods" |
| | | >新增物品</el-button |
| | | > |
| | | >新增物品</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-col> |
| | | <!--列表--> |
| | | <div class="table-tool-bar" style="margin-bottom: 15px"> |
| | | <my-button name="物品分发" @click="handleAdd" site="tools" size="medium" icon="el-icon-edit-outline" /> |
| | | <my-button name="导入" @click="importSetting.dialogShow = true" site="tools" size="medium" /> |
| | | <my-button name="新增" @click="handleAdd" site="tools" size="medium" /> |
| | | </div> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | |
| | | <span class="value">{{ item.businessFormCode }}</span> |
| | | </div> |
| | | <div class="card-header-right"> |
| | | <el-button name="查看详情" site="form" type="info" size="mini" @click="handleDetail(item)" |
| | | >查看详情</el-button |
| | | > |
| | | <el-button name="查看详情" site="form" type="primary" size="mini" @click="handleDetail(item)">查看详情</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="one-hed"> |
| | |
| | | @close="detailSetting.show = false" |
| | | ref="detailRef" |
| | | ></detail> |
| | | <my-import |
| | | :import-setting="importSetting" |
| | | :dialog-show="importSetting.dialogShow" |
| | | :dialog-title="importSetting.dialogTitle" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import edit from './edit'; |
| | | import detail from './detail'; |
| | | import { getBaseUrl } from '@/utils/base'; |
| | | import listPage from '../../../mixins/listPage' |
| | | import listPage from '../../../mixins/listPage'; |
| | | |
| | | export default { |
| | | name: 'index', |
| | |
| | | }, |
| | | { |
| | | type: 'select', |
| | | dataIndex: 'goodsTemplateId', |
| | | label: '物品名称', |
| | | placeholder: '请输入', |
| | | defaultValue: '', |
| | | options: [], |
| | | optionsConfig: { |
| | | label: 'goodsName', |
| | | value: 'id', |
| | | url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate', |
| | | }, |
| | | }, |
| | | { |
| | | type: 'cascader', |
| | | dataIndex: 'agencyId', |
| | | label: '分发部门', |
| | | placeholder: '请选择', |
| | | optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null }, |
| | | defaultValue: '', |
| | | options: [], |
| | | }, |
| | | { |
| | | type: 'text', |
| | | dataIndex: 'goodsTemplateName', |
| | | label: '物品名称', |
| | | placeholder: '可模糊搜索', |
| | | defaultValue: '', |
| | | }, |
| | | { |
| | | type: 'text', |
| | |
| | | }, |
| | | ], |
| | | // 树数据 |
| | | treeDataList: [], |
| | | // 导入 |
| | | importSetting: { |
| | | dialogTitle: '导入', |
| | | dialogShow: false, |
| | | fileSettings: { |
| | | data: {}, |
| | | uploadUrl: getBaseUrl() + '/pc/fin/sys/tenant/import', // 上传地址 |
| | | accept: '.xls', // 格式 |
| | | type: 'text', // 回显形式 |
| | | loading: false, // 导入效果 |
| | | }, |
| | | /* 模板下载 */ |
| | | templateSettings: { |
| | | templateName: '导入模板.xls', // 名称 |
| | | templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate', // 下载地址 |
| | | }, |
| | | onSuccess: null, |
| | | }, |
| | | treeDataList: [] |
| | | }; |
| | | }, |
| | | created(){ |
| | | this.fetchData() |
| | | }, |
| | | methods: { |
| | | fetchData() { |
| | |
| | | console.log(this.list); |
| | | }); |
| | | }, |
| | | |
| | | //导入 |
| | | importOrg() { |
| | | this.importSetting.dialogShow = true; |
| | | this.importSetting.onSuccess = (response, callBack) => { |
| | | if (response.code === 1) { |
| | | this.$message.success(response.msg); |
| | | this.search(1); |
| | | } else { |
| | | this.$message.warning(response.msg); |
| | | } |
| | | callBack(); |
| | | }; |
| | | }, |
| | | // 分发 |
| | | handleIncome(row) { |
| | | this.$confirm(`您确定 单号:${row.businessFormCode} 分发吗?`, '分发分发').then(() => { |
| | | procureIncome({ id: row.id }) |
| | | .then((res) => { |
| | | this.$message.success('分发成功!'); |
| | | this.search(); |
| | | }) |
| | | .catch(() => {}); |
| | | }); |
| | | }, |
| | | del(row) { |
| | | this.$modal.confirm('是否确认删除分发单号为"' + row.businessFormCode + '"的数据吗?').then( () => { |
| | | procureDel({ id: row.id }) |
| | | .then((res) => { |
| | | this.$message.success('删除成功!'); |
| | | this.search(); |
| | | }) |
| | | .catch(() => {}); |
| | | }); |
| | | }, |
| | | fifterForm(params) { |
| | | this.filterFrom = Object.assign(this.filterFrom, params); |
| | | if (this.filterFrom.incomeTimeStart) { |
| | |
| | | if (this.filterFrom.incomeTimeEnd) { |
| | | this.filterFrom.incomeTimeEnd = this.filterFrom.incomeTimeEnd.replace(/\-/g, ''); |
| | | } |
| | | if (this.filterFrom.agencyId && this.filterFrom.agencyId.length) { |
| | | this.filterFrom.agencyId = this.filterFrom.agencyId[this.filterFrom.agencyId.length - 1]; |
| | | } |
| | | this.search(1); |
| | | }, |
| | | }, |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | @import url(../../../../styles/store.scss); |
| | | //@import url(../../../../styles/index.scss); |
| | | </style> |
| | |
| | | </el-row> |
| | | <el-row :gutter="24" class="headerHeight"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="报废手续" prop="procureDoc"> |
| | | <el-form-item label="报废审批手续" prop="procureDoc"> |
| | | <upload ref="uploadRef" :settings="uploadSettings" @on-change="uploadChange"></upload> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table :data="goodsItem.models" :stripe="true"> |
| | | <el-table-column prop="baseGoodsModelsId" label="规格型号" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ getGoodsModelsName(scope.row.baseGoodsModelsId) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="单位" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.unit }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="现有库存" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.worehouseCount }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="counts" label="报废数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-form-item |
| | | label-width="0" |
| | | style="margin-bottom: 0" |
| | | :prop="`goods[${goodsIndex}].models[${scope.$index}].counts`" |
| | | :rules="rules.counts" |
| | | > |
| | | <el-input |
| | | type="number" |
| | | v-model="scope.row.counts" |
| | | @change="countsChange($event, goodsIndex, scope.$index)" |
| | | ></el-input> |
| | | <div class="card3" v-for="(mItem, mIndex) in goodsItem.models" :key="mIndex"> |
| | | <el-row :gutter="24" type="flex" align="middle" style="height: 50px"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="规格型号:" prop="baseGoodsModelsId" style="margin-bottom: 0"> |
| | | {{ getGoodsModelsName(mItem.baseGoodsModelsId) }} |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="单位:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80"> |
| | | 50 |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="物品类别:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80"> |
| | | A类 |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table :data="mItem.models" :stripe="true"> |
| | | <!-- A类商品显示 --> |
| | | <el-table-column prop="price" label="使用人" align="center" v-if="goodsItem.models.type===1"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.worehouseCount }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="分发数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.worehouseCount }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="再用数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.worehouseCount }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="counts" label="报废数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-form-item |
| | | label-width="0" |
| | | style="margin-bottom: 0" |
| | | :prop="`goods[${goodsIndex}].models[${scope.$index}].counts`" |
| | | :rules="rules.counts" |
| | | > |
| | | <el-input |
| | | type="number" |
| | | v-model="scope.row.counts" |
| | | @change="countsChange($event, goodsIndex, scope.$index)" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="counts" label="报废原因" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-form-item |
| | | label-width="0" |
| | | style="margin-bottom: 0" |
| | | :prop="`goods[${goodsIndex}].models[${scope.$index}].reason`" |
| | | :rules="rules.reason" |
| | | > |
| | | <el-select v-model="scope.row.reason" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in reasonOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | @change="countsChange($event, goodsIndex, scope.$index)"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="btn-group"> |
| | | <el-button |
| | | v-if="formData.goods.length > 1" |
| | |
| | | warehouseId: [{ required: true, message: '请选择', trigger: 'change' }], |
| | | dealTime: [{ required: true, message: '请选择', trigger: 'change' }], |
| | | buyType: [{ required: true, message: '请选择', trigger: 'change' }], |
| | | |
| | | baseCategoryIds: [{ required: true, message: '请选择', trigger: 'change' }], |
| | | baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }], |
| | | modelsIds: [{ required: true, message: '请选择', trigger: 'change' }], |
| | | counts: [{ required: true, message: '请输入', trigger: 'change' }], |
| | | reason: [{ required: true, message: '请选择', trigger: 'change' }], |
| | | }, |
| | | |
| | | uploadSettings: { |
| | |
| | | disabled: false, // 是否禁用 |
| | | type: 'picture', // text/picture |
| | | }, |
| | | reasonOptions:[] // 报废原因 |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | curItem.counts = worehouseCount > 0 ? worehouseCount : null; |
| | | } |
| | | }, |
| | | |
| | | handleConfirm(){ |
| | | |
| | | }, |
| | | |
| | | handleConfirm(){}, |
| | | // 提交 |
| | | handleSubmit() { |
| | | this.$refs['ruleForm'].validate((valid) => { |
| | |
| | | </div> |
| | | <div class="card-header-right"> |
| | | <el-button site="form" type="success" size="mini" @click="handleExport(item)" |
| | | >导出报废单</el-button |
| | | >导出报废登记单</el-button |
| | | > |
| | | <el-button name="查看详情" site="form" type="info" size="mini" @click="handleDetail(item)" |
| | | >查看详情</el-button |
| | |
| | | }, |
| | | }, |
| | | loginForm: { |
| | | account: '', // admin |
| | | password: '', |
| | | account: 'jmy123456', // admin |
| | | password: 'Adu_8097', |
| | | // key: '', |
| | | uuid: '', |
| | | code: '', |
| | |
| | | <div class="card-header-right"> |
| | | <template v-if="item.states == 1"> |
| | | <el-button name="编辑" site="form" type="success" size="mini" @click="handleEdit(item)" |
| | | >编辑</el-button |
| | | >编辑</el-button |
| | | > |
| | | <el-button name="入库" site="form" type="primary" size="mini" @click="handleIncome(item)" |
| | | >入库</el-button |
| | | >入库</el-button |
| | | > |
| | | <el-button name="删除" site="form" type="danger" size="mini" @click="del(item)" |
| | | >删除</el-button |
| | | >删除</el-button |
| | | > |
| | | </template> |
| | | <template v-if="item.states != 1"> |
| | | <el-button site="form" type="success" size="mini" @click="handleExport(item)" |
| | | >导出入库单</el-button |
| | | >导出入库单</el-button |
| | | > |
| | | </template> |
| | | <el-button name="查看详情" site="form" type="info" size="mini" @click="handleDetail(item)" |
| | | >查看详情</el-button |
| | | >查看详情</el-button |
| | | > |
| | | </div> |
| | | </div> |