16 Commits

Author SHA1 Message Date
def24fe4c6 Merge pull request '更新' (#27) from zyj into master
Reviewed-on: #27
2023-07-12 10:28:18 +00:00
96ddc036b4 更新 2023-07-12 18:25:12 +08:00
1fc336a3db Merge pull request '更新' (#26) from zyj into master
Reviewed-on: #26
2023-07-11 09:34:02 +00:00
6d35811470 更新 2023-07-11 17:33:40 +08:00
25c4bb7573 Merge pull request 'zyj' (#25) from zyj into master
Reviewed-on: #25
2023-07-11 08:46:41 +00:00
49b6ed8a06 Merge branch 'master' into zyj
# Conflicts:
#	src/views/oilFinalStatement/oilFinalStatementListInfo.vue
2023-07-11 16:45:28 +08:00
badf6bf752 更新 2023-07-11 16:41:49 +08:00
ec225b7a02 Merge pull request '更新' (#22) from zyj into master
Reviewed-on: #22
2023-07-11 03:06:12 +00:00
d1a7142f19 更新 2023-07-11 11:05:41 +08:00
c8ab3b999b Merge pull request '更新' (#21) from zyj into master
Reviewed-on: #21
2023-07-10 08:46:02 +00:00
75b5e3f91b 更新 2023-07-10 16:37:49 +08:00
24b6b3d84d Merge pull request '更新' (#20) from zyj into master
Reviewed-on: #20
2023-07-10 06:12:50 +00:00
0a428101f7 更新 2023-07-10 14:12:05 +08:00
xiaozhiyong
27a14874a4 更新 2023-07-10 13:49:36 +08:00
xiaozhiyong
b46c851e5c Merge branch 'master' of http://121.196.213.68:3000/xiaozhiyong/refinery-admin 2023-07-10 10:22:32 +08:00
xiaozhiyong
29b5fdc39b 更新 2023-07-10 10:22:28 +08:00
5 changed files with 81 additions and 138 deletions

View File

@@ -11,15 +11,6 @@
@clear="list = []" @clear="list = []"
@change="change" @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> <template>
<el-option v-for="(item, index) in list" :key="index" :label="labelHandler(item)" :value="item[config.valueKey]"> </el-option> <el-option v-for="(item, index) in list" :key="index" :label="labelHandler(item)" :value="item[config.valueKey]"> </el-option>
</template> </template>
@@ -33,17 +24,17 @@ export default {
config: Object config: Object
// config: { // config: {
// serveTarget: {}, // 远程搜索接口 // serveTarget: {}, // 远程搜索接口
// autocompleteKey: "", //远程搜索接口参数名 // autocompleteKey: "" || {}, // 远程搜索接口参数名
// labelKey: [] || '', //接口返回数据label // labelKey: "" || [], // 接口返回数据label
// valueKey: "", //接口返回数据id // valueKey: "", // 接口返回数据id
// querykey: "", //查询接口参数名 // querykey: "", // 查询接口参数名
// echoId:'', // // echoId: "", // 用于回显的id
// echoName: "", // 用于回显的name
// }, // },
}, },
data() { data() {
return { return {
text: '', text: '',
// labelIsMore: false,
list: [], list: [],
isDisabled: false isDisabled: false
} }
@@ -51,7 +42,6 @@ export default {
watch: { watch: {
'config.echoId': { 'config.echoId': {
handler(nval, oval) { handler(nval, oval) {
console.log('nvalnvalnvalnvalnval', nval)
this.list = [] this.list = []
let type = this.$utils.typeJudgment(this.config.echoName) let type = this.$utils.typeJudgment(this.config.echoName)
if (nval && ['String'].includes(type)) { if (nval && ['String'].includes(type)) {
@@ -77,18 +67,22 @@ export default {
created() { created() {
let { labelKey } = this.config let { labelKey } = this.config
let type = this.$utils.typeJudgment(labelKey) let type = this.$utils.typeJudgment(labelKey)
// if (type === 'Array') { // 重构labelHandler
// this.labelIsMore = true
// }
this.labelHandler = this.labelHandler(type) this.labelHandler = this.labelHandler(type)
// console.log(this.labelHandler())
}, },
methods: { methods: {
labelHandler(type) { labelHandler(type) {
if (type === 'Array') { if (type === 'Array') {
return item => { return item => {
return this.config.labelKey.reduce((prev, cur) => { 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 return prev
}, '') }, '')
} }
@@ -99,7 +93,6 @@ export default {
}, },
// 远程搜索 // 远程搜索
remoteMethod(query) { remoteMethod(query) {
console.log('query', query)
if (query !== '') { if (query !== '') {
this.loading = true this.loading = true
let type = this.$utils.typeJudgment(this.config.autocompleteKey) let type = this.$utils.typeJudgment(this.config.autocompleteKey)

View File

@@ -17,32 +17,35 @@ export function parseTime(time) {
} }
const formatRes = { const formatRes = {
y: date.getFullYear(), y: date.getFullYear(),
M: date.getMonth() + 1, M: (date.getMonth() + 1 + '').padStart(2, 0),
d: date.getDate(), d: (date.getDate() + '').padStart(2, 0),
h: date.getHours(), h: (date.getHours() + '').padStart(2, 0),
m: date.getMinutes(), m: (date.getMinutes() + '').padStart(2, 0),
s: date.getSeconds(), s: (date.getSeconds() + '').padStart(2, 0),
week: ['日', '一', '二', '三', '四', '五', '六'][date.getDay()] week: ['日', '一', '二', '三', '四', '五', '六'][date.getDay()]
} }
formatRes.M < 10 && (formatRes.M = '0' + formatRes.M) // formatRes.M < 10 && (formatRes.M = '0' + formatRes.M)
formatRes.d < 10 && (formatRes.d = '0' + formatRes.d) // formatRes.d < 10 && (formatRes.d = '0' + formatRes.d)
formatRes.h < 10 && (formatRes.h = '0' + formatRes.h) // formatRes.h < 10 && (formatRes.h = '0' + formatRes.h)
formatRes.m < 10 && (formatRes.m = '0' + formatRes.m) // formatRes.m < 10 && (formatRes.m = '0' + formatRes.m)
formatRes.s < 10 && (formatRes.s = '0' + formatRes.s) // formatRes.s < 10 && (formatRes.s = '0' + formatRes.s)
return formatRes return formatRes
} }
// 防抖 // 防抖
export function debounce(fn, delay) { export function debounce(fn, delay) {
let timer = null let timer = null
return function () { function _implementer(...args) {
if (timer) clearTimeout(timer) if (timer) clearTimeout(timer)
let _this = this let _this = this
let _arguments = arguments
timer = setTimeout(function () { timer = setTimeout(function () {
fn.apply(_this, _arguments) fn.call(_this, ...args)
}, delay) }, delay)
} }
_implementer.cancel = () => {
clearTimeout(timer)
}
return _implementer
} }
// 车牌校验 // 车牌校验
export function isLicensePlate(number) { export function isLicensePlate(number) {

View File

@@ -28,19 +28,9 @@
<el-form label-width="90px" :inline="true" :model="page" :size="$store.getters.size"> <el-form label-width="90px" :inline="true" :model="page" :size="$store.getters.size">
<el-col :span="18"> <el-col :span="18">
<el-form-item> <el-form-item>
<el-select <autocomplete class="mr20" :params="page.params" :config="configAutocomplete" />
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>
</el-form-item> </el-form-item>
<el-form-item prop="createTimeRange"> <el-form-item prop="createTimeRange">
<el-date-picker <el-date-picker
v-model="page.params.createTimeRange" v-model="page.params.createTimeRange"
@@ -56,8 +46,8 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item prop="paramsid"> <el-form-item prop="paramsid">
<el-select v-model="page.params.oilProductType" style="width: 100%" clearable placeholder="请选择油品类型"> <el-select v-model="page.params.productType" style="width: 100%" clearable placeholder="请选择油品类型">
<el-option v-for="item in oliList" :key="item.label" :label="item.label" :value="item.value"> </el-option> <el-option v-for="(item, index) in oliList" :key="index" :label="item" :value="item"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -207,7 +197,7 @@
</el-row> </el-row>
<div :span="24" style="margin-top: 50px; text-align: center; width: 100%"> <div :span="24" style="margin-top: 50px; text-align: center; width: 100%">
<el-divider style="width: 100%"></el-divider> <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 @click="close" size="mini">取消</el-button>
<el-button size="mini" type="primary" :disabled="!setWait" @click="addList">确认提交</el-button> <el-button size="mini" type="primary" :disabled="!setWait" @click="addList">确认提交</el-button>
</div> </div>
@@ -219,30 +209,23 @@
<script> <script>
import internalCompanyApi from '@/api/user/internalCompany' import internalCompanyApi from '@/api/user/internalCompany'
import autocomplete from 'components/autocomplete/index.vue'
export default { export default {
components: {
autocomplete
},
data() { data() {
return { return {
configAutocomplete: {
serveTarget: internalCompanyApi.getLikeByCompanyType,
autocompleteKey: 'name',
labelKey: 'name',
valueKey: 'id',
placeholder: '企业名称',
querykey: 'customerId'
},
changeCompanyId: '', changeCompanyId: '',
oliList: ['0#柴', '-10#柴', '92#汽', '95#汽'],
oliList: [
{
value: 'DIESEL',
label: '柴油'
},
{
value: 'PETROL',
label: '汽油'
},
{
value: 'GAS',
label: '天然气'
},
{
value: 'OTHER',
label: '其他'
}
],
baocunList: [], baocunList: [],
daixuanList: [], daixuanList: [],
baocunDaixuanList: [], baocunDaixuanList: [],
@@ -250,7 +233,7 @@ export default {
goIn: 0, goIn: 0,
importData: {}, importData: {},
page: { page: {
pageSize: 10, // 每页显示条数 pageSize: 10000, // 每页显示条数
currentPage: 1, // 默认页 currentPage: 1, // 默认页
totalCount: 0, totalCount: 0,
params: {}, params: {},
@@ -261,7 +244,6 @@ export default {
tableHeight: document.documentElement.clientHeight - 495, tableHeight: document.documentElement.clientHeight - 495,
selectedStaffList: [], selectedStaffList: [],
setWait: true, setWait: true,
queryCompanyList: [], // 企业列表
staffData: [], staffData: [],
selectedStaffData: [], selectedStaffData: [],
submitDialog: false, submitDialog: false,
@@ -430,12 +412,14 @@ export default {
return return
} }
this.importData.settlementType = 1 this.importData.settlementType = 1
this.importData.oilProductType = this.page.params.oilProductType this.importData.productType = this.page.params.productType
let payRealAmountEnd = [] let payRealAmountEnd = []
let customerSettleAmountList = [] let customerSettleAmountList = []
let endTime = ''
this.selectedStaffList.forEach(item => { this.selectedStaffList.forEach(item => {
this.endT = item.createTime this.endT = item.createTime
endTime = item.createTime
payRealAmountEnd.push(item.actAmount ? item.actAmount : '0') payRealAmountEnd.push(item.actAmount ? item.actAmount : '0')
customerSettleAmountList.push(item.customerSettleAmount ? item.customerSettleAmount : '0') customerSettleAmountList.push(item.customerSettleAmount ? item.customerSettleAmount : '0')
@@ -458,24 +442,13 @@ export default {
this.importData.confirmState = 0 this.importData.confirmState = 0
this.importData.settlementState = 0 this.importData.settlementState = 0
this.importData.createSource = 'XOIL_OMS_WEB' this.importData.createSource = 'XOIL_OMS_WEB'
this.importData.orderStartDate = this.createT this.importData.orderStartTime = this.selectedStaffList[0].createTime
this.importData.orderEndDate = this.endT this.importData.orderEndTime = endTime
this.importData.settlementObjectName = this.$refs.changeName.selectedLabel this.importData.settlementObjectName = this.selectedStaffList[0].customerName
this.importData.settlementId = this.selectedStaffList[0].customerId this.importData.settlementId = this.selectedStaffList[0].customerId
if (!this.importData.settlementObjectName) {
this.$message.error('企业名称为空,无法提交')
return
}
this.submitDialog = true this.submitDialog = true
}, },
companyOrginQuery(value) {
// 远程搜索
if (value) {
internalCompanyApi.getLikeByCompanyType({ name: value }).then(res => {
this.queryCompanyList = res.data
})
}
},
search() { search() {
// 搜索 // 搜索
if (!this.page.params.customerId) { if (!this.page.params.customerId) {
@@ -486,10 +459,10 @@ export default {
this.$message.warning('请输入时间') this.$message.warning('请输入时间')
return return
} }
if (!this.page.params.oilProductType) { // if (!this.page.params.productType) {
this.$message.warning('请选择油品类型') // this.$message.warning('请选择油品类型')
return // return
} // }
this.loading = true this.loading = true
this.page.currentPage = 1 this.page.currentPage = 1
this.getByPage() this.getByPage()
@@ -587,7 +560,7 @@ export default {
}, },
async getByPage(e) { async getByPage(e) {
this.page.params.type = 1 this.page.params.type = 1
this.page.params.orderType = 4
if (this.page.params.createTimeRange && this.page.params.createTimeRange.length > 1) { 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.dateStartTime = this.page.params.createTimeRange[0] + ' 00:00:00'
this.page.params.dateEndTime = this.page.params.createTimeRange[1] + ' 23:59:59' this.page.params.dateEndTime = this.page.params.createTimeRange[1] + ' 23:59:59'
@@ -654,7 +627,7 @@ export default {
/* flex: 1; */ /* flex: 1; */
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: end; justify-content: flex-end;
font-size: 16px; font-size: 16px;
} }

View File

@@ -14,19 +14,8 @@
<el-option label="炼厂" value="2" /> <el-option label="炼厂" value="2" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item>
<el-select <autocomplete class="mr20" :params="page.params" :config="configAutocomplete" />
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>
<el-form-item> <el-form-item>
<el-select v-model="page.params.auditState" clearable placeholder="审核状态"> <el-select v-model="page.params.auditState" clearable placeholder="审核状态">
@@ -133,14 +122,24 @@
import oilFinalStatementListInfo from './oilFinalStatementListInfo' import oilFinalStatementListInfo from './oilFinalStatementListInfo'
import internalCompanyApi from '@/api/user/internalCompany' import internalCompanyApi from '@/api/user/internalCompany'
import sysCustomerInfoApi from '@/api/user/sysCustomerInfo' import sysCustomerInfoApi from '@/api/user/sysCustomerInfo'
import autocomplete from 'components/autocomplete/index.vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
components: { components: {
oilFinalStatementListInfo oilFinalStatementListInfo,
autocomplete
}, },
data() { data() {
return { return {
configAutocomplete: {
serveTarget: internalCompanyApi.getLikeByCompanyType,
autocompleteKey: 'name',
labelKey: 'name',
valueKey: 'id',
placeholder: '客户名称',
querykey: 'settlementId'
},
detailDrawer: false, detailDrawer: false,
thisloding: true, thisloding: true,
page: { page: {
@@ -151,7 +150,6 @@ export default {
columns: [] columns: []
}, },
userList: '', userList: '',
queryCompanyList: [],
tableHeight: document.documentElement.clientHeight - 300 - 50, tableHeight: document.documentElement.clientHeight - 300 - 50,
filters: this.$options.filters, filters: this.$options.filters,
dataPage: [], dataPage: [],
@@ -314,14 +312,6 @@ export default {
this.page.params = {} this.page.params = {}
this.getByPage() this.getByPage()
}, },
companyOrginQuery(value) {
// 远程搜索
if (value) {
internalCompanyApi.getLikeByCompanyType({ name: value }).then(res => {
this.queryCompanyList = res.data
})
}
},
getByPage() { getByPage() {
// 分页查询 // 分页查询

View File

@@ -126,7 +126,9 @@
<div class="button-style" :span="24"> <div class="button-style" :span="24">
<el-divider style="width: 100%"></el-divider> <el-divider style="width: 100%"></el-divider>
<el-button @click="close(1)" style="margin-right: 10px">关闭</el-button> <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> </div>
<el-dialog class="dialogInfo" append-to-body :visible.sync="submitDialog" v-if="submitDialog" width="500px"> <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"> <el-form class="messageConfirm" ref="form" :model="importData" label-width="110px" size="mini">
@@ -179,10 +181,8 @@
</div> </div>
</template> </template>
<script> <script>
import { imgCompress } from '@/utils'
import internalCompanyApi from '@/api/user/internalCompany' import internalCompanyApi from '@/api/user/internalCompany'
import utils from '@/utils/encode'
const JSESSIONID = utils.uuid()
export default { export default {
filters: {}, filters: {},
props: { props: {
@@ -194,7 +194,6 @@ export default {
data() { data() {
return { return {
tableHeight: document.documentElement.clientHeight - 470 - 55, tableHeight: document.documentElement.clientHeight - 470 - 55,
imgCompress,
companyList: [], companyList: [],
roleList: [], roleList: [],
roleTypeList: [], roleTypeList: [],
@@ -218,7 +217,7 @@ export default {
], ],
tableColumns: [ tableColumns: [
{ {
prop: 'orderSerialNumber', prop: 'id',
minWidth: 180, minWidth: 180,
label: '订单号', label: '订单号',
show: true, show: true,
@@ -370,21 +369,6 @@ export default {
sums[index] = '合计' sums[index] = '合计'
return 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) { if (this.importData.settlementType == 1) {
switch ( switch (
column.property // column.property可以匹配它的每一列的命名 然后赋值 column.property // column.property可以匹配它的每一列的命名 然后赋值