ci: 新建和修改多个功能模块点

ci: 新建和修改多个功能模块点
This commit is contained in:
shawnzhang 2021-02-23 13:30:59 +08:00
parent 47d06b7901
commit e553f97346
26 changed files with 632 additions and 66 deletions

View file

@ -25,6 +25,10 @@ export function addrole(query) {
if (query.createPersonId !== '' && query.createPersonId !== null && query.createPersonId !== undefined) {
params.append('createPersonId', query.createPersonId) // 你要传给后台的参数值 key/value
}
if (query.isConfirm !== '' && query.isConfirm !== null && query.isConfirm !== undefined) {
params.append('isConfirm', query.isConfirm) // 你要传给后台的参数值 key/value
}
return request({
url: '/role/addrole',
method: 'post',

View file

@ -27,6 +27,9 @@ export function stockInvoiceList(query) {
if (query.invoiceNumber !== '' && query.invoiceNumber !== null && query.invoiceNumber !== undefined) {
params.append('invoiceNumber', query.invoiceNumber) // 你要传给后台的参数值 key/value
}
if (query.sourceNumber !== '' && query.sourceNumber !== null && query.sourceNumber !== undefined) {
params.append('sourceNumber', query.sourceNumber) // 你要传给后台的参数值 key/value
}
if (query.number !== '' && query.number !== null && query.number !== undefined) {
params.append('number', query.number) // 你要传给后台的参数值 key/value
}

View file

@ -12,7 +12,7 @@ export function getPrintCount(query) {
return request({
url: '/printNum/getPrintCount',
method: 'post',
params: params
data: params
})
}
@ -31,7 +31,7 @@ export function addPrint(query) {
return request({
url: '/printNum/addPrint',
method: 'post',
params: params
data: params
})
}
@ -53,7 +53,7 @@ export function vehicleInfo(query) {
return request({
url: '/vehicleTrack/vehicleInfo',
method: 'post',
params: params
data: params
})
}
@ -66,7 +66,7 @@ export function getRate(query) {
return request({
url: '/zcc/getRate',
method: 'post',
params: params
data: params
})
}
@ -100,7 +100,7 @@ export function endMonthCount(query) {
return request({
url: '/endmonth/endMonthCount',
method: 'post',
params: params
data: params
})
}
@ -116,7 +116,7 @@ export function countlist3(query1, query2) {
return request({
url: '/allinventory/countlist3',
method: 'post',
params: params
data: params
})
}
@ -135,7 +135,7 @@ export function countlist(query1, query2, query3) {
return request({
url: '/allinventory/countlist',
method: 'post',
params: params
data: params
})
}
// 库存查询
@ -167,7 +167,7 @@ export function getcountrylist(query) {
return request({
url: '/country/getcountrylist',
method: 'post',
params: query
data: query
})
}
@ -176,7 +176,7 @@ export function regionlist(query) {
return request({
url: '/region/detaillist',
method: 'post',
params: query
data: query
})
}
@ -185,7 +185,7 @@ export function regionlist2(query) {
return request({
url: '/region/detaillist',
method: 'post',
params: query
data: query
})
}

View file

@ -145,7 +145,7 @@ export default {
moverepostirylist: '配置调拨仓库',
Storagemovediff: '库存差异报告',
AddStoragemovediff: '新建调拨差异报告',
difflist: '调拨差异报告列表',
difflist: '调拨差异报告',
AddMoveApplication: '新建调拨申请',
MoveApplicationList: '调拨申请列表',
StockAlarm: '库存预警',

View file

@ -20,7 +20,7 @@ import i18n from './lang' // Internationalization
import './icons' // icon
import './errorLog' // error log
import './permission' // permission control
// import './mock' // simulation data
import './mock' // simulation data
import Print from 'vue-print-nb'
import * as filters from './filters' // global filters
import _ from 'lodash'

View file

@ -161,14 +161,18 @@ const user = {
// 登出
LogOut({ commit, state }) {
return new Promise((resolve, reject) => {
logout(state.token).then(() => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
removeToken()
resolve()
}).catch(error => {
reject(error)
})
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
removeToken()
resolve()
// logout(state.token).then(() => {
// commit('SET_TOKEN', '')
// commit('SET_ROLES', [])
// removeToken()
// resolve()
// }).catch(error => {
// reject(error)
// })
})
},

View file

@ -138,7 +138,8 @@ export default {
listLoading: true,
getemplist: {
createPersonId: this.$store.getters.userId,
rolename: null
rolename: null,
isConfirm: 2
},
checkroleId: null
}
@ -244,6 +245,7 @@ export default {
},
restAllForm() {
this.getemplist.rolename = null
this.getemplist.confirmParms = 2
},
//
newRole() {

View file

@ -255,7 +255,7 @@
<el-button v-show="isReview(scope.row)&&(scope.row.receiptStat === 1||scope.row.receiptStat === 2||scope.row.receiptStat === 3)" :title="$t('updates.spi')" type="warning" size="mini" icon="el-icon-view" circle @click="handleReview(scope.row)"/>
<el-button v-permission2="['200-203-2', scope.row.createPersonId]" v-show="scope.row.judgeStat === 0&&(scope.row.receiptStat === 1||scope.row.receiptStat === 2||scope.row.receiptStat === 3)" :key="scope.row.id + Math.random()" :title="$t('updates.sc')" scope-row-create-person-id- size="mini" type="danger" icon="el-icon-delete" circle @click="handleDelete(scope.row)"/>
<el-button v-permission="['200-203-59']" v-show="scope.row.stat !== 2&&scope.row.stat !== 3&&scope.row.stat !== 6" type="primary" @click="handleMyReceipt1(scope.row)"><span>change term</span></el-button>
<el-button v-show="scope.row.stat !== 2&&scope.row.stat !== 6" type="primary" style="width: 84px" @click="handleMyReceipt2(scope.row)"><span style="margin-left: -15px;">{{ $t('newupd.oijn') }}</span></el-button>
<!-- <el-button v-show="scope.row.stat !== 2&&scope.row.stat !== 6" type="primary" style="width: 84px" @click="handleMyReceipt2(scope.row)"><span style="margin-left: -15px;">{{ $t('newupd.oijn') }}</span></el-button> -->
</template>
</el-table-column>
</el-table>

View file

@ -165,7 +165,8 @@ export default {
sourceTypeFilter(status) {
const statusMap = {
1: _that.$t('route.Inventorydamaged'),
2: _that.$t('route.InventoryCount')
2: _that.$t('route.InventoryCount'),
3: _that.$t('route.difflist')
}
return statusMap[status]
},

View file

@ -18,6 +18,7 @@
<el-select v-model="personalForm.sourceType" style="width: 200px" >
<el-option :label="$t('route.Inventorydamaged')" value="1"/>
<el-option :label="$t('route.InventoryCount')" value="2"/>
<el-option :label="$t('route.difflist')" value="3"/>
</el-select>
</el-form-item>
</el-col>
@ -26,7 +27,8 @@
<el-input v-model="personalForm.sourceNumber" style="width: 200px" @focus="chooseSourceType"/>
</el-form-item>
<my-damage :saleoutcontrol.sync ="damageControl" @damageData="damageData"/>
<my-count :countcontrol.sync = "countcontrol" @countData="countData"/>
<my-count :countcontrol.sync ="countcontrol" @countData="countData"/>
<my-diff :diffcontrol.sync="diffcontrol" @diffData="diffData"/>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('recoveryCarDetail.repositoryName')" prop="handleRepositryId" style="margin-left: 18px;width: 100%;margin-bottom: 0">
@ -110,12 +112,13 @@ import MyRepository from '../SaleOrder/components/MyRepository'
import MyEmp from '../SaleOrder/components/MyEmp'
import MyDamage from './components/MyDamage'
import MyCount from './components/MyCount'
import MyDiff from './components/MyDiff'
import { addCustomerProduct } from '@/api/Customer'
export default {
name: 'NewCustomerGroup',
components: { MyCustomer, MyRepository, MyEmp, MyDamage, MyCount },
components: { MyCustomer, MyRepository, MyEmp, MyDamage, MyCount, MyDiff },
data() {
const validatePass = (rule, value, callback) => {
if (this.personalForm.sourceNumber === undefined || this.personalForm.sourceNumber === null || this.personalForm.sourceNumber === '') {
@ -141,6 +144,7 @@ export default {
}
}
return {
diffcontrol: false,
countcontrol: false,
damageControl: false,
repositorycontrol: false,
@ -186,6 +190,15 @@ export default {
}
},
methods: {
diffData(val) {
console.log('val3', val)
this.personalForm.sourceNumber = val.moveNumber
this.handlePersonId = val.createPersonName
this.personalForm.handlePersonId = val.createPersonId
this.handleRepositryId = val.inRepositoryName
this.personalForm.handleRepositryId = val.inRepositoryId
this.getEmpData()
},
countData(val) {
console.log('val2', val)
this.personalForm.sourceNumber = val.countNumber
@ -207,8 +220,10 @@ export default {
chooseSourceType() {
if (this.personalForm.sourceType === '1') {
this.damageControl = true
} else {
} else if (this.personalForm.sourceType === '2') {
this.countcontrol = true
} else if (this.personalForm.sourceType === '3') {
this.diffcontrol = true
}
},
repositoryname(val) {

View file

@ -149,7 +149,8 @@ export default {
sourceTypeFilter(status) {
const statusMap = {
1: _that.$t('route.Inventorydamaged'),
2: _that.$t('route.InventoryCount')
2: _that.$t('route.InventoryCount'),
3: _that.$t('route.difflist')
}
return statusMap[status]
},

View file

@ -16,6 +16,8 @@
<el-select v-model="personalForm.sourceType" style="margin-left: 18px;width: 200px" >
<el-option :label="$t('route.Inventorydamaged')" value="1"/>
<el-option :label="$t('route.InventoryCount')" value="2"/>
<el-option :label="$t('route.difflist')" value="3"/>
</el-select>
</el-form-item>
</el-col>
@ -25,6 +27,8 @@
</el-form-item>
<my-damage :saleoutcontrol.sync ="damageControl" @damageData="damageData"/>
<my-count :countcontrol.sync = "countcontrol" @countData="countData"/>
<my-diff :diffcontrol.sync="diffcontrol" @diffData="diffData"/>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('recoveryCarDetail.repositoryName')" prop="handleRepositryId" style="width: 100%;">
@ -108,10 +112,11 @@ import MyRepository from '../../SaleOrder/components/MyRepository'
import MyEmp from '../../SaleOrder/components/MyEmp'
import MyDamage from './MyDamage'
import MyCount from './MyCount'
import MyDiff from './MyDiff'
var _that
export default {
components: { MyCustomer, MyRepository, MyEmp, MyDamage, MyCount },
components: { MyCustomer, MyRepository, MyEmp, MyDamage, MyCount, MyDiff },
props: {
editcontrol: {
type: Boolean,
@ -147,6 +152,7 @@ export default {
}
}
return {
diffcontrol: false,
//
editVisible: this.editcontrol,
@ -210,6 +216,15 @@ export default {
_that = this
},
methods: {
diffData(val) {
console.log('val3', val)
this.personalForm.sourceNumber = val.moveNumber
this.handlePersonId = val.createPersonName
this.personalForm.handlePersonId = val.createPersonId
this.handleRepositryId = val.inRepositoryName
this.personalForm.handleRepositryId = val.inRepositoryId
this.getEmpData()
},
countData(val) {
console.log('val2', val)
this.personalForm.sourceNumber = val.countNumber
@ -231,8 +246,10 @@ export default {
chooseSourceType() {
if (this.personalForm.sourceType === '1') {
this.damageControl = true
} else {
} else if (this.personalForm.sourceType === '2') {
this.countcontrol = true
} else if (this.personalForm.sourceType === '3') {
this.diffcontrol = true
}
},
repositoryname(val) {

View file

@ -0,0 +1,307 @@
<template>
<el-dialog :visible.sync="employeeVisible" :personaldata="personalForm" :close-on-press-escape="false" top="10px" title="选择差异单" append-to-body width="1100px" @close="$emit('update:countcontrol', false)">
<el-card class="box-card" style="margin-top: 15px;height: 60px;padding-left:0 " shadow="never">
<el-row>
<el-form ref="getemplist" :model="getemplist" style="margin-top: -9px">
<el-input v-model="getemplist.title" :placeholder="$t('InventoryCount.title')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<!-- <el-input v-model="getemplist.sourceNumber" :placeholder="$t('InventoryCount.sourceNumber')" class="filter-item" clearable @keyup.enter.native="handleFilter"/> -->
<el-input v-model="getemplist.reportNumber" placeholder="差异单编号" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<!-- <el-input v-model="handlePersonId" :placeholder="$t('InventoryCount.handlePersonId')" size="small" class="filter-item" clearable @clear="restFilter" @keyup.enter.native="handleFilter" @focus="handlechoose"/>
<my-create :createcontrol.sync="createcontrol" @createname="createname"/> -->
<!--更多搜索条件-->
<el-popover
v-model="visible2"
placement="bottom"
width="500"
trigger="click">
<!-- <el-input v-model="getemplist.productCode" :placeholder="$t('saleBillList.productCode')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter" @focus="handlechoosepro" @clear="restFilter3"/>
<my-detail :control.sync="control" @product="productdetail"/>
<el-input v-model="getemplist.productName" :placeholder="$t('saleBillList.productName')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter" />
<el-select v-model="getemplist.countDeptId" size="small" placeholder="请选择盘点部门" clearable class="filter-item">
<el-option
v-for="(item, index) in depts"
:key="index"
:value="item.id"
:label="item.deptName"/>
</el-select>
<el-input v-model="countRepositoryId" size="small" placeholder="请选择盘点仓库" class="filter-item" clearable @clear="restFilter2" @keyup.enter.native="handleFilter" @focus="handlechooseRep"/>
<my-repository :repositorycontrol.sync="repositorycontrol" @repositoryname="repositoryname"/> -->
<el-date-picker
v-model="date"
type="daterange"
range-separator="-"
unlink-panels
start-placeholder="Start"
end-placeholder="End"
size="small"
value-format="yyyy-MM-dd"
style="margin-left: 10px"/>
<div class="seachbutton" style="width: 100%;float: right;margin-top: 20px">
<el-button v-waves class="filter-item" type="primary" style="float: right" round @click="handleFilter">{{ $t('public.search') }}</el-button>
</div>
<el-button v-waves slot="reference" type="primary" class="filter-item" style="width: 130px" @click="visible2 = !visible2">{{ $t('public.filter') }}<svg-icon icon-class="shaixuan" style="margin-left: 4px"/></el-button>
</el-popover>
<!-- 搜索按钮 -->
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" style="width: 86px" round @click="handleFilter">{{ $t('public.search') }}</el-button>
<!-- <el-button v-waves class="filter-item" icon="el-icon-plus" type="success" style="width: 86px" @click="handleAdd">{{ $t('public.add') }}</el-button> -->
</el-form>
</el-row>
</el-card>
<el-card class="box-card" style="margin-top: 15px" shadow="never">
<!-- 列表开始 -->
<el-table
v-loading="listLoading"
ref="table"
:height="tableHeight"
:key="tableKey"
:data="list"
border
fit
highlight-current-row
style="width: 100%;"
@current-change="handleCurrentChange">
<el-table-column :label="$t('Storagemovediff.id')" :resizable="false" fixed="left" align="center" min-width="150">
<template slot-scope="scope">
<span >{{ scope.row.number }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Storagemovediff.title')" :resizable="false" fixed="left" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.title }}</span>
</template>
</el-table-column>
<!-- <el-table-column :label="$t('StockOut.code')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.outNumber }}</span>
</template>
</el-table-column> -->
<el-table-column :label="$t('Storagemovediff.moveInRepository')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.inRepositoryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Storagemovediff.moveOutRepository')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.outRepositoryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Storagemovediff.requestArrivalDate')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ timestampToTime(scope.row.arrivalDate) }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Storagemovediff.storageMoveDate')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ timestampToTime(scope.row.moveDate) }}</span>
</template>
</el-table-column>
</el-table>
<!-- 列表结束 -->
<pagination v-show="total>0" :total="total" :page.sync="getemplist.pagenum" :limit.sync="getemplist.pagesize" @pagination="getlist" />
<!--修改开始=================================================-->
<el-button v-waves class="filter-item" type="success" style="width: 100px;float: left;margin-bottom: 10px" @click="handleConfirm">{{ $t('Hmodule.sure') }}</el-button>
</el-card>
</el-dialog>
</template>
<script>
import { searchstoragemovediff, deletestoragemovediff, editestoragemovediff2, returnInventory } from '@/api/Storagemovediff'
import waves from '@/directive/waves' // Waves directive
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import permission from '@/directive/permission/index.js' //
import permission2 from '@/directive/permission2/index.js' //
import checkPermission from '@/utils/permission' //
var _that
export default {
directives: { waves },
components: { Pagination },
filters: {
statFilter(status) {
const statusMap = {
1: '启用',
2: '停用'
}
return statusMap[status]
}
},
props: {
diffcontrol: {
type: Boolean,
default: false
}
// personaldata: {
// type: Object,
// default: null
// }
},
data() {
return {
tableHeight: 200,
//
// querydata: this.personaldata,
//
employeeVisible: this.diffcontrol,
returnLoading: false,
//
reviewParms: {
id: '',
judgePersonId: '',
judgeStat: ''
},
//
detailvisible: false,
// ----------------------
//
visible2: false,
//
outPersonId: '',
//
createcontrol: false,
//
date: [],
//
getemplist: {
pageNum: 1,
pageSize: 10,
countryId: this.$store.getters.countryId,
repositoryId: this.$store.getters.repositoryId,
regionIds: this.$store.getters.regionIds
},
// ----------------------
// -------------------------
//
moreaction: '',
//
downloadLoading: false,
//
list: [],
//
total: 0,
//
tableKey: 0,
//
listLoading: true,
//
personalForm: {},
//
editVisible: false
}
},
watch: {
diffcontrol() {
this.employeeVisible = this.diffcontrol
this.getlist()
console.log(this.querydata)
setTimeout(() => {
this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 180
}, 100)
},
personaldata() {
console.log(this.personaldata)
}
},
beforeCreate() {
_that = this
},
methods: {
timestampToTime(timestamp) {
var date = new Date(timestamp)// 10*1000131000
var Y = date.getFullYear() + '-'
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
var D = date.getDate() + ' '
// var h = date.getHours() + ':'
// var m = date.getMinutes() + ':'
// var s = date.getSeconds()
return Y + M + D
},
getlist() {
//
this.listLoading = true
console.log(this.getemplist)
searchstoragemovediff(this.getemplist).then(res => {
if (res.data.ret === 200) {
this.list = res.data.data.content.list
this.total = res.data.data.content.totalCount
this.listLoading = false
}
setTimeout(() => {
this.listLoading = false
}, 0.5 * 100)
})
},
//
restFilter() {
this.outPersonId = ''
this.getemplist.outPersonId = ''
},
//
handleFilter() {
this.getemplist.pageNum = 1
if (this.date === null || this.date === '') {
this.getemplist.beginTime = null
this.getemplist.endTime = null
} else {
this.getemplist.beginTime = this.date[0]
this.getemplist.endTime = this.date[1]
}
searchstoragemovediff(this.getemplist).then(res => {
if (res.data.ret === 200) {
this.list = res.data.data.content.list
this.total = res.data.data.content.totalCount
// this.restFilter()
} else {
this.$notify.error({
title: 'wrong',
message: 'wrong',
offset: 100
})
// this.restFilter()
}
})
},
//
handleAdd() {
this.$router.push('/Storagemovediff/AddStoragemovediff')
},
//
handleCurrentChange(val) {
this.choosedata = val
},
//
handleConfirm() {
this.employeeVisible = false
this.$emit('diffData', this.choosedata)
}
//
}
}
</script>
<style scoped>
.ERP-container {
margin: 50px 30px;
}
.filter-item{
width: 140px;
}
.form-name{
font-size: 18px;
color: #373e4f;
margin-bottom: -20px;
margin-top: 30px;
}
.container{
margin-top: 2%;
border: 1px solid #eceff6;
}
</style>

View file

@ -1076,6 +1076,12 @@ export default {
})
return false
}
for (const i in EnterDetail) {
if (EnterDetail[i].thisMoney === null || EnterDetail[i].thisMoney === undefined) {
EnterDetail[i].thisMoney = 0
}
}
const parms2 = JSON.stringify(EnterDetail)
const Data = this.personalForm
for (const key in Data) {
@ -1126,6 +1132,11 @@ export default {
})
return false
}
for (const i in EnterDetail) {
if (EnterDetail[i].thisMoney === null || EnterDetail[i].thisMoney === undefined) {
EnterDetail[i].thisMoney = 0
}
}
console.log('EnterDetail', EnterDetail)
const parms2 = JSON.stringify(EnterDetail)
console.log('this.personalForm.couponSupports', this.personalForm.couponSupports)

View file

@ -447,13 +447,13 @@
<el-button :loading="saveloding" type="primary" style="background:#3696fd;border-color:#3696fd;width: 98px" @click="handlesave()">{{ $t('Hmodule.baoc') }}</el-button>
<el-button type="danger" @click="handlecancel()">{{ $t('Hmodule.cancel') }}</el-button>
</div>
<el-dialog :visible.sync="receiptVisible2" title="库存快照" class="normal" width="600px" center>
<el-dialog :visible.sync="receiptVisible2" :title="$t('updates.kckz')" class="normal" width="600px" center>
<el-form class="demo-ruleForm" style="margin: 0px 6%; width: 400px">
<el-form-item label-width="100px;" style=" width: 500px;">
<div style="width: 100%; height: 220px;overflow: hidden;background: white;" >
<div style="width: 100%; height: 50vh;overflow: hidden;background: white;" >
<el-table
:data="list111"
height="220"
height="500"
style="margin-left: 18px;width: 100%;margin-bottom: 0"
>
<el-table-column :resizable="false" :label="$t('updates.cangk')" align="center" min-width="150">
@ -466,7 +466,7 @@
<span >{{ scope.row.productName }}</span>
</template>
</el-table-column>
<el-table-column :resizable="false" label="ableStock" align="center" min-width="150">
<el-table-column :resizable="false" :label="$t('countlist.ableStock')" align="center" min-width="150">
<template slot-scope="scope">
<span >{{ scope.row.ableStock }}</span>
</template>
@ -483,7 +483,7 @@
<script>
import '@/directive/noMoreClick/index.js'
import { searchRoleDiscount } from '@/api/BasicSettings'
import { countlist, getRate } from '@/api/public'
import { countlist, getRate, countlist3 } from '@/api/public'
import { createsaleContract } from '@/api/SaleContract'
import { getdeptlist } from '@/api/BasicSettings'
import { searchStockCategory } from '@/api/StockCategory'
@ -1104,11 +1104,11 @@ export default {
if (this.moreaction.length > 1 || this.moreaction.length === 0) {
this.$message.error('please single product ')
} else {
countlist(this.$store.getters.repositoryId, this.$store.getters.regionId, this.moreaction[0].productCode).then(res => {
countlist3(this.personalForm.saleRepositoryId, this.moreaction[0].productCode).then(res => {
console.log(res)
if (res.data.ret === 200) {
console.log('res.data.data.content', res.data.data.content.list)
this.list111 = res.data.data.content.list
console.log('res.data.data.content', res.data.data.content)
this.list111 = res.data.data.content
this.receiptVisible2 = true
} else {
this.$notify.error({

View file

@ -51,6 +51,7 @@
:key="tableKey"
:data="list"
:height="tableHeight"
:row-key="getRowKeys"
size="small"
border
fit
@ -58,6 +59,7 @@
style="width: 100%;"
@selection-change="handleSelectionChange">
<el-table-column
:reserve-selection="true"
type="selection"
width="55"
align="center"/>
@ -165,6 +167,11 @@ export default {
return {
tiaoshu: 0,
getRowKeys(row) {
return row.code
},
select_orderId: [],
select_order_number: [],
tableHeight: 200,
query: this.personalform,
//
@ -275,9 +282,18 @@ export default {
})
},
//
handleSelectionChange(val) {
this.moreaction = val
handleSelectionChange(rows) {
this.moreaction = rows
this.tiaoshu = this.moreaction.length
this.select_order_number = this.moreaction.length
this.select_orderId = []
if (rows) {
rows.forEach(row => {
if (row) {
this.select_orderId.push(row.code)
}
})
}
},
// focus
handlechoose() {

View file

@ -652,7 +652,9 @@ export default {
handler(oldval, newval) {
let num = 0
for (const i in this.list2) {
num += Number(this.list2[i].includeTaxMoney)
if (this.list2[i].productCode.slice(0, 2) === '01') {
num += Number(this.list2[i].includeTaxMoney)
}
}
if (this.personalForm.isSecondApply === 1 || this.personalForm.sourceType === '2') {
this.price = num

View file

@ -483,13 +483,13 @@
<el-button :loading="saveloding" type="primary" style="background:#3696fd;border-color:#3696fd;width: 98px" @click="handlesave()">{{ $t('Hmodule.baoc') }}</el-button>
<el-button type="danger" @click="handlecancel()">{{ $t('Hmodule.cancel') }}</el-button>
</div>
<el-dialog :visible.sync="receiptVisible2" title="库存快照" class="normal" width="600px" center>
<el-dialog :visible.sync="receiptVisible2" :title="$t('updates.kckz')" class="normal" width="600px" center>
<el-form class="demo-ruleForm" style="margin: 0px 6%; width: 400px">
<el-form-item label-width="100px;" style=" width: 500px;">
<div style="width: 100%; height: 220px;overflow: hidden;background: white;" >
<div style="width: 100%; height: 50vh;overflow: hidden;background: white;" >
<el-table
:data="list111"
height="220"
height="500"
style="margin-left: 18px;width: 100%;margin-bottom: 0"
>
<el-table-column :resizable="false" :label="$t('updates.cangk')" align="center" min-width="150">
@ -502,7 +502,7 @@
<span >{{ scope.row.productName }}</span>
</template>
</el-table-column>
<el-table-column :resizable="false" label="可用库存量" align="center" min-width="150">
<el-table-column :resizable="false" :label="$t('countlist.ableStock')" align="center" min-width="150">
<template slot-scope="scope">
<span >{{ scope.row.ableStock }}</span>
</template>
@ -518,7 +518,7 @@
<script>
import '@/directive/noMoreClick/index.js'
import { countlist, getRate } from '@/api/public'
import { countlist, getRate, countlist3 } from '@/api/public'
import { createsaleOrder } from '@/api/SaleOrder'
import { searchSaleCategory } from '@/api/SaleCategory'
import { searchCategory } from '@/api/Supplier'
@ -878,11 +878,11 @@ export default {
if (this.moreaction.length > 1 || this.moreaction.length === 0) {
this.$message.error('please select single product')
} else {
countlist(this.$store.getters.repositoryId, this.$store.getters.regionId, this.moreaction[0].productCode).then(res => {
countlist3(this.personalForm.saleRepositoryId, this.moreaction[0].productCode).then(res => {
console.log(res)
if (res.data.ret === 200) {
console.log('res.data.data.content', res.data.data.content.list)
this.list111 = res.data.data.content.list
console.log('res.data.data.content', res.data.data.content)
this.list111 = res.data.data.content
this.receiptVisible2 = true
} else {
this.$notify.error({

View file

@ -616,13 +616,13 @@
<el-button v-no-more-click type="primary" style="background:#3696fd;border-color:#3696fd;width: 98px" @click="handlesave2()">{{ $t('collectAndPay.lsbc') }}</el-button>
<el-button type="danger" @click="handlecancel()">{{ $t('Hmodule.cancel') }}</el-button>
</div>
<el-dialog :visible.sync="receiptVisible2" title="库存快照" class="normal" width="600px" center>
<el-dialog :visible.sync="receiptVisible2" :title="$t('updates.kckz')" class="normal" width="600px" center>
<el-form class="demo-ruleForm" style="margin: 0px 6%; width: 400px">
<el-form-item label-width="100px;" style=" width: 500px;">
<div style="width: 100%; height: 220px;overflow: hidden;background: white;" >
<div style="width: 100%; height: 50vh;overflow: hidden;background: white;" >
<el-table
:data="list111"
height="220"
height="500"
style="margin-left: 18px;width: 100%;margin-bottom: 0"
>
<el-table-column :resizable="false" :label="$t('updates.cangk')" align="center" min-width="150">
@ -635,7 +635,7 @@
<span >{{ scope.row.productName }}</span>
</template>
</el-table-column>
<el-table-column :resizable="false" label="可用库存量" align="center" min-width="150">
<el-table-column :resizable="false" :label="$t('countlist.ableStock')" align="center" min-width="150">
<template slot-scope="scope">
<span >{{ scope.row.ableStock }}</span>
</template>
@ -659,7 +659,7 @@ import { getPackage } from '@/api/Package'
import { getAllBatch, vehicleInfo, getQuantity2 } from '@/api/public'
import { createsaleOut, getCustomerOutCount, checkInvoiceExist } from '@/api/SaleOut'
import { searchSaleCategory } from '@/api/SaleCategory'
import { getlocation, locationlist, countlist, batchlist, productlist } from '@/api/public'
import { getlocation, locationlist, countlist, batchlist, productlist, countlist3 } from '@/api/public'
import MyEmp from './components/MyEmp2'
import MyDelivery from './components/MyDelivery2'
import MyDetail from './components/MyDetail'
@ -1650,9 +1650,9 @@ export default {
if (this.moreaction.length > 1 || this.moreaction.length === 0) {
this.$message.error('please select single product')
} else {
countlist(this.personalForm.saleRepositoryId, 0, this.moreaction[0].productCode).then(res => {
countlist3(this.personalForm.saleRepositoryId, this.moreaction[0].productCode).then(res => {
if (res.data.ret === 200) {
this.list111 = res.data.data.content.list
this.list111 = res.data.data.content
this.receiptVisible2 = true
} else {
this.$notify.error({

View file

@ -267,6 +267,7 @@ export default {
console.log('this.query', this.query)
this.getemplist.searchRepositoryId = this.query.saleRepositoryId
this.getemplist.customerId = this.query.customerId
console.log('this.$store.getters.countryId', this.$store.getters.countryId)
if (this.$store.getters.countryId === 1) {
const that = this
chooseCustomerProduct(this.getemplist).then(res => {

View file

@ -9,7 +9,13 @@
<el-option :label="$t('updates.yes')" value="2"/>
</el-select>
<el-input v-model="getemplist.invoiceNumber" :placeholder="$t('updates.djbh')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<el-input v-model="getemplist.sourceNumber" :placeholder="$t('LogisticsCar.sourcenumber')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<el-input v-model="getemplist.invoiceNumber" :placeholder="$t('update4.invoiceNumber')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<el-input v-model="supplierId" :placeholder="$t('SupplierAdjust.supplierId')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter" @focus="handlechoose" @clear="clearSupplier"/>
<my-supplier :control.sync="empcontrol" @supplierName="supplierName"/>
<el-button v-waves class="filter-item" size="small" type="primary" icon="el-icon-search" style="width: 86px;margin-top: 10px" round @click="handleFilter">{{ $t('public.search') }}</el-button>
@ -447,6 +453,10 @@ export default {
this.stockPersonId = val.personName
this.getemplist.stockPersonId = val.id
},
clearSupplier() {
this.supplierId = ''
this.getemplist.supplierId = ''
},
// focus
handlechoose() {
this.empcontrol = true

View file

@ -100,6 +100,7 @@
ref="editable"
:data.sync="list2"
:edit-config="{ showIcon: true, showStatus: true}"
height="500"
class="click-table1"
border
size="small"

View file

@ -143,7 +143,7 @@
<el-button v-permission="['131-141-360-17']" v-show="isReview3(scope.row)&&(scope.row.receiptStat === 1||scope.row.receiptStat === 2||scope.row.receiptStat === 3)" :title="$t('updates.fjd')" type="success" size="mini" icon="el-icon-back" circle @click="handleReview3(scope.row)"/>
<el-button v-permission="['131-141-360-2']" v-if="scope.row.judgeStat === 0" size="mini" type="danger" @click="handleDelete(scope.row)">{{ $t('public.delete') }}</el-button>
<el-button v-permission="['131-141-360-84']" v-show="scope.row.judgeStat === 2&& scope.row.receiptStat === 2" :loading="returnLoading" type="success" size="mini" @click="handReturnInventory(scope.row)">{{ $t('update4.querenfanhuan') }}</el-button>
<el-button v-permission="['131-141-360-85']" v-show="scope.row.judgeStat === 2&& scope.row.receiptStat === 2" type="success" size="mini" @click="handleReview3(scope.row)">{{ $t('update4.shengchengpeichangdan') }}</el-button>
<!-- <el-button v-permission="['131-141-360-85']" v-show="scope.row.judgeStat === 2&& scope.row.receiptStat === 2" type="success" size="mini" @click="handleReview3(scope.row)">{{ $t('update4.shengchengpeichangdan') }}</el-button> -->
</template>
</el-table-column>

View file

@ -55,11 +55,15 @@
<div class="buttons" style="margin-top: 58px">
<el-button type="success" style="background:#3696fd;border-color:#3696fd " @click="handleAddproduct">{{ $t('Hmodule.tjsp') }}</el-button>
<el-button type="danger" @click="$refs.editable.removeSelecteds()">{{ $t('Hmodule.delete') }}</el-button>
<el-button type="warning" @click="exportExcel">{{ $t('updates.drsj') }}</el-button>
<input v-show="false" ref="excel-upload-input" class="excel-upload-input" type="file" accept=".xlsx, .xls" @change="handleClick">
</div>
<my-detail :control.sync="control" :checklist.sync="checklist" @product="productdetail"/>
<div class="container">
<el-editable
ref="editable"
:key="tableKey"
:data.sync="list2"
:edit-config="{ showIcon: true, showStatus: true}"
:edit-rules="validRules"
@ -97,11 +101,21 @@
</template>
</el-editable-column>
<el-editable-column :edit-render="{name: 'ElInputNumber', type: 'visible'}" :label="$t('Hmodule.dj')" prop="price" align="center" width="150px"/>
<el-editable-column :label="$t('updates.rkje')" prop="totalMoney" align="center" width="150px">
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.rkje')" prop="totalMoney" align="center" min-width="170">
<template slot="edit" slot-scope="scope">
<el-input-number
:precision="2"
:controls="false"
:min="0"
v-model="scope.row.totalMoney"/>
</template>
</el-editable-column>
<!-- <el-editable-column :label="$t('updates.rkje')" prop="totalMoney" align="center" width="150px">
<template slot-scope="scope">
<p>{{ getSize(scope.row.enterQuantity, scope.row.price) }}</p>
</template>
</el-editable-column>
</el-editable-column> -->
<el-editable-column :edit-render="{name: 'ElInput', type: 'visible'}" :label="$t('updates.bz')" prop="remarks" align="center" width="150px"/>
</el-editable>
</div>
@ -125,6 +139,8 @@ import { getdeptlist } from '@/api/BasicSettings'
import MyCreate from './components/MyCreate'
import MyRepository from './components/MyRepository'
import MyDetail from './components/MyDetail'
import XLSX from 'xlsx'
var _that
export default {
name: 'AddInitialenter',
@ -139,6 +155,12 @@ export default {
}
}
return {
tableKey: 0,
loading: false,
excelData: {
header: null,
results: null
},
saveloding: false,
checklist: [],
locationlistparms: {
@ -206,6 +228,128 @@ export default {
_that = this
},
methods: {
upload(rawFile) {
this.$refs['excel-upload-input'].value = null // fix can't select the same excel
if (!this.beforeUpload) {
this.readerData(rawFile)
return
}
const before = this.beforeUpload(rawFile)
if (before) {
this.readerData(rawFile)
}
},
readerData(rawFile) {
this.loading = true
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onload = e => {
const data = e.target.result
const fixedData = this.fixData(data)
const workbook = XLSX.read(btoa(fixedData), { type: 'base64' })
const firstSheetName = workbook.SheetNames[0]
const worksheet = workbook.Sheets[firstSheetName]
const header = this.getHeaderRow(worksheet)
const results = XLSX.utils.sheet_to_json(worksheet)
this.generateData({ header, results })
this.loading = false
resolve()
}
reader.readAsArrayBuffer(rawFile)
})
},
fixData(data) {
let o = ''
let l = 0
const w = 10240
for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))
o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))
return o
},
getHeaderRow(sheet) {
const headers = []
const range = XLSX.utils.decode_range(sheet['!ref'])
let C
const R = range.s.r
/* start in the first row */
for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]
/* find the cell in the first row */
let hdr = 'UNKNOWN ' + C // <-- replace with your desired default
if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
headers.push(hdr)
}
return headers
},
isExcel(file) {
return /\.(xlsx|xls|csv)$/.test(file.name)
},
handleClick(e) {
const files = e.target.files
const rawFile = files[0] // only use files[0]
if (!rawFile) return
this.upload(rawFile)
},
clearuplod() {
this.exportparms = {
typeid: '',
categoryid: ''
}
},
beforeUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 1
if (isLt1M) {
return true
}
this.$message({
message: 'Please do not upload files larger than 1m in size.',
type: 'warning'
})
return false
},
onSuccess({ results, header }) {
// const loading = this.$loading({
// lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
// })
console.log('results', results)
const uploaddata = results.map(item => {
return {
productCode: item.物品编号,
productName: item.物品名称,
color: item.颜色,
productType: item.规格型号,
unit: item.单位,
enterQuantity: item.入库数量,
price: item.单价,
totalMoney: item.入库金额,
remarks: item.备注,
typeId: item.规格id,
basicQuantity: item.基本数量
}
})
console.log('uploaddata', uploaddata)
this.list2 = uploaddata
this.tableKey = Math.random()
// const jsonupload = JSON.stringify(uploaddata)
// setTimeout(() => {
// loading.close()
// }, 180000)
},
generateData({ header, results }) {
this.excelData.header = header
this.excelData.results = results
this.onSuccess && this.onSuccess(this.excelData)
},
exportExcel() {
this.$refs['excel-upload-input'].click()
},
mykeyevent(row, index, e) {
const keyCode = e.keyCode || e.which || e.charCode
const oldvalue = row.enterQuantity

View file

@ -5,6 +5,7 @@
<el-card class="box-card">
<h2 ref="geren" class="form-name">{{ $t('Hmodule.basicinfo') }}</h2>
<button v-if="personalForm.judgeStat !== 0 || personalForm.judgeStat !== 3" class="print" style="font-size: 13px;background: white;" @click="printdata">{{ $t('updates.print') }}</button>
<el-button :loading="downloadLoading" class="print" style="font-size: 13px;background: white;" @click="exportData">{{ $t('public.export') }}</el-button>
<div class="container">
<el-form ref="personalForm" :model="personalForm" :rules="personalrules" :inline="true" status-icon class="demo-ruleForm" label-width="100px" style="margin-left: 30px;">
<el-row>
@ -88,11 +89,7 @@
<!-- <el-editable-column prop="basicQuantity" align="center" :label="$t('updates.jbel')" /> -->
<el-editable-column :label="$t('updates.rksl')" prop="enterQuantity" align="center" />
<el-editable-column :label="$t('Hmodule.dj')" prop="price" align="center" />
<el-editable-column :label="$t('updates.rkje')" prop="totalMoney" align="center" >
<template slot-scope="scope">
<p>{{ getSize(scope.row.enterQuantity, scope.row.price) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.rkje')" prop="totalMoney" align="center" />
<el-editable-column :label="$t('updates.bz')" prop="remarks" align="center" />
</el-editable>
</div>
@ -173,6 +170,7 @@ export default {
},
data() {
return {
downloadLoading: false,
//
reviewList: [],
//
@ -249,6 +247,26 @@ export default {
_that = this
},
methods: {
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => {
return v[j]
}))
},
exportData() {
console.log('this.list2', this.list2)
this.downloadLoading = true
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['物品编号', '物品名称', '颜色', '规格型号', '单位', '入库数量', '单价', '入库金额', '备注', '规格id', '基本数量']
const filterVal = ['productCode', 'productName', 'color', 'productType', 'unit', 'enterQuantity', 'price', 'totalMoney', 'remarks', 'typeId', 'basicQuantity']
const data = this.formatJson(filterVal, this.list2)
excel.export_json_to_excel({
header: tHeader,
data,
filename: '导出'
})
this.downloadLoading = false
})
},
getlist() {
//
getdeptlist().then(res => {

View file

@ -83,11 +83,20 @@
<!-- <el-editable-column prop="basicQuantity" align="center" :label="$t('updates.jbel')" width="150px"/> -->
<el-editable-column :edit-render="{name: 'ElInputNumber', type: 'visible'}" :label="$t('updates.rksl')" prop="enterQuantity" align="center" width="150px"/>
<el-editable-column :edit-render="{name: 'ElInputNumber', type: 'visible'}" :label="$t('Hmodule.dj')" prop="price" align="center" width="150px"/>
<el-editable-column :label="$t('updates.rkje')" prop="totalMoney" align="center" width="150px">
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.rkje')" prop="totalMoney" align="center" min-width="170">
<template slot="edit" slot-scope="scope">
<el-input-number
:precision="2"
:controls="false"
:min="0"
v-model="scope.row.totalMoney"/>
</template>
</el-editable-column>
<!-- <el-editable-column :label="$t('updates.rkje')" prop="totalMoney" align="center" width="150px">
<template slot-scope="scope">
<p>{{ getSize(scope.row.enterQuantity, scope.row.price) }}</p>
</template>
</el-editable-column>
</el-editable-column> -->
<el-editable-column :edit-render="{name: 'ElInput', type: 'visible'}" :label="$t('updates.bz')" prop="remarks" align="center" width="150px"/>
</el-editable>
</div>