Compare commits
13 Commits
4c2a7521a7
...
zyj
| Author | SHA1 | Date | |
|---|---|---|---|
| 96ddc036b4 | |||
| 6d35811470 | |||
| 49b6ed8a06 | |||
| badf6bf752 | |||
| ec225b7a02 | |||
| d1a7142f19 | |||
| c8ab3b999b | |||
| 75b5e3f91b | |||
| 24b6b3d84d | |||
| 0a428101f7 | |||
|
|
27a14874a4 | ||
|
|
b46c851e5c | ||
|
|
29b5fdc39b |
@@ -11,15 +11,6 @@
|
||||
@clear="list = []"
|
||||
@change="change"
|
||||
>
|
||||
<!-- <template v-if="labelIsMore">
|
||||
<el-option
|
||||
v-for="(item, index) in list"
|
||||
:key="item.id + index"
|
||||
:label="item[config.labelKey[0]] + '(' + item[config.labelKey[1]] + '-' + item[config.labelKey[2]] + ')'"
|
||||
:value="item[config.valueKey]"
|
||||
>
|
||||
</el-option>
|
||||
</template> -->
|
||||
<template>
|
||||
<el-option v-for="(item, index) in list" :key="index" :label="labelHandler(item)" :value="item[config.valueKey]"> </el-option>
|
||||
</template>
|
||||
@@ -33,17 +24,17 @@ export default {
|
||||
config: Object
|
||||
// config: {
|
||||
// serveTarget: {}, // 远程搜索接口
|
||||
// autocompleteKey: "", //远程搜索接口参数名
|
||||
// labelKey: [] || '', //接口返回数据label
|
||||
// valueKey: "", //接口返回数据id
|
||||
// querykey: "", //查询接口参数名
|
||||
// echoId:'', //
|
||||
// autocompleteKey: "" || {}, // 远程搜索接口参数名
|
||||
// labelKey: "" || [], // 接口返回数据label
|
||||
// valueKey: "", // 接口返回数据id
|
||||
// querykey: "", // 查询接口参数名
|
||||
// echoId: "", // 用于回显的id
|
||||
// echoName: "", // 用于回显的name
|
||||
// },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
text: '',
|
||||
// labelIsMore: false,
|
||||
list: [],
|
||||
isDisabled: false
|
||||
}
|
||||
@@ -51,7 +42,6 @@ export default {
|
||||
watch: {
|
||||
'config.echoId': {
|
||||
handler(nval, oval) {
|
||||
console.log('nvalnvalnvalnvalnval', nval)
|
||||
this.list = []
|
||||
let type = this.$utils.typeJudgment(this.config.echoName)
|
||||
if (nval && ['String'].includes(type)) {
|
||||
@@ -77,18 +67,22 @@ export default {
|
||||
created() {
|
||||
let { labelKey } = this.config
|
||||
let type = this.$utils.typeJudgment(labelKey)
|
||||
// if (type === 'Array') {
|
||||
// this.labelIsMore = true
|
||||
// }
|
||||
// 重构labelHandler
|
||||
this.labelHandler = this.labelHandler(type)
|
||||
// console.log(this.labelHandler())
|
||||
},
|
||||
methods: {
|
||||
labelHandler(type) {
|
||||
if (type === 'Array') {
|
||||
return item => {
|
||||
return this.config.labelKey.reduce((prev, cur) => {
|
||||
prev += /^[^0-9a-zA-Z]/.test(cur) ? cur : item[cur]
|
||||
let type = this.$utils.typeJudgment(cur)
|
||||
let _function =
|
||||
type != 'Function'
|
||||
? item => {
|
||||
return /^[^0-9a-zA-Z]/.test(cur) ? cur : item[cur]
|
||||
}
|
||||
: cur
|
||||
prev += _function(item)
|
||||
return prev
|
||||
}, '')
|
||||
}
|
||||
@@ -99,7 +93,6 @@ export default {
|
||||
},
|
||||
// 远程搜索
|
||||
remoteMethod(query) {
|
||||
console.log('query', query)
|
||||
if (query !== '') {
|
||||
this.loading = true
|
||||
let type = this.$utils.typeJudgment(this.config.autocompleteKey)
|
||||
|
||||
@@ -17,32 +17,35 @@ export function parseTime(time) {
|
||||
}
|
||||
const formatRes = {
|
||||
y: date.getFullYear(),
|
||||
M: date.getMonth() + 1,
|
||||
d: date.getDate(),
|
||||
h: date.getHours(),
|
||||
m: date.getMinutes(),
|
||||
s: date.getSeconds(),
|
||||
M: (date.getMonth() + 1 + '').padStart(2, 0),
|
||||
d: (date.getDate() + '').padStart(2, 0),
|
||||
h: (date.getHours() + '').padStart(2, 0),
|
||||
m: (date.getMinutes() + '').padStart(2, 0),
|
||||
s: (date.getSeconds() + '').padStart(2, 0),
|
||||
week: ['日', '一', '二', '三', '四', '五', '六'][date.getDay()]
|
||||
}
|
||||
formatRes.M < 10 && (formatRes.M = '0' + formatRes.M)
|
||||
formatRes.d < 10 && (formatRes.d = '0' + formatRes.d)
|
||||
formatRes.h < 10 && (formatRes.h = '0' + formatRes.h)
|
||||
formatRes.m < 10 && (formatRes.m = '0' + formatRes.m)
|
||||
formatRes.s < 10 && (formatRes.s = '0' + formatRes.s)
|
||||
// formatRes.M < 10 && (formatRes.M = '0' + formatRes.M)
|
||||
// formatRes.d < 10 && (formatRes.d = '0' + formatRes.d)
|
||||
// formatRes.h < 10 && (formatRes.h = '0' + formatRes.h)
|
||||
// formatRes.m < 10 && (formatRes.m = '0' + formatRes.m)
|
||||
// formatRes.s < 10 && (formatRes.s = '0' + formatRes.s)
|
||||
return formatRes
|
||||
}
|
||||
|
||||
// 防抖
|
||||
export function debounce(fn, delay) {
|
||||
let timer = null
|
||||
return function () {
|
||||
function _implementer(...args) {
|
||||
if (timer) clearTimeout(timer)
|
||||
let _this = this
|
||||
let _arguments = arguments
|
||||
timer = setTimeout(function () {
|
||||
fn.apply(_this, _arguments)
|
||||
fn.call(_this, ...args)
|
||||
}, delay)
|
||||
}
|
||||
_implementer.cancel = () => {
|
||||
clearTimeout(timer)
|
||||
}
|
||||
return _implementer
|
||||
}
|
||||
// 车牌校验
|
||||
export function isLicensePlate(number) {
|
||||
|
||||
@@ -28,19 +28,9 @@
|
||||
<el-form label-width="90px" :inline="true" :model="page" :size="$store.getters.size">
|
||||
<el-col :span="18">
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="page.params.customerId"
|
||||
remote
|
||||
filterable
|
||||
:remote-method="companyOrginQuery"
|
||||
clearable
|
||||
placeholder="请输入企业名称"
|
||||
@keyup.enter.native="getByPage"
|
||||
ref="changeName"
|
||||
>
|
||||
<el-option v-for="item in queryCompanyList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
<autocomplete class="mr20" :params="page.params" :config="configAutocomplete" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="createTimeRange">
|
||||
<el-date-picker
|
||||
v-model="page.params.createTimeRange"
|
||||
@@ -56,8 +46,8 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item prop="paramsid">
|
||||
<el-select v-model="page.params.oilProductType" style="width: 100%" clearable placeholder="请选择油品类型">
|
||||
<el-option v-for="item in oliList" :key="item.label" :label="item.label" :value="item.value"> </el-option>
|
||||
<el-select v-model="page.params.productType" style="width: 100%" clearable placeholder="请选择油品类型">
|
||||
<el-option v-for="(item, index) in oliList" :key="index" :label="item" :value="item"> </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -207,7 +197,7 @@
|
||||
</el-row>
|
||||
<div :span="24" style="margin-top: 50px; text-align: center; width: 100%">
|
||||
<el-divider style="width: 100%"></el-divider>
|
||||
<div style="display: flex; justify-content: end; width: 90%; margin: 0 auto">
|
||||
<div style="display: flex; justify-content: flex-end; width: 90%; margin: 0 auto">
|
||||
<el-button @click="close" size="mini">取消</el-button>
|
||||
<el-button size="mini" type="primary" :disabled="!setWait" @click="addList">确认提交</el-button>
|
||||
</div>
|
||||
@@ -219,30 +209,23 @@
|
||||
|
||||
<script>
|
||||
import internalCompanyApi from '@/api/user/internalCompany'
|
||||
import autocomplete from 'components/autocomplete/index.vue'
|
||||
export default {
|
||||
components: {
|
||||
autocomplete
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
configAutocomplete: {
|
||||
serveTarget: internalCompanyApi.getLikeByCompanyType,
|
||||
autocompleteKey: 'name',
|
||||
labelKey: 'name',
|
||||
valueKey: 'id',
|
||||
placeholder: '企业名称',
|
||||
querykey: 'customerId'
|
||||
},
|
||||
changeCompanyId: '',
|
||||
|
||||
oliList: [
|
||||
{
|
||||
value: 'DIESEL',
|
||||
label: '柴油'
|
||||
},
|
||||
{
|
||||
value: 'PETROL',
|
||||
label: '汽油'
|
||||
},
|
||||
{
|
||||
value: 'GAS',
|
||||
label: '天然气'
|
||||
},
|
||||
{
|
||||
value: 'OTHER',
|
||||
label: '其他'
|
||||
}
|
||||
],
|
||||
|
||||
oliList: ['0#柴', '-10#柴', '92#汽', '95#汽'],
|
||||
baocunList: [],
|
||||
daixuanList: [],
|
||||
baocunDaixuanList: [],
|
||||
@@ -250,7 +233,7 @@ export default {
|
||||
goIn: 0,
|
||||
importData: {},
|
||||
page: {
|
||||
pageSize: 10, // 每页显示条数
|
||||
pageSize: 10000, // 每页显示条数
|
||||
currentPage: 1, // 默认页
|
||||
totalCount: 0,
|
||||
params: {},
|
||||
@@ -261,7 +244,6 @@ export default {
|
||||
tableHeight: document.documentElement.clientHeight - 495,
|
||||
selectedStaffList: [],
|
||||
setWait: true,
|
||||
queryCompanyList: [], // 企业列表
|
||||
staffData: [],
|
||||
selectedStaffData: [],
|
||||
submitDialog: false,
|
||||
@@ -430,12 +412,14 @@ export default {
|
||||
return
|
||||
}
|
||||
this.importData.settlementType = 1
|
||||
this.importData.oilProductType = this.page.params.oilProductType
|
||||
this.importData.productType = this.page.params.productType
|
||||
|
||||
let payRealAmountEnd = []
|
||||
let customerSettleAmountList = []
|
||||
let endTime = ''
|
||||
this.selectedStaffList.forEach(item => {
|
||||
this.endT = item.createTime
|
||||
endTime = item.createTime
|
||||
payRealAmountEnd.push(item.actAmount ? item.actAmount : '0')
|
||||
|
||||
customerSettleAmountList.push(item.customerSettleAmount ? item.customerSettleAmount : '0')
|
||||
@@ -458,24 +442,13 @@ export default {
|
||||
this.importData.confirmState = 0
|
||||
this.importData.settlementState = 0
|
||||
this.importData.createSource = 'XOIL_OMS_WEB'
|
||||
this.importData.orderStartDate = this.createT
|
||||
this.importData.orderEndDate = this.endT
|
||||
this.importData.settlementObjectName = this.$refs.changeName.selectedLabel
|
||||
this.importData.orderStartTime = this.selectedStaffList[0].createTime
|
||||
this.importData.orderEndTime = endTime
|
||||
this.importData.settlementObjectName = this.selectedStaffList[0].customerName
|
||||
this.importData.settlementId = this.selectedStaffList[0].customerId
|
||||
if (!this.importData.settlementObjectName) {
|
||||
this.$message.error('企业名称为空,无法提交')
|
||||
return
|
||||
}
|
||||
|
||||
this.submitDialog = true
|
||||
},
|
||||
companyOrginQuery(value) {
|
||||
// 远程搜索
|
||||
if (value) {
|
||||
internalCompanyApi.getLikeByCompanyType({ name: value }).then(res => {
|
||||
this.queryCompanyList = res.data
|
||||
})
|
||||
}
|
||||
},
|
||||
search() {
|
||||
// 搜索
|
||||
if (!this.page.params.customerId) {
|
||||
@@ -486,10 +459,10 @@ export default {
|
||||
this.$message.warning('请输入时间')
|
||||
return
|
||||
}
|
||||
if (!this.page.params.oilProductType) {
|
||||
this.$message.warning('请选择油品类型')
|
||||
return
|
||||
}
|
||||
// if (!this.page.params.productType) {
|
||||
// this.$message.warning('请选择油品类型')
|
||||
// return
|
||||
// }
|
||||
this.loading = true
|
||||
this.page.currentPage = 1
|
||||
this.getByPage()
|
||||
@@ -587,7 +560,7 @@ export default {
|
||||
},
|
||||
async getByPage(e) {
|
||||
this.page.params.type = 1
|
||||
|
||||
this.page.params.orderType = 4
|
||||
if (this.page.params.createTimeRange && this.page.params.createTimeRange.length > 1) {
|
||||
this.page.params.dateStartTime = this.page.params.createTimeRange[0] + ' 00:00:00'
|
||||
this.page.params.dateEndTime = this.page.params.createTimeRange[1] + ' 23:59:59'
|
||||
@@ -654,7 +627,7 @@ export default {
|
||||
/* flex: 1; */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: end;
|
||||
justify-content: flex-end;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,19 +14,8 @@
|
||||
<el-option label="炼厂" value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="page.params.settlementId"
|
||||
remote
|
||||
filterable
|
||||
:remote-method="companyOrginQuery"
|
||||
clearable
|
||||
placeholder="客户名称"
|
||||
@keyup.enter.native="getByPage"
|
||||
>
|
||||
<el-option v-for="item in queryCompanyList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<autocomplete class="mr20" :params="page.params" :config="configAutocomplete" />
|
||||
|
||||
<el-form-item>
|
||||
<el-select v-model="page.params.auditState" clearable placeholder="审核状态">
|
||||
@@ -133,14 +122,24 @@
|
||||
import oilFinalStatementListInfo from './oilFinalStatementListInfo'
|
||||
import internalCompanyApi from '@/api/user/internalCompany'
|
||||
import sysCustomerInfoApi from '@/api/user/sysCustomerInfo'
|
||||
import autocomplete from 'components/autocomplete/index.vue'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
oilFinalStatementListInfo
|
||||
oilFinalStatementListInfo,
|
||||
autocomplete
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
configAutocomplete: {
|
||||
serveTarget: internalCompanyApi.getLikeByCompanyType,
|
||||
autocompleteKey: 'name',
|
||||
labelKey: 'name',
|
||||
valueKey: 'id',
|
||||
placeholder: '客户名称',
|
||||
querykey: 'settlementId'
|
||||
},
|
||||
detailDrawer: false,
|
||||
thisloding: true,
|
||||
page: {
|
||||
@@ -151,7 +150,6 @@ export default {
|
||||
columns: []
|
||||
},
|
||||
userList: '',
|
||||
queryCompanyList: [],
|
||||
tableHeight: document.documentElement.clientHeight - 300 - 50,
|
||||
filters: this.$options.filters,
|
||||
dataPage: [],
|
||||
@@ -314,14 +312,6 @@ export default {
|
||||
this.page.params = {}
|
||||
this.getByPage()
|
||||
},
|
||||
companyOrginQuery(value) {
|
||||
// 远程搜索
|
||||
if (value) {
|
||||
internalCompanyApi.getLikeByCompanyType({ name: value }).then(res => {
|
||||
this.queryCompanyList = res.data
|
||||
})
|
||||
}
|
||||
},
|
||||
getByPage() {
|
||||
// 分页查询
|
||||
|
||||
|
||||
@@ -126,7 +126,9 @@
|
||||
<div class="button-style" :span="24">
|
||||
<el-divider style="width: 100%"></el-divider>
|
||||
<el-button @click="close(1)" style="margin-right: 10px">关闭</el-button>
|
||||
<el-button v-if="importData.auditState == 0" type="primary" @click="submit" style="margin-right: 10px">结算单审核 </el-button>
|
||||
<el-button v-permission="['oil:to:examine']" v-if="importData.auditState == 0" type="primary" @click="submit" style="margin-right: 10px"
|
||||
>结算单审核
|
||||
</el-button>
|
||||
</div>
|
||||
<el-dialog class="dialogInfo" append-to-body :visible.sync="submitDialog" v-if="submitDialog" width="500px">
|
||||
<el-form class="messageConfirm" ref="form" :model="importData" label-width="110px" size="mini">
|
||||
@@ -179,10 +181,8 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { imgCompress } from '@/utils'
|
||||
import internalCompanyApi from '@/api/user/internalCompany'
|
||||
import utils from '@/utils/encode'
|
||||
const JSESSIONID = utils.uuid()
|
||||
|
||||
export default {
|
||||
filters: {},
|
||||
props: {
|
||||
@@ -194,7 +194,6 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
tableHeight: document.documentElement.clientHeight - 470 - 55,
|
||||
imgCompress,
|
||||
companyList: [],
|
||||
roleList: [],
|
||||
roleTypeList: [],
|
||||
@@ -218,7 +217,7 @@ export default {
|
||||
],
|
||||
tableColumns: [
|
||||
{
|
||||
prop: 'orderSerialNumber',
|
||||
prop: 'id',
|
||||
minWidth: 180,
|
||||
label: '订单号',
|
||||
show: true,
|
||||
@@ -370,21 +369,6 @@ export default {
|
||||
sums[index] = '合计'
|
||||
return
|
||||
}
|
||||
const values = data.map(item => Number(item[column.property]))
|
||||
if (!values.every(value => isNaN(value))) {
|
||||
sums[index] = values.reduce((prev, curr) => {
|
||||
const value = Number(curr)
|
||||
if (!isNaN(value)) {
|
||||
return prev + curr
|
||||
} else {
|
||||
return prev
|
||||
}
|
||||
}, 0)
|
||||
sums[index] = sums[index].toFixed(2)
|
||||
sums[index] += ' 元'
|
||||
} else {
|
||||
sums[index] = ''
|
||||
}
|
||||
if (this.importData.settlementType == 1) {
|
||||
switch (
|
||||
column.property // column.property可以匹配它的每一列的命名, 然后赋值
|
||||
|
||||
Reference in New Issue
Block a user