master
lion 1 year ago
parent b97ba4b765
commit d327d5c8df

@ -24,6 +24,23 @@ export function updateInventorys(params) {
})
}
export function fenleiCharts(params) {
return request({
url: '/api/admin/chart/fenlei',
method: 'get',
params:params
})
}
export function homeCharts(params) {
return request({
url: '/api/admin/chart/home-v2',
method: 'get',
params:params
})
}

@ -172,7 +172,7 @@ export default {
}
</script>
<style lang="scss" scoped>
<style lang="scss">
.vertical-center-modal{
display: flex;
align-items: center;

@ -9,10 +9,14 @@ import locale from 'element-ui/lib/locale/lang/zh-CN' // 改为中文语言包
import '@/styles/index.scss' // global css
import '@/styles/iconfont.css'
import App from './App'
import store from './store'
import router from './router'
import ViewUI from 'view-design';
import './styles/viewui-mine.less';
import base from "./utils/common"
Vue.use(ViewUI);
import moment from "moment"
Vue.prototype.$moment = moment;
Vue.prototype.base = base;
@ -128,19 +132,6 @@ Vue.use(VueMatomo, {
debug: false
});
import ViewUI from 'view-design';
import '@/styles/viewui-mine.less';
Vue.use(ViewUI);
import App from './App'
import store from './store'
import router from './router'
new Vue({
el: '#app',
router,

@ -30,7 +30,7 @@
$refs['addBook'].setlistTeam(listTeam),
$refs['addBook'].isShow=true">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -115,7 +115,7 @@
align: 'center',
},
{
label: "名称",
label: "资名称",
width: 180,
prop: 'zichanmingcheng',
align: 'left'

@ -24,7 +24,7 @@
<template slot-scope="scope">
<Button type="primary" size="small" @click="edit(scope.row.id,'editor')"></Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="del(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</template>
</el-table-column>

@ -35,7 +35,7 @@
</span>
</template>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -30,7 +30,7 @@
$refs['addTeam'].id=scope.row.id,
$refs['addTeam'].isShow=true">小组</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -17,7 +17,7 @@
<template v-slot:zichanmingcheng>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>名称
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>资名称
</div>
<div class="xy-table-item-content">
<div style='width:300px'>

@ -10,8 +10,8 @@
<Input v-model="select.wzbm" style="width: 120px;margin-right: 10px;" placeholder="物资编码搜索" />
</div>
<div class="selector-item">
<span class="selector-item__label">名称</span>
<Input v-model="select.keyword" style="width: 120px;margin-right: 10px;" placeholder="名称搜索" />
<span class="selector-item__label">资名称</span>
<Input v-model="select.keyword" style="width: 120px;margin-right: 10px;" placeholder="资名称搜索" />
</div>
<div class="selector-item">
<span class="selector-item__label">入库数量</span>

@ -10,8 +10,8 @@
<Input v-model="select.wzbm" style="width: 120px;margin-right: 10px;" placeholder="物资编码搜索" />
</div>
<div class="selector-item">
<span class="selector-item__label">名称</span>
<Input v-model="select.keyword" style="width: 120px;margin-right: 10px;" placeholder="名称搜索" />
<span class="selector-item__label">资名称</span>
<Input v-model="select.keyword" style="width: 120px;margin-right: 10px;" placeholder="资名称搜索" />
</div>
<DatePicker @on-change="changeDate" type="daterange" split-panels placeholder="请选择日期" style="width: 200px"></DatePicker>
<Button type="primary" style="margin-left: 10px;" @click="getindex"></Button>
@ -97,7 +97,7 @@
width: 80,
},
{
label: '出库时间',
label: '出库日期',
prop:'outbounds_chukushijian',
width: 180,
},
@ -133,7 +133,7 @@
align: 'center',
},
{
label: "名称",
label: "资名称",
prop: 'zichanmingcheng',
align: 'center',

@ -10,8 +10,8 @@
<Input v-model="select.wzbm" style="width: 120px;margin-right: 10px;" placeholder="物资编码搜索" />
</div>
<div class="selector-item">
<span class="selector-item__label">名称</span>
<Input v-model="select.keyword" style="width: 120px;margin-right: 10px;" placeholder="名称搜索" />
<span class="selector-item__label">资名称</span>
<Input v-model="select.keyword" style="width: 120px;margin-right: 10px;" placeholder="资名称搜索" />
</div>
<DatePicker @on-change="changeDate" type="daterange" split-panels placeholder="请选择日期" style="width: 200px"></DatePicker>
<Button type="primary" style="margin-left: 10px;" @click="getindex"></Button>

@ -6,115 +6,53 @@
import echarts from 'echarts'
export default {
props: {
xData: {
type: Array,
default: []
},
yData: {
type: Array,
default: []
}
},
name: 'Bar3DChart',
mounted() {
this.chart = echarts.init(this.$refs.chart1)
this.chart.setOption({
backgroundColor: 'transparent',
title: {
text: '各地区物资存量2025',
left: 'center',
top: 20,
textStyle: {
color: '#6dcde6'
}
},
grid: {
left: 40,
right: 20,
bottom: 40,
top: 40
},
xAxis: {
type: 'category',
data: ['姑苏区', '吴中区', '相城区', '虎丘区', '吴江区'],
axisLine: {
lineStyle: {
color: '#6ec6ff'
}
},
axisLabel: {
color: '#fff',
fontSize: 16
}
},
yAxis: {
type: 'value',
max: 500,
splitLine: {
lineStyle: {
color: 'rgba(255,255,255,0.1)'
}
},
axisLine: {
lineStyle: {
color: '#6ec6ff'
}
},
axisLabel: {
color: '#fff',
fontSize: 16
}
},
series: [{
type: 'bar',
barWidth: 40,
data: [320, 460, 380, 240, 330],
itemStyle: {
color: (params) => {
// 3D
return {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#b8e2ff'
}, //
{
offset: 0.5,
color: '#6ec6ff'
}, //
{
offset: 1,
color: '#298dff'
} //
]
}
},
barBorderRadius: [10, 10, 0, 0],
shadowColor: 'rgba(46, 130, 255, 0.4)',
shadowBlur: 15
},
label: {
show: true,
position: 'top',
color: '#fff',
fontSize: 18
}
}]
})
this.resizeChart()
},
watch: {
xData(newVal) {
if (newVal) {
this.initChart()
this.resizeChart()
}
},
},
beforeDestroy() {
if (this.chart) this.chart.dispose()
},
methods: {
initChart() {
this.chart = echarts.init(this.$refs.chart)
// this.chart = echarts.init(this.$refs.chart1)
const option = {
backgroundColor: 'transparent',
title: {
text: '待办任务',
left: 'center',
top: 0,
textStyle: {
color: '#6dcde6'
}
},
grid: {
left: 40,
right: 20,
bottom: 40,
top: 40,
bottom: 140,
top: 80,
},
xAxis: {
type: 'category',
data: ['姑苏区', '吴中区', '相城区', '虎丘区', '吴江区'],
data: this.xData,
axisLine: {
lineStyle: {
color: '#6ec6ff'
@ -127,7 +65,7 @@
},
yAxis: {
type: 'value',
max: 500,
// max: 500,
splitLine: {
lineStyle: {
color: 'rgba(255,255,255,0.1)'
@ -146,7 +84,7 @@
series: [{
type: 'bar',
barWidth: 40,
data: [320, 460, 380, 240, 330],
data: this.yData,
itemStyle: {
color: {
type: 'linear',
@ -174,9 +112,9 @@
fontSize: 18
}
}]
}
this.$nextTick(()=>{
this.chart.setOption(option)
}
this.$nextTick(() => {
this.chart.setOption(option)
})
},

@ -12,24 +12,9 @@
type: Object,
required: true,
default: () => ({
level1: [{ value: 100, name: '防御材料' }],
level2: [
{ value: 20, name: '袋类' },
{ value: 45, name: '土工布类' },
{ value: 25, name: '桩类' },
{ value: 10, name: '金属丝及其制品类' }
],
level3: [
{ value: 8, name: '个', parent: '袋类' },
{ value: 12, name: '只', parent: '袋类' },
{ value: 20, name: '捆', parent: '土工布类' },
{ value: 25, name: '匹', parent: '土工布类' },
{ value: 13, name: '根', parent: '桩类' },
{ value: 12, name: '堆', parent: '桩类' },
{ value: 2, name: '条', parent: '金属丝及其制品类' },
{ value: 4, name: '捆', parent: '金属丝及其制品类' },
{ value: 4, name: '个', parent: '金属丝及其制品类' }
]
level1: [],
level2: [],
level3: []
})
}
},
@ -210,12 +195,29 @@
formatter: '{b}\n{d}%',
fontSize: 12
},
label: {
rotate: 30, //
fontSize: 12 ,//
color: '#fff',
// lineStyle: { }
},
labelLine: {
show: true,
length: 10,
length2: 15,
lineStyle: { color: '#fff' }
show: true, // 线
length: 10, // 线
length2: 30, // 线
lineStyle: {
color: '#fff', // 线
width: 1, // 线
type: 'solid' // 线
}
},
// labelLine: {
// show: true,
// length: 10,
// length2: 15,
// lineStyle: { color: '#fff' }
// },
itemStyle: {
shadowBlur: 10,
shadowColor: 'rgba(0, 0, 0, 0.5)',

@ -4,23 +4,21 @@
<div class="jscC-top">
<div v-for="item in topObj">
<div class="label">{{item.label}}</div>
<div class="value">{{item.value}}</div>
<div class="value">
{{item.value}}
<!-- <CountUp :end="item.value" :duration="6" ref="count" /> -->
</div>
</div>
</div>
<div class="jscC-center">
<div class="jscC-center-left">
<div class="jscC-center-left-title">物资库种类2025</div>
<div style="display: flex; justify-content: space-between;">
<span
v-for="item in Object.keys(chartDataMap)"
:key="item"
:class="['custom-btn', { active: activeType === item }]"
@click="handleTypeClick(item)"
>
{{ item }}
</span>
<div class="jscC-center-left">
<div style="display: flex; justify-content: space-between;">
<span v-for="item in Object.keys(chartDataMap)" :key="item"
:class="['custom-btn', { active: activeType === item }]" @click="handleTypeClick(item)">
{{ item }}
</span>
</div>
<!-- <Bar3DChart></Bar3DChart> -->
<!-- <Bar3DChart></Bar3DChart> -->
<fenleiChart :chartData="chartData"></fenleiChart>
</div>
<div class="jscC-center-center">
@ -28,7 +26,8 @@
</div>
<div class="jscC-center-right">
<Pie3DChart></Pie3DChart>
<Bar3DChart :xData="xData" :yData="yData"></Bar3DChart>
<!-- <Pie3DChart></Pie3DChart> -->
</div>
</div>
<div class="jscC-bottom">
@ -43,15 +42,19 @@
</template>
<script>
import Bar3DChart from "../jsc/components/barChart.vue"
import fenleiChart from "../jsc/components/fenleiChart.vue"
import Bar3DChart from "../jsc/components/barChart.vue"
import fenleiChart from "../jsc/components/fenleiChart.vue"
import Pie3DChart from "../jsc/components/pieChart.vue"
import echartsMap from "./components/mapChart.vue";
import {
fenleiCharts,
homeCharts
} from "@/api/charts.js"
export default {
components: {
Bar3DChart,
Pie3DChart,
echartsMap,
echartsMap,
fenleiChart
},
data() {
@ -68,28 +71,36 @@
},
topObj: [{
label: '仓库数量',
value: 45
},{
value: 0,
id: 'cangku_count',
}, {
label: '物资种类',
value: 3500
value: 0,
id: 'wuzizhonglei_count',
}, {
label: '本月出库',
value: 1390
value: 0,
id: 'chuku_month_count',
}, {
label: '本月入库',
value: 2350
value: 0,
id: 'ruku_month_count',
}, {
label: '应急调度次数',
value: 25
value: 0,
id: 'yingjidiaodu_count',
}, {
label: '设备总数',
value: 350
label: '装备总数',
value: 0,
id: 'shebei_count',
}, {
label: '盘点',
value: 0
value: 0,
id: 'pan_count',
}, {
label: '维护',
value: 0
value: 0,
id: 'weihu_count',
}],
bottomObj: [{
label: '库存管理',
@ -115,120 +126,151 @@
}, {
label: '工单管理',
path: '/flood/plan'
}],
//
activeType: '防御材料',
chartDataMap: {
'防御材料': {
level1: [{ value: 100, name: '防御材料' }],
level2: [
{ value: 20, name: '袋类' },
{ value: 45, name: '土工布类' },
{ value: 25, name: '桩类' },
{ value: 10, name: '金属丝及其制品类' }
],
level3: [
{ value: 8, name: '个', parent: '袋类' },
{ value: 12, name: '只', parent: '袋类' },
{ value: 20, name: '捆', parent: '土工布类' },
{ value: 25, name: '匹', parent: '土工布类' },
{ value: 13, name: '根', parent: '桩类' },
{ value: 12, name: '堆', parent: '桩类' },
{ value: 2, name: '条', parent: '金属丝及其制品类' },
{ value: 4, name: '捆', parent: '金属丝及其制品类' },
{ value: 4, name: '个', parent: '金属丝及其制品类' }
]
},
'防御装备': {
level1: [{ value: 80, name: '防御装备' }],
level2: [
{ value: 15, name: '指挥通信类' },
{ value: 22, name: '观察测量类' },
{ value: 13, name: '动力及照明类' },
{ value: 30, name: '水下抢险类' }
],
level3: [
{ value: 15, name: '个', parent: '指挥通信类' },
{ value: 22, name: '个', parent: '观察测量类' },
{ value: 13, name: '个', parent: '动力及照明类' },
{ value: 10, name: '套', parent: '水下抢险类' },
{ value: 20, name: '件', parent: '水下抢险类' }
]
},
'配套装备': {
level1: [{ value: 60, name: '配套装备' }],
level2: [
{ value: 10, name: '野外生活保障车' },
{ value: 20, name: '野外抢险炊事车' },
{ value: 18, name: '牵引车' },
{ value: 12, name: '运输车' }
],
level3: [
{ value: 10, name: '辆', parent: '野外生活保障车' },
{ value: 20, name: '辆', parent: '野外抢险炊事车' },
{ value: 18, name: '辆', parent: '牵引车' },
{ value: 12, name: '辆', parent: '运输车' }
]
},
'装备耗材': {
level1: [{ value: 50, name: '装备耗材' }],
level2: [
{ value: 20, name: '软管' },
{ value: 30, name: '抱箍' }
],
level3: [
{ value: 12, name: '根', parent: '软管' },
{ value: 8, name: '捆', parent: '软管' },
{ value: 19, name: '个', parent: '抱箍' },
{ value: 11, name: '扎', parent: '抱箍' }
]
}
},
typeList: ['防御材料', '防御装备', '配套装备', '装备耗材'],
autoTimer: null, //
resumeTimer: null //
}],
//
activeType: '防御材料',
apiData: [],
chartDataMap: {},
typeList: [],
autoTimer: null, //
resumeTimer: null, //
xData: [],
yData: [],
todoList: [{
id: 'gongdan',
value: '工单'
}, {
id: 'pandian',
value: '盘点'
}, {
id: 'weihu',
value: '维护'
}]
}
},
computed: {
chartData() {
return this.chartDataMap[this.activeType];
}
},
watch: {
},
computed: {
chartData() {
return this.chartDataMap[this.activeType];
}
},
mounted() {
this.$store.dispatch('app/toggleSideBar')
this.getChartData()
this.$store.dispatch('app/closeSideBar', {
withoutAnimation: false
});
this.setRem()
this.calculateScreenSize()
window.addEventListener('resize', this.calculateScreenSize)
window.addEventListener('resize', this.calculateScreenSize)
this.startAutoSwitch();
},
beforeRouteLeave(to, from, next) {
this.$store.dispatch('app/toggleSideBar');
next();
},
beforeDestroy() {
window.removeEventListener('resize', this.calculateScreenSize)
clearInterval(this.autoTimer);
clearTimeout(this.resumeTimer);
window.removeEventListener('resize', this.calculateScreenSize)
clearInterval(this.autoTimer);
clearTimeout(this.resumeTimer);
},
methods: {
//
startAutoSwitch() {
clearInterval(this.autoTimer);
let idx = this.typeList.indexOf(this.activeType);
this.autoTimer = setInterval(() => {
idx = (idx + 1) % this.typeList.length;
this.activeType = this.typeList[idx];
}, 5000); // 10
},
// 20
stopAutoSwitchAndResumeLater() {
clearInterval(this.autoTimer);
clearTimeout(this.resumeTimer);
this.resumeTimer = setTimeout(() => {
this.startAutoSwitch();
}, 10000); // 20
},
//
handleTypeClick(type) {
this.activeType = type;
this.stopAutoSwitchAndResumeLater();
methods: {
//
async getChartData() {
const res = await fenleiCharts()
const home = await homeCharts()
//
this.topObj.map(item => {
item.value = home.top[item.id]
})
this.xData = []
this.yData = []
this.todoList.map(item => {
this.xData.push(item.value)
this.yData.push(home.rate[item.id])
})
console.log(this.xData, this.yData)
//
this.apiData = res.fenleiLevel1
this.chartDataMap = this.convertFenleiToChartDataMap(this.apiData)
},
//
convertFenleiToChartDataMap(fenleiLevel1) {
const chartDataMap = {};
this.typeList = []
fenleiLevel1.forEach(level1 => {
const level1Name = level1.value;
//
this.typeList.push(level1Name)
const level1Arr = [{
value: level1.details.reduce((sum, d) => sum + (d.total_count || 0), 0), //
name: level1Name
}];
//
const level2Arr = [];
//
const level3Arr = [];
(level1.details || []).forEach(level2 => {
// value inventorys total_count
let level2Value = 0;
(level2.inventorys || []).forEach(inv => {
level2Value += Number(inv.total_count) || 0;
});
// total_count
if (level2Value === 0) level2Value = level2.total_count || 0;
level2Arr.push({
value: level2Value,
name: level2.value
});
//
(level2.inventorys || []).forEach(inv => {
level3Arr.push({
value: inv.total_count,
name: inv.jiliangdanwei,
parent: level2.value
});
});
});
chartDataMap[level1Name] = {
level1: level1Arr,
level2: level2Arr,
level3: level3Arr
};
});
return chartDataMap;
},
//
startAutoSwitch() {
clearInterval(this.autoTimer);
let idx = this.typeList.indexOf(this.activeType);
this.autoTimer = setInterval(() => {
idx = (idx + 1) % this.typeList.length;
this.activeType = this.typeList[idx];
}, 5000); // 10
},
// 20
stopAutoSwitchAndResumeLater() {
clearInterval(this.autoTimer);
clearTimeout(this.resumeTimer);
this.resumeTimer = setTimeout(() => {
this.startAutoSwitch();
}, 10000); // 20
},
//
handleTypeClick(type) {
this.activeType = type;
this.stopAutoSwitchAndResumeLater();
},
setRem() {
// 使100px
@ -323,28 +365,31 @@
// flex-wrap: wrap;
&-left {
// width:5.3rem;
&-title{
color:#6dcde6;
text-align: center;
font-weight: bold;
margin-bottom:10px;
font-size: 16px;
}
.custom-btn {
background: #0b1b3a;
color: #19eaff;
border: none;
border-radius: 12px;
padding: 10px 15px;
font-size: 14px;
cursor: pointer;
transition: background 0.2s, color 0.2s;
}
.custom-btn.active {
background: linear-gradient(90deg, #3ad0ff 0%, #4be3c1 100%);
color: #fff;
box-shadow: 0 2px 12px 0 rgba(58,208,255,0.2);
// width:5.3rem;
&-title {
color: #6dcde6;
text-align: center;
font-weight: bold;
margin-bottom: 10px;
font-size: 16px;
}
.custom-btn {
background: #0b1b3a;
color: #19eaff;
border: none;
border-radius: 12px;
padding: 10px 15px;
font-size: 14px;
cursor: pointer;
transition: background 0.2s, color 0.2s;
}
.custom-btn.active {
background: linear-gradient(90deg, #3ad0ff 0%, #4be3c1 100%);
color: #fff;
box-shadow: 0 2px 12px 0 rgba(58, 208, 255, 0.2);
}
}

@ -1,7 +1,7 @@
<template>
<div class="table-page-container">
<div ref="lxHeader">
<lx-header icon="md-apps" text="维护记录" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<lx-header icon="md-apps" text="维护记录" style="margin-bottom: 10px; border: 0px;">
<slot>
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<div class="search-item">
@ -31,7 +31,7 @@
<Input v-model="select.keyword" placeholder="维护项目/编号/负责人" style="width: 200px"></Input>
</div>
<Button type="primary" style="margin-left: 8px;" @click="getList"></Button>
<Button style="margin-left: 8px;" @click="resetSearch"></Button>
<Button type="primary" style="margin-left: 8px;" @click="resetSearch"></Button>
</div>
</slot>
</lx-header>

@ -14,12 +14,15 @@
<xy-table :list="list" :total="total" @pageSizeChange="pageSizeChange" @pageIndexChange="pageChange"
:table-item="table" size="medium" :height="tableHeight" style="border-radius: 10px; overflow: hidden; box-shadow: 0 2px 12px 0 rgba(0,0,0,0.08); width: 100%;">
<template v-slot:btns>
<el-table-column label="操作" align="center" min-width="200" header-align="center" class-name="table-col-action">
<el-table-column label="操作" width="240" header-align="center" class-name="table-col-action">
<template slot-scope="scope">
<div style="display: flex; gap: 8px; justify-content: center;">
<Button type="primary" size="small" style="border-radius: 6px;" @click="handleEdit(scope.row)"></Button>
<Button type="primary" size="small" style="border-radius: 6px;" ghost @click="handleDelete(scope.row)"></Button>
<Button type="primary" size="small" style="border-radius: 6px;" ghost @click="handleAssociate(scope.row)"></Button>
<div>
<Button type="primary" size="small" style="margin-left: 10px;" @click="handleEdit(scope.row)"></Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="handleDelete(scope.row)">
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
<!-- <Button type="primary" size="small" ghost @click="">删除</Button> -->
<Button type="primary" size="small" style="margin-left: 10px;" ghost @click="handleAssociate(scope.row)"></Button>
</div>
</template>
</el-table-column>
@ -798,7 +801,7 @@ export default {
.ivu-modal-wrap {
z-index: 1000 !important;
}
.ivu-btn {
/* .ivu-btn {
margin: 0 4px;
border-radius: 4px;
}
@ -837,5 +840,5 @@ export default {
background-color: #5cadff;
border-color: #5cadff;
color: #fff;
}
} */
</style>

@ -35,7 +35,7 @@
<Button style="margin-left: 10px;" type="primary" size="small" @click="checkActivity(scope.row.id)"></Button>
<Button type="primary" size="small" style="margin-left: 10px;" @click="editorActivity(scope.row.id,'copy')"></Button> -->
<Poptip transfer confirm title="确认要删除吗?" @on-ok="deleteMater(scope.row)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>

@ -5,7 +5,7 @@
<template v-slot:chukushijian>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>出库时间
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>出库日期
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 300px;" v-model="form.chukushijian" type="date" placeholder="选择日期"
@ -111,7 +111,7 @@
<el-table-column label="操作" width="90" header-align="center" align="center">
<template v-slot:default="scope">
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delMingxiList(scope.$index,scope.row)">
<Button size="small" type="primary" ghost>删除</Button>
<Button size="small" type="error" ghost>删除</Button>
</Poptip>
</template>
</el-table-column>
@ -136,10 +136,10 @@
</div>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>名称
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>资名称
</div>
<div class="xy-table-item-content">
<el-input type="text" v-model="mingxiObj.zichanmingcheng" placeholder="请选择名称" disabled
<el-input type="text" v-model="mingxiObj.zichanmingcheng" placeholder="请选择资名称" disabled
style="width: 300px;"></el-input>
</div>
</div>
@ -298,7 +298,7 @@
rules: {
chukushijian: [{
required: true,
message: '请选择出库时间'
message: '请选择出库日期'
}],
// chukuleixing: [{
// required: true,
@ -330,7 +330,7 @@
width: 180
},
{
label: "名称",
label: "资名称",
prop: "zichanmingcheng",
width: 180
},
@ -368,7 +368,7 @@
prop: "shifouhuiku",
width: 180
}, , {
label: "回库时间",
label: "回库日期",
prop: "huikushijian",
width: 180
}

@ -12,7 +12,7 @@
<template v-slot:chukushijian v-if="activeStep===0">
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>出库时间
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>出库日期
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 300px;" v-model="form.chukushijian" type="date" placeholder="选择日期"
@ -149,7 +149,7 @@
<el-table-column label="操作" width="90" header-align="center" align="center">
<template v-slot:default="scope">
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delMingxiList(scope.$index,scope.row)">
<Button size="small" type="primary" ghost>删除</Button>
<Button size="small" type="error" ghost>删除</Button>
</Poptip>
</template>
</el-table-column>
@ -179,10 +179,10 @@
</div>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>名称
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>资名称
</div>
<div class="xy-table-item-content">
<el-input type="text" v-model="mingxiObj.zichanmingcheng" placeholder="请选择名称" disabled
<el-input type="text" v-model="mingxiObj.zichanmingcheng" placeholder="请选择资名称" disabled
style="width: 300px;"></el-input>
</div>
</div>
@ -253,7 +253,7 @@
</div>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>回库时间
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>回库日期
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 300px;" v-model="mingxiObj.huikushijian" type="date" placeholder="选择日期"
@ -358,7 +358,7 @@
rules: {
chukushijian: [{
required: true,
message: '请选择出库时间'
message: '请选择出库日期'
}],
// chukuleixing: [{
// required: true,
@ -394,7 +394,7 @@
width: 180
},
{
label: "名称",
label: "资名称",
prop: "zichanmingcheng",
width: 180
},
@ -407,7 +407,7 @@
prop: "wuzileixing",
width: 180
}, {
label: "计量单位",
label: "单位",
prop: "jiliangdanwei",
width: 180
}, {
@ -432,7 +432,7 @@
prop: "shifouhuiku",
width: 180
}, , {
label: "回库时间",
label: "回库日期",
prop: "huikushijian",
width: 180
}

@ -53,14 +53,14 @@
<table width='100%'>
<tr>
<td>物资名称</td>
<td>固定资产编号</td>
<!-- <td>固定资产编号</td> -->
<td>数量</td>
<td>报废原因</td>
<td>备注</td>
</tr>
<tr v-for="item in mingxiList">
<td>{{item.zichanmingcheng}}</td>
<td>{{form.gudingzichanbianhao}}</td>
<!-- <td>{{form.gudingzichanbianhao}}</td> -->
<td>{{item.jieyongshuliang}}</td>
<td>{{form.baofeiyuanyin}}</td>
<td>{{form.beizhu}}</td>
@ -86,7 +86,7 @@
</table>
</div>
<template v-slot:footer>
<Button type="" style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></Button>
<Button type="info" style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></Button>
<Button v-if="chukuType==''" type="primary" v-print="'#printmodal'" style='margin-left:5px;margin-bottom:5px;'>打印</Button>
<Button v-if="chukuType==''" type="primary" v-print="'#printmodal1'" style='margin-left:5px;margin-bottom:5px;'>打印</Button>
</template>
@ -106,7 +106,7 @@
data() {
return {
isShow: false,
type: 'add',
type: 'print',
id: '',
chukuType:'',
tableName: 'outbounds',
@ -142,13 +142,11 @@
this.mingxiList = res.id_outbounds_items_outbounds_id_relation
},
handlePrint() {
console.log("123")
if(this.chukuType=='领用'){
this.$Print('#printmodal');
}else if(this.chukuType=='处置'){
this.$Print('#printmodal1');
}
},
submit() {
@ -162,7 +160,7 @@
}
} else {
this.id = ''
this.type = ''
this.type = 'print'
this.showwatermark = true
this.form={}
this.mingxiList = []

@ -22,18 +22,18 @@
<xy-table :list="list" v-loading="loading" :total="total" @pageSizeChange="e => select.pageSize = e" @pageIndexChange="pageChange"
:table-item="table">
<template v-slot:btns>
<el-table-column fixed="right" label="操作" width="260" header-align="center">
<el-table-column fixed="right" label="操作" width="300" header-align="center">
<template slot-scope="scope">
<template v-if="isCkName=='仓库管理员'||roleName=='系统管理员'">
<Button v-if='scope.row.zhuangtai===""' type="primary" size="small" style="margin-left: 10px;" @click="editorChuku(scope.row.id,'outbounds')"></Button>
</template>
<template v-if="scope.row.jilurenyuan==authName||isCkName=='仓库管理员'||roleName=='系统管理员'">
<Button type="primary" size="small" style="margin-left: 10px;" @click="printChuku(scope.row.id,'print',scope.row.chukuleixing)"></Button>
<Button type="primary" size="small" style="margin-left: 10px;" @click="printChuku(scope.row.id,scope.row.chukuleixing)"></Button>
<!-- <template v-if="scope.row.jilurenyuan==authName||roleName=='系统管理员'"> -->
<Button type="primary" size="small" style="margin-left: 10px;" @click="editorChuku(scope.row.id,'editor',scope.row.chukuleixing)"></Button>
<Button v-if='scope.row.zhuangtai===""' type="primary" size="small" style="margin-left: 10px;" @click="tofollow(scope.row.id,scope.row)"></Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="deleteChuku(scope.row)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
<!-- </template> -->
</template>
@ -123,7 +123,7 @@
fixed: 'left',
width:80,
},{
label: "出库时间",
label: "出库日期",
width: 180,
prop: 'chukushijian',
align: 'center',
@ -233,11 +233,11 @@
},
//
printChuku(id, type,leixing){
printChuku(id,leixing){
this.$refs['printoutbounds'].id = id
this.$refs['printoutbounds'].isShow = true
this.$refs['printoutbounds'].type = type
this.$refs['printoutbounds'].chukuType = leixing
this.$refs['printoutbounds'].isShow = true
},
async tofollow(id,row){
console.log(row)

@ -29,7 +29,7 @@
$refs['addShelf'].id=scope.row.id,$refs['addShelf'].StorageList = StorageList,
$refs['addShelf'].isShow=true">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -180,7 +180,7 @@
<el-table-column label="操作" width="90" header-align="center" align="center">
<template v-slot:default="scope">
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delMingxiList(scope.$index,scope.row)">
<Button size="small" type="primary" ghost>删除</Button>
<Button size="small" type="error" ghost>删除</Button>
</Poptip>
</template>
</el-table-column>
@ -214,10 +214,10 @@
</div>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>名称
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>资名称
</div>
<div class="xy-table-item-content">
<el-input type="text" @focus="showWuzi" v-model="mingxiObj.zichanmingcheng" placeholder="请选择名称" disabled
<el-input type="text" @focus="showWuzi" v-model="mingxiObj.zichanmingcheng" placeholder="请选择资名称" disabled
style="width: 300px;"></el-input>
</div>
</div>
@ -307,7 +307,7 @@
<Modal v-model="isShowWuzi" title="物资选择">
<div class="searchCompanys">
<el-input style="margin-right:10px" clearable type="text" @keyup.enter.native="getList" v-model="wuzibianmakeyword" placeholder="请输入物资编码查找库存"></el-input>
<el-input style="margin-right:10px" clearable type="text" @keyup.enter.native="getList" v-model="keyword" placeholder="请输入名称查找"></el-input>
<el-input style="margin-right:10px" clearable type="text" @keyup.enter.native="getList" v-model="keyword" placeholder="请输入资名称查找"></el-input>
<el-button type="primary" @click="getList"></el-button>
</div>
<Table highlight-row ref="currentRowTable" :columns="wuziColumns" :data="showList"
@ -467,7 +467,7 @@
width: 180
},
{
label: "名称",
label: "资名称",
prop: "zichanmingcheng",
width: 180,
},

@ -71,7 +71,7 @@
<el-table-column label="操作" width="90" header-align="center" align="center">
<template v-slot:default="scope">
<!-- <Poptip transfer confirm title="确认要删除吗?" @on-ok="delMingxiList(scope.$index,scope.row)"> -->
<Button size="small" type="primary" @click="delMingxiList(scope.$index,scope.row)" ghost>删除</Button>
<Button size="small" type="error" @click="delMingxiList(scope.$index,scope.row)" ghost>删除</Button>
<!-- </Poptip> -->
</template>
</el-table-column>

@ -41,7 +41,7 @@
<div v-if="scope.row.jingbanren==authName||roleName=='系统管理员'||isCkName=='仓库管理员'">
<Button type="primary" size="small" @click="editorRuku(scope.row.id,'editor',scope.row.rukuleixing)"></Button>
<Poptip transfer confirm title="确认要删除该入库记录?入库明细将一同删除。" @on-ok="deleteRuku(scope.row)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -7,8 +7,8 @@
<div class="xy-table-item-content"><Input v-model="form.asset_code" style="width:100%;" placeholder="请输入资产编号" /></div>
</div>
<div class="xy-table-item type-dialog-item">
<div class="xy-table-item-label"><span style="color: red;font-weight: 600;padding-right: 4px;">*</span>名称</div>
<div class="xy-table-item-content"><Input v-model="form.asset_name" style="width:100%;" placeholder="请输入名称" /></div>
<div class="xy-table-item-label"><span style="color: red;font-weight: 600;padding-right: 4px;">*</span>资名称</div>
<div class="xy-table-item-content"><Input v-model="form.asset_name" style="width:100%;" placeholder="请输入资名称" /></div>
</div>
</div>
<div class="form-row">
@ -117,7 +117,7 @@ export default {
},
rules: {
asset_code: [{ required: true, message: '请输入资产编号' }],
asset_name: [{ required: true, message: '请输入名称' }]
asset_name: [{ required: true, message: '请输入资名称' }]
}
}
},

@ -19,7 +19,7 @@
$refs['addShelf'].id=scope.row.id,
$refs['addShelf'].isShow=true">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -6,7 +6,7 @@
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<DatePicker v-model="select.purchase_date" type="year" placeholder="购置年份" style="width: 200px;margin-right: 10px;" clearable />
<Input v-model="select.asset_number" style="width: 200px;margin-right: 10px;" placeholder="资产编号" clearable />
<Input v-model="select.name" style="width: 200px;margin-right: 10px;" placeholder="名称" clearable />
<Input v-model="select.name" style="width: 200px;margin-right: 10px;" placeholder="资名称" clearable />
<Input v-model="select.usage_department" style="width: 200px;margin-right: 10px;" placeholder="使用科室" clearable />
<Input v-model="select.custodian" style="width: 200px;margin-right: 10px;" placeholder="保管人" clearable />
<Button type="primary" style="margin-left: 8px;" @click="resetSelect"></Button>
@ -28,7 +28,7 @@
<template slot-scope="scope">
<div style="display: flex; gap: 8px; justify-content: center;">
<Button type="primary" size="small" style="border-radius: 6px;" @click="$refs.addFixAssets.open('editor', scope.row)">编辑</Button>
<Button type="primary" style="margin-left: 0; border-radius: 6px;" size="small" ghost @click="delRow(scope.row.id)"></Button>
<Button type="error" style="margin-left: 0; border-radius: 6px;" size="small" ghost @click="delRow(scope.row.id)"></Button>
</div>
</template>
</el-table-column>
@ -77,7 +77,7 @@
table: [
{ label: '序号', type: 'index', width: 60 },
{ label: '资产编号', prop: 'asset_number', minWidth: 120 },
{ label: '名称', prop: 'name', minWidth: 120 },
{ label: '资名称', prop: 'name', minWidth: 120 },
{ label: '国标分类', prop: 'category', minWidth: 120 },
{ label: '类别名称', prop: 'category_name', minWidth: 120 },
{ label: '物资型号', prop: 'model', minWidth: 120 },

@ -50,7 +50,7 @@
<Button type="primary" size="small" style="margin-left: 10px;"
@click="editorMater(scope.row.id,'editor')">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="deleteMater(scope.row)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>

@ -30,7 +30,7 @@
$refs['addStorage'].setTableName('flood_storages')
$refs['addStorage'].isShow=true">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -5,9 +5,9 @@
<slot>
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<Input v-model="select.keyword" style="width: 200px;margin-right: 10px;" placeholder="名称搜索" />
<Select @on-change="clearType" v-model="select.storehouses_id" style="width: 200px;margin-right: 10px;" placeholder="仓库类型" clearable>
<!-- <Select @on-change="clearType" v-model="select.storehouses_id" style="width: 200px;margin-right: 10px;" placeholder="仓库类型" clearable>
<Option v-for="item in typelist" :key="item.id" :value="item.id">{{ item.name }}</Option>
</Select>
</Select> -->
<Select @on-change="clearArea" v-model="select.area" style="width: 200px;margin-right: 10px;" placeholder="所在区域" clearable>
<Option v-for="item in areaList" :key="item.id" :value="item.id">{{ item.value }}</Option>
</Select>
@ -45,7 +45,7 @@
$refs['addStorage'].id=scope.row.id,$refs['addStorage'].typelist = typelist,
$refs['addStorage'].isShow=true">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -22,7 +22,7 @@
<template slot-scope="scope">
<div style="display: flex; gap: 8px; justify-content: center;">
<Button type="primary" size="small" style="border-radius: 6px;" @click="$refs.addType.open('editor', scope.row)">编辑</Button>
<Button type="primary" style="margin-left: 0; border-radius: 6px;" size="small" ghost @click="delRow(scope.row.id)"></Button>
<Button type="error" style="margin-left: 0; border-radius: 6px;" size="small" ghost @click="delRow(scope.row.id)"></Button>
</div>
</template>
</el-table-column>
@ -103,7 +103,7 @@
const formData = new FormData();
formData.append('page', this.select.page);
formData.append('page_size', this.select.page_size);
//
if (this.select.keyword) {
formData.append('filter[0][key]', 'name');

@ -29,7 +29,7 @@
<template slot-scope="scope">
<div style="display: flex; gap: 8px; justify-content: center;">
<Button type="primary" size="small" style="border-radius: 6px;" @click="$refs.addWarehouse.open('editor', scope.row)">编辑</Button>
<Button type="primary" style="margin-left: 0; border-radius: 6px;" size="small" ghost @click="delRow(scope.row.id)"></Button>
<Button type="error" style="margin-left: 0; border-radius: 6px;" size="small" ghost @click="delRow(scope.row.id)"></Button>
</div>
</template>
</el-table-column>
@ -147,7 +147,7 @@
formData.append('page', this.select.page);
formData.append('page_size', this.select.page_size);
formData.append('show_relation', 'materialstorages.storehouse');
//
if (this.select.keyword) {
formData.append('filter[0][key]', 'name');

@ -17,7 +17,7 @@
$refs['addBook'].setTeamId(id,name),
$refs['addBook'].isShow=true">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>

@ -25,7 +25,7 @@
$refs['addTeam'].id=scope.row.id,
$refs['addTeam'].isShow=true">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="delRow(scope.row.id)">
<Button type="primary" style="margin-left: 10px;" size="small" ghost>删除</Button>
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
<Button type="primary" style="margin-left: 10px;" size="small" @click="
$refs['showTeam'].id=scope.row.id,

@ -111,7 +111,7 @@
align: 'center',
},
{
label: "名称",
label: "资名称",
prop: 'zichanmingcheng',
align: 'left'
},
@ -283,9 +283,15 @@
},
mounted() {
//
window.addEventListener('resize', this.handleResize);
window.addEventListener('resize', this.handleResize);
this.$store.dispatch('app/closeSideBar', {
withoutAnimation: false
});
},
beforeRouteLeave(to, from, next) {
this.$store.dispatch('app/toggleSideBar');
next();
},
beforeDestroy() {
//
window.removeEventListener('resize', this.handleResize);

Loading…
Cancel
Save