Browse Source

档案盘点 结算/清空/样式/bug

master
x_ying 3 years ago
parent
commit
cbc057f132
  1. 24
      src/api/archivesManage/archivesCheck.js
  2. 10
      src/assets/styles/lend-manage.scss
  3. 50
      src/views/archivesManage/archivesCheck/index.vue
  4. 57
      src/views/archivesManage/archivesCheck/module/addCheck.vue
  5. 51
      src/views/archivesManage/archivesCheck/module/calcSteps.vue
  6. 67
      src/views/archivesManage/archivesCheck/module/checkDetail.vue

24
src/api/archivesManage/archivesCheck.js

@ -1,6 +1,6 @@
import request from '@/utils/request'
import qs from 'qs'
// import axios from 'axios'
// 详情
export function getArrange(params) {
return request({
@ -43,10 +43,30 @@ export function checkDel(parameter) {
})
}
// 结算
export function settlement(parameter) {
return request({
url: 'api/arrange/settlement',
method: 'post',
data: parameter
})
}
// 清空缓存
export function arrangeClean(parameter) {
return request({
url: 'api/arrange/clean',
method: 'post',
data: parameter
})
}
export default {
getArrange,
getArrangeDetailes,
addArrange,
checkDel,
previewArrange
previewArrange,
settlement,
arrangeClean
}

10
src/assets/styles/lend-manage.scss

@ -90,10 +90,18 @@
color: #0FBED9;
border: 1px solid #0FBED9;
}
.error-clear .clear{
.error-clear-bg .clear{
color: #fff;
background-color: #F65163;
}
.have-clear-bg .clear{
color: #fff;
background-color: #1AAE93;
}
.no-clear-bg .clear{
color: #fff;
background-color: #FD8042;
}
//3D库房
.iframe_box {

50
src/views/archivesManage/archivesCheck/index.vue

@ -36,7 +36,7 @@
<rrOperation />
</div>
<div>
<el-button size="mini" icon="el-icon-brush" @click="handleCalc">清空缓存</el-button>
<el-button size="mini" icon="el-icon-brush" @click="handleClear">清空缓存</el-button>
</div>
<!-- <crudOperation :permission="permission" /> -->
</div>
@ -98,7 +98,8 @@
<addCheck ref="addCheckDom" />
<!-- 盘点详情 -->
<checkDetail ref="checkDetailDom" />
<!-- 结算 -->
<CalcSteps ref="calcDom" />
</div>
</template>
@ -108,14 +109,14 @@ import CRUD, { presenter } from '@crud/crud'
import pagination from '@crud/Pagination'
import addCheck from './module/addCheck.vue'
import checkDetail from './module/checkDetail.vue'
import { getArrange, getArrangeDetailes, checkDel } from '@/api/archivesManage/archivesCheck'
import { getArrange, getArrangeDetailes, checkDel, settlement, arrangeClean } from '@/api/archivesManage/archivesCheck'
import { exportFile } from '@/utils/index'
import qs from 'qs'
import { mapGetters } from 'vuex'
import CalcSteps from './module/calcSteps.vue'
export default {
name: 'ArchivesCheck',
components: { pagination, rrOperation, addCheck, checkDetail },
components: { pagination, rrOperation, addCheck, checkDetail, CalcSteps },
filters: {
checkState(val) {
switch (val) {
@ -163,7 +164,8 @@ export default {
{ value: 1, label: '区域' },
{ value: 2, label: '盘点单号' }
],
deleteVisible: false
deleteVisible: false,
source: null
}
},
computed: {
@ -202,15 +204,45 @@ export default {
message: '删除成功',
type: 'success'
})
this.deleteVisible = false
} else {
this.$message.error('删除失败')
}
})
this.deleteVisible = false
},
//
handleCalc() {
console.log(this.selections)
const calcDom = this.$refs.calcDom
calcDom.calcVisible = true
calcDom.stepActive = 2
const params = {
'orderId': this.selections[0].id
}
console.log(params, '--params')
settlement(params).then(res => {
console.log(res, '结算成功')
if (res) {
calcDom.stepActive = 3
calcDom.res = 1
calcDom.source = this.source
// calcDom.calcVisible = false
this.crud.refresh()
} else {
calcDom.stepActive = 3
calcDom.res = 0
}
})
},
//
handleClear() {
arrangeClean().then(res => {
// this.crud.refresh()
this.$message({
message: '清空成功',
type: 'success'
})
})
},
//
handleAdd() {
@ -245,10 +277,10 @@ export default {
getArrange(params).then(res => {
console.log(res, 'res')
checkDetailDom.rowData.push(res)
console.log(checkDetailDom.rowData, '.........')
console.log(checkDetailDom.rowData, '盘点单信息')
})
getArrangeDetailes(params).then(res => {
console.log(res, 'res2')
console.log(res, '盘点单详细信息')
checkDetailDom.tableData = res.content
})
checkDetailDom.detailVisible = true

57
src/views/archivesManage/archivesCheck/module/addCheck.vue

@ -9,8 +9,9 @@
:model="checkForm"
size="small"
label-width="80px"
:rules="rules"
>
<el-form-item label="选择区域" prop="selectArea" class="down-select" style="padding-top:1px">
<el-form-item label="选择区域" prop="selectArea" class="down-select" style="padding-top:1px;margin-right:20px">
<treeselect
v-model="selectAreaValue"
:options="selectArea"
@ -40,7 +41,7 @@
/>
</el-select>
</el-form-item>
<el-button type="primary" size="mini" style="margin:0 0 0 10px;height:30px" @click="handleBuild">生成盘点单</el-button>
<el-button type="primary" size="mini" style="margin:0 0 0 20px;height:30px" @click="handleBuild">生成盘点单</el-button>
</el-form>
<el-table v-loading="loading" :data="tableData" height="299px" :cell-class-name="cell">
<el-table-column type="index" align="center" label="序号" width="80" />
@ -58,18 +59,18 @@
<span v-if="scope.row.categoryType === 3" style="width:56px">案卷级</span>
</template>
</el-table-column>
<el-table-column prop="categoryName" align="center" label="门类名称" width="120" />
<el-table-column prop="categoryName" align="center" show-overflow-tooltip label="门类名称" width="120" />
<el-table-column prop="fondsNo" align="center" label="全宗号" width="100" />
<el-table-column prop="archiveNo" align="center" label="档号" width="180" />
<el-table-column prop="archiveYear" align="center" label="归档年度" width="100" />
<el-table-column prop="maintitle" label="题名" align="center" width="180" />
<el-table-column prop="maintitle" show-overflow-tooltip label="题名" align="center" width="180" />
<el-table-column prop="securityClass" label="保密程度" align="center" width="85" />
<el-table-column prop="department" label="部门" align="center" width="120" />
<el-table-column prop="caseName" label="盒名称" align="center" width="85" />
<el-table-column prop="folderLocationDetails" label="所在位置" align="center" width="150" />
<el-table-column prop="createTime" label="创建时间" align="center" width="150">
<el-table-column prop="caseName" label="盒名称" show-overflow-tooltip align="center" width="120" />
<el-table-column prop="folderLocationDetails" show-overflow-tooltip label="所在位置" align="center" width="150" />
<el-table-column prop="create_time" label="创建时间" align="center" width="150">
<template slot-scope="scope">
<div>{{ scope.row.createTime | parseTime }}</div>
<div>{{ scope.row.create_time | parseTime }}</div>
</template>
</el-table-column>
</el-table>
@ -103,7 +104,6 @@ export default {
addFormVisible: false,
selectAreaValue: [],
selectArea: [],
// deviceTree:[],
defaultProps: { children: 'children', label: 'label' },
nodeKey: 'id',
defaultCheckedKeys: [],
@ -122,6 +122,10 @@ export default {
size: null,
deviceIds: null,
categoryIds: null
},
rules: {
selectArea: [{ required: true, trigger: 'blur' }],
category: [{ required: true, trigger: 'blur' }]
}
}
},
@ -135,7 +139,6 @@ export default {
const deviceTree = []
let storeroom = {}
let devices = []
// deviceTree.splice(0, deviceTree.length)
data.forEach((item, i) => {
if (!storeroom.id) {
item.storeroomId.label = item.storeroomId.name
@ -179,14 +182,21 @@ export default {
},
//
handleBuild() {
this.loading = true
const paramsNo = this.getParams()
this.params.deviceIds = paramsNo.deviceIds
this.params.categoryIds = paramsNo.categoryIds
this.params.page = this.page.page - 1
this.params.size = this.page.size
this.doPreArrange(this.params)
this.loading = false
if (this.selectAreaValue.length > 0 && this.categoryValue.length > 0) {
this.loading = true
const paramsNo = this.getParams()
this.params.deviceIds = paramsNo.deviceIds
this.params.categoryIds = paramsNo.categoryIds
this.params.page = this.page.page - 1
this.params.size = this.page.size
this.doPreArrange(this.params)
this.loading = false
} else {
this.$message({
message: '区域和门类均不能为空',
type: 'warning'
})
}
},
handleSave() {
const params = this.getParams()
@ -209,34 +219,27 @@ export default {
})
},
getParams() {
// console.log(this.selectArea, this.category)
// console.log(this.selectAreaValue, this.categoryValue)
const room = this.selectArea.map(item => { return item.id }) // id
// console.log(room, 'room')
if (this.selectAreaValue.length > 0 && this.categoryValue.length > 0) {
// const selRoom = this.selectAreaValue.filter(item => room.includes(item)) // id
let deviceIds = this.selectAreaValue.filter(item => !room.includes(item)) // id
const devIds = JSON.parse(JSON.stringify(deviceIds))
let region = []
this.selectArea.forEach(item => {
if (this.selectAreaValue.includes(item.id)) {
region.push(item.name)
const arr = item.children.map(val => { return val.id })
const arr = item.children.map(val => { return val.id }) //
deviceIds = deviceIds.concat(arr)
}
if (devIds.length > 0) {
item.children.forEach(val => {
if (devIds.includes(val.id) && !region.includes(item.name)) {
region.push(item.name)
region.push(item.name) //
}
})
}
})
region = region.join(',') // str
const categoryIds = this.categoryValue.filter(item => item !== 0)
// console.log(categoryIds, 'categoryIds')
// console.log(deviceIds, 'deviceIds')
// console.log(region, 'region')
const params = {
'categoryIds': categoryIds,
'deviceIds': deviceIds,

51
src/views/archivesManage/archivesCheck/module/calcSteps.vue

@ -0,0 +1,51 @@
<template>
<div>
<el-dialog title="结算提示" :visible.sync="calcVisible" :close-on-click-modal="false">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-steps :active="stepActive">
<el-step title="开始结算" />
<el-step title="结算中" />
<el-step title="结算结果">
<span v-if="res===1" slot="description" style="color:#1AAE93">结算成功</span>
<span v-if="res===0" slot="description" style="color:#F65163">结算失败</span>
</el-step>
</el-steps>
</div></el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
calcVisible: false,
stepActive: 1,
res: null,
source: null
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog .el-dialog__body{
height: 150px;
}
::v-deep .el-step__title.is-process,
::v-deep .el-step__description.is-process,
::v-deep .el-step__title.is-wait,
::v-deep .el-step__description.is-wait{
color: #fff;
}
::v-deep .el-step__icon.is-text{
.el-step__icon-inner{
color: #ccc;
}
}
::v-deep .el-step__head.is-process{
border-color: #ccc;
}
</style>

67
src/views/archivesManage/archivesCheck/module/checkDetail.vue

@ -1,35 +1,20 @@
<template>
<div>
<el-dialog title="盘点详情" :visible.sync="detailVisible">
<el-dialog title="盘点详情" :visible.sync="detailVisible" :close-on-click-modal="false">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<!-- <div class="dpflex">
<p class="one"><span class="color-blue">盘点单号:</span><span class="color-white">{{ rowData.id }}</span></p>
<p :class="classLend" class="two"><span class="color-blue">盘点状态:</span><span class="color-white clear" style="padding:0;margin-left:20px">{{ rowData.checkState }}</span></p>
<p class="tree"><span class="color-blue">已盘档案:</span><span class="color-white">{{ rowData.checked }}</span></p>
<p class="four"><span class="color-blue">已借档案:</span><span class="color-white">{{ rowData.borrowed }}</span></p>
</div>
<div class="dpflex">
<p class="one"><span class="color-blue">所在区域:</span><span class="color-white">{{ rowData.region }}</span></p>
<p class="two"><span class="color-blue">在库档案:</span><span class="color-white">{{ rowData.correct }}</span></p>
<p class="tree"><span class="color-blue">未盘档案:</span><span class="color-white">{{ rowData.noCheck }}</span></p>
<p class="four"><span class="color-blue">错位档案:</span><span class="color-white">{{ rowData.dislocation }}</span></p>
</div>
<div class="dpflex">
<p class="one"><span class="color-blue">创建时间:</span><span class="color-white">{{ rowData.CreateTime }}</span></p>
<p class="two"><span class="color-blue">异常档案:</span><span class="color-white">{{ rowData.storeNum }}</span></p>
<p class="tree"><span class="color-blue">其余档案:</span><span class="color-white">{{ rowData.noCheckNum }}</span></p>
<p class="four" />
</div> -->
<!-- <p style="margin-left: 30px;"><span class="color-blue">创建时间:</span><span class="color-white">{{ rowData.CreateTime }}</span></p> -->
<el-table :data="rowData" :cell-class-name="cell" style="margin-top:15px;width:100%;height:108px">
<el-table :data="rowData" :cell-class-name="cellTop" style="margin-top:15px;width:100%;" height="calc(25vh - 100px)">
<el-table-column prop="id" align="center" label="盘点单号" min-width="150" />
<el-table-column prop="region" align="center" label="所在区域" min-width="90" />
<el-table-column prop="checkState" align="center" label="盘点状态" min-width="90" />
<el-table-column prop="checkState" align="center" label="盘点状态" min-width="120">
<template slot-scope="scope">
<span class="clear">{{ scope.row.checkState | checkState }}</span>
</template>
</el-table-column>
<el-table-column prop="create_time" align="center" label="创建时间" min-width="150">
<template slot-scope="scope">
<div>{{ scope.row.create_time | parseTime }}</div>
<span>{{ scope.row.create_time | parseTime }}</span>
</template>
</el-table-column>
<el-table-column prop="noCheck" align="center" label="未盘档案" min-width="90" />
@ -39,7 +24,7 @@
<el-table-column prop="abnormal" align="center" label="异常档案" min-width="90" />
<el-table-column prop="others" align="center" label="其他档案" min-width="90" />
</el-table>
<el-table :data="tableData" :cell-class-name="cell" style="margin-top:15px;width:100%;" height="calc(100vh - 589px)">
<el-table :data="tableData" :cell-class-name="cell" style="margin-top:15px;width:100%;" height="calc(50vh - 147px)">
<el-table-column type="index" label="序号" align="center" width="90" />
<el-table-column prop="checkResult" align="center" label="盘点结果" width="90">
<template slot-scope="scope">
@ -77,6 +62,16 @@
<script>
export default {
filters: {
checkState(val) {
switch (val) {
case 0:
return '待执行'
case 1:
return '执行中'
case 2:
return '已执行'
}
},
checkResult(val) {
switch (val) {
case 0:
@ -105,21 +100,30 @@ export default {
}
},
methods: {
cellTop({ row, columnIndex }) {
if (row.checkState === 2 && columnIndex === 2) {
return 'have-clear'
} else if (row.checkState === 0 && columnIndex === 2) {
return 'fail-clear'
} else if (row.checkState === 1 && columnIndex === 2) {
return 'no-clear'
}
},
cell({ row, columnIndex }) {
if (row.checkResult === 0 && columnIndex === 1) { //
return 'no-clear'
return 'no-clear-bg'
} else if (row.checkResult === 1 && columnIndex === 1) { //
return 'other-clear'
return 'no-clear'
} else if (row.checkResult === 2 && columnIndex === 1) { //
return ''
return 'have-clear-bg'
} else if (row.checkResult === 3 && columnIndex === 1) { //
return 'fail-clear'
} else if (row.checkResult === 4 && columnIndex === 1) { //
return 'have-clear'
} else if (row.checkResult === 5 && columnIndex === 1) { //
return 'error-clear'
return 'error-clear-bg'
} else if (row.checkResult === 6 && columnIndex === 1) { //
return ''
return 'other-clear'
}
}
}
@ -171,4 +175,9 @@ p{
flex: 1;
}
}
//
::v-deep ::-webkit-scrollbar-corner{
background: transparent;
}
</style>
Loading…
Cancel
Save